material-inspired-component-library 8.1.0 → 9.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 +106 -18
- package/components/README.md +1 -1
- package/components/accordion/README.md +6 -6
- package/components/alert/README.md +10 -10
- package/components/alert/index.scss +27 -52
- package/components/appbar/README.md +19 -6
- package/components/appbar/index.scss +40 -44
- package/components/badge/README.md +12 -10
- package/components/badge/index.scss +21 -25
- package/components/bottomsheet/README.md +26 -1
- package/components/bottomsheet/index.scss +58 -44
- package/components/button/README.md +70 -10
- package/components/button/_shared.scss +210 -0
- package/components/button/index.scss +75 -389
- package/components/card/README.md +97 -85
- package/components/card/index.scss +46 -65
- package/components/checkbox/README.md +25 -14
- package/{tools/shapes/check.mjs → components/checkbox/_label.scss} +37 -42
- package/components/checkbox/index.scss +66 -66
- package/components/chip/README.md +186 -0
- package/components/chip/index.scss +285 -0
- package/components/datepicker/README.md +79 -0
- package/components/datepicker/index.scss +346 -315
- package/components/dialog/README.md +20 -10
- package/components/dialog/index.scss +55 -66
- package/components/divider/README.md +16 -15
- package/components/divider/index.scss +9 -25
- package/components/iconbutton/README.md +63 -12
- package/components/iconbutton/index.scss +142 -303
- package/components/list/README.md +89 -156
- package/components/list/index.scss +34 -36
- package/components/menu/README.md +81 -155
- package/components/menu/index.scss +52 -58
- package/components/navigationbar/README.md +108 -0
- package/components/navigationbar/index.scss +185 -0
- package/components/navigationrail/README.md +62 -37
- package/components/navigationrail/_navitem.scss +96 -0
- package/components/navigationrail/index.scss +78 -132
- package/components/progressindicator/README.md +83 -47
- package/components/progressindicator/index.scss +622 -172
- package/components/radio/README.md +11 -9
- package/components/radio/index.scss +36 -33
- package/components/select/README.md +12 -7
- package/components/select/index.scss +26 -34
- package/components/shapes/README.md +3 -3
- package/components/shapes/index.scss +0 -1
- package/components/sidesheet/README.md +21 -9
- package/components/sidesheet/index.scss +38 -46
- package/components/slider/README.md +21 -0
- package/components/slider/index.scss +108 -139
- package/components/snackbar/README.md +32 -35
- package/components/snackbar/index.scss +10 -22
- package/components/stepper/README.md +14 -7
- package/components/stepper/index.scss +58 -39
- package/components/switch/README.md +22 -15
- package/components/switch/index.scss +68 -60
- package/components/textfield/README.md +48 -5
- package/components/textfield/index.scss +192 -248
- package/components/timepicker/README.md +53 -23
- package/components/timepicker/index.scss +110 -128
- package/dist/alert.css +1 -1
- package/dist/alert.js +1 -1
- package/dist/appbar.css +1 -1
- package/dist/appbar.js +1 -1
- package/dist/badge.css +1 -1
- package/dist/badge.js +1 -1
- package/dist/base.css +1 -0
- package/dist/base.js +1 -0
- package/dist/bottomsheet.css +1 -1
- package/dist/bottomsheet.js +1 -1
- package/dist/button.css +1 -1
- package/dist/button.js +1 -1
- package/dist/card.css +1 -1
- package/dist/card.js +1 -1
- package/dist/checkbox.css +1 -1
- package/dist/checkbox.js +1 -1
- package/dist/chip.css +1 -0
- package/dist/chip.js +1 -0
- package/dist/components/button/index.d.ts +1 -1
- package/dist/components/iconbutton/index.d.ts +2 -7
- package/dist/components/slider/index.d.ts +1 -1
- package/dist/components/textfield/index.d.ts +2 -2
- package/dist/datepicker.css +1 -1
- package/dist/datepicker.js +1 -1
- package/dist/dialog.css +1 -1
- package/dist/dialog.js +1 -1
- package/dist/divider.css +1 -1
- package/dist/divider.js +1 -1
- package/dist/field.css +1 -0
- package/dist/field.js +1 -0
- package/dist/foundations/form/index.js +1 -1
- package/dist/foundations/runtime.d.ts +15 -0
- package/dist/foundations/runtime.js +1 -0
- package/dist/iconbutton.css +1 -1
- package/dist/iconbutton.js +1 -1
- package/dist/layout.css +1 -1
- package/dist/layout.js +1 -1
- package/dist/list.css +1 -1
- package/dist/list.js +1 -1
- package/dist/menu.css +1 -1
- package/dist/menu.js +1 -1
- package/dist/micl.css +1 -1
- package/dist/micl.d.ts +14 -5
- package/dist/micl.js +1 -1
- package/dist/navigationbar.css +1 -0
- package/dist/navigationbar.js +1 -0
- package/dist/navigationrail.css +1 -1
- package/dist/navigationrail.js +1 -1
- package/dist/progressindicator.css +1 -1
- package/dist/progressindicator.js +1 -1
- package/dist/radio.css +1 -1
- package/dist/radio.js +1 -1
- package/dist/scrollbar.js +1 -1
- package/dist/select.css +1 -1
- package/dist/select.js +1 -1
- package/dist/shapes.css +1 -1
- package/dist/shapes.js +1 -1
- package/dist/sidesheet.css +1 -1
- package/dist/sidesheet.js +1 -1
- package/dist/slider.css +1 -1
- package/dist/slider.js +1 -1
- package/dist/snackbar.css +1 -1
- package/dist/snackbar.js +1 -1
- package/dist/stepper.css +1 -1
- package/dist/stepper.js +1 -1
- package/dist/switch.css +1 -1
- package/dist/switch.js +1 -1
- package/dist/textfield.css +1 -1
- package/dist/textfield.js +1 -1
- package/dist/timepicker.css +1 -1
- package/dist/timepicker.js +1 -1
- package/foundations/_index.scss +35 -0
- package/foundations/{index.scss → base/index.scss} +21 -56
- package/foundations/field/index.scss +37 -0
- package/foundations/layout/index.scss +64 -65
- package/package.json +23 -9
- package/styles/statelayer.scss +20 -5
- package/styles.scss +5 -2
- package/.claude/settings.local.json +0 -14
- package/.editorconfig +0 -12
- package/.gitattributes +0 -9
- package/.github/ISSUE_TEMPLATE/bug_report.md +0 -35
- package/.github/ISSUE_TEMPLATE/feature_request.md +0 -20
- package/CLAUDE.md +0 -53
- package/CODE_OF_CONDUCT.md +0 -128
- package/components/bottomsheet/index.ts +0 -153
- package/components/button/index.ts +0 -79
- package/components/checkbox/index.ts +0 -148
- package/components/datepicker/index.ts +0 -693
- package/components/iconbutton/index.ts +0 -77
- package/components/list/index.ts +0 -138
- package/components/menu/index.ts +0 -145
- package/components/navigationrail/index.ts +0 -87
- package/components/progressindicator/index.ts +0 -77
- package/components/slider/index.ts +0 -149
- package/components/snackbar/index.ts +0 -118
- package/components/stepper/index.ts +0 -248
- package/components/textfield/index.ts +0 -188
- package/components/timepicker/index.ts +0 -413
- package/dist/components/progressindicator/index.d.ts +0 -6
- package/dist/foundations.css +0 -1
- package/dist/foundations.js +0 -1
- package/docs/accordion.html +0 -344
- package/docs/alert.html +0 -177
- package/docs/bottomsheet.html +0 -240
- package/docs/button.html +0 -290
- package/docs/card-awards.webp +0 -0
- package/docs/card-cabinet.webp +0 -0
- package/docs/card-city.webp +0 -0
- package/docs/card-fingerprint.webp +0 -0
- package/docs/card-holiday.webp +0 -0
- package/docs/card-names.webp +0 -0
- package/docs/card.html +0 -159
- package/docs/checkbox.html +0 -147
- package/docs/datepicker.html +0 -274
- package/docs/dialog.html +0 -195
- package/docs/divider.html +0 -139
- package/docs/docs.css +0 -26
- package/docs/docs.js +0 -139
- package/docs/iconbutton.html +0 -329
- package/docs/index.html +0 -431
- package/docs/list.html +0 -310
- package/docs/menu.html +0 -574
- package/docs/micl.css +0 -1
- package/docs/micl.js +0 -1
- package/docs/navigationrail.html +0 -138
- package/docs/progressindicator.html +0 -288
- package/docs/radio.html +0 -123
- package/docs/select.html +0 -337
- package/docs/shapes.css +0 -1
- package/docs/shapes.html +0 -159
- package/docs/shapes.js +0 -1
- package/docs/sidesheet.html +0 -149
- package/docs/slider.html +0 -141
- package/docs/snackbar.html +0 -102
- package/docs/stepper.html +0 -319
- package/docs/switch.html +0 -196
- package/docs/textfield.html +0 -208
- package/docs/themes/airblue/dark-hc.css +0 -51
- package/docs/themes/airblue/dark-mc.css +0 -51
- package/docs/themes/airblue/dark.css +0 -51
- package/docs/themes/airblue/light-hc.css +0 -51
- package/docs/themes/airblue/light-mc.css +0 -51
- package/docs/themes/airblue/light.css +0 -51
- package/docs/themes/airblue/theme.css +0 -306
- package/docs/themes/barnred/dark-hc.css +0 -51
- package/docs/themes/barnred/dark-mc.css +0 -51
- package/docs/themes/barnred/dark.css +0 -51
- package/docs/themes/barnred/light-hc.css +0 -51
- package/docs/themes/barnred/light-mc.css +0 -51
- package/docs/themes/barnred/light.css +0 -51
- package/docs/themes/barnred/theme.css +0 -306
- package/docs/themes/citrine/dark-hc.css +0 -51
- package/docs/themes/citrine/dark-mc.css +0 -51
- package/docs/themes/citrine/dark.css +0 -51
- package/docs/themes/citrine/light-hc.css +0 -51
- package/docs/themes/citrine/light-mc.css +0 -51
- package/docs/themes/citrine/light.css +0 -51
- package/docs/themes/citrine/theme.css +0 -306
- package/docs/themes/gray/dark-hc.css +0 -51
- package/docs/themes/gray/dark-mc.css +0 -51
- package/docs/themes/gray/dark.css +0 -51
- package/docs/themes/gray/light-hc.css +0 -51
- package/docs/themes/gray/light-mc.css +0 -51
- package/docs/themes/gray/light.css +0 -51
- package/docs/themes/gray/theme.css +0 -306
- package/docs/themes/greenery/dark-hc.css +0 -51
- package/docs/themes/greenery/dark-mc.css +0 -51
- package/docs/themes/greenery/dark.css +0 -51
- package/docs/themes/greenery/light-hc.css +0 -51
- package/docs/themes/greenery/light-mc.css +0 -51
- package/docs/themes/greenery/light.css +0 -51
- package/docs/themes/greenery/theme.css +0 -306
- package/docs/themes/hermana/dark-hc.css +0 -51
- package/docs/themes/hermana/dark-mc.css +0 -51
- package/docs/themes/hermana/dark.css +0 -51
- package/docs/themes/hermana/light-hc.css +0 -51
- package/docs/themes/hermana/light-mc.css +0 -51
- package/docs/themes/hermana/light.css +0 -51
- package/docs/themes/hermana/theme.css +0 -306
- package/docs/themes/illuminating/dark-hc.css +0 -51
- package/docs/themes/illuminating/dark-mc.css +0 -51
- package/docs/themes/illuminating/dark.css +0 -51
- package/docs/themes/illuminating/light-hc.css +0 -51
- package/docs/themes/illuminating/light-mc.css +0 -51
- package/docs/themes/illuminating/light.css +0 -51
- package/docs/themes/illuminating/theme.css +0 -306
- package/docs/themes/magenta/dark-hc.css +0 -51
- package/docs/themes/magenta/dark-mc.css +0 -51
- package/docs/themes/magenta/dark.css +0 -51
- package/docs/themes/magenta/light-hc.css +0 -51
- package/docs/themes/magenta/light-mc.css +0 -51
- package/docs/themes/magenta/light.css +0 -51
- package/docs/themes/magenta/theme.css +0 -306
- package/docs/themes/mocha/dark-hc.css +0 -51
- package/docs/themes/mocha/dark-mc.css +0 -51
- package/docs/themes/mocha/dark.css +0 -51
- package/docs/themes/mocha/light-hc.css +0 -51
- package/docs/themes/mocha/light-mc.css +0 -51
- package/docs/themes/mocha/light.css +0 -51
- package/docs/themes/mocha/theme.css +0 -306
- package/docs/themes/olivegreen/dark-hc.css +0 -51
- package/docs/themes/olivegreen/dark-mc.css +0 -51
- package/docs/themes/olivegreen/dark.css +0 -51
- package/docs/themes/olivegreen/light-hc.css +0 -51
- package/docs/themes/olivegreen/light-mc.css +0 -51
- package/docs/themes/olivegreen/light.css +0 -51
- package/docs/themes/olivegreen/theme.css +0 -306
- package/docs/themes/peri/dark-hc.css +0 -51
- package/docs/themes/peri/dark-mc.css +0 -51
- package/docs/themes/peri/dark.css +0 -51
- package/docs/themes/peri/light-hc.css +0 -51
- package/docs/themes/peri/light-mc.css +0 -51
- package/docs/themes/peri/light.css +0 -51
- package/docs/themes/peri/theme.css +0 -306
- package/docs/timepicker.html +0 -160
- package/foundations/form/index.ts +0 -174
- package/foundations/layout/README.md +0 -127
- package/intl.d.ts +0 -9
- package/micl.ts +0 -221
- package/styles/README.md +0 -196
- package/tools/shapes/generate.mjs +0 -828
- package/tsconfig.json +0 -116
- package/webpack.config.js +0 -104
package/dist/timepicker.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
!function(e,
|
|
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={56(e,t,n){const o=globalThis.__miclRegistry??={map:{},rippled:new WeakSet,activated:!1},r=()=>Object.keys(o.map).join(","),i=e=>Object.entries(o.map).find(([t,{type:n}])=>e.matches(t)&&e instanceof n)?.[1],a=e=>{const t=i(e);t&&"function"==typeof t.component.initialize&&t.component.initialize(e)},l=e=>{const t=i(e);t&&"function"==typeof t.component.cleanup&&t.component.cleanup(e)},c=e=>{const t=r();if(!t)return;const n=e.target.closest(t);if(!(n instanceof HTMLElement))return;const o=i(n),a=e.type;o&&"function"==typeof o.component[a]&&o.component[a]?.(e)},s=()=>{o.activated||(o.activated=!0,new MutationObserver(e=>{e.forEach(e=>{"childList"===e.type&&(e.addedNodes.forEach(e=>{if(e instanceof HTMLElement){const t=r();t&&e.matches(t)&&a(e),t&&e.querySelectorAll(t).forEach(a)}}),e.removedNodes.forEach(e=>{if(e instanceof HTMLElement){const t=r();t&&e.matches(t)&&l(e),(e=>{const t=r();t&&e.querySelectorAll(t).forEach(l)})(e)}}))})}).observe(document.body,{childList:!0,subtree:!0}),(e=>{const t=r();t&&e.querySelectorAll(t).forEach(a),e.querySelectorAll('[class*="micl-"], [class*="micl-"] > summary').forEach(e=>{o.rippled.has(e)||"1"===window.getComputedStyle(e).getPropertyValue("--micl-ripple")&&(e.addEventListener("pointerdown",t=>{if(t.currentTarget.classList.contains("micl-card--nonactionable"))return;t.stopPropagation();const n=e.getBoundingClientRect();e.style.setProperty("--micl-x",(t.clientX-n.left)/n.width*100+"%"),e.style.setProperty("--micl-y",(t.clientY-n.top)/n.height*100+"%"),e.classList.remove("micl-rippling"),e.offsetWidth,e.classList.add("micl-rippling");const o=t=>{"micl-ripple"===t.animationName&&(e.classList.remove("micl-rippling"),e.style.removeProperty("--micl-x"),e.style.removeProperty("--micl-y"),e.removeEventListener("animationend",o))};e.addEventListener("animationend",o)}),o.rippled.add(e))}),document.documentElement.style.setProperty("--md-sys-scrollbar-thumb-color",window.getComputedStyle(document.body).getPropertyValue("--md-sys-color-outline").trim())})(document),document.addEventListener("change",c),document.addEventListener("input",c),document.addEventListener("keydown",c))},d=()=>{document.removeEventListener("DOMContentLoaded",d),s()};"loading"!==document.readyState?s():document.addEventListener("DOMContentLoaded",d),n.d(t,["register",0,(e,t,n)=>(o.map[e]={component:t,type:n},o.activated&&document.querySelectorAll(e).forEach(a),t)])}};const t={};function n(o){const r=t[o];if(void 0!==r)return r.exports;const i=t[o]={exports:{}};return e[o](i,i.exports,n),i.exports}n.d=(e,t)=>{if(Array.isArray(t))for(var o=0;o<t.length;){var r=t[o++],i=t[o++];n.o(e,r)?0===i&&o++:0===i?Object.defineProperty(e,r,{enumerable:!0,value:t[o++]}):Object.defineProperty(e,r,{enumerable:!0,get:i})}else for(var r in t)n.o(t,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),n.r=e=>{Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};let o={};n.r(o);var r=n(56);const i="dialog.micl-dialog.micl-timepicker",a="micl-timepicker__",l="micl-timepicker__dial--hidden",c="micl-timepicker--selected",s=(()=>{try{const e=new Intl.DateTimeFormat(void 0,{hour:"numeric"}).resolvedOptions().hourCycle;return"h11"===e||"h12"===e}catch(e){return!1}})(),d=(e,t)=>e.querySelector(t),m=e=>e instanceof HTMLInputElement||e instanceof HTMLButtonElement,u=e=>!!e&&!e.classList.contains(l),p=(e,t)=>{e.classList.toggle(c,t)},f=e=>document.querySelector(`[data-timepicker="${e.id}"],[popovertarget="${e.id}"],[commandfor="${e.id}"]`),y=e=>"hour"===e?{min:s?1:0,max:s?12:23}:{min:0,max:59},v=(e,t,n)=>{e.querySelectorAll("data").forEach(e=>e.classList.remove(`${a}time--selected`));const o=e.querySelector(`data[data-${t}][value="${n}"]`);let r="";o?(r=window.getComputedStyle(o).getPropertyValue("--micl-angle"),o.classList.add(`${a}time--selected`)):"minute"===t&&(r=`${Math.round(360*parseInt(n,10)/60-90)}deg`),r&&e.style.setProperty("--micl-angle",r)},g=(e,t,n,o,r=!0)=>{let i=parseInt(n||"0",10);if(isNaN(i))return;const l=d(e,`input[name=${t}]`);if(l){if("hour"===t&&o&&s){const t=e.querySelector(`.${a}am`),n=e.querySelector(`.${a}pm`);i>=12?(n&&(n.checked=!0),i>12&&(i-=12)):(t&&(t.checked=!0),0===i&&(i=12))}if(l.value=`${i}`.padStart(2,"0"),r){const n=d(e,`.${a}dial`);if(!n)return;v(n,t,l.value)}}},h=(e,t,n)=>{if("ArrowDown"!==n.key&&"ArrowUp"!==n.key)return;n.preventDefault();const{max:o,min:r}=y(t.name);let i=parseInt(t.value,10)||0;if(i+="ArrowUp"===n.key?1:-1,(i<r||i>o)&&(i=i<r?o:r,"hour"===t.name&&s)){const t=e.querySelector("input[name=period]:not(:checked)");t?.click()}g(e,t.name,`${i}`)},E=(0,r.register)(i,{initialize:e=>{if(e.dataset.miclinitialized)return;const t=d(e,"form"),n=d(e,`.${a}inputmode`),o=d(e,`.${a}dial`),r=[d(e,"input[name=hour]"),d(e,"input[name=minute]")].filter(e=>null!==e);if(!t||r.length<2)return;e.dataset.miclinitialized="1",r.forEach((t,n)=>{(e=>{const{min:t,max:n}=y(e.name);let o;o="hour"===e.name?s?"(0[1-9]|1[0-2])":"(0[0-9]|1[0-9]|2[0-3])":"(0[0-9]|[1-5][0-9])";const r={maxlength:"2",pattern:o,inputmode:"numeric",autocomplete:"off",role:"spinbutton",min:String(t),max:String(n)};for(const t in r)e.setAttribute(t,r[t])})(t),o&&t.toggleAttribute("readonly",u(o)),t.addEventListener("keydown",h.bind(null,e,t)),t.addEventListener("focus",()=>{p(r[0===n?1:0],!1),p(t,!0),o&&(((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(`${a}dial-inner`)&&e.classList["hour"===t?"remove":"add"](l)})})(o,t.name),v(o,t.name,t.value))}),t.addEventListener("blur",()=>{u(o)||((e=>{const{max:t,min:n}=y(e.name);let o=parseInt(e.value,10);isNaN(o)&&(o=n),o>t&&(o=t),o<0&&(o=n),e.value=String(o).padStart(2,"0")})(t),p(t,!1))})});const i=e.querySelector(`.${a}period`);if(i&&s&&(["am","pm"].forEach(e=>{let t=document.createElement("input");t.type="radio",t.name="period",t.className=`${a}${e}`,t.value=e,t.ariaLabel=e.toUpperCase(),i.appendChild(t)}),i.classList.toggle(l,!s)),n?.addEventListener("click",()=>{o?.classList.toggle(l),r.forEach(e=>{e.toggleAttribute("readonly",u(o))}),u(o)&&r[0].focus()}),o){(e=>{let t=s?300:270;for(let n=s?1:0;n<=(s?12:23);n++){const o=document.createElement("data");o.value=`${n}`.padStart(2,"0"),o.textContent=`${n}`,o.dataset.hour=`${n}`,o.style.setProperty("--micl-angle",`${t}deg`),!s&&n>=12?o.classList.add(`${a}dial-inner`):o.dataset.minute=""+5*n%60,e.appendChild(o),t=(t+30)%360}const n=document.createElement("span");n.className=`${a}track`,e.appendChild(n)})(o);const t=(t,n)=>{const o=document.elementFromPoint(t,n);o&&"DATA"===o.tagName&&g(e,e.querySelector(`input[name=hour].${c}`)?"hour":"minute",o.value)};o.addEventListener("pointerdown",e=>{o.classList.add(`${a}dial--dragging`),t(e.clientX,e.clientY),o.setPointerCapture(e.pointerId)}),o.addEventListener("pointermove",e=>{o.classList.contains(`${a}dial--dragging`)&&t(e.clientX,e.clientY)});const n=e=>{o.classList.remove(`${a}dial--dragging`),o.releasePointerCapture(e.pointerId)};o.addEventListener("pointerup",n),o.addEventListener("pointercancel",n)}e.addEventListener("beforetoggle",t=>{if("open"===t.oldState)return;let n=document.activeElement;if((!m(n)||n.dataset.timepicker!==e.id&&n.popoverTargetElement!==e&&n.commandForElement!==e)&&(n=f(e)),!m(n))return;e._miclInvoker=n;const o=(n.value||n.textContent).split(":");2===o.length&&(g(e,"hour",o[0],!0),g(e,"minute",o[1],!1,!1))}),e.addEventListener("close",()=>{if(!e.returnValue)return;let n=e._miclInvoker;if(n||(n=f(e)),!m(n))return;const o=t.elements;let r=parseInt(o.namedItem("hour")?.value||"0",10);if(isNaN(r))return;s&&(r%=12,"pm"===o.namedItem("period")?.value&&(r+=12));const i=parseInt(o.namedItem("minute")?.value||"0",10);if(isNaN(i))return;const a=`${r}`.padStart(2,"0")+":"+`${i}`.padStart(2,"0");n.value=a,n instanceof HTMLInputElement?(n.dispatchEvent(new Event("change",{bubbles:!0})),n.dispatchEvent(new Event("input",{bubbles:!0}))):n.textContent=a})}},HTMLDialogElement);return n.d(o,["default",0,E,"timepickerSelector",0,i]),o})());
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
//
|
|
2
|
+
// Copyright © 2025 Hermana AS
|
|
3
|
+
//
|
|
4
|
+
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
5
|
+
// of this software and associated documentation files (the "Software"), to deal
|
|
6
|
+
// in the Software without restriction, including without limitation the rights
|
|
7
|
+
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
8
|
+
// copies of the Software, and to permit persons to whom the Software is
|
|
9
|
+
// furnished to do so, subject to the following conditions:
|
|
10
|
+
//
|
|
11
|
+
// The above copyright notice and this permission notice shall be included in all
|
|
12
|
+
// copies or substantial portions of the Software.
|
|
13
|
+
//
|
|
14
|
+
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
15
|
+
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
16
|
+
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
17
|
+
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
18
|
+
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
19
|
+
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
20
|
+
// SOFTWARE.
|
|
21
|
+
|
|
22
|
+
// Pure declarations only — @use of this module must never emit CSS.
|
|
23
|
+
// The emitted foundation styles (:root tokens, @property registrations,
|
|
24
|
+
// utility classes) live in foundations/base, which is compiled once into
|
|
25
|
+
// micl.css and standalone as dist/base.css.
|
|
26
|
+
|
|
27
|
+
$md-sys-icon-size: 24px;
|
|
28
|
+
|
|
29
|
+
$md-sys-padding-xxs: 4px;
|
|
30
|
+
$md-sys-padding-xs: 8px;
|
|
31
|
+
$md-sys-padding-s: 12px;
|
|
32
|
+
$md-sys-padding-m: 16px;
|
|
33
|
+
$md-sys-padding-l: 20px;
|
|
34
|
+
$md-sys-padding-xl: 24px;
|
|
35
|
+
$md-sys-padding-xxl: 28px;
|
|
@@ -19,62 +19,23 @@
|
|
|
19
19
|
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
20
20
|
// SOFTWARE.
|
|
21
21
|
|
|
22
|
-
|
|
22
|
+
// Shared foundation styles, emitted exactly once: the :root design tokens,
|
|
23
|
+
// the @property registrations the ripple effect depends on, and the generic
|
|
24
|
+
// utility classes. Included in micl.css; consumers loading per-component CSS
|
|
25
|
+
// files must load dist/base.css first (once).
|
|
23
26
|
|
|
24
|
-
|
|
25
|
-
$md-sys-padding-xs: 8px;
|
|
26
|
-
$md-sys-padding-s: 12px;
|
|
27
|
-
$md-sys-padding-m: 16px;
|
|
28
|
-
$md-sys-padding-l: 20px;
|
|
29
|
-
$md-sys-padding-xl: 24px;
|
|
30
|
-
$md-sys-padding-xxl: 28px;
|
|
27
|
+
@use '../index' as foundations;
|
|
31
28
|
|
|
32
29
|
:root {
|
|
33
|
-
--md-sys-icon-size: #{
|
|
30
|
+
--md-sys-icon-size: #{foundations.$md-sys-icon-size};
|
|
34
31
|
|
|
35
|
-
--md-sys-padding-xxs: #{
|
|
36
|
-
--md-sys-padding-xs: #{
|
|
37
|
-
--md-sys-padding-s: #{
|
|
38
|
-
--md-sys-padding-m: #{
|
|
39
|
-
--md-sys-padding-l: #{
|
|
40
|
-
--md-sys-padding-xl: #{
|
|
41
|
-
--md-sys-padding-xxl: #{
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
.micl-hidden {
|
|
45
|
-
display: none !important;
|
|
46
|
-
}
|
|
47
|
-
.micl-no-transition {
|
|
48
|
-
transition: none !important;
|
|
49
|
-
}
|
|
50
|
-
.micl-flex--vcenter {
|
|
51
|
-
display: flex;
|
|
52
|
-
flex-direction: row;
|
|
53
|
-
align-items: center;
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
.micl-grid-field,
|
|
57
|
-
.micl-grid-iconfield {
|
|
58
|
-
box-sizing: border-box;
|
|
59
|
-
display: grid;
|
|
60
|
-
row-gap: var(--md-sys-padding-xl, 24px);
|
|
61
|
-
}
|
|
62
|
-
.micl-grid-iconfield {
|
|
63
|
-
grid-template-columns: 48px 1fr;
|
|
64
|
-
}
|
|
65
|
-
.micl-grid-iconfield__icon {
|
|
66
|
-
grid-column: 1;
|
|
67
|
-
margin-block-start: 0.6rem;
|
|
68
|
-
}
|
|
69
|
-
.micl-grid-iconfield__field {
|
|
70
|
-
grid-column: 2;
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
.micl-link {
|
|
74
|
-
display: flex;
|
|
75
|
-
align-items: center;
|
|
76
|
-
justify-content: center;
|
|
77
|
-
text-decoration: none;
|
|
32
|
+
--md-sys-padding-xxs: #{foundations.$md-sys-padding-xxs};
|
|
33
|
+
--md-sys-padding-xs: #{foundations.$md-sys-padding-xs};
|
|
34
|
+
--md-sys-padding-s: #{foundations.$md-sys-padding-s};
|
|
35
|
+
--md-sys-padding-m: #{foundations.$md-sys-padding-m};
|
|
36
|
+
--md-sys-padding-l: #{foundations.$md-sys-padding-l};
|
|
37
|
+
--md-sys-padding-xl: #{foundations.$md-sys-padding-xl};
|
|
38
|
+
--md-sys-padding-xxl: #{foundations.$md-sys-padding-xxl};
|
|
78
39
|
}
|
|
79
40
|
|
|
80
41
|
@property --micl-ripple {
|
|
@@ -82,15 +43,19 @@ $md-sys-padding-xxl: 28px;
|
|
|
82
43
|
inherits: false;
|
|
83
44
|
initial-value: 0;
|
|
84
45
|
}
|
|
46
|
+
// The ripple coordinates are percentages: the runtime sets the touch point as a percentage of the
|
|
47
|
+
// element, which pins the gradient box (background-position) and the circle within it (circle at)
|
|
48
|
+
// to the same element point at every background-size.
|
|
49
|
+
// The 50% initial value doubles as a centered fallback.
|
|
85
50
|
@property --micl-x {
|
|
86
|
-
syntax: '<length>';
|
|
51
|
+
syntax: '<length-percentage>';
|
|
87
52
|
inherits: false;
|
|
88
|
-
initial-value:
|
|
53
|
+
initial-value: 50%;
|
|
89
54
|
}
|
|
90
55
|
@property --micl-y {
|
|
91
|
-
syntax: '<length>';
|
|
56
|
+
syntax: '<length-percentage>';
|
|
92
57
|
inherits: false;
|
|
93
|
-
initial-value:
|
|
58
|
+
initial-value: 50%;
|
|
94
59
|
}
|
|
95
60
|
@property --micl-width {
|
|
96
61
|
syntax: '<length>';
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
//
|
|
2
|
+
// Copyright © 2025 Hermana AS
|
|
3
|
+
//
|
|
4
|
+
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
5
|
+
// of this software and associated documentation files (the "Software"), to deal
|
|
6
|
+
// in the Software without restriction, including without limitation the rights
|
|
7
|
+
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
8
|
+
// copies of the Software, and to permit persons to whom the Software is
|
|
9
|
+
// furnished to do so, subject to the following conditions:
|
|
10
|
+
//
|
|
11
|
+
// The above copyright notice and this permission notice shall be included in all
|
|
12
|
+
// copies or substantial portions of the Software.
|
|
13
|
+
//
|
|
14
|
+
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
15
|
+
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
16
|
+
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
17
|
+
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
18
|
+
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
19
|
+
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
20
|
+
// SOFTWARE.
|
|
21
|
+
|
|
22
|
+
.micl-grid-field,
|
|
23
|
+
.micl-grid-iconfield {
|
|
24
|
+
box-sizing: border-box;
|
|
25
|
+
display: grid;
|
|
26
|
+
row-gap: var(--md-sys-padding-xl, 24px);
|
|
27
|
+
}
|
|
28
|
+
.micl-grid-iconfield {
|
|
29
|
+
grid-template-columns: 48px 1fr;
|
|
30
|
+
}
|
|
31
|
+
.micl-grid-iconfield__icon {
|
|
32
|
+
grid-column: 1;
|
|
33
|
+
margin-block-start: 0.6rem;
|
|
34
|
+
}
|
|
35
|
+
.micl-grid-iconfield__field {
|
|
36
|
+
grid-column: 2;
|
|
37
|
+
}
|
|
@@ -23,59 +23,60 @@
|
|
|
23
23
|
|
|
24
24
|
@include shape.corner('medium');
|
|
25
25
|
|
|
26
|
-
$md-sys-
|
|
27
|
-
$md-sys-
|
|
28
|
-
$md-sys-
|
|
29
|
-
$md-sys-
|
|
30
|
-
$md-sys-
|
|
31
|
-
$md-sys-
|
|
32
|
-
$md-sys-
|
|
33
|
-
$md-sys-
|
|
26
|
+
$md-sys-breakpoint-compact-max: 599px;
|
|
27
|
+
$md-sys-breakpoint-medium-min: 600px;
|
|
28
|
+
$md-sys-breakpoint-medium-max: 839px;
|
|
29
|
+
$md-sys-breakpoint-expanded-min: 840px;
|
|
30
|
+
$md-sys-breakpoint-expanded-max: 1199px;
|
|
31
|
+
$md-sys-breakpoint-large-min: 1200px;
|
|
32
|
+
$md-sys-breakpoint-large-max: 1599px;
|
|
33
|
+
$md-sys-breakpoint-extralarge-min: 1600px;
|
|
34
34
|
|
|
35
35
|
$md-sys-window-margin-compact: 16px;
|
|
36
|
-
$md-sys-window-margin
|
|
37
|
-
$md-sys-window-margin-expanded: 24px;
|
|
38
|
-
$md-sys-window-margin-large: 24px;
|
|
39
|
-
$md-sys-window-margin-extralarge: 24px;
|
|
36
|
+
$md-sys-window-margin: 24px; // medium and larger breakpoints
|
|
40
37
|
|
|
41
38
|
$md-sys-pane-spacer: 24px;
|
|
42
39
|
|
|
40
|
+
$md-sys-pane-fixed-width-expanded: 360px;
|
|
41
|
+
$md-sys-pane-fixed-width-large: 412px;
|
|
42
|
+
|
|
43
43
|
:root {
|
|
44
44
|
--md-sys-layout-pane-spacer: #{$md-sys-pane-spacer};
|
|
45
|
+
--md-sys-layout-window-margin: #{$md-sys-window-margin};
|
|
45
46
|
|
|
46
|
-
@media (max-width: $md-sys-
|
|
47
|
+
@media (max-width: $md-sys-breakpoint-compact-max) {
|
|
47
48
|
--md-sys-layout-window-margin: #{$md-sys-window-margin-compact};
|
|
48
49
|
}
|
|
49
|
-
@media (min-width: $md-sys-
|
|
50
|
-
--md-sys-layout-
|
|
51
|
-
}
|
|
52
|
-
@media (min-width: $md-sys-window-expanded-min) and (max-width: $md-sys-window-expanded-max) {
|
|
53
|
-
--md-sys-layout-window-margin: #{$md-sys-window-margin-expanded};
|
|
50
|
+
@media (min-width: $md-sys-breakpoint-expanded-min) and (max-width: $md-sys-breakpoint-expanded-max) {
|
|
51
|
+
--md-sys-layout-pane-fixed-width: #{$md-sys-pane-fixed-width-expanded};
|
|
54
52
|
}
|
|
55
|
-
@media (min-width: $md-sys-
|
|
56
|
-
--md-sys-layout-
|
|
57
|
-
}
|
|
58
|
-
@media (min-width: $md-sys-window-extralarge-min) {
|
|
59
|
-
--md-sys-layout-window-margin: #{$md-sys-window-margin-extralarge};
|
|
53
|
+
@media (min-width: $md-sys-breakpoint-large-min) {
|
|
54
|
+
--md-sys-layout-pane-fixed-width: #{$md-sys-pane-fixed-width-large};
|
|
60
55
|
}
|
|
61
56
|
}
|
|
62
57
|
|
|
63
58
|
.micl-window {
|
|
64
|
-
padding:
|
|
59
|
+
padding:
|
|
60
|
+
env(safe-area-inset-top, 0px)
|
|
61
|
+
calc(var(--md-sys-layout-window-margin) + env(safe-area-inset-right, 0px))
|
|
62
|
+
calc(var(--md-sys-layout-window-margin) + env(safe-area-inset-bottom, 0px))
|
|
63
|
+
calc(var(--md-sys-layout-window-margin) + env(safe-area-inset-left, 0px));
|
|
65
64
|
margin: 0;
|
|
66
65
|
background-color: var(--md-sys-color-surface);
|
|
67
66
|
|
|
68
|
-
.micl-
|
|
67
|
+
.micl-panes .micl-appbar {
|
|
69
68
|
margin-inline: calc(-1 * var(--md-sys-layout-window-margin));
|
|
70
69
|
}
|
|
71
|
-
&:not(.micl-window--spatial):has(nav.micl-navigationrail) .micl-
|
|
70
|
+
&:not(.micl-window--spatial):has(nav.micl-navigationrail) .micl-panes .micl-appbar {
|
|
72
71
|
margin-inline-start: 0;
|
|
73
72
|
}
|
|
74
73
|
&.micl-window--spatial {
|
|
75
74
|
--md-sys-layout-spatial-radius: calc(var(--md-sys-shape-corner-medium) + var(--md-sys-layout-window-margin));
|
|
76
75
|
|
|
77
76
|
display: flex;
|
|
78
|
-
padding-block:
|
|
77
|
+
padding-block:
|
|
78
|
+
calc(2 * var(--md-sys-layout-window-margin) + env(safe-area-inset-top, 0px))
|
|
79
|
+
calc(2 * var(--md-sys-layout-window-margin) + env(safe-area-inset-bottom, 0px));
|
|
79
80
|
gap: var(--md-sys-layout-window-margin);
|
|
80
81
|
|
|
81
82
|
.micl-navigationrail {
|
|
@@ -87,7 +88,7 @@ $md-sys-pane-spacer: 24px;
|
|
|
87
88
|
padding-block-end: var(--md-sys-navigationrail-top-space, 0px);
|
|
88
89
|
border-radius: var(--md-sys-layout-spatial-radius);
|
|
89
90
|
}
|
|
90
|
-
.micl-
|
|
91
|
+
.micl-panes {
|
|
91
92
|
background: transparent;
|
|
92
93
|
}
|
|
93
94
|
.micl-pane {
|
|
@@ -97,19 +98,25 @@ $md-sys-pane-spacer: 24px;
|
|
|
97
98
|
}
|
|
98
99
|
}
|
|
99
100
|
}
|
|
100
|
-
.micl-
|
|
101
|
+
.micl-panes {
|
|
101
102
|
box-sizing: border-box;
|
|
102
103
|
display: flex;
|
|
103
104
|
flex-direction: row;
|
|
104
105
|
gap: var(--md-sys-comp-margin, 8px) var(--md-sys-layout-pane-spacer);
|
|
105
106
|
background-color: inherit;
|
|
106
107
|
|
|
107
|
-
&.micl-
|
|
108
|
-
|
|
109
|
-
|
|
108
|
+
&.micl-panes--split > .micl-pane + .micl-pane {
|
|
109
|
+
// The physical safety inset on the trailing pane's side of the screen.
|
|
110
|
+
--_layout-safe-inline-end: env(safe-area-inset-right, 0px);
|
|
111
|
+
|
|
112
|
+
box-sizing: border-box;
|
|
113
|
+
flex: 0 1 var(--_layout-stacked-pane-size, calc(50vw - var(--md-sys-layout-window-margin, 0px) - var(--_layout-safe-inline-end) - var(--md-sys-layout-pane-spacer) / 2));
|
|
114
|
+
|
|
115
|
+
&:dir(rtl) {
|
|
116
|
+
--_layout-safe-inline-end: env(safe-area-inset-left, 0px);
|
|
110
117
|
}
|
|
111
118
|
}
|
|
112
|
-
&.micl-
|
|
119
|
+
&.micl-panes--evenly .micl-pane {
|
|
113
120
|
flex: 1 1 0;
|
|
114
121
|
}
|
|
115
122
|
}
|
|
@@ -122,6 +129,8 @@ $md-sys-pane-spacer: 24px;
|
|
|
122
129
|
|
|
123
130
|
&.micl-pane--fixed {
|
|
124
131
|
flex: 0 0 auto;
|
|
132
|
+
box-sizing: border-box;
|
|
133
|
+
inline-size: var(--_layout-stacked-pane-size, var(--md-sys-layout-pane-fixed-width, auto));
|
|
125
134
|
}
|
|
126
135
|
&:has(> .micl-card-elevated, > .micl-card-filled, > .micl-card-outlined),
|
|
127
136
|
&> *:has(> .micl-card-elevated, > .micl-card-filled, > .micl-card-outlined) {
|
|
@@ -153,59 +162,49 @@ $md-sys-pane-spacer: 24px;
|
|
|
153
162
|
}
|
|
154
163
|
}
|
|
155
164
|
|
|
156
|
-
@media (max-width: $md-sys-
|
|
157
|
-
.micl-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
.micl-body.micl-body--stacked-to-extralarge {
|
|
165
|
+
@media (max-width: $md-sys-breakpoint-compact-max) {
|
|
166
|
+
.micl-panes.micl-panes--stacked-to-medium {
|
|
167
|
+
--_layout-stacked-pane-size: auto;
|
|
168
|
+
|
|
161
169
|
flex-direction: column;
|
|
162
170
|
}
|
|
163
|
-
.micl-pane.micl-pane--hidden-to-medium
|
|
164
|
-
.micl-pane.micl-pane--hidden-to-expanded,
|
|
165
|
-
.micl-pane.micl-pane--hidden-to-large,
|
|
166
|
-
.micl-pane.micl-pane--hidden-to-extralarge {
|
|
171
|
+
.micl-pane.micl-pane--hidden-to-medium {
|
|
167
172
|
display: none;
|
|
168
173
|
}
|
|
169
|
-
.micl-pane__columns.micl-pane__columns--stacked-to-medium
|
|
170
|
-
.micl-pane__columns.micl-pane__columns--stacked-to-expanded,
|
|
171
|
-
.micl-pane__columns.micl-pane__columns--stacked-to-large,
|
|
172
|
-
.micl-pane__columns.micl-pane__columns--stacked-to-extralarge {
|
|
174
|
+
.micl-pane__columns.micl-pane__columns--stacked-to-medium {
|
|
173
175
|
flex-direction: column;
|
|
174
176
|
}
|
|
175
177
|
}
|
|
176
|
-
@media (
|
|
177
|
-
.micl-
|
|
178
|
-
|
|
179
|
-
|
|
178
|
+
@media (max-width: $md-sys-breakpoint-medium-max) {
|
|
179
|
+
.micl-panes.micl-panes--stacked-to-expanded {
|
|
180
|
+
--_layout-stacked-pane-size: auto;
|
|
181
|
+
|
|
180
182
|
flex-direction: column;
|
|
181
183
|
}
|
|
182
|
-
.micl-pane.micl-pane--hidden-to-expanded
|
|
183
|
-
.micl-pane.micl-pane--hidden-to-large,
|
|
184
|
-
.micl-pane.micl-pane--hidden-to-extralarge {
|
|
184
|
+
.micl-pane.micl-pane--hidden-to-expanded {
|
|
185
185
|
display: none;
|
|
186
186
|
}
|
|
187
|
-
.micl-pane__columns.micl-pane__columns--stacked-to-expanded
|
|
188
|
-
.micl-pane__columns.micl-pane__columns--stacked-to-large,
|
|
189
|
-
.micl-pane__columns.micl-pane__columns--stacked-to-extralarge {
|
|
187
|
+
.micl-pane__columns.micl-pane__columns--stacked-to-expanded {
|
|
190
188
|
flex-direction: column;
|
|
191
189
|
}
|
|
192
190
|
}
|
|
193
|
-
@media (
|
|
194
|
-
.micl-
|
|
195
|
-
|
|
191
|
+
@media (max-width: $md-sys-breakpoint-expanded-max) {
|
|
192
|
+
.micl-panes.micl-panes--stacked-to-large {
|
|
193
|
+
--_layout-stacked-pane-size: auto;
|
|
194
|
+
|
|
196
195
|
flex-direction: column;
|
|
197
196
|
}
|
|
198
|
-
.micl-pane.micl-pane--hidden-to-large
|
|
199
|
-
.micl-pane.micl-pane--hidden-to-extralarge {
|
|
197
|
+
.micl-pane.micl-pane--hidden-to-large {
|
|
200
198
|
display: none;
|
|
201
199
|
}
|
|
202
|
-
.micl-pane__columns.micl-pane__columns--stacked-to-large
|
|
203
|
-
.micl-pane__columns.micl-pane__columns--stacked-to-extralarge {
|
|
200
|
+
.micl-pane__columns.micl-pane__columns--stacked-to-large {
|
|
204
201
|
flex-direction: column;
|
|
205
202
|
}
|
|
206
203
|
}
|
|
207
|
-
@media (
|
|
208
|
-
.micl-
|
|
204
|
+
@media (max-width: $md-sys-breakpoint-large-max) {
|
|
205
|
+
.micl-panes.micl-panes--stacked-to-extralarge {
|
|
206
|
+
--_layout-stacked-pane-size: auto;
|
|
207
|
+
|
|
209
208
|
flex-direction: column;
|
|
210
209
|
}
|
|
211
210
|
.micl-pane.micl-pane--hidden-to-extralarge {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "material-inspired-component-library",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "9.0.0",
|
|
4
4
|
"description": "The Material-Inspired Component Library (MICL) offers a collection of beautifully crafted components leveraging native HTML markup, designed to align with the Material Design 3 guidelines.",
|
|
5
5
|
"author": "MICL Hermana <micl.hermana@proton.me> (https://github.com/henkpb/micl)",
|
|
6
6
|
"license": "MIT",
|
|
@@ -21,14 +21,19 @@
|
|
|
21
21
|
"button",
|
|
22
22
|
"card",
|
|
23
23
|
"checkbox",
|
|
24
|
+
"chip",
|
|
24
25
|
"date picker",
|
|
26
|
+
"date range picker",
|
|
25
27
|
"dialog",
|
|
26
28
|
"divider",
|
|
29
|
+
"field",
|
|
27
30
|
"iconbutton",
|
|
28
31
|
"layout",
|
|
29
32
|
"list",
|
|
30
33
|
"menu",
|
|
34
|
+
"navigation bar",
|
|
31
35
|
"navigation rail",
|
|
36
|
+
"progress indicator",
|
|
32
37
|
"radio button",
|
|
33
38
|
"select",
|
|
34
39
|
"shapes",
|
|
@@ -50,25 +55,34 @@
|
|
|
50
55
|
},
|
|
51
56
|
"main": "dist/micl.js",
|
|
52
57
|
"types": "dist/micl.d.ts",
|
|
58
|
+
"files": [
|
|
59
|
+
"dist",
|
|
60
|
+
"styles.scss",
|
|
61
|
+
"styles/**/*.scss",
|
|
62
|
+
"foundations/**/*.scss",
|
|
63
|
+
"components/**/*.scss",
|
|
64
|
+
"components/**/README.md",
|
|
65
|
+
"themes"
|
|
66
|
+
],
|
|
53
67
|
"scripts": {
|
|
54
68
|
"build": "webpack",
|
|
55
69
|
"gen:shapes": "node tools/shapes/generate.mjs",
|
|
56
70
|
"check:shapes": "node tools/shapes/check.mjs"
|
|
57
71
|
},
|
|
58
|
-
"sideEffects": false,
|
|
59
72
|
"devDependencies": {
|
|
60
73
|
"autoprefixer": "^10.5",
|
|
61
74
|
"css-loader": "^7.1",
|
|
62
|
-
"extract-loader": "^5.1",
|
|
63
|
-
"file-loader": "^6.2",
|
|
64
75
|
"glob": "^13.0",
|
|
65
76
|
"mini-css-extract-plugin": "^2.10",
|
|
66
77
|
"postcss-loader": "^8.2",
|
|
67
|
-
"sass": "^1.
|
|
68
|
-
"sass-loader": "^
|
|
69
|
-
"ts-loader": "^9.
|
|
78
|
+
"sass": "^1.101",
|
|
79
|
+
"sass-loader": "^17.0",
|
|
80
|
+
"ts-loader": "^9.6",
|
|
70
81
|
"typescript": "^6.0",
|
|
71
|
-
"webpack": "^5.
|
|
72
|
-
"webpack-cli": "^7.
|
|
82
|
+
"webpack": "^5.108",
|
|
83
|
+
"webpack-cli": "^7.2"
|
|
84
|
+
},
|
|
85
|
+
"allowScripts": {
|
|
86
|
+
"@parcel/watcher@2.5.6": true
|
|
73
87
|
}
|
|
74
88
|
}
|
package/styles/statelayer.scss
CHANGED
|
@@ -20,6 +20,7 @@
|
|
|
20
20
|
// SOFTWARE.
|
|
21
21
|
|
|
22
22
|
@use 'sass:map';
|
|
23
|
+
@use 'motion';
|
|
23
24
|
|
|
24
25
|
//
|
|
25
26
|
// Set $master: true (via @use 'styles/statelayer' with ($master: true)) to install every
|
|
@@ -43,7 +44,7 @@ $_tokens: (
|
|
|
43
44
|
focus-indicator-thickness: 3px,
|
|
44
45
|
backdrop-opacity: 32%,
|
|
45
46
|
ripple-opacity-factor: 0.6,
|
|
46
|
-
ripple-duration:
|
|
47
|
+
ripple-duration: 750ms,
|
|
47
48
|
);
|
|
48
49
|
|
|
49
50
|
@if $master {
|
|
@@ -65,8 +66,15 @@ $_tokens: (
|
|
|
65
66
|
}
|
|
66
67
|
|
|
67
68
|
@keyframes micl-ripple {
|
|
68
|
-
from {
|
|
69
|
-
|
|
69
|
+
from {
|
|
70
|
+
background-size: 0% 0%, 100%;
|
|
71
|
+
animation-timing-function: motion.$md-sys-motion-easing-standard;
|
|
72
|
+
}
|
|
73
|
+
60% {
|
|
74
|
+
background-size: 1000% 1000%, 100%;
|
|
75
|
+
animation-timing-function: motion.$md-sys-motion-easing-standard-accelerate;
|
|
76
|
+
}
|
|
77
|
+
to { background-size: 10000% 10000%, 100%; }
|
|
70
78
|
}
|
|
71
79
|
}
|
|
72
80
|
|
|
@@ -99,8 +107,15 @@ $_tokens: (
|
|
|
99
107
|
@mixin keyframes {
|
|
100
108
|
@if not $master {
|
|
101
109
|
@keyframes micl-ripple {
|
|
102
|
-
from {
|
|
103
|
-
|
|
110
|
+
from {
|
|
111
|
+
background-size: 0% 0%, 100%;
|
|
112
|
+
animation-timing-function: motion.$md-sys-motion-easing-standard;
|
|
113
|
+
}
|
|
114
|
+
60% {
|
|
115
|
+
background-size: 1000% 1000%, 100%;
|
|
116
|
+
animation-timing-function: motion.$md-sys-motion-easing-standard-accelerate;
|
|
117
|
+
}
|
|
118
|
+
to { background-size: 10000% 10000%, 100%; }
|
|
104
119
|
}
|
|
105
120
|
}
|
|
106
121
|
}
|
package/styles.scss
CHANGED
|
@@ -21,11 +21,12 @@
|
|
|
21
21
|
|
|
22
22
|
@use 'styles/shape' with ($master: true);
|
|
23
23
|
@use 'styles/elevation' with ($master: true);
|
|
24
|
+
@use 'styles/motion' with ($master: true);
|
|
24
25
|
@use 'styles/statelayer' with ($master: true);
|
|
25
26
|
@use 'styles/typography' with ($master: true);
|
|
26
|
-
@use 'styles/motion' with ($master: true);
|
|
27
27
|
|
|
28
|
-
@use 'foundations';
|
|
28
|
+
@use 'foundations/base';
|
|
29
|
+
@use 'foundations/field';
|
|
29
30
|
@use 'foundations/layout';
|
|
30
31
|
@use 'foundations/scrollbar';
|
|
31
32
|
|
|
@@ -38,6 +39,7 @@
|
|
|
38
39
|
@use 'components/slider';
|
|
39
40
|
@use 'components/button';
|
|
40
41
|
@use 'components/iconbutton';
|
|
42
|
+
@use 'components/chip';
|
|
41
43
|
@use 'components/list';
|
|
42
44
|
@use 'components/menu';
|
|
43
45
|
@use 'components/select';
|
|
@@ -48,6 +50,7 @@
|
|
|
48
50
|
@use 'components/appbar';
|
|
49
51
|
@use 'components/sidesheet';
|
|
50
52
|
@use 'components/bottomsheet';
|
|
53
|
+
@use 'components/navigationbar';
|
|
51
54
|
@use 'components/navigationrail';
|
|
52
55
|
@use 'components/progressindicator';
|
|
53
56
|
@use 'components/stepper';
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"permissions": {
|
|
3
|
-
"allow": [
|
|
4
|
-
"Bash(node *)",
|
|
5
|
-
"WebSearch",
|
|
6
|
-
"Bash(npm run *)",
|
|
7
|
-
"WebFetch(domain:raw.githubusercontent.com)",
|
|
8
|
-
"WebFetch(domain:android.googlesource.com)",
|
|
9
|
-
"WebFetch(domain:m3.material.io)",
|
|
10
|
-
"WebFetch(domain:github.com)",
|
|
11
|
-
"Bash(xargs grep -l \"body\\\\|html\")"
|
|
12
|
-
]
|
|
13
|
-
}
|
|
14
|
-
}
|
package/.editorconfig
DELETED
package/.gitattributes
DELETED
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: Bug report
|
|
3
|
-
about: Create a report to help us improve
|
|
4
|
-
title: ''
|
|
5
|
-
labels: ''
|
|
6
|
-
assignees: ''
|
|
7
|
-
|
|
8
|
-
---
|
|
9
|
-
|
|
10
|
-
**Describe the bug**
|
|
11
|
-
A clear and concise description of what the bug is.
|
|
12
|
-
|
|
13
|
-
**To Reproduce**
|
|
14
|
-
Steps to reproduce the behavior:
|
|
15
|
-
1. Go to '...'
|
|
16
|
-
2. Click on '....'
|
|
17
|
-
3. Scroll down to '....'
|
|
18
|
-
4. See error
|
|
19
|
-
|
|
20
|
-
**Expected behavior**
|
|
21
|
-
A clear and concise description of what you expected to happen.
|
|
22
|
-
|
|
23
|
-
**Screenshots**
|
|
24
|
-
If applicable, add screenshots to help explain your problem.
|
|
25
|
-
|
|
26
|
-
**Desktop (please complete the following information):**
|
|
27
|
-
- Browser [e.g. chrome, safari]
|
|
28
|
-
- Version [e.g. 22]
|
|
29
|
-
|
|
30
|
-
**Smartphone (please complete the following information):**
|
|
31
|
-
- Browser [e.g. chrome, safari]
|
|
32
|
-
- Version [e.g. 22]
|
|
33
|
-
|
|
34
|
-
**Additional context**
|
|
35
|
-
Add any other context about the problem here.
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: Feature request
|
|
3
|
-
about: Suggest an idea for this project
|
|
4
|
-
title: ''
|
|
5
|
-
labels: ''
|
|
6
|
-
assignees: ''
|
|
7
|
-
|
|
8
|
-
---
|
|
9
|
-
|
|
10
|
-
**Is your feature request related to a problem? Please describe.**
|
|
11
|
-
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
|
|
12
|
-
|
|
13
|
-
**Describe the solution you'd like**
|
|
14
|
-
A clear and concise description of what you want to happen.
|
|
15
|
-
|
|
16
|
-
**Describe alternatives you've considered**
|
|
17
|
-
A clear and concise description of any alternative solutions or features you've considered.
|
|
18
|
-
|
|
19
|
-
**Additional context**
|
|
20
|
-
Add any other context or screenshots about the feature request here.
|