@m3e/web 2.5.2 → 2.5.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (41) hide show
  1. package/dist/all.js +1026 -4
  2. package/dist/all.js.map +1 -1
  3. package/dist/all.min.js +143 -30
  4. package/dist/all.min.js.map +1 -1
  5. package/dist/calendar.js +12 -0
  6. package/dist/calendar.js.map +1 -1
  7. package/dist/calendar.min.js +5 -5
  8. package/dist/calendar.min.js.map +1 -1
  9. package/dist/css-custom-data.json +279 -279
  10. package/dist/custom-elements.json +4591 -4548
  11. package/dist/datepicker.js +6 -0
  12. package/dist/datepicker.js.map +1 -1
  13. package/dist/datepicker.min.js +1 -1
  14. package/dist/datepicker.min.js.map +1 -1
  15. package/dist/html-custom-data.json +169 -169
  16. package/dist/list.js +1 -1
  17. package/dist/list.js.map +1 -1
  18. package/dist/list.min.js +1 -1
  19. package/dist/list.min.js.map +1 -1
  20. package/dist/nav-bar.js +1 -1
  21. package/dist/nav-bar.js.map +1 -1
  22. package/dist/nav-bar.min.js +1 -1
  23. package/dist/nav-bar.min.js.map +1 -1
  24. package/dist/src/calendar/CalendarElement.d.ts.map +1 -1
  25. package/dist/src/datepicker/DatepickerElement.d.ts.map +1 -1
  26. package/dist/src/list/ListItemButtonElement.d.ts +0 -5
  27. package/dist/src/list/ListItemButtonElement.d.ts.map +1 -1
  28. package/dist/src/nav-bar/NavItemElement.d.ts.map +1 -1
  29. package/dist/src/theme/getColorFromImage.d.ts +12 -0
  30. package/dist/src/theme/getColorFromImage.d.ts.map +1 -0
  31. package/dist/src/theme/index.d.ts +1 -0
  32. package/dist/src/theme/index.d.ts.map +1 -1
  33. package/dist/theme.js +1005 -1
  34. package/dist/theme.js.map +1 -1
  35. package/dist/theme.min.js +133 -20
  36. package/dist/theme.min.js.map +1 -1
  37. package/dist/toc.js +1 -1
  38. package/dist/toc.js.map +1 -1
  39. package/dist/toc.min.js +1 -1
  40. package/dist/toc.min.js.map +1 -1
  41. package/package.json +1 -1
@@ -3,7 +3,7 @@
3
3
  * Copyright (c) 2025–2026 matraic
4
4
  * See LICENSE file in the project root for full license text.
5
5
  */
6
- import{__decorate as t,__classPrivateFieldGet as e,__classPrivateFieldSet as a}from"tslib";import{css as i,LitElement as r,html as n,nothing as o,unsafeCSS as s}from"lit";import{query as l,property as c,state as d}from"lit/decorators.js";import{classMap as h}from"lit/directives/class-map.js";import{ifDefined as m}from"lit/directives/if-defined.js";import{DesignToken as g,dateConverter as u,focusWhenReady as v,customElement as p,prefersReducedMotion as b}from"@m3e/web/core";import{M3eDirectionality as y}from"@m3e/web/core/bidi";import"@m3e/web/button";import"@m3e/web/icon-button";import"@m3e/web/tooltip";function f(t,e,a){const i=new Date;return i.setFullYear(t,e,a),i.setHours(0,0,0,0),i}function w(t,e){return f(t.getFullYear(),t.getMonth(),t.getDate()+e)}function D(t,e){let a=f(t.getFullYear(),t.getMonth()+e,t.getDate());return a.getMonth()!=((t.getMonth()+e)%12+12)%12&&(a=f(a.getFullYear(),a.getMonth(),0)),a}function $(t,e){return D(t,12*e)}function x(t,e){return t.getFullYear()-e.getFullYear()||t.getMonth()-e.getMonth()||t.getDate()-e.getDate()}function _(t,e){return t&&e?0==x(t,e):t==e}function k(t,e,a){return i=t.getFullYear()-function(t,e){return e?e.getFullYear()-M+1:t?t.getFullYear():0}(e,a),(i%(r=M)+r)%r;var i,r}function S(t,e,a){return t.getFullYear()-k(t,e,a)}function F(t,e,a){return S(t,e,a)+M-1}function Y(t,e,a){return e&&x(t,e)<0?e:a&&x(t,a)>0?a:t}const M=15;class L extends r{constructor(){super(...arguments),this.today=new Date,this.date=null,this.activeDate=new Date,this.minDate=null,this.maxDate=null}async focusActiveCell(){this.isUpdatePending&&await this.updateComplete,this._activeItem&&await v(this._activeItem)}_changeActiveDate(t){_(t=Y(t,this.minDate,this.maxDate),this.activeDate)||(this._activeItem?.style.setProperty("--m3e-state-layer-duration","0ms"),this._activeItem?.blur(),this._activeItem?.style.removeProperty("--m3e-state-layer-duration"),this.activeDate=t,this.dispatchEvent(new Event("active-change",{bubbles:!1})))}}
6
+ import{__decorate as t,__classPrivateFieldGet as e,__classPrivateFieldSet as a}from"tslib";import{css as i,LitElement as r,html as n,nothing as o,unsafeCSS as s}from"lit";import{query as l,property as c,state as d}from"lit/decorators.js";import{classMap as h}from"lit/directives/class-map.js";import{ifDefined as m}from"lit/directives/if-defined.js";import{DesignToken as g,dateConverter as u,focusWhenReady as v,customElement as p,prefersReducedMotion as b}from"@m3e/web/core";import{M3eDirectionality as y}from"@m3e/web/core/bidi";import"@m3e/web/button";import"@m3e/web/icon-button";import"@m3e/web/tooltip";function w(t,e,a){const i=new Date;return i.setFullYear(t,e,a),i.setHours(0,0,0,0),i}function f(t,e){return w(t.getFullYear(),t.getMonth(),t.getDate()+e)}function D(t,e){let a=w(t.getFullYear(),t.getMonth()+e,t.getDate());return a.getMonth()!=((t.getMonth()+e)%12+12)%12&&(a=w(a.getFullYear(),a.getMonth(),0)),a}function $(t,e){return D(t,12*e)}function x(t,e){return t.getFullYear()-e.getFullYear()||t.getMonth()-e.getMonth()||t.getDate()-e.getDate()}function _(t,e){return t&&e?0==x(t,e):t==e}function k(t,e,a){return i=t.getFullYear()-function(t,e){return e?e.getFullYear()-M+1:t?t.getFullYear():0}(e,a),(i%(r=M)+r)%r;var i,r}function S(t,e,a){return t.getFullYear()-k(t,e,a)}function F(t,e,a){return S(t,e,a)+M-1}function Y(t,e,a){return e&&x(t,e)<0?e:a&&x(t,a)>0?a:t}const M=15;class E extends r{constructor(){super(...arguments),this.today=new Date,this.date=null,this.activeDate=new Date,this.minDate=null,this.maxDate=null}async focusActiveCell(){this.isUpdatePending&&await this.updateComplete,this._activeItem&&await v(this._activeItem)}_changeActiveDate(t){_(t=Y(t,this.minDate,this.maxDate),this.activeDate)||(this._activeItem?.style.setProperty("--m3e-state-layer-duration","0ms"),this._activeItem?.blur(),this._activeItem?.style.removeProperty("--m3e-state-layer-duration"),this.activeDate=t,this.dispatchEvent(new Event("active-change",{bubbles:!1})))}}
7
7
  /**
8
8
  * Adapted from Angular Material Datepicker
9
9
  * Source: https://github.com/angular/components/blob/main/src/material/datepicker/month-view.ts
@@ -12,7 +12,7 @@ import{__decorate as t,__classPrivateFieldGet as e,__classPrivateFieldSet as a}f
12
12
  * Copyright (c) 2025 Google LLC
13
13
  * See LICENSE file in the project root for full license text.
14
14
  */
15
- var E,P,A,T,I,V,C,O;L.styles=i`:host { display: inline-block; user-select: none; vertical-align: top; } .visually-hidden { position: absolute; appearance: none; visibility: hidden; border: none; outline: none; overflow: hidden; left: 0; height: 1px; width: 1px; margin: -1px; padding: 0; white-space: nowrap; } table { border-collapse: collapse; border-spacing: 0; width: calc(3rem * 7); } td, th { font: inherit; text-align: center; padding: unset; } td { box-sizing: border-box; height: 3rem; padding: 0.25rem; position: relative; color: var(--m3e-calendar-item-color, ${g.color.onSurface}); } .item, .item > span { position: relative; } .item { display: flex; align-items: center; justify-content: center; border-radius: inherit; outline: none; width: 100%; height: 100%; border-radius: ${g.shape.corner.full}; } .item:not([aria-disabled]) { cursor: pointer; -webkit-tap-highlight-color: rgba(0, 0, 0, 0); } .touch { position: absolute; height: 3rem; width: 3rem; margin: auto; } td:not(:has(.item[aria-disabled])).selected { color: var(--m3e-calendar-item-selected-color, ${g.color.onPrimary}); --m3e-ripple-color: var(--m3e-calendar-item-selected-ripple-color, ${g.color.onPrimary}); --m3e-state-layer-hover-color: var(--m3e-calendar-item-selected-hover-color, ${g.color.onPrimary}); --m3e-state-layer-focus-color: var(--m3e-calendar-item-selected-focus-color, ${g.color.onPrimary}); } td:not(:has(.item[aria-disabled])).selected .state-layer { background-color: var(--m3e-calendar-item-selected-container-color, ${g.color.primary}); } td.current:not(.selected):not(.special):not(.range-start):not(.range-end) { color: var(--m3e-calendar-item-current-outline-color, ${g.color.primary}); } td.current:not(.selected):not(.special):not(.range-start):not(.range-end) .state-layer { outline-style: solid; outline-offset: -1px; outline-width: var(--m3e-calendar-item-current-outline-thickness, 1px); outline-color: var(--m3e-calendar-item-current-outline-color, ${g.color.primary}); } td:has(.item[aria-disabled]) { color: color-mix( in srgb, var(--m3e-calendar-item-disabled-color, ${g.color.onSurface}) var(--m3e-calendar-item-disabled-color-opacity, 38%), transparent ); } @media (forced-colors: active) { td:not(:has(.item[aria-disabled])).selected { forced-color-adjust: none; color: ButtonFace; } td:not(:has(.item[aria-disabled])).selected .state-layer { background-color: ButtonText; } td:has(.item[aria-disabled]) { color: GrayText; } td.current:not(.selected):not(.special):not(.range-start):not(.range-end) { color: ButtonText; } td.current:not(.selected):not(.special):not(.range-start):not(.range-end) .state-layer { border-color: ButtonText; } }`,t([l(".active > .item")],L.prototype,"_activeItem",void 0),t([c({converter:u})],L.prototype,"today",void 0),t([c({converter:u})],L.prototype,"date",void 0),t([c({attribute:"active-date",converter:u})],L.prototype,"activeDate",void 0),t([c({attribute:"min-date",converter:u})],L.prototype,"minDate",void 0),t([c({attribute:"max-date",converter:u})],L.prototype,"maxDate",void 0);let H=class extends L{constructor(){super(...arguments),E.add(this),this._suppressFocusHighlight=!0,this.rangeStart=null,this.rangeEnd=null,this.blackoutDates=null,this.specialDates=null}render(){const t=new Date(this.today);for(t.setDate(1);0!=t.getDay();)t.setDate(t.getDate()+1);const a=new Array,i=new Intl.DateTimeFormat(navigator.language,{weekday:"narrow"}),r=new Intl.DateTimeFormat(navigator.language,{weekday:"long"});for(let e=0;e<7;e++)a.push({id:e,narrow:i.format(t),long:r.format(t)}),t.setDate(t.getDate()+1);const s=this.activeDate.getFullYear(),l=this.activeDate.getMonth(),c=new Date(s,l,1),d=new Date(s,l+1,0).getDate();let h=[],m=c.getDay();for(let t=1;t<=d;t++)0!==m&&0!==h.length||h.push([]),h[h.length-1].push(t),m=(m+1)%7;return h=h.filter(t=>!!t.length),n`<table role="grid"><thead><tr>${a.map(t=>n`<th scope="col"><span class="visually-hidden">${t.long}</span><div id="weekday-${t.id}-month-${l}" aria-hidden="true">${t.narrow}</div><m3e-tooltip for="weekday-${t.id}-month-${l}">${t.long}</m3e-tooltip></th>`)}</tr></thead><tbody>${h.map((t,a)=>n`<tr role="row">${0===a&&t.length<7?n`<td colspan="${7-t.length}"></td>`:o} ${t.map(t=>e(this,E,"m",P).call(this,new Date(s,l,t)))} ${a>0&&t.length<7?n`<td colspan="${7-t.length}"></td>`:o}</tr>`)}</tbody></table>`}};
15
+ var L,P,A,T,I,V,C,O;E.styles=i`:host { display: inline-block; user-select: none; vertical-align: top; } .visually-hidden { position: absolute; appearance: none; visibility: hidden; border: none; outline: none; overflow: hidden; left: 0; height: 1px; width: 1px; margin: -1px; padding: 0; white-space: nowrap; } table { border-collapse: collapse; border-spacing: 0; width: calc(3rem * 7); } td, th { font: inherit; text-align: center; padding: unset; } td { box-sizing: border-box; height: 3rem; padding: 0.25rem; position: relative; color: var(--m3e-calendar-item-color, ${g.color.onSurface}); } .item, .item > span { position: relative; } .item { display: flex; align-items: center; justify-content: center; border-radius: inherit; outline: none; width: 100%; height: 100%; border-radius: ${g.shape.corner.full}; } .item:not([aria-disabled]) { cursor: pointer; -webkit-tap-highlight-color: rgba(0, 0, 0, 0); } .touch { position: absolute; height: 3rem; width: 3rem; margin: auto; } td:not(:has(.item[aria-disabled])).selected { color: var(--m3e-calendar-item-selected-color, ${g.color.onPrimary}); --m3e-ripple-color: var(--m3e-calendar-item-selected-ripple-color, ${g.color.onPrimary}); --m3e-state-layer-hover-color: var(--m3e-calendar-item-selected-hover-color, ${g.color.onPrimary}); --m3e-state-layer-focus-color: var(--m3e-calendar-item-selected-focus-color, ${g.color.onPrimary}); } td:not(:has(.item[aria-disabled])).selected .state-layer { background-color: var(--m3e-calendar-item-selected-container-color, ${g.color.primary}); } td.current:not(.selected):not(.special):not(.range-start):not(.range-end) { color: var(--m3e-calendar-item-current-outline-color, ${g.color.primary}); } td.current:not(.selected):not(.special):not(.range-start):not(.range-end) .state-layer { outline-style: solid; outline-offset: -1px; outline-width: var(--m3e-calendar-item-current-outline-thickness, 1px); outline-color: var(--m3e-calendar-item-current-outline-color, ${g.color.primary}); } td:has(.item[aria-disabled]) { color: color-mix( in srgb, var(--m3e-calendar-item-disabled-color, ${g.color.onSurface}) var(--m3e-calendar-item-disabled-color-opacity, 38%), transparent ); } @media (forced-colors: active) { td:not(:has(.item[aria-disabled])).selected { forced-color-adjust: none; color: ButtonFace; } td:not(:has(.item[aria-disabled])).selected .state-layer { background-color: ButtonText; } td:has(.item[aria-disabled]) { color: GrayText; } td.current:not(.selected):not(.special):not(.range-start):not(.range-end) { color: ButtonText; } td.current:not(.selected):not(.special):not(.range-start):not(.range-end) .state-layer { border-color: ButtonText; } }`,t([l(".active > .item")],E.prototype,"_activeItem",void 0),t([c({converter:u})],E.prototype,"today",void 0),t([c({converter:u})],E.prototype,"date",void 0),t([c({attribute:"active-date",converter:u})],E.prototype,"activeDate",void 0),t([c({attribute:"min-date",converter:u})],E.prototype,"minDate",void 0),t([c({attribute:"max-date",converter:u})],E.prototype,"maxDate",void 0);let H=class extends E{constructor(){super(...arguments),L.add(this),this._suppressFocusHighlight=!0,this.rangeStart=null,this.rangeEnd=null,this.blackoutDates=null,this.specialDates=null}render(){const t=new Date(this.today);for(t.setDate(1);0!=t.getDay();)t.setDate(t.getDate()+1);const a=new Array,i=new Intl.DateTimeFormat(navigator.language,{weekday:"narrow"}),r=new Intl.DateTimeFormat(navigator.language,{weekday:"long"});for(let e=0;e<7;e++)a.push({id:e,narrow:i.format(t),long:r.format(t)}),t.setDate(t.getDate()+1);const s=this.activeDate.getFullYear(),l=this.activeDate.getMonth(),c=new Date(s,l,1),d=new Date(s,l+1,0).getDate();let h=[],m=c.getDay();for(let t=1;t<=d;t++)0!==m&&0!==h.length||h.push([]),h[h.length-1].push(t),m=(m+1)%7;return h=h.filter(t=>!!t.length),n`<table role="grid"><thead><tr>${a.map(t=>n`<th scope="col"><span class="visually-hidden">${t.long}</span><div id="weekday-${t.id}-month-${l}" aria-hidden="true">${t.narrow}</div><m3e-tooltip for="weekday-${t.id}-month-${l}">${t.long}</m3e-tooltip></th>`)}</tr></thead><tbody>${h.map((t,a)=>n`<tr role="row">${0===a&&t.length<7?n`<td colspan="${7-t.length}"></td>`:o} ${t.map(t=>e(this,L,"m",P).call(this,new Date(s,l,t)))} ${a>0&&t.length<7?n`<td colspan="${7-t.length}"></td>`:o}</tr>`)}</tbody></table>`}};
16
16
  /**
17
17
  * Adapted from Angular Material Datepicker
18
18
  * Source: https://github.com/angular/components/blob/main/src/material/datepicker/multi-year-view.ts
@@ -21,7 +21,7 @@ var E,P,A,T,I,V,C,O;L.styles=i`:host { display: inline-block; user-select: none;
21
21
  * Copyright (c) 2025 Google LLC
22
22
  * See LICENSE file in the project root for full license text.
23
23
  */
24
- var z,U,R,B;E=new WeakSet,P=function(t){const a=new Intl.DateTimeFormat(navigator.language,{year:"numeric",month:"long",day:"numeric"}).format(t),i=this.specialDates?.(t)??!1,r=_(this.date,t),o=_(this.activeDate,t),s=_(this.today,t),l=this.minDate&&x(t,this.minDate)<0||this.maxDate&&x(t,this.maxDate)>0||!0===this.blackoutDates?.(t),c=`date-${t.getMonth()}-${t.getDate()}-${t.getFullYear()}`;let d=!1,g=!1,u=!1,v=!1;return this.rangeStart&&(this.rangeEnd?(d=x(t,this.rangeStart)>0&&x(t,this.rangeEnd)<0,d||(g=x(t,this.rangeStart)>=0&&x(t,this.rangeEnd)<0,g?v=!0:u=x(t,this.rangeStart)>0&&x(t,this.rangeEnd)<=0)):g=_(t,this.rangeStart)),n`<td role="gridcell" class="${h({current:s,selected:r,active:o,special:i,range:d,"range-start":g,"range-start-range":v,"range-end":u})}"><div id="${c}" role="button" class="item" data-value="${t.toISOString()}" tabindex="${o?"0":"-1"}" aria-disabled="${m(l||void 0)}" aria-current="${m(s?"date":void 0)}" aria-pressed="${r||g||u}" @click="${e(this,E,"m",A)}" @mouseenter="${e(this,E,"m",I)}" @focus="${e(this,E,"m",V)}" @mouseleave="${e(this,E,"m",O)}" @blur="${e(this,E,"m",O)}" @keydown="${e(this,E,"m",T)}"><m3e-focus-ring class="focus-ring" for="${c}"></m3e-focus-ring><m3e-state-layer class="state-layer" for="${c}" ?disable-hover="${l}"></m3e-state-layer><m3e-ripple class="ripple" centered for="${c}" ?disabled="${l}"></m3e-ripple><div class="touch"></div><span class="visually-hidden">${a}</span> <span aria-hidden="true">${t.getDate()}</span></div></td>`},A=function(t){const a=t.currentTarget;"true"!==a.ariaDisabled&&a.dataset.value&&(this.activeDate=new Date(a.dataset.value),this.activeDate=Y(this.activeDate,this.minDate,this.maxDate),this.rangeEnd?(this.rangeStart=this.activeDate,this.rangeEnd=null,e(this,E,"m",O).call(this)):this.rangeStart&&(x(this.activeDate,this.rangeStart)<0?(this.rangeStart=this.activeDate,this.rangeEnd=null):this.rangeEnd=this.activeDate,e(this,E,"m",O).call(this)),this.dispatchEvent(new Event("change",{bubbles:!1})))},T=function(t){let e=this.activeDate;switch(t.key){case" ":case"Enter":return t.preventDefault(),void t.currentTarget.click();case"ArrowLeft":case"Left":e=w(e,"rtl"===y.current?1:-1);break;case"ArrowRight":case"Right":e=w(e,"rtl"===y.current?-1:1);break;case"ArrowUp":case"Up":e=w(e,-7);break;case"ArrowDown":case"Down":e=w(e,7);break;case"Home":e=w(e,1-e.getDate());break;case"End":e=w(e,f((a=e).getFullYear(),a.getMonth()+1,0).getDate()-e.getDate());break;case"PageUp":e=t.altKey?$(e,-1):D(e,-1);break;case"PageDown":e=t.altKey?$(e,1):D(e,1);break;default:return}var a;t.preventDefault(),this._changeActiveDate(e)},I=function(t){e(this,E,"m",C).call(this,t.currentTarget)},V=function(t){this._suppressFocusHighlight||e(this,E,"m",C).call(this,t.currentTarget)},C=function(t){if(e(this,E,"m",O).call(this),this.rangeStart&&!this.rangeEnd&&t.dataset.value){x(new Date(t.dataset.value),this.rangeStart)>0&&t.parentElement.classList.add("range-highlight-end");for(const e of t.closest("table")?.querySelectorAll(".item")??[]){if(e===t)break;const a=new Date(e.dataset.value);x(a,this.rangeStart)>0?e.parentElement.classList.add("range-highlight"):x(a,this.rangeStart)>=0&&e.parentElement.classList.add("range-highlight-start")}}},O=function(){this.rangeStart&&this.shadowRoot?.querySelectorAll(".range-highlight,.range-highlight-end,.range-highlight-start").forEach(t=>t.classList.remove("range-highlight","range-highlight-end","range-highlight-start"))},H.styles=[L.styles,i`thead { font-size: var(--m3e-calendar-weekday-font-size, ${g.typescale.standard.title.small.fontSize}); font-weight: var(--m3e-calendar-weekday-font-weight, ${g.typescale.standard.title.small.fontWeight}); line-height: var(--m3e-calendar-weekday-line-height, ${g.typescale.standard.title.small.lineHeight}); letter-spacing: var(--m3e-calendar-weekday-tracking, ${g.typescale.standard.title.small.tracking}); color: var(--m3e-calendar-weekday-color, ${g.color.onSurface}); } th { height: 1.5rem; padding-block-start: 1.875rem; padding-block-end: 1rem; } tbody { font-size: var(--m3e-calendar-date-font-size, ${g.typescale.standard.body.medium.fontSize}); font-weight: var(--m3e-calendar-date-font-weight, ${g.typescale.standard.body.medium.fontWeight}); line-height: var(--m3e-calendar-date-line-height, ${g.typescale.standard.body.medium.lineHeight}); letter-spacing: var(--m3e-calendar-date-tracking, ${g.typescale.standard.body.medium.tracking}); } td:not(:has(.item[aria-disabled])):not(.selected):not(.range-start):not(.range-end).special { color: var(--m3e-calendar-item-special-color, ${g.color.onTertiaryContainer}); --m3e-ripple-color: var(--m3e-calendar-item-special-ripple-color, ${g.color.onTertiaryContainer}); --m3e-state-layer-hover-color: var( --m3e-calendar-item-special-hover-color, ${g.color.onTertiaryContainer} ); --m3e-state-layer-focus-color: var( --m3e-calendar-item-special-focus-color, ${g.color.onTertiaryContainer} ); } td:not(:has(.item[aria-disabled])):not(.selected):not(.range-start):not(.range-end).special .state-layer { background-color: var(--m3e-calendar-item-special-container-color, ${g.color.tertiaryContainer}); } td:not(:has(.item[aria-disabled])).range-start, td:not(:has(.item[aria-disabled])).range-end { color: var(--m3e-calendar-item-selected-color, ${g.color.onPrimary}); --m3e-ripple-color: var(--m3e-calendar-item-selected-ripple-color, ${g.color.onPrimary}); } td:not(:has(.item[aria-disabled])).range-start .state-layer, td:not(:has(.item[aria-disabled])).range-end .state-layer { background-color: var(--m3e-calendar-item-selected-container-color, ${g.color.primary}); } td:not(:has(.item[aria-disabled])).range::before, td:not(:has(.item[aria-disabled])).range-start-range::before, td:not(:has(.item[aria-disabled])).range-end::before { content: ""; position: absolute; left: 0; right: 0; top: 0.25rem; bottom: 0.25rem; background-color: var(--m3e-calendar-range-container-color, ${g.color.primaryContainer}); } td:not(:has(.item[aria-disabled])):not(.selected).range { color: var(--m3e-calendar-range-color, ${g.color.onPrimaryContainer}); } td:not(:has(.item[aria-disabled])).range-start::before { inset-inline-start: 50%; width: 50%; } td:not(:has(.item[aria-disabled])).range-end::before { inset-inline-end: 50%; width: 50%; } td:not(:has(.item[aria-disabled])).range-highlight-start .item::after, td:not(:has(.item[aria-disabled])).range-highlight .item::after, td:not(:has(.item[aria-disabled])).range-highlight-end .item::after { content: ""; position: absolute; top: 0; left: calc(0px - 0.1875rem); right: calc(0px - 0.1875rem); bottom: 0; border-style: dashed; border-color: ${g.color.primary}; border-width: 1px; } td:not(:has(.item[aria-disabled])).range-highlight-start .item::after { margin-inline-start: 50%; } td:not(:has(.item[aria-disabled])).range-highlight-end .item::after { margin-inline-end: 0.1875rem; } td:not(:has(.item[aria-disabled])).range-highlight-start .item::after, td:not(:has(.item[aria-disabled])).range-highlight .item::after { border-inline-style: none; } td:not(:has(.item[aria-disabled])).range-highlight-end .item::after { border-start-end-radius: ${g.shape.corner.full}; border-end-end-radius: ${g.shape.corner.full}; border-inline-start-style: none; } @media (forced-colors: active) { td:not(:has(.item[aria-disabled])).range-start, td:not(:has(.item[aria-disabled])).range-end { forced-color-adjust: none; color: HighlightText; } td:not(:has(.item[aria-disabled])).range-start .state-layer, td:not(:has(.item[aria-disabled])).range-end .state-layer { background-color: Highlight; } td:not(:has(.item[aria-disabled])).range::before, td:not(:has(.item[aria-disabled])).range-start-range::before, td:not(:has(.item[aria-disabled])).range-end::before { background-color: Highlight; } td:not(:has(.item[aria-disabled])):not(.selected).range { forced-color-adjust: none; color: HighlightText; } td:not(:has(.item[aria-disabled])).range-highlight-start .item::after, td:not(:has(.item[aria-disabled])).range-highlight .item::after, td:not(:has(.item[aria-disabled])).range-highlight-end .item::after { border-color: GrayText; } }`],t([c({attribute:"range-start",converter:u})],H.prototype,"rangeStart",void 0),t([c({attribute:"range-end",converter:u})],H.prototype,"rangeEnd",void 0),t([c({attribute:!1})],H.prototype,"blackoutDates",void 0),t([c({attribute:!1})],H.prototype,"specialDates",void 0),H=t([p("m3e-month-view")],H);let N=class extends L{constructor(){super(...arguments),z.add(this)}render(){const t=new Array,a=S(this.activeDate,this.minDate,this.maxDate);for(let e=0,i=[];e<M;e++)i.push(a+e),3===i.length&&(t.push(i),i=new Array);return n`<table role="grid"><thead aria-hidden="true"><tr><th colspan="${3}"></th></tr></thead><tbody>${t.map(t=>n`<tr role="row">${t.map(t=>e(this,z,"m",U).call(this,t))}</tr>`)}</tbody></table>`}};
24
+ var z,U,R,B;L=new WeakSet,P=function(t){const a=new Intl.DateTimeFormat(navigator.language,{year:"numeric",month:"long",day:"numeric"}).format(t),i=this.specialDates?.(t)??!1,r=_(this.date,t),o=_(this.activeDate,t),s=_(this.today,t),l=this.minDate&&x(t,this.minDate)<0||this.maxDate&&x(t,this.maxDate)>0||!0===this.blackoutDates?.(t),c=`date-${t.getMonth()}-${t.getDate()}-${t.getFullYear()}`;let d=!1,g=!1,u=!1,v=!1;return this.rangeStart&&(this.rangeEnd?(d=x(t,this.rangeStart)>0&&x(t,this.rangeEnd)<0,d||(g=x(t,this.rangeStart)>=0&&x(t,this.rangeEnd)<0,g?v=!0:u=x(t,this.rangeStart)>0&&x(t,this.rangeEnd)<=0)):g=_(t,this.rangeStart)),n`<td role="gridcell" class="${h({current:s,selected:r,active:o,special:i,range:d,"range-start":g,"range-start-range":v,"range-end":u})}"><div id="${c}" role="button" class="item" data-value="${t.toISOString()}" tabindex="${o?"0":"-1"}" aria-disabled="${m(l||void 0)}" aria-current="${m(s?"date":void 0)}" aria-pressed="${r||g||u}" @click="${e(this,L,"m",A)}" @mouseenter="${e(this,L,"m",I)}" @focus="${e(this,L,"m",V)}" @mouseleave="${e(this,L,"m",O)}" @blur="${e(this,L,"m",O)}" @keydown="${e(this,L,"m",T)}"><m3e-focus-ring class="focus-ring" for="${c}"></m3e-focus-ring><m3e-state-layer class="state-layer" for="${c}" ?disable-hover="${l}"></m3e-state-layer><m3e-ripple class="ripple" centered for="${c}" ?disabled="${l}"></m3e-ripple><div class="touch"></div><span class="visually-hidden">${a}</span> <span aria-hidden="true">${t.getDate()}</span></div></td>`},A=function(t){const a=t.currentTarget;"true"!==a.ariaDisabled&&a.dataset.value&&(this.activeDate=new Date(a.dataset.value),this.activeDate=Y(this.activeDate,this.minDate,this.maxDate),this.rangeEnd?(this.rangeStart=this.activeDate,this.rangeEnd=null,e(this,L,"m",O).call(this)):this.rangeStart&&(x(this.activeDate,this.rangeStart)<0?(this.rangeStart=this.activeDate,this.rangeEnd=null):this.rangeEnd=this.activeDate,e(this,L,"m",O).call(this)),this.dispatchEvent(new Event("change",{bubbles:!1})))},T=function(t){let e=this.activeDate;switch(t.key){case" ":case"Enter":return t.preventDefault(),void t.currentTarget.click();case"ArrowLeft":case"Left":e=f(e,"rtl"===y.current?1:-1);break;case"ArrowRight":case"Right":e=f(e,"rtl"===y.current?-1:1);break;case"ArrowUp":case"Up":e=f(e,-7);break;case"ArrowDown":case"Down":e=f(e,7);break;case"Home":e=f(e,1-e.getDate());break;case"End":e=f(e,w((a=e).getFullYear(),a.getMonth()+1,0).getDate()-e.getDate());break;case"PageUp":e=t.altKey?$(e,-1):D(e,-1);break;case"PageDown":e=t.altKey?$(e,1):D(e,1);break;default:return}var a;t.preventDefault(),this._changeActiveDate(e)},I=function(t){e(this,L,"m",C).call(this,t.currentTarget)},V=function(t){this._suppressFocusHighlight||e(this,L,"m",C).call(this,t.currentTarget)},C=function(t){if(e(this,L,"m",O).call(this),this.rangeStart&&!this.rangeEnd&&t.dataset.value){x(new Date(t.dataset.value),this.rangeStart)>0&&t.parentElement.classList.add("range-highlight-end");for(const e of t.closest("table")?.querySelectorAll(".item")??[]){if(e===t)break;const a=new Date(e.dataset.value);x(a,this.rangeStart)>0?e.parentElement.classList.add("range-highlight"):x(a,this.rangeStart)>=0&&e.parentElement.classList.add("range-highlight-start")}}},O=function(){this.rangeStart&&this.shadowRoot?.querySelectorAll(".range-highlight,.range-highlight-end,.range-highlight-start").forEach(t=>t.classList.remove("range-highlight","range-highlight-end","range-highlight-start"))},H.styles=[E.styles,i`thead { font-size: var(--m3e-calendar-weekday-font-size, ${g.typescale.standard.title.small.fontSize}); font-weight: var(--m3e-calendar-weekday-font-weight, ${g.typescale.standard.title.small.fontWeight}); line-height: var(--m3e-calendar-weekday-line-height, ${g.typescale.standard.title.small.lineHeight}); letter-spacing: var(--m3e-calendar-weekday-tracking, ${g.typescale.standard.title.small.tracking}); color: var(--m3e-calendar-weekday-color, ${g.color.onSurface}); } th { height: 1.5rem; padding-block-start: 1.875rem; padding-block-end: 1rem; } tbody { font-size: var(--m3e-calendar-date-font-size, ${g.typescale.standard.body.medium.fontSize}); font-weight: var(--m3e-calendar-date-font-weight, ${g.typescale.standard.body.medium.fontWeight}); line-height: var(--m3e-calendar-date-line-height, ${g.typescale.standard.body.medium.lineHeight}); letter-spacing: var(--m3e-calendar-date-tracking, ${g.typescale.standard.body.medium.tracking}); } td:not(:has(.item[aria-disabled])):not(.selected):not(.range-start):not(.range-end).special { color: var(--m3e-calendar-item-special-color, ${g.color.onTertiaryContainer}); --m3e-ripple-color: var(--m3e-calendar-item-special-ripple-color, ${g.color.onTertiaryContainer}); --m3e-state-layer-hover-color: var( --m3e-calendar-item-special-hover-color, ${g.color.onTertiaryContainer} ); --m3e-state-layer-focus-color: var( --m3e-calendar-item-special-focus-color, ${g.color.onTertiaryContainer} ); } td:not(:has(.item[aria-disabled])):not(.selected):not(.range-start):not(.range-end).special .state-layer { background-color: var(--m3e-calendar-item-special-container-color, ${g.color.tertiaryContainer}); } td:not(:has(.item[aria-disabled])).range-start, td:not(:has(.item[aria-disabled])).range-end { color: var(--m3e-calendar-item-selected-color, ${g.color.onPrimary}); --m3e-ripple-color: var(--m3e-calendar-item-selected-ripple-color, ${g.color.onPrimary}); } td:not(:has(.item[aria-disabled])).range-start .state-layer, td:not(:has(.item[aria-disabled])).range-end .state-layer { background-color: var(--m3e-calendar-item-selected-container-color, ${g.color.primary}); } td:not(:has(.item[aria-disabled])).range::before, td:not(:has(.item[aria-disabled])).range-start-range::before, td:not(:has(.item[aria-disabled])).range-end::before { content: ""; position: absolute; left: 0; right: 0; top: 0.25rem; bottom: 0.25rem; background-color: var(--m3e-calendar-range-container-color, ${g.color.primaryContainer}); } td:not(:has(.item[aria-disabled])):not(.selected).range { color: var(--m3e-calendar-range-color, ${g.color.onPrimaryContainer}); } td:not(:has(.item[aria-disabled])).range-start::before { inset-inline-start: 50%; width: 50%; } td:not(:has(.item[aria-disabled])).range-end::before { inset-inline-end: 50%; width: 50%; } td:not(:has(.item[aria-disabled])).range-highlight-start .item::after, td:not(:has(.item[aria-disabled])).range-highlight .item::after, td:not(:has(.item[aria-disabled])).range-highlight-end .item::after { content: ""; position: absolute; top: 0; left: calc(0px - 0.1875rem); right: calc(0px - 0.1875rem); bottom: 0; border-style: dashed; border-color: ${g.color.primary}; border-width: 1px; } td:not(:has(.item[aria-disabled])).range-highlight-start .item::after { margin-inline-start: 50%; } td:not(:has(.item[aria-disabled])).range-highlight-end .item::after { margin-inline-end: 0.1875rem; } td:not(:has(.item[aria-disabled])).range-highlight-start .item::after, td:not(:has(.item[aria-disabled])).range-highlight .item::after { border-inline-style: none; } td:not(:has(.item[aria-disabled])).range-highlight-end .item::after { border-start-end-radius: ${g.shape.corner.full}; border-end-end-radius: ${g.shape.corner.full}; border-inline-start-style: none; } @media (forced-colors: active) { td:not(:has(.item[aria-disabled])).range-start, td:not(:has(.item[aria-disabled])).range-end { forced-color-adjust: none; color: HighlightText; } td:not(:has(.item[aria-disabled])).range-start .state-layer, td:not(:has(.item[aria-disabled])).range-end .state-layer { background-color: Highlight; } td:not(:has(.item[aria-disabled])).range::before, td:not(:has(.item[aria-disabled])).range-start-range::before, td:not(:has(.item[aria-disabled])).range-end::before { background-color: Highlight; } td:not(:has(.item[aria-disabled])):not(.selected).range { forced-color-adjust: none; color: HighlightText; } td:not(:has(.item[aria-disabled])).range-highlight-start .item::after, td:not(:has(.item[aria-disabled])).range-highlight .item::after, td:not(:has(.item[aria-disabled])).range-highlight-end .item::after { border-color: GrayText; } }`],t([c({attribute:"range-start",converter:u})],H.prototype,"rangeStart",void 0),t([c({attribute:"range-end",converter:u})],H.prototype,"rangeEnd",void 0),t([c({attribute:!1})],H.prototype,"blackoutDates",void 0),t([c({attribute:!1})],H.prototype,"specialDates",void 0),H=t([p("m3e-month-view")],H);let N=class extends E{constructor(){super(...arguments),z.add(this)}render(){const t=new Array,a=S(this.activeDate,this.minDate,this.maxDate);for(let e=0,i=[];e<M;e++)i.push(a+e),3===i.length&&(t.push(i),i=new Array);return n`<table role="grid"><thead aria-hidden="true"><tr><th colspan="${3}"></th></tr></thead><tbody>${t.map(t=>n`<tr role="row">${t.map(t=>e(this,z,"m",U).call(this,t))}</tr>`)}</tbody></table>`}};
25
25
  /**
26
26
  * Adapted from Angular Material Datepicker
27
27
  * Source: https://github.com/angular/components/blob/main/src/material/datepicker/year-view.ts
@@ -30,7 +30,7 @@ var z,U,R,B;E=new WeakSet,P=function(t){const a=new Intl.DateTimeFormat(navigato
30
30
  * Copyright (c) 2025 Google LLC
31
31
  * See LICENSE file in the project root for full license text.
32
32
  */
33
- var W,j,K,q;z=new WeakSet,U=function(t){const a=new Intl.DateTimeFormat(navigator.language,{year:"numeric"}),i=this.activeDate.getFullYear()===t,r=this.date?.getFullYear()===t,o=this.today.getFullYear()===t,s=this.minDate&&t<this.minDate.getFullYear()||this.maxDate&&t>this.maxDate.getFullYear(),l=`year-${t}`;return n`<td role="gridcell" class="${h({current:o,selected:r,active:i})}"><div id="${l}" class="item" role="button" tabindex="${i?"0":"-1"}" data-value="${t}" aria-disabled="${m(s||void 0)}" aria-current="${m(o?"date":void 0)}" aria-pressed="${r}" @click="${e(this,z,"m",R)}" @keydown="${e(this,z,"m",B)}"><m3e-focus-ring class="focus-ring" for="${l}"></m3e-focus-ring><m3e-state-layer class="state-layer" for="${l}" ?disable-hover="${s}"></m3e-state-layer><m3e-ripple class="ripple" for="${l}" centered ?disabled="${s}"></m3e-ripple><div class="touch"></div><span>${a.format(new Date(t,0,1))}</span></div></td>`},R=function(t){const e=t.currentTarget;"true"!==e.ariaDisabled&&e.dataset.value&&(this.activeDate=new Date(this.activeDate),this.activeDate.setFullYear(Number(e.dataset.value)),this.activeDate=Y(this.activeDate,this.minDate,this.maxDate),this.dispatchEvent(new Event("change",{bubbles:!1})))},B=function(t){let e=this.activeDate;switch(t.key){case" ":case"Enter":return t.preventDefault(),void t.currentTarget.click();case"ArrowLeft":case"Left":e=$(e,"rtl"===y.current?1:-1);break;case"ArrowRight":case"Right":e=$(e,"rtl"===y.current?-1:1);break;case"ArrowUp":case"Up":e=$(e,-3);break;case"ArrowDown":case"Down":e=$(e,3);break;case"Home":e=$(e,-k(e,this.minDate,this.maxDate));break;case"End":e=$(e,M-k(e,this.minDate,this.maxDate)-1);break;case"PageUp":e=$(e,t.altKey?10*-M:-M);break;case"PageDown":e=$(e,t.altKey?10*M:M);break;default:return}t.preventDefault(),this._changeActiveDate(e)},N.styles=[L.styles,i`.item { height: 2.25rem; } .touch { width: 100%; } th { height: 1rem; } td { padding-inline: 1rem; } tbody { font-size: var(--m3e-calendar-item-font-size, ${g.typescale.standard.body.medium.fontSize}); font-weight: var(--m3e-calendar-item-font-weight, ${g.typescale.standard.body.medium.fontWeight}); line-height: var(--m3e-calendar-item-line-height, ${g.typescale.standard.body.medium.lineHeight}); letter-spacing: var(--m3e-calendar-item-tracking, ${g.typescale.standard.body.medium.tracking}); }`],N=t([p("m3e-multi-year-view")],N);let Z=class extends L{constructor(){super(...arguments),W.add(this)}render(){const t=new Array,a=new Intl.DateTimeFormat(navigator.language,{month:"short"}),i=new Intl.DateTimeFormat(navigator.language,{month:"long"}),r=this.activeDate.getFullYear();for(let e=0,n=new Array;e<12;e++){const o=new Date(r,e,1);n.push({narrow:a.format(o),long:i.format(o),date:o}),4==n.length&&(t.push(n),n=[])}return n`<table role="grid"><thead aria-hidden="true"><tr><th colspan="${4}"></th></tr></thead><tbody>${t.map(t=>n`<tr role="row">${t.map(t=>e(this,W,"m",j).call(this,t))}</tr>`)}</tbody></table>`}};
33
+ var W,j,K,q;z=new WeakSet,U=function(t){const a=new Intl.DateTimeFormat(navigator.language,{year:"numeric"}),i=this.activeDate.getFullYear()===t,r=this.date?.getFullYear()===t,o=this.today.getFullYear()===t,s=this.minDate&&t<this.minDate.getFullYear()||this.maxDate&&t>this.maxDate.getFullYear(),l=`year-${t}`;return n`<td role="gridcell" class="${h({current:o,selected:r,active:i})}"><div id="${l}" class="item" role="button" tabindex="${i?"0":"-1"}" data-value="${t}" aria-disabled="${m(s||void 0)}" aria-current="${m(o?"date":void 0)}" aria-pressed="${r}" @click="${e(this,z,"m",R)}" @keydown="${e(this,z,"m",B)}"><m3e-focus-ring class="focus-ring" for="${l}"></m3e-focus-ring><m3e-state-layer class="state-layer" for="${l}" ?disable-hover="${s}"></m3e-state-layer><m3e-ripple class="ripple" for="${l}" centered ?disabled="${s}"></m3e-ripple><div class="touch"></div><span>${a.format(new Date(t,0,1))}</span></div></td>`},R=function(t){const e=t.currentTarget;"true"!==e.ariaDisabled&&e.dataset.value&&(this.activeDate=new Date(this.activeDate),this.activeDate.setFullYear(Number(e.dataset.value)),this.activeDate=Y(this.activeDate,this.minDate,this.maxDate),this.dispatchEvent(new Event("change",{bubbles:!1})))},B=function(t){let e=this.activeDate;switch(t.key){case" ":case"Enter":return t.preventDefault(),void t.currentTarget.click();case"ArrowLeft":case"Left":e=$(e,"rtl"===y.current?1:-1);break;case"ArrowRight":case"Right":e=$(e,"rtl"===y.current?-1:1);break;case"ArrowUp":case"Up":e=$(e,-3);break;case"ArrowDown":case"Down":e=$(e,3);break;case"Home":e=$(e,-k(e,this.minDate,this.maxDate));break;case"End":e=$(e,M-k(e,this.minDate,this.maxDate)-1);break;case"PageUp":e=$(e,t.altKey?10*-M:-M);break;case"PageDown":e=$(e,t.altKey?10*M:M);break;default:return}t.preventDefault(),this._changeActiveDate(e)},N.styles=[E.styles,i`.item { height: 2.25rem; } .touch { width: 100%; } th { height: 1rem; } td { padding-inline: 1rem; } tbody { font-size: var(--m3e-calendar-item-font-size, ${g.typescale.standard.body.medium.fontSize}); font-weight: var(--m3e-calendar-item-font-weight, ${g.typescale.standard.body.medium.fontWeight}); line-height: var(--m3e-calendar-item-line-height, ${g.typescale.standard.body.medium.lineHeight}); letter-spacing: var(--m3e-calendar-item-tracking, ${g.typescale.standard.body.medium.tracking}); }`],N=t([p("m3e-multi-year-view")],N);let Z=class extends E{constructor(){super(...arguments),W.add(this)}render(){const t=new Array,a=new Intl.DateTimeFormat(navigator.language,{month:"short"}),i=new Intl.DateTimeFormat(navigator.language,{month:"long"}),r=this.activeDate.getFullYear();for(let e=0,n=new Array;e<12;e++){const o=new Date(r,e,1);n.push({narrow:a.format(o),long:i.format(o),date:o}),4==n.length&&(t.push(n),n=[])}return n`<table role="grid"><thead aria-hidden="true"><tr><th colspan="${4}"></th></tr></thead><tbody>${t.map(t=>n`<tr role="row">${t.map(t=>e(this,W,"m",j).call(this,t))}</tr>`)}</tbody></table>`}};
34
34
  /**
35
35
  * Adapted from Angular Material Datepicker
36
36
  * Source: https://github.com/angular/components/blob/main/src/material/datepicker/calendar.ts
@@ -39,5 +39,5 @@ var W,j,K,q;z=new WeakSet,U=function(t){const a=new Intl.DateTimeFormat(navigato
39
39
  * Copyright (c) 2025 Google LLC
40
40
  * See LICENSE file in the project root for full license text.
41
41
  */
42
- var G,J,Q,X,tt,et,at,it,rt,nt;W=new WeakSet,j=function(t){const a=this.activeDate.getFullYear()===t.date.getFullYear()&&this.activeDate.getMonth()===t.date.getMonth(),i=this.date?.getFullYear()===t.date.getFullYear()&&this.date?.getMonth()===t.date.getMonth(),r=this.today.getFullYear()===t.date.getFullYear()&&this.today.getMonth()===t.date.getMonth(),o=this.minDate&&(t.date.getFullYear()<this.minDate.getFullYear()||t.date.getFullYear()===this.minDate.getFullYear()&&t.date.getMonth()<this.minDate.getMonth())||this.maxDate&&(t.date.getFullYear()>this.maxDate.getFullYear()||t.date.getFullYear()===this.maxDate.getFullYear()&&t.date.getMonth()>this.maxDate.getMonth()),s=`month-${t.date.getMonth()}`;return n`<td role="gridcell" class="${h({current:r,selected:i,active:a})}"><div id="${s}" class="item" role="button" tabindex="${a?"0":"-1"}" data-value="${t.date.toISOString()}" aria-disabled="${m(o||void 0)}" aria-current="${m(r?"date":void 0)}" aria-pressed="${i}" @click="${e(this,W,"m",K)}" @keydown="${e(this,W,"m",q)}"><m3e-focus-ring class="focus-ring" for="${s}"></m3e-focus-ring><m3e-state-layer class="state-layer" for="${s}" ?disable-hover="${o}"></m3e-state-layer><m3e-ripple class="ripple" centered for="${s}" ?disabled="${o}"></m3e-ripple><div class="touch"></div><span class="visually-hidden">${t.long}</span> <span aria-hidden="true">${t.narrow}</span></div></td>`},K=function(t){const e=t.currentTarget;"true"!==e.ariaDisabled&&e.dataset.value&&(this.activeDate=Y(new Date(e.dataset.value),this.minDate,this.maxDate),this.dispatchEvent(new Event("change",{bubbles:!1})))},q=function(t){let e=this.activeDate;switch(t.key){case" ":case"Enter":return t.preventDefault(),void t.currentTarget.click();case"ArrowLeft":case"Left":e=D(e,"rtl"===y.current?1:-1);break;case"ArrowRight":case"Right":e=D(e,"rtl"===y.current?-1:1);break;case"ArrowUp":case"Up":e=D(e,-4);break;case"ArrowDown":case"Down":e=D(e,4);break;case"Home":e=D(e,-e.getMonth());break;case"End":e=D(e,11-e.getMonth());break;case"PageUp":e=$(e,t.altKey?-10:-1);break;case"PageDown":e=$(e,t.altKey?10:1);break;default:return}t.preventDefault(),this._changeActiveDate(e)},Z.styles=[L.styles,i`.item { height: 2.25rem; } .touch { width: 100%; } th { height: 1rem; } td { padding-inline: 0.375rem; } tbody { font-size: var(--m3e-calendar-item-font-size, ${g.typescale.standard.body.medium.fontSize}); font-weight: var(--m3e-calendar-item-font-weight, ${g.typescale.standard.body.medium.fontWeight}); line-height: var(--m3e-calendar-item-line-height, ${g.typescale.standard.body.medium.lineHeight}); letter-spacing: var(--m3e-calendar-item-tracking, ${g.typescale.standard.body.medium.tracking}); }`],Z=t([p("m3e-year-view")],Z);let ot=class extends r{constructor(){super(...arguments),G.add(this),J.set(this,void 0),this._today=new Date,this._activeView="month",this._activeDate=new Date,this.startView="month",this.date=null,this.startAt=null,this.minDate=null,this.maxDate=null,this.rangeStart=null,this.rangeEnd=null,this.blackoutDates=null,this.specialDates=null,this.previousMonthLabel="Previous month",this.previousYearLabel="Previous year",this.previousMultiYearLabel="Previous 24 years",this.nextMonthLabel="Next month",this.nextYearLabel="Next year",this.nextMultiYearLabel="Next 24 years"}get periodLabel(){switch(this._activeView){case"month":return new Intl.DateTimeFormat(navigator.language,{month:"short",year:"numeric"}).format(this._activeDate);case"year":return new Intl.DateTimeFormat(navigator.language,{year:"numeric"}).format(new Date(this._activeDate.getFullYear(),0,1));case"multi-year":return new Intl.DateTimeFormat(navigator.language,{year:"numeric"}).formatRange(new Date(S(this._activeDate,this.minDate,this.maxDate),0,1),new Date(F(this._activeDate,this.minDate,this.maxDate),0,1))}}get canMovePreviousPeriod(){if(!this.minDate)return!0;switch(this._activeView){case"month":return new Date(this._activeDate.getFullYear(),this._activeDate.getMonth(),0)>=this.minDate;case"year":return new Date(this._activeDate.getFullYear()-1,12,1)>=this.minDate;case"multi-year":return new Date(S(this._activeDate,this.minDate,this.maxDate)-1,12,1)>=this.minDate}}get canMoveNextPeriod(){if(!this.maxDate)return!0;switch(this._activeView){case"month":return new Date(this._activeDate.getFullYear(),this._activeDate.getMonth()+1,1)<=this.maxDate;case"year":return new Date(this._activeDate.getFullYear()+1,1,1)<=this.maxDate;case"multi-year":return new Date(F(this._activeDate,this.minDate,this.maxDate)+1,12,1)<=this.maxDate}}async focusActiveCell(){this.isUpdatePending&&await this.updateComplete,await(this._view?.focusActiveCell())}updateTodayDate(){this._today=new Date}async movePreviousPeriod(){if(!this.canMovePreviousPeriod)return;if(b())return void(this._activeDate=e(this,G,"m",rt).call(this,this._activeView));await e(this,J,"f");const t=[...this.shadowRoot?.querySelectorAll(`.row.${this._activeView} .view`)??[]];3==t.length&&(a(this,J,new Promise(a=>{t[0].addEventListener("transitionend",()=>{this._activeDate=e(this,G,"m",rt).call(this,this._activeView),t.forEach(t=>t.classList.add("no-animate")),t[1].classList.remove("after"),t[0].classList.add("before"),setTimeout(()=>{t.forEach(t=>t.classList.remove("no-animate")),a()})},{once:!0})}),"f"),this._body.style.overflow="hidden",t[1].classList.add("after"),t[0].classList.remove("before"),await e(this,J,"f"),this._body.style.overflow="")}async moveNextPeriod(){if(!this.canMoveNextPeriod)return;if(b())return void(this._activeDate=e(this,G,"m",nt).call(this,this._activeView));await e(this,J,"f");const t=[...this.shadowRoot?.querySelectorAll(`.row.${this._activeView} .view`)??[]];3==t.length&&(a(this,J,new Promise(a=>{t[2].addEventListener("transitionend",()=>{this._activeDate=e(this,G,"m",nt).call(this,this._activeView),t.forEach(t=>t.classList.add("no-animate")),t[1].classList.remove("before"),t[2].classList.add("after"),setTimeout(()=>{t.forEach(t=>t.classList.remove("no-animate")),a()})},{once:!0})}),"f"),this._body.style.overflow="hidden",t[1].classList.add("before"),t[2].classList.remove("after"),await e(this,J,"f"),this._body.style.overflow="")}async togglePeriod(){await e(this,J,"f"),this._activeView="month"===this._activeView?"multi-year":"month",await this.focusActiveCell()}willUpdate(t){super.willUpdate(t),t.has("date")&&(this._activeDate=new Date(this.date??this._today)),t.has("startAt")&&(this._activeDate=new Date(this.startAt??this.date??this._today)),t.has("startView")&&(this._activeView=this.startView)}updated(t){super.updated(t),this._view instanceof H&&(t.has("specialDates")||t.has("blackoutDates"))&&this.shadowRoot?.querySelectorAll("m3e-month-view").forEach(t=>{t.specialDates=this.specialDates,t.blackoutDates=this.blackoutDates})}render(){return n`<div class="base"><slot name="header">${e(this,G,"m",Q).call(this)}</slot><div class="body ${this._activeView}"><div class="row multi-year">${e(this,G,"m",X).call(this,"multi-year",-1)}${e(this,G,"m",X).call(this,"multi-year",0)}${e(this,G,"m",X).call(this,"multi-year",1)}</div><div class="row year">${e(this,G,"m",X).call(this,"year",-1)}${e(this,G,"m",X).call(this,"year",0)}${e(this,G,"m",X).call(this,"year",1)}</div><div class="row month">${e(this,G,"m",X).call(this,"month",-1)}${e(this,G,"m",X).call(this,"month",0)}${e(this,G,"m",X).call(this,"month",1)}</div></div></div>`}};J=new WeakMap,G=new WeakSet,Q=function(){return n`<div class="header"><m3e-button @click="${this.togglePeriod}">${this.periodLabel} <svg class="${h({rotate:"month"!==this._activeView})}" slot="trailing-icon" viewBox="0 -960 960 960" fill="currentColor"><path d="M480-360 280-560h400L480-360Z"/></svg></m3e-button><div class="spacer"></div><m3e-icon-button ?disabled="${!this.canMovePreviousPeriod}" @click="${this.movePreviousPeriod}" aria-label="${"month"===this._activeView?this.previousMonthLabel:"year"===this._activeView?this.previousYearLabel:this.previousMultiYearLabel}">${"ltr"===y.current?n`<svg viewBox="0 -960 960 960" fill="currentColor"><path d="M560-240 320-480l240-240 56 56-184 184 184 184-56 56Z"/></svg>`:n`<svg viewBox="0 -960 960 960" fill="currentColor"><path d="M504-480 320-664l56-56 240 240-240 240-56-56 184-184Z"/></svg>`}</m3e-icon-button><m3e-icon-button ?disabled="${!this.canMoveNextPeriod}" @click="${this.moveNextPeriod}" aria-label="${"month"===this._activeView?this.nextMonthLabel:"year"===this._activeView?this.nextYearLabel:this.nextMultiYearLabel}">${"ltr"===y.current?n`<svg viewBox="0 -960 960 960" fill="currentColor"><path d="M504-480 320-664l56-56 240 240-240 240-56-56 184-184Z"/></svg>`:n`<svg viewBox="0 -960 960 960" fill="currentColor"><path d="M560-240 320-480l240-240 56 56-184 184 184 184-56 56Z"/></svg>`}</m3e-icon-button></div>`},X=function(t,a){const i=a<0?e(this,G,"m",rt).call(this,t):a>0?e(this,G,"m",nt).call(this,t):new Date(this._activeDate);switch(t){case"month":return n`<m3e-month-view class="view ${h({before:a<0,after:a>0,active:t===this._activeView&&0===a})}" ?inert="${0!==a}" today="${this._today.toISOString()}" date="${m(this.date?.toISOString())}" active-date="${i.toISOString()}" min-date="${m(this.minDate?.toISOString())}" max-date="${m(this.maxDate?.toISOString())}" range-start="${m(this.rangeStart?.toISOString())}" range-end="${m(this.rangeEnd?.toISOString())}" @active-change="${0===a?e(this,G,"m",it):void 0}" @change="${0===a?e(this,G,"m",tt):void 0}"></m3e-month-view>`;case"year":return n`<m3e-year-view class="view ${h({before:a<0,after:a>0,active:t===this._activeView&&0===a})}" ?inert="${0!==a}" today="${this._today.toISOString()}" date="${m(this.date?.toISOString())}" active-date="${i.toISOString()}" min-date="${m(this.minDate?.toISOString())}" max-date="${m(this.maxDate?.toISOString())}" @active-change="${0===a?e(this,G,"m",it):void 0}" @change="${0===a?e(this,G,"m",et):void 0}"></m3e-year-view>`;case"multi-year":return n`<m3e-multi-year-view class="view ${h({before:a<0,after:a>0,active:t===this._activeView&&0===a})}" ?inert="${0!==a}" today="${this._today.toISOString()}" date="${m(this.date?.toISOString())}" active-date="${i.toISOString()}" min-date="${m(this.minDate?.toISOString())}" max-date="${m(this.maxDate?.toISOString())}" @active-change="${0===a?e(this,G,"m",it):void 0}" @change="${0===a?e(this,G,"m",at):void 0}"></m3e-multi-year-view>`}},tt=function(t){const e=t.currentTarget;this._activeDate=new Date(e.activeDate),this.rangeStart=e.rangeStart,this.rangeEnd=e.rangeEnd,this.date=new Date(this._activeDate),this.dispatchEvent(new Event("change",{bubbles:!0}))},et=async function(t){this._activeDate=new Date(t.currentTarget.activeDate),this._activeView="month",this.focusActiveCell()},at=function(t){this._activeDate=new Date(t.currentTarget.activeDate),this._activeView="year",this.focusActiveCell()},it=async function(t){this._view instanceof H&&(this._view._suppressFocusHighlight=!1),this._activeDate=new Date(t.currentTarget.activeDate),await this.focusActiveCell(),this._view instanceof H&&(this._view._suppressFocusHighlight=!1)},rt=function(t){const e=new Date(this._activeDate);switch(t){case"month":for(e.setMonth(this._activeDate.getMonth()-1);e.getMonth()===this._activeDate.getMonth();)e.setDate(e.getDate()-1);break;case"year":e.setFullYear(this._activeDate.getFullYear()-1);break;case"multi-year":e.setDate(1),e.setFullYear(S(this._activeDate,this.minDate,this.maxDate)-1)}return e},nt=function(t){const e=new Date(this._activeDate);switch(t){case"month":for(e.setMonth(this._activeDate.getMonth()+1);e.getMonth()===this._activeDate.getMonth();)e.setDate(e.getDate()+1);break;case"year":e.setFullYear(this._activeDate.getFullYear()+1);break;case"multi-year":e.setDate(1),e.setFullYear(F(this._activeDate,this.minDate,this.maxDate)+1)}return e},ot.styles=i`:host { display: inline-block; vertical-align: top; width: fit-content; height: fit-content; } .base { display: flex; flex-direction: column; width: fit-content; overflow: hidden; padding: var(--m3e-calendar-padding, 0.5rem); background-color: var(--m3e-calendar-container-color); box-shadow: var(--m3e-calendar-container-elevation); border-radius: var(--m3e-calendar-container-shape); } .header { display: flex; align-items: center; --m3e-text-button-label-text-color: var( --m3e-calendar-period-button-text-color, ${g.color.onSurfaceVariant} ); --m3e-text-button-hover-label-text-color: var( --m3e-calendar-period-button-text-color, ${g.color.onSurfaceVariant} ); --m3e-text-button-focus-label-text-color: var( --m3e-calendar-period-button-text-color, ${g.color.onSurfaceVariant} ); --m3e-text-button-pressed-label-text-color: var( --m3e-calendar-period-button-text-color, ${g.color.onSurfaceVariant} ); } .spacer { flex: 1 1 auto; } svg { transition: transform ${g.motion.spring.fastEffects}; } svg.rotate { transform: rotate(-180deg); } .body { position: relative; } .view:not(.no-animate) { transition: ${s(`margin var(--m3e-calendar-slide-animation-duration, ${g.motion.duration.long2}) ${g.motion.easing.standard},\n visibility var(--m3e-calendar-slide-animation-duration, ${g.motion.duration.long2}) ${g.motion.easing.standard} allow-discrete`)}; } .view.before, .view.after { visibility: hidden; position: absolute; } .view.before { margin-inline-start: -100%; } .view.after { margin-inline-start: 100%; } .view:not(.before):not(.after) { visibility: visible; position: relative; left: 0; margin-inline-start: 0; } .row { opacity: 1; transform: translateY(0); } .row.multi-year { transition: ${s(`transform var(--m3e-calendar-slide-animation-duration, ${g.motion.duration.long2}) ${g.motion.easing.standard} allow-discrete,\n opacity var(--m3e-calendar-slide-animation-duration, ${g.motion.duration.long2}) ${g.motion.easing.standard} allow-discrete`)}; } .row:not(.multi-year) { transition: ${s(`opacity var(--m3e-calendar-slide-animation-duration, ${g.motion.duration.long2}) ${g.motion.easing.standard} allow-discrete`)}; } .body.month > .row:not(.month), .body.year > .row:not(.year), .body.multi-year > .row:not(.multi-year) { visibility: hidden; position: absolute; transform: translateY(-10%); opacity: 0; } .body.month > .row:not(.month) .view:not(.before):not(.after), .body.year > .row:not(.year) .view:not(.before):not(.after), .body.multi-year > .row:not(.multi-year) .view:not(.before):not(.after) { visibility: hidden; transition: none; } @media (prefers-reduced-motion) { .row:not(.multi-year), .row.multi-year, .view:not(.no-animate), svg { transition: none; } }`,t([d()],ot.prototype,"_today",void 0),t([d()],ot.prototype,"_activeView",void 0),t([d()],ot.prototype,"_activeDate",void 0),t([l(".active")],ot.prototype,"_view",void 0),t([l(".body")],ot.prototype,"_body",void 0),t([c({attribute:"start-view"})],ot.prototype,"startView",void 0),t([c({converter:u})],ot.prototype,"date",void 0),t([c({attribute:"start-at",converter:u})],ot.prototype,"startAt",void 0),t([c({attribute:"min-date",converter:u})],ot.prototype,"minDate",void 0),t([c({attribute:"max-date",converter:u})],ot.prototype,"maxDate",void 0),t([c({attribute:"range-start",converter:u})],ot.prototype,"rangeStart",void 0),t([c({attribute:"range-end",converter:u})],ot.prototype,"rangeEnd",void 0),t([c({attribute:!1})],ot.prototype,"blackoutDates",void 0),t([c({attribute:!1})],ot.prototype,"specialDates",void 0),t([c({attribute:"previous-month-label"})],ot.prototype,"previousMonthLabel",void 0),t([c({attribute:"previous-year-label"})],ot.prototype,"previousYearLabel",void 0),t([c({attribute:"previous-multi-year-label"})],ot.prototype,"previousMultiYearLabel",void 0),t([c({attribute:"next-month-label"})],ot.prototype,"nextMonthLabel",void 0),t([c({attribute:"next-year-label"})],ot.prototype,"nextYearLabel",void 0),t([c({attribute:"next-multi-year-label"})],ot.prototype,"nextMultiYearLabel",void 0),ot=t([p("m3e-calendar")],ot);export{L as CalendarViewElementBase,ot as M3eCalendarElement,H as M3eMonthViewElement,N as M3eMultiYearViewElement,Z as M3eYearViewElement};
42
+ var G,J,Q,X,tt,et,at,it,rt,nt;W=new WeakSet,j=function(t){const a=this.activeDate.getFullYear()===t.date.getFullYear()&&this.activeDate.getMonth()===t.date.getMonth(),i=this.date?.getFullYear()===t.date.getFullYear()&&this.date?.getMonth()===t.date.getMonth(),r=this.today.getFullYear()===t.date.getFullYear()&&this.today.getMonth()===t.date.getMonth(),o=this.minDate&&(t.date.getFullYear()<this.minDate.getFullYear()||t.date.getFullYear()===this.minDate.getFullYear()&&t.date.getMonth()<this.minDate.getMonth())||this.maxDate&&(t.date.getFullYear()>this.maxDate.getFullYear()||t.date.getFullYear()===this.maxDate.getFullYear()&&t.date.getMonth()>this.maxDate.getMonth()),s=`month-${t.date.getMonth()}`;return n`<td role="gridcell" class="${h({current:r,selected:i,active:a})}"><div id="${s}" class="item" role="button" tabindex="${a?"0":"-1"}" data-value="${t.date.toISOString()}" aria-disabled="${m(o||void 0)}" aria-current="${m(r?"date":void 0)}" aria-pressed="${i}" @click="${e(this,W,"m",K)}" @keydown="${e(this,W,"m",q)}"><m3e-focus-ring class="focus-ring" for="${s}"></m3e-focus-ring><m3e-state-layer class="state-layer" for="${s}" ?disable-hover="${o}"></m3e-state-layer><m3e-ripple class="ripple" centered for="${s}" ?disabled="${o}"></m3e-ripple><div class="touch"></div><span class="visually-hidden">${t.long}</span> <span aria-hidden="true">${t.narrow}</span></div></td>`},K=function(t){const e=t.currentTarget;"true"!==e.ariaDisabled&&e.dataset.value&&(this.activeDate=Y(new Date(e.dataset.value),this.minDate,this.maxDate),this.dispatchEvent(new Event("change",{bubbles:!1})))},q=function(t){let e=this.activeDate;switch(t.key){case" ":case"Enter":return t.preventDefault(),void t.currentTarget.click();case"ArrowLeft":case"Left":e=D(e,"rtl"===y.current?1:-1);break;case"ArrowRight":case"Right":e=D(e,"rtl"===y.current?-1:1);break;case"ArrowUp":case"Up":e=D(e,-4);break;case"ArrowDown":case"Down":e=D(e,4);break;case"Home":e=D(e,-e.getMonth());break;case"End":e=D(e,11-e.getMonth());break;case"PageUp":e=$(e,t.altKey?-10:-1);break;case"PageDown":e=$(e,t.altKey?10:1);break;default:return}t.preventDefault(),this._changeActiveDate(e)},Z.styles=[E.styles,i`.item { height: 2.25rem; } .touch { width: 100%; } th { height: 1rem; } td { padding-inline: 0.375rem; } tbody { font-size: var(--m3e-calendar-item-font-size, ${g.typescale.standard.body.medium.fontSize}); font-weight: var(--m3e-calendar-item-font-weight, ${g.typescale.standard.body.medium.fontWeight}); line-height: var(--m3e-calendar-item-line-height, ${g.typescale.standard.body.medium.lineHeight}); letter-spacing: var(--m3e-calendar-item-tracking, ${g.typescale.standard.body.medium.tracking}); }`],Z=t([p("m3e-year-view")],Z);let ot=class extends r{constructor(){super(...arguments),G.add(this),J.set(this,void 0),this._today=new Date,this._activeView="month",this._activeDate=new Date,this.startView="month",this.date=null,this.startAt=null,this.minDate=null,this.maxDate=null,this.rangeStart=null,this.rangeEnd=null,this.blackoutDates=null,this.specialDates=null,this.previousMonthLabel="Previous month",this.previousYearLabel="Previous year",this.previousMultiYearLabel="Previous 24 years",this.nextMonthLabel="Next month",this.nextYearLabel="Next year",this.nextMultiYearLabel="Next 24 years"}get periodLabel(){switch(this._activeView){case"month":return new Intl.DateTimeFormat(navigator.language,{month:"short",year:"numeric"}).format(this._activeDate);case"year":return new Intl.DateTimeFormat(navigator.language,{year:"numeric"}).format(new Date(this._activeDate.getFullYear(),0,1));case"multi-year":return new Intl.DateTimeFormat(navigator.language,{year:"numeric"}).formatRange(new Date(S(this._activeDate,this.minDate,this.maxDate),0,1),new Date(F(this._activeDate,this.minDate,this.maxDate),0,1))}}get canMovePreviousPeriod(){if(!this.minDate)return!0;switch(this._activeView){case"month":return new Date(this._activeDate.getFullYear(),this._activeDate.getMonth(),0)>=this.minDate;case"year":return new Date(this._activeDate.getFullYear()-1,12,1)>=this.minDate;case"multi-year":return new Date(S(this._activeDate,this.minDate,this.maxDate)-1,12,1)>=this.minDate}}get canMoveNextPeriod(){if(!this.maxDate)return!0;switch(this._activeView){case"month":return new Date(this._activeDate.getFullYear(),this._activeDate.getMonth()+1,1)<=this.maxDate;case"year":return new Date(this._activeDate.getFullYear()+1,1,1)<=this.maxDate;case"multi-year":return new Date(F(this._activeDate,this.minDate,this.maxDate)+1,12,1)<=this.maxDate}}async focusActiveCell(){this.isUpdatePending&&await this.updateComplete,await(this._view?.focusActiveCell())}updateTodayDate(){this._today=new Date}async movePreviousPeriod(){if(!this.canMovePreviousPeriod)return;if(b())return void(this._activeDate=e(this,G,"m",rt).call(this,this._activeView));await e(this,J,"f");const t=[...this.shadowRoot?.querySelectorAll(`.row.${this._activeView} .view`)??[]];3==t.length&&(a(this,J,new Promise(a=>{t[0].addEventListener("transitionend",()=>{this._activeDate=e(this,G,"m",rt).call(this,this._activeView),t.forEach(t=>t.classList.add("no-animate")),t[1].classList.remove("after"),t[0].classList.add("before"),setTimeout(()=>{t.forEach(t=>t.classList.remove("no-animate")),a()})},{once:!0})}),"f"),this._body.style.overflow="hidden",t[1].classList.add("after"),t[0].classList.remove("before"),await e(this,J,"f"),this._body.style.overflow="")}async moveNextPeriod(){if(!this.canMoveNextPeriod)return;if(b())return void(this._activeDate=e(this,G,"m",nt).call(this,this._activeView));await e(this,J,"f");const t=[...this.shadowRoot?.querySelectorAll(`.row.${this._activeView} .view`)??[]];3==t.length&&(a(this,J,new Promise(a=>{t[2].addEventListener("transitionend",()=>{this._activeDate=e(this,G,"m",nt).call(this,this._activeView),t.forEach(t=>t.classList.add("no-animate")),t[1].classList.remove("before"),t[2].classList.add("after"),setTimeout(()=>{t.forEach(t=>t.classList.remove("no-animate")),a()})},{once:!0})}),"f"),this._body.style.overflow="hidden",t[1].classList.add("before"),t[2].classList.remove("after"),await e(this,J,"f"),this._body.style.overflow="")}async togglePeriod(){await e(this,J,"f"),this._activeView="month"===this._activeView?"multi-year":"month",await this.focusActiveCell()}willUpdate(t){super.willUpdate(t),t.has("date")&&(this._activeDate=new Date(this.date??this._today)),t.has("startAt")&&(this._activeDate=new Date(this.startAt??this.date??this._today)),t.has("rangeStart")&&this.rangeStart&&(this._activeDate=new Date(this.rangeStart),t.has("date")||(this.date=new Date(this.rangeStart))),t.has("rangeEnd")&&this.rangeEnd&&(this._activeDate=new Date(this.rangeEnd),t.has("date")||(this.date=new Date(this.rangeEnd))),t.has("startView")&&(this._activeView=this.startView)}updated(t){super.updated(t),this._view instanceof H&&(t.has("specialDates")||t.has("blackoutDates"))&&this.shadowRoot?.querySelectorAll("m3e-month-view").forEach(t=>{t.specialDates=this.specialDates,t.blackoutDates=this.blackoutDates})}render(){return n`<div class="base"><slot name="header">${e(this,G,"m",Q).call(this)}</slot><div class="body ${this._activeView}"><div class="row multi-year">${e(this,G,"m",X).call(this,"multi-year",-1)}${e(this,G,"m",X).call(this,"multi-year",0)}${e(this,G,"m",X).call(this,"multi-year",1)}</div><div class="row year">${e(this,G,"m",X).call(this,"year",-1)}${e(this,G,"m",X).call(this,"year",0)}${e(this,G,"m",X).call(this,"year",1)}</div><div class="row month">${e(this,G,"m",X).call(this,"month",-1)}${e(this,G,"m",X).call(this,"month",0)}${e(this,G,"m",X).call(this,"month",1)}</div></div></div>`}};J=new WeakMap,G=new WeakSet,Q=function(){return n`<div class="header"><m3e-button @click="${this.togglePeriod}">${this.periodLabel} <svg class="${h({rotate:"month"!==this._activeView})}" slot="trailing-icon" viewBox="0 -960 960 960" fill="currentColor"><path d="M480-360 280-560h400L480-360Z"/></svg></m3e-button><div class="spacer"></div><m3e-icon-button ?disabled="${!this.canMovePreviousPeriod}" @click="${this.movePreviousPeriod}" aria-label="${"month"===this._activeView?this.previousMonthLabel:"year"===this._activeView?this.previousYearLabel:this.previousMultiYearLabel}">${"ltr"===y.current?n`<svg viewBox="0 -960 960 960" fill="currentColor"><path d="M560-240 320-480l240-240 56 56-184 184 184 184-56 56Z"/></svg>`:n`<svg viewBox="0 -960 960 960" fill="currentColor"><path d="M504-480 320-664l56-56 240 240-240 240-56-56 184-184Z"/></svg>`}</m3e-icon-button><m3e-icon-button ?disabled="${!this.canMoveNextPeriod}" @click="${this.moveNextPeriod}" aria-label="${"month"===this._activeView?this.nextMonthLabel:"year"===this._activeView?this.nextYearLabel:this.nextMultiYearLabel}">${"ltr"===y.current?n`<svg viewBox="0 -960 960 960" fill="currentColor"><path d="M504-480 320-664l56-56 240 240-240 240-56-56 184-184Z"/></svg>`:n`<svg viewBox="0 -960 960 960" fill="currentColor"><path d="M560-240 320-480l240-240 56 56-184 184 184 184-56 56Z"/></svg>`}</m3e-icon-button></div>`},X=function(t,a){const i=a<0?e(this,G,"m",rt).call(this,t):a>0?e(this,G,"m",nt).call(this,t):new Date(this._activeDate);switch(t){case"month":return n`<m3e-month-view class="view ${h({before:a<0,after:a>0,active:t===this._activeView&&0===a})}" ?inert="${0!==a}" today="${this._today.toISOString()}" date="${m(this.date?.toISOString())}" active-date="${i.toISOString()}" min-date="${m(this.minDate?.toISOString())}" max-date="${m(this.maxDate?.toISOString())}" range-start="${m(this.rangeStart?.toISOString())}" range-end="${m(this.rangeEnd?.toISOString())}" @active-change="${0===a?e(this,G,"m",it):void 0}" @change="${0===a?e(this,G,"m",tt):void 0}"></m3e-month-view>`;case"year":return n`<m3e-year-view class="view ${h({before:a<0,after:a>0,active:t===this._activeView&&0===a})}" ?inert="${0!==a}" today="${this._today.toISOString()}" date="${m(this.date?.toISOString())}" active-date="${i.toISOString()}" min-date="${m(this.minDate?.toISOString())}" max-date="${m(this.maxDate?.toISOString())}" @active-change="${0===a?e(this,G,"m",it):void 0}" @change="${0===a?e(this,G,"m",et):void 0}"></m3e-year-view>`;case"multi-year":return n`<m3e-multi-year-view class="view ${h({before:a<0,after:a>0,active:t===this._activeView&&0===a})}" ?inert="${0!==a}" today="${this._today.toISOString()}" date="${m(this.date?.toISOString())}" active-date="${i.toISOString()}" min-date="${m(this.minDate?.toISOString())}" max-date="${m(this.maxDate?.toISOString())}" @active-change="${0===a?e(this,G,"m",it):void 0}" @change="${0===a?e(this,G,"m",at):void 0}"></m3e-multi-year-view>`}},tt=function(t){const e=t.currentTarget;this._activeDate=new Date(e.activeDate),this.rangeStart=e.rangeStart,this.rangeEnd=e.rangeEnd,this.date=new Date(this._activeDate),this.dispatchEvent(new Event("change",{bubbles:!0}))},et=async function(t){this._activeDate=new Date(t.currentTarget.activeDate),this._activeView="month",this.focusActiveCell()},at=function(t){this._activeDate=new Date(t.currentTarget.activeDate),this._activeView="year",this.focusActiveCell()},it=async function(t){this._view instanceof H&&(this._view._suppressFocusHighlight=!1),this._activeDate=new Date(t.currentTarget.activeDate),await this.focusActiveCell(),this._view instanceof H&&(this._view._suppressFocusHighlight=!1)},rt=function(t){const e=new Date(this._activeDate);switch(t){case"month":for(e.setMonth(this._activeDate.getMonth()-1);e.getMonth()===this._activeDate.getMonth();)e.setDate(e.getDate()-1);break;case"year":e.setFullYear(this._activeDate.getFullYear()-1);break;case"multi-year":e.setDate(1),e.setFullYear(S(this._activeDate,this.minDate,this.maxDate)-1)}return e},nt=function(t){const e=new Date(this._activeDate);switch(t){case"month":for(e.setMonth(this._activeDate.getMonth()+1);e.getMonth()===this._activeDate.getMonth();)e.setDate(e.getDate()+1);break;case"year":e.setFullYear(this._activeDate.getFullYear()+1);break;case"multi-year":e.setDate(1),e.setFullYear(F(this._activeDate,this.minDate,this.maxDate)+1)}return e},ot.styles=i`:host { display: inline-block; vertical-align: top; width: fit-content; height: fit-content; } .base { display: flex; flex-direction: column; width: fit-content; overflow: hidden; padding: var(--m3e-calendar-padding, 0.5rem); background-color: var(--m3e-calendar-container-color); box-shadow: var(--m3e-calendar-container-elevation); border-radius: var(--m3e-calendar-container-shape); } .header { display: flex; align-items: center; --m3e-text-button-label-text-color: var( --m3e-calendar-period-button-text-color, ${g.color.onSurfaceVariant} ); --m3e-text-button-hover-label-text-color: var( --m3e-calendar-period-button-text-color, ${g.color.onSurfaceVariant} ); --m3e-text-button-focus-label-text-color: var( --m3e-calendar-period-button-text-color, ${g.color.onSurfaceVariant} ); --m3e-text-button-pressed-label-text-color: var( --m3e-calendar-period-button-text-color, ${g.color.onSurfaceVariant} ); } .spacer { flex: 1 1 auto; } svg { transition: transform ${g.motion.spring.fastEffects}; } svg.rotate { transform: rotate(-180deg); } .body { position: relative; } .view:not(.no-animate) { transition: ${s(`margin var(--m3e-calendar-slide-animation-duration, ${g.motion.duration.long2}) ${g.motion.easing.standard},\n visibility var(--m3e-calendar-slide-animation-duration, ${g.motion.duration.long2}) ${g.motion.easing.standard} allow-discrete`)}; } .view.before, .view.after { visibility: hidden; position: absolute; } .view.before { margin-inline-start: -100%; } .view.after { margin-inline-start: 100%; } .view:not(.before):not(.after) { visibility: visible; position: relative; left: 0; margin-inline-start: 0; } .row { opacity: 1; transform: translateY(0); } .row.multi-year { transition: ${s(`transform var(--m3e-calendar-slide-animation-duration, ${g.motion.duration.long2}) ${g.motion.easing.standard} allow-discrete,\n opacity var(--m3e-calendar-slide-animation-duration, ${g.motion.duration.long2}) ${g.motion.easing.standard} allow-discrete`)}; } .row:not(.multi-year) { transition: ${s(`opacity var(--m3e-calendar-slide-animation-duration, ${g.motion.duration.long2}) ${g.motion.easing.standard} allow-discrete`)}; } .body.month > .row:not(.month), .body.year > .row:not(.year), .body.multi-year > .row:not(.multi-year) { visibility: hidden; position: absolute; transform: translateY(-10%); opacity: 0; } .body.month > .row:not(.month) .view:not(.before):not(.after), .body.year > .row:not(.year) .view:not(.before):not(.after), .body.multi-year > .row:not(.multi-year) .view:not(.before):not(.after) { visibility: hidden; transition: none; } @media (prefers-reduced-motion) { .row:not(.multi-year), .row.multi-year, .view:not(.no-animate), svg { transition: none; } }`,t([d()],ot.prototype,"_today",void 0),t([d()],ot.prototype,"_activeView",void 0),t([d()],ot.prototype,"_activeDate",void 0),t([l(".active")],ot.prototype,"_view",void 0),t([l(".body")],ot.prototype,"_body",void 0),t([c({attribute:"start-view"})],ot.prototype,"startView",void 0),t([c({converter:u})],ot.prototype,"date",void 0),t([c({attribute:"start-at",converter:u})],ot.prototype,"startAt",void 0),t([c({attribute:"min-date",converter:u})],ot.prototype,"minDate",void 0),t([c({attribute:"max-date",converter:u})],ot.prototype,"maxDate",void 0),t([c({attribute:"range-start",converter:u})],ot.prototype,"rangeStart",void 0),t([c({attribute:"range-end",converter:u})],ot.prototype,"rangeEnd",void 0),t([c({attribute:!1})],ot.prototype,"blackoutDates",void 0),t([c({attribute:!1})],ot.prototype,"specialDates",void 0),t([c({attribute:"previous-month-label"})],ot.prototype,"previousMonthLabel",void 0),t([c({attribute:"previous-year-label"})],ot.prototype,"previousYearLabel",void 0),t([c({attribute:"previous-multi-year-label"})],ot.prototype,"previousMultiYearLabel",void 0),t([c({attribute:"next-month-label"})],ot.prototype,"nextMonthLabel",void 0),t([c({attribute:"next-year-label"})],ot.prototype,"nextYearLabel",void 0),t([c({attribute:"next-multi-year-label"})],ot.prototype,"nextMultiYearLabel",void 0),ot=t([p("m3e-calendar")],ot);export{E as CalendarViewElementBase,ot as M3eCalendarElement,H as M3eMonthViewElement,N as M3eMultiYearViewElement,Z as M3eYearViewElement};
43
43
  //# sourceMappingURL=calendar.min.js.map