@lekoala/date-picker 0.4.0 → 0.5.1

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 (39) hide show
  1. package/README.md +294 -265
  2. package/custom-elements.json +50 -0
  3. package/dist/date-picker.css +20 -15
  4. package/dist/date-picker.js +366 -149
  5. package/dist/date-picker.min.css +1 -1
  6. package/dist/date-picker.min.js +13 -13
  7. package/dist/date-picker.standalone.min.js +34 -29
  8. package/dist/types/control-classes.d.ts +40 -0
  9. package/dist/types/control-classes.d.ts.map +1 -0
  10. package/dist/types/date-calendar.d.ts +35 -43
  11. package/dist/types/date-calendar.d.ts.map +1 -1
  12. package/dist/types/date-picker.d.ts +44 -53
  13. package/dist/types/date-picker.d.ts.map +1 -1
  14. package/dist/types/date.d.ts +4 -2
  15. package/dist/types/date.d.ts.map +1 -1
  16. package/dist/types/index.d.ts +1 -0
  17. package/dist/types/index.d.ts.map +1 -1
  18. package/dist/types/intl.d.ts.map +1 -1
  19. package/dist/types/messages.d.ts +2 -0
  20. package/dist/types/messages.d.ts.map +1 -1
  21. package/dist/types/source.d.ts +1 -0
  22. package/dist/types/source.d.ts.map +1 -1
  23. package/dist/types/upgrade-properties.d.ts +8 -0
  24. package/dist/types/upgrade-properties.d.ts.map +1 -0
  25. package/docs/API.md +442 -408
  26. package/docs/DECISIONS.md +74 -62
  27. package/docs/USE_CASES.md +156 -144
  28. package/package.json +3 -3
  29. package/src/control-classes.js +80 -0
  30. package/src/date-calendar.js +124 -27
  31. package/src/date-field.js +1 -1
  32. package/src/date-picker.css +20 -15
  33. package/src/date-picker.js +133 -74
  34. package/src/date.js +8 -3
  35. package/src/index.js +1 -0
  36. package/src/intl.js +39 -10
  37. package/src/messages.js +12 -0
  38. package/src/source.js +14 -4
  39. package/src/upgrade-properties.js +14 -0
@@ -1 +1 @@
1
- :where(date-calendar,date-picker){--dp-bg:#fff;--dp-fg:#1f2328;--dp-muted:color-mix(in srgb,var(--dp-fg)58%,var(--dp-bg));--dp-border:color-mix(in srgb,var(--dp-fg)16%,var(--dp-bg));--dp-hover:color-mix(in srgb,var(--dp-fg)5%,var(--dp-bg));--dp-accent:#2563eb;--dp-accent-fg:#fff;--dp-focus:var(--dp-accent);--dp-focus-width:2px;--dp-radius:.5rem;--dp-day-size:2.75rem;--dp-gap:.375rem;--dp-header-control-size:2.25rem;--dp-header-block-gap:.75rem;--dp-row-gap:.375rem;--dp-picker-button-size:2.5rem;--dp-year-inline-size:5.5rem;--dp-day-radius:calc(var(--dp-radius)*.75);color:var(--dp-fg);font:inherit}.dp-visually-hidden{position:absolute!important;overflow:hidden!important;clip:rect(0 0 0 0)!important;white-space:nowrap!important;border:0!important;block-size:1px!important;inline-size:1px!important;margin:-1px!important;padding:0!important}date-calendar{display:block;inline-size:max-content;max-inline-size:100%}.dp-calendar-shell{inline-size:max-content;max-inline-size:100%}.dp-calendar-header{display:grid;grid-template-columns:minmax(0,1fr)auto auto auto;align-items:stretch;gap:var(--dp-gap);margin-block-end:var(--dp-header-block-gap)}date-calendar[data-year-first] .dp-calendar-header{grid-template-columns:auto minmax(0,1fr)auto auto}.dp-calendar-header :where(button,select,input){min-block-size:var(--dp-header-control-size);box-sizing:border-box;border:1px solid var(--dp-border);border-radius:calc(var(--dp-radius)*.75);background:var(--dp-bg);color:var(--dp-fg);font:inherit;padding-block-start:.15rem;padding-block-end:.15rem;line-height:1.2}.dp-calendar-header input{min-inline-size:0;padding-inline-start:.45rem;padding-inline-end:.45rem}.dp-month-select{overflow:hidden;text-overflow:ellipsis;appearance:none;background-image:linear-gradient(45deg,#0000 50%,currentColor 50%),linear-gradient(135deg,currentColor 50%,#0000 50%);background-position:calc(100% - .9rem),calc(100% - .65rem);background-repeat:no-repeat;background-size:.3rem .3rem;inline-size:100%;min-inline-size:0;padding-inline-start:.45rem;padding-inline-end:2rem}[dir=rtl] .dp-month-select,html[dir=rtl] .dp-month-select{background-position:.9rem,.65rem}.dp-year-input{inline-size:var(--dp-year-inline-size)}.dp-nav{display:grid;inline-size:var(--dp-header-control-size);cursor:pointer;place-items: center;padding:0;font-size:1.35rem;line-height:1}.dp-nav svg{display:block;pointer-events:none;block-size:1rem;inline-size:1rem}.dp-picker-button:disabled{cursor:not-allowed;opacity:.45}.dp-calendar-header :where(button,select,input):disabled{cursor:not-allowed;opacity:.45}.dp-nav:hover:not(:disabled){background:var(--dp-hover)}.dp-calendar-header :where(button,select,input):focus-visible{outline:var(--dp-focus-width)solid var(--dp-focus);outline-offset:calc(var(--dp-focus-width)*-1)}date-picker>input:not([type=hidden]):focus-visible{outline:var(--dp-focus-width)solid var(--dp-focus);outline-offset:calc(var(--dp-focus-width)*-1)}.dp-day:focus-visible{outline:var(--dp-focus-width)solid var(--dp-focus);outline-offset:calc(var(--dp-focus-width)*-1)}.dp-day:hover:not([data-disabled=true]):not([data-selected=true]):not([data-range-start=true]):not([data-range-end=true]){background:var(--dp-hover)}.dp-grid{border-collapse:separate;border-spacing:0 var(--dp-row-gap);table-layout:fixed}.dp-grid :where(th,td){box-sizing:border-box;inline-size:var(--dp-day-size);block-size:var(--dp-day-size);text-align:center;padding:0}.dp-grid thead th{color:var(--dp-muted);block-size:1.5rem;font-size:.72rem;font-weight:500}.dp-day{position:relative;border-radius:var(--dp-day-radius);cursor:pointer;outline:none;vertical-align:middle;border:1px solid #0000;font-size:.875rem}.dp-day:-webkit-any([data-selected=true],[data-range-start=true],[data-range-end=true]):focus-visible{outline-color:var(--dp-accent-fg)}.dp-day:-moz-any([data-selected=true],[data-range-start=true],[data-range-end=true]):focus-visible{outline-color:var(--dp-accent-fg)}.dp-day:is([data-selected=true],[data-range-start=true],[data-range-end=true]):focus-visible{outline-color:var(--dp-accent-fg)}.dp-day[data-outside-month=true]{color:var(--dp-muted)}.dp-day[data-selected=true]{background:var(--dp-accent);color:var(--dp-accent-fg)}.dp-day[data-today=true]:not(:-webkit-any([data-selected=true],[data-range-start=true],[data-range-end=true])){border-color:var(--dp-accent)}.dp-day[data-today=true]:not(:-moz-any([data-selected=true],[data-range-start=true],[data-range-end=true])){border-color:var(--dp-accent)}.dp-day[data-today=true]:not(:is([data-selected=true],[data-range-start=true],[data-range-end=true])){border-color:var(--dp-accent)}.dp-day[data-disabled=true]{cursor:not-allowed;opacity:.42}.dp-day[data-range-start=true],.dp-day[data-range-end=true]{background:var(--dp-accent);color:var(--dp-accent-fg)}.dp-day[data-in-range=true]{background:color-mix(in srgb,var(--dp-accent)18%,var(--dp-bg));border-radius:0}.dp-day[data-range-start=true]:has(+[data-in-range=true],+[data-range-end=true]):not(:-webkit-any(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))){border-top-right-radius:0;border-bottom-right-radius:0}.dp-day[data-range-start=true]:has(+[data-in-range=true],+[data-range-end=true]):not(:-moz-any(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))){border-top-right-radius:0;border-bottom-right-radius:0}.dp-day[data-range-start=true]:has(+[data-in-range=true],+[data-range-end=true]):not(:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))){border-top-right-radius:0;border-bottom-right-radius:0}.dp-day[data-range-start=true]:has(+[data-in-range=true],+[data-range-end=true]):-webkit-any(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-top-left-radius:0;border-bottom-left-radius:0}.dp-day[data-range-start=true]:has(+[data-in-range=true],+[data-range-end=true]):-moz-any(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-top-left-radius:0;border-bottom-left-radius:0}.dp-day[data-range-start=true]:has(+[data-in-range=true],+[data-range-end=true]):is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-top-left-radius:0;border-bottom-left-radius:0}.dp-day:-webkit-any([data-in-range=true],[data-range-start=true])+.dp-day[data-range-end=true]:not(:-webkit-any(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))){border-top-left-radius:0;border-bottom-left-radius:0}.dp-day:-moz-any([data-in-range=true],[data-range-start=true])+.dp-day[data-range-end=true]:not(:-moz-any(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))){border-top-left-radius:0;border-bottom-left-radius:0}.dp-day:is([data-in-range=true],[data-range-start=true])+.dp-day[data-range-end=true]:not(:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))){border-top-left-radius:0;border-bottom-left-radius:0}.dp-day:-webkit-any([data-in-range=true],[data-range-start=true])+.dp-day[data-range-end=true]:-webkit-any(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-top-right-radius:0;border-bottom-right-radius:0}.dp-day:-moz-any([data-in-range=true],[data-range-start=true])+.dp-day[data-range-end=true]:-moz-any(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-top-right-radius:0;border-bottom-right-radius:0}.dp-day:is([data-in-range=true],[data-range-start=true])+.dp-day[data-range-end=true]:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-top-right-radius:0;border-bottom-right-radius:0}.dp-day[data-in-range=true]:first-of-type:not(:-webkit-any(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))){border-top-left-radius:var(--dp-day-radius);border-bottom-left-radius:var(--dp-day-radius)}.dp-day[data-in-range=true]:first-of-type:not(:-moz-any(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))){border-top-left-radius:var(--dp-day-radius);border-bottom-left-radius:var(--dp-day-radius)}.dp-day[data-in-range=true]:first-of-type:not(:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))){border-top-left-radius:var(--dp-day-radius);border-bottom-left-radius:var(--dp-day-radius)}.dp-day[data-in-range=true]:first-of-type:-webkit-any(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-top-right-radius:var(--dp-day-radius);border-bottom-right-radius:var(--dp-day-radius)}.dp-day[data-in-range=true]:first-of-type:-moz-any(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-top-right-radius:var(--dp-day-radius);border-bottom-right-radius:var(--dp-day-radius)}.dp-day[data-in-range=true]:first-of-type:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-top-right-radius:var(--dp-day-radius);border-bottom-right-radius:var(--dp-day-radius)}.dp-day[data-in-range=true]:last-of-type:not(:-webkit-any(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))){border-top-right-radius:var(--dp-day-radius);border-bottom-right-radius:var(--dp-day-radius)}.dp-day[data-in-range=true]:last-of-type:not(:-moz-any(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))){border-top-right-radius:var(--dp-day-radius);border-bottom-right-radius:var(--dp-day-radius)}.dp-day[data-in-range=true]:last-of-type:not(:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))){border-top-right-radius:var(--dp-day-radius);border-bottom-right-radius:var(--dp-day-radius)}.dp-day[data-in-range=true]:last-of-type:-webkit-any(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-top-left-radius:var(--dp-day-radius);border-bottom-left-radius:var(--dp-day-radius)}.dp-day[data-in-range=true]:last-of-type:-moz-any(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-top-left-radius:var(--dp-day-radius);border-bottom-left-radius:var(--dp-day-radius)}.dp-day[data-in-range=true]:last-of-type:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-top-left-radius:var(--dp-day-radius);border-bottom-left-radius:var(--dp-day-radius)}[data-range-preview] .dp-day:-webkit-any([data-range-start=true],[data-range-end=true]){background:color-mix(in srgb,var(--dp-accent)58%,var(--dp-bg))}[data-range-preview] .dp-day:-moz-any([data-range-start=true],[data-range-end=true]){background:color-mix(in srgb,var(--dp-accent)58%,var(--dp-bg))}[data-range-preview] .dp-day:is([data-range-start=true],[data-range-end=true]){background:color-mix(in srgb,var(--dp-accent)58%,var(--dp-bg))}[data-range-preview] .dp-day[data-in-range=true]{background:color-mix(in srgb,var(--dp-accent)11%,var(--dp-bg))}[data-range-drag] .dp-day:-webkit-any([data-range-start=true],[data-range-end=true]){cursor:grab}[data-range-drag] .dp-day:-moz-any([data-range-start=true],[data-range-end=true]){cursor:grab}[data-range-drag] .dp-day:is([data-range-start=true],[data-range-end=true]){cursor:grab}[data-range-drag=active],[data-range-drag=active] .dp-day{cursor:grabbing}.dp-day-number{display:block;font-variant-numeric:tabular-nums}.dp-day[data-disabled=true]:focus-visible{opacity:1}.dp-day[data-disabled=true]:focus-visible .dp-day-number{color:var(--dp-muted)}.dp-day-extra{position:absolute;display:flex;pointer-events:none;justify-content:center;gap:2px;min-block-size:.35rem;font-size:.55rem;line-height:1;bottom:1px;left:2px;right:2px}.dp-week-number,.dp-week-heading{color:var(--dp-muted);font-size:.65rem;font-weight:500;inline-size:1.6rem!important}date-picker{position:relative;display:inline-grid;grid-template-columns:minmax(0,1fr);align-items:stretch;max-inline-size:100%}date-picker>input:not([type=hidden]){min-inline-size:0}date-picker>input:not([type=hidden]):not([type=time]){grid-column:1;grid-row:1;box-sizing:border-box;inline-size:100%;padding-inline-end:calc(var(--dp-picker-button-size) + .5rem)}.dp-picker-button{display:grid;grid-column:1;grid-row:1;inline-size:var(--dp-picker-button-size);color:var(--dp-fg);font:inherit;cursor:pointer;background:0 0;border:0;place-self:stretch end;place-items: center;min-inline-size:0}.dp-picker-button:focus-visible{outline:var(--dp-focus-width)solid var(--dp-focus);outline-offset:-5px;border-radius:var(--dp-radius)}date-picker:has(>[data-time-start],>[data-time-end]){grid-template-columns:minmax(0,1fr)minmax(0,1fr);column-gap:var(--dp-gap)}date-picker:has(>[data-time-start]):has(>[data-time-end]){grid-template-columns:minmax(0,1fr)minmax(0,1fr)minmax(0,1fr)}date-picker>input[data-time-start]{grid-column:2;grid-row:1;min-inline-size:0}date-picker>input[data-time-end]{grid-column:3;grid-row:1;min-inline-size:0}date-picker[range]{row-gap:var(--dp-gap)}date-picker[range]>input[data-range-start]{grid-row:1}date-picker[range]>input[data-range-end]{grid-row:2}date-picker[range]>.dp-picker-button[data-endpoint=start]{grid-row:1}date-picker[range]>.dp-picker-button[data-endpoint=end]{grid-row:2}.dp-picker-panel[popover]{position:fixed;border:1px solid var(--dp-border);border-radius:var(--dp-radius);background:var(--dp-bg);color:var(--dp-fg);max-block-size:var(--available-height,90svh);overflow:auto;max-inline-size:calc(100vi - 1rem);margin:0;padding:.875rem 1rem;inset:auto;box-shadow:0 .5rem 1.5rem #0f172a1f}.dp-picker-panel:not(:popover-open){display:none}@media (forced-colors:active){.dp-month-select,[dir=rtl] .dp-month-select{appearance:auto;background-image:none;padding-inline-start:.45rem;padding-inline-end:.45rem}.dp-day:-webkit-any([data-selected=true],[data-range-start=true],[data-range-end=true]){color:canvastext;background-color:canvas;border:2px solid highlight}.dp-day:-moz-any([data-selected=true],[data-range-start=true],[data-range-end=true]){color:canvastext;background-color:canvas;border:2px solid highlight}.dp-day:is([data-selected=true],[data-range-start=true],[data-range-end=true]){color:canvastext;background-color:canvas;border:2px solid highlight}.dp-day[data-in-range=true]{color:canvastext}.dp-day[data-in-range=true]:after{content:"";position:absolute;background-color:highlight;block-size:1px;bottom:4px;left:3px;right:3px}.dp-day[data-today=true]{border-color:highlight}.dp-day-extra{color:canvastext;forced-color-adjust:none}}
1
+ :where(date-calendar,date-picker){--dp-bg:#fff;--dp-fg:#1f2328;--dp-muted:color-mix(in srgb,var(--dp-fg)58%,var(--dp-bg));--dp-border:color-mix(in srgb,var(--dp-fg)16%,var(--dp-bg));--dp-hover:color-mix(in srgb,var(--dp-fg)5%,var(--dp-bg));--dp-accent:#2563eb;--dp-accent-fg:#fff;--dp-focus:var(--dp-accent);--dp-focus-width:2px;--dp-radius:.5rem;--dp-day-size:2.75rem;--dp-gap:.375rem;--dp-header-control-size:2.25rem;--dp-header-block-gap:.75rem;--dp-row-gap:.375rem;--dp-picker-button-size:2.5rem;--dp-year-inline-size:5.5rem;--dp-day-radius:calc(var(--dp-radius)*.75);color:var(--dp-fg);font:inherit}.dp-visually-hidden{position:absolute!important;overflow:hidden!important;clip:rect(0 0 0 0)!important;white-space:nowrap!important;border:0!important;block-size:1px!important;inline-size:1px!important;margin:-1px!important;padding:0!important}date-calendar{display:block;inline-size:max-content;max-inline-size:100%}.dp-calendar-shell{inline-size:max-content;max-inline-size:100%}.dp-calendar-header{display:grid;grid-template-columns:minmax(0,1fr)var(--dp-year-inline-size)auto auto;align-items:stretch;gap:var(--dp-gap);margin-block-end:var(--dp-header-block-gap)}date-calendar[data-year-first] .dp-calendar-header{grid-template-columns:var(--dp-year-inline-size)minmax(0,1fr)auto auto}.dp-calendar-header :where(button,select,input){box-sizing:border-box;min-inline-size:0}.dp-calendar-header .dp-skin{min-block-size:var(--dp-header-control-size);border:1px solid var(--dp-border);border-radius:calc(var(--dp-radius)*.75);background:var(--dp-bg);color:var(--dp-fg);font:inherit;padding-block-start:.15rem;padding-block-end:.15rem;line-height:1.2}.dp-calendar-header input.dp-skin{padding-inline-start:.45rem;padding-inline-end:.45rem}.dp-month-select{overflow:hidden;text-overflow:ellipsis;inline-size:100%}.dp-month-select.dp-skin{appearance:none;background-image:linear-gradient(45deg,#0000 50%,currentColor 50%),linear-gradient(135deg,currentColor 50%,#0000 50%);background-position:calc(100% - .9rem),calc(100% - .65rem);background-repeat:no-repeat;background-size:.3rem .3rem;padding-inline-start:.45rem;padding-inline-end:2rem}[dir=rtl] .dp-month-select.dp-skin,html[dir=rtl] .dp-month-select.dp-skin{background-position:.9rem,.65rem}.dp-year-input{inline-size:100%}.dp-nav.dp-skin{display:grid;inline-size:var(--dp-header-control-size);cursor:pointer;place-items: center;padding:0;font-size:1.35rem;line-height:1}.dp-nav svg{display:block;pointer-events:none;block-size:1rem;inline-size:1rem}.dp-calendar-header .dp-skin:disabled,.dp-picker-button:disabled{cursor:not-allowed;opacity:.45}.dp-nav.dp-skin:hover:not(:disabled){background:var(--dp-hover)}.dp-calendar-header .dp-skin:focus-visible{outline:var(--dp-focus-width)solid var(--dp-focus);outline-offset:calc(var(--dp-focus-width)*-1)}date-picker>input:not([type=hidden]):focus-visible{outline:var(--dp-focus-width)solid var(--dp-focus);outline-offset:calc(var(--dp-focus-width)*-1)}.dp-day:focus-visible{outline:var(--dp-focus-width)solid var(--dp-focus);outline-offset:calc(var(--dp-focus-width)*-1)}.dp-day:hover:not([data-disabled=true]):not([data-selected=true]):not([data-range-start=true]):not([data-range-end=true]){background:var(--dp-hover)}.dp-grid{border-collapse:separate;border-spacing:0 var(--dp-row-gap);table-layout:fixed}.dp-grid :where(th,td){box-sizing:border-box;inline-size:var(--dp-day-size);block-size:var(--dp-day-size);text-align:center;padding:0}.dp-grid thead th{color:var(--dp-muted);block-size:1.5rem;font-size:.72rem;font-weight:500}.dp-day{position:relative;border-radius:var(--dp-day-radius);cursor:pointer;outline:none;vertical-align:middle;border:1px solid #0000;font-size:.875rem}.dp-day:-webkit-any([data-selected=true],[data-range-start=true],[data-range-end=true]):focus-visible{outline-color:var(--dp-accent-fg)}.dp-day:-moz-any([data-selected=true],[data-range-start=true],[data-range-end=true]):focus-visible{outline-color:var(--dp-accent-fg)}.dp-day:is([data-selected=true],[data-range-start=true],[data-range-end=true]):focus-visible{outline-color:var(--dp-accent-fg)}.dp-day[data-outside-month=true]{color:var(--dp-muted)}.dp-day[data-selected=true]{background:var(--dp-accent);color:var(--dp-accent-fg)}.dp-day[data-today=true]:not(:-webkit-any([data-selected=true],[data-range-start=true],[data-range-end=true])){border-color:var(--dp-accent)}.dp-day[data-today=true]:not(:-moz-any([data-selected=true],[data-range-start=true],[data-range-end=true])){border-color:var(--dp-accent)}.dp-day[data-today=true]:not(:is([data-selected=true],[data-range-start=true],[data-range-end=true])){border-color:var(--dp-accent)}.dp-day[data-disabled=true]{cursor:not-allowed;opacity:.42}.dp-day[data-range-start=true],.dp-day[data-range-end=true]{background:var(--dp-accent);color:var(--dp-accent-fg)}.dp-day[data-in-range=true]{background:color-mix(in srgb,var(--dp-accent)18%,var(--dp-bg));border-radius:0}.dp-day[data-range-start=true]:has(+[data-in-range=true],+[data-range-end=true]):not(:-webkit-any(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))){border-top-right-radius:0;border-bottom-right-radius:0}.dp-day[data-range-start=true]:has(+[data-in-range=true],+[data-range-end=true]):not(:-moz-any(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))){border-top-right-radius:0;border-bottom-right-radius:0}.dp-day[data-range-start=true]:has(+[data-in-range=true],+[data-range-end=true]):not(:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))){border-top-right-radius:0;border-bottom-right-radius:0}.dp-day[data-range-start=true]:has(+[data-in-range=true],+[data-range-end=true]):-webkit-any(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-top-left-radius:0;border-bottom-left-radius:0}.dp-day[data-range-start=true]:has(+[data-in-range=true],+[data-range-end=true]):-moz-any(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-top-left-radius:0;border-bottom-left-radius:0}.dp-day[data-range-start=true]:has(+[data-in-range=true],+[data-range-end=true]):is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-top-left-radius:0;border-bottom-left-radius:0}.dp-day:-webkit-any([data-in-range=true],[data-range-start=true])+.dp-day[data-range-end=true]:not(:-webkit-any(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))){border-top-left-radius:0;border-bottom-left-radius:0}.dp-day:-moz-any([data-in-range=true],[data-range-start=true])+.dp-day[data-range-end=true]:not(:-moz-any(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))){border-top-left-radius:0;border-bottom-left-radius:0}.dp-day:is([data-in-range=true],[data-range-start=true])+.dp-day[data-range-end=true]:not(:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))){border-top-left-radius:0;border-bottom-left-radius:0}.dp-day:-webkit-any([data-in-range=true],[data-range-start=true])+.dp-day[data-range-end=true]:-webkit-any(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-top-right-radius:0;border-bottom-right-radius:0}.dp-day:-moz-any([data-in-range=true],[data-range-start=true])+.dp-day[data-range-end=true]:-moz-any(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-top-right-radius:0;border-bottom-right-radius:0}.dp-day:is([data-in-range=true],[data-range-start=true])+.dp-day[data-range-end=true]:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-top-right-radius:0;border-bottom-right-radius:0}.dp-day[data-in-range=true]:first-of-type:not(:-webkit-any(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))){border-top-left-radius:var(--dp-day-radius);border-bottom-left-radius:var(--dp-day-radius)}.dp-day[data-in-range=true]:first-of-type:not(:-moz-any(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))){border-top-left-radius:var(--dp-day-radius);border-bottom-left-radius:var(--dp-day-radius)}.dp-day[data-in-range=true]:first-of-type:not(:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))){border-top-left-radius:var(--dp-day-radius);border-bottom-left-radius:var(--dp-day-radius)}.dp-day[data-in-range=true]:first-of-type:-webkit-any(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-top-right-radius:var(--dp-day-radius);border-bottom-right-radius:var(--dp-day-radius)}.dp-day[data-in-range=true]:first-of-type:-moz-any(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-top-right-radius:var(--dp-day-radius);border-bottom-right-radius:var(--dp-day-radius)}.dp-day[data-in-range=true]:first-of-type:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-top-right-radius:var(--dp-day-radius);border-bottom-right-radius:var(--dp-day-radius)}.dp-day[data-in-range=true]:last-of-type:not(:-webkit-any(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))){border-top-right-radius:var(--dp-day-radius);border-bottom-right-radius:var(--dp-day-radius)}.dp-day[data-in-range=true]:last-of-type:not(:-moz-any(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))){border-top-right-radius:var(--dp-day-radius);border-bottom-right-radius:var(--dp-day-radius)}.dp-day[data-in-range=true]:last-of-type:not(:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))){border-top-right-radius:var(--dp-day-radius);border-bottom-right-radius:var(--dp-day-radius)}.dp-day[data-in-range=true]:last-of-type:-webkit-any(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-top-left-radius:var(--dp-day-radius);border-bottom-left-radius:var(--dp-day-radius)}.dp-day[data-in-range=true]:last-of-type:-moz-any(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-top-left-radius:var(--dp-day-radius);border-bottom-left-radius:var(--dp-day-radius)}.dp-day[data-in-range=true]:last-of-type:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-top-left-radius:var(--dp-day-radius);border-bottom-left-radius:var(--dp-day-radius)}[data-range-preview] .dp-day:-webkit-any([data-range-start=true],[data-range-end=true]){background:color-mix(in srgb,var(--dp-accent)58%,var(--dp-bg))}[data-range-preview] .dp-day:-moz-any([data-range-start=true],[data-range-end=true]){background:color-mix(in srgb,var(--dp-accent)58%,var(--dp-bg))}[data-range-preview] .dp-day:is([data-range-start=true],[data-range-end=true]){background:color-mix(in srgb,var(--dp-accent)58%,var(--dp-bg))}[data-range-preview] .dp-day[data-in-range=true]{background:color-mix(in srgb,var(--dp-accent)11%,var(--dp-bg))}[data-range-drag] .dp-day:-webkit-any([data-range-start=true],[data-range-end=true]){cursor:grab}[data-range-drag] .dp-day:-moz-any([data-range-start=true],[data-range-end=true]){cursor:grab}[data-range-drag] .dp-day:is([data-range-start=true],[data-range-end=true]){cursor:grab}[data-range-drag=active],[data-range-drag=active] .dp-day{cursor:grabbing}.dp-day-number{display:block;font-variant-numeric:tabular-nums}.dp-day[data-disabled=true]:focus-visible{opacity:1}.dp-day[data-disabled=true]:focus-visible .dp-day-number{color:var(--dp-muted)}.dp-day-extra{position:absolute;display:flex;pointer-events:none;justify-content:center;gap:2px;min-block-size:.35rem;font-size:.55rem;line-height:1;bottom:1px;left:2px;right:2px}.dp-week-number,.dp-week-heading{color:var(--dp-muted);font-size:.65rem;font-weight:500;inline-size:1.6rem!important}date-picker{position:relative;display:inline-grid;grid-template-columns:minmax(0,1fr);align-items:stretch;max-inline-size:100%}date-picker>input:not([type=hidden]){min-inline-size:0}date-picker>input:not([type=hidden]):not([type=time]){grid-column:1;grid-row:1;box-sizing:border-box;inline-size:100%;padding-inline-end:calc(var(--dp-picker-button-size) + .5rem)}.dp-picker-button{display:grid;grid-column:1;grid-row:1;inline-size:var(--dp-picker-button-size);color:var(--dp-fg);font:inherit;cursor:pointer;background:0 0;border:0;place-self:stretch end;place-items: center;min-inline-size:0}.dp-picker-button:focus-visible{outline:var(--dp-focus-width)solid var(--dp-focus);outline-offset:-5px;border-radius:var(--dp-radius)}date-picker:has(>[data-time-start],>[data-time-end]){grid-template-columns:minmax(0,1fr)minmax(0,1fr);column-gap:var(--dp-gap)}date-picker:has(>[data-time-start]):has(>[data-time-end]){grid-template-columns:minmax(0,1fr)minmax(0,1fr)minmax(0,1fr)}date-picker>input[data-time-start]{grid-column:2;grid-row:1;min-inline-size:0}date-picker>input[data-time-end]{grid-column:3;grid-row:1;min-inline-size:0}date-picker[range]{row-gap:var(--dp-gap)}date-picker[range]>input[data-range-start]{grid-row:1}date-picker[range]>input[data-range-end]{grid-row:2}date-picker[range]>.dp-picker-button[data-endpoint=start]{grid-row:1}date-picker[range]>.dp-picker-button[data-endpoint=end]{grid-row:2}.dp-picker-panel[popover]{position:fixed;border:1px solid var(--dp-border);border-radius:var(--dp-radius);background:var(--dp-bg);color:var(--dp-fg);max-block-size:var(--available-height,90svh);overflow:auto;max-inline-size:calc(100vi - 1rem);margin:0;padding:.875rem 1rem;inset:auto;box-shadow:0 .5rem 1.5rem #0f172a1f}.dp-picker-panel:not(:popover-open){display:none}@media (forced-colors:active){.dp-month-select.dp-skin,[dir=rtl] .dp-month-select.dp-skin{appearance:auto;background-image:none;padding-inline-start:.45rem;padding-inline-end:.45rem}.dp-day:-webkit-any([data-selected=true],[data-range-start=true],[data-range-end=true]){color:canvastext;background-color:canvas;border:2px solid highlight}.dp-day:-moz-any([data-selected=true],[data-range-start=true],[data-range-end=true]){color:canvastext;background-color:canvas;border:2px solid highlight}.dp-day:is([data-selected=true],[data-range-start=true],[data-range-end=true]){color:canvastext;background-color:canvas;border:2px solid highlight}.dp-day[data-in-range=true]{color:canvastext}.dp-day[data-in-range=true]:after{content:"";position:absolute;background-color:highlight;block-size:1px;bottom:4px;left:3px;right:3px}.dp-day[data-today=true]{border-color:highlight}.dp-day-extra{color:canvastext;forced-color-adjust:none}}
@@ -1,17 +1,17 @@
1
- /*** @lekoala/date-picker v0.4.0 - https://github.com/lekoala/date-picker ***/
2
- (()=>{var{defineProperty:ot,getOwnPropertyNames:zt,getOwnPropertyDescriptor:qt}=Object,Xt=Object.prototype.hasOwnProperty;function Zt(t){return this[t]}var Jt=(t)=>{var e=(bt??=new WeakMap).get(t),i;if(e)return e;if(e=ot({},"__esModule",{value:!0}),t&&typeof t==="object"||typeof t==="function"){for(var s of zt(t))if(!Xt.call(e,s))ot(e,s,{get:Zt.bind(t,s),enumerable:!(i=qt(t,s))||i.enumerable})}return bt.set(t,e),e},bt;var Qt=(t)=>t;function te(t,e){this[t]=Qt.bind(null,e)}var ee=(t,e)=>{for(var i in e)ot(t,i,{get:e[i],enumerable:!0,configurable:!0,set:te.bind(e,i)})};var Ie={};ee(Ie,{defineDatePicker:()=>Gt});var ie=/^(\d{4})-(\d{2})-(\d{2})$/,se=/^(\d{4})-(\d{2})$/;function ne(t){return t%4===0&&(t%100!==0||t%400===0)}function X(t,e){if(e===2)return ne(t)?29:28;return[4,6,9,11].includes(e)?30:31}function F(t){let e=ie.exec(String(t||""));if(!e)return null;let i=Number(e[1]),s=Number(e[2]),n=Number(e[3]);if(i<1||i>9999||s<1||s>12)return null;if(n<1||n>X(i,s))return null;return{year:i,month:s,day:n}}function c(t){return F(t)!==null}function f(t){let e=String(t||""),i=se.exec(e);if(i){let n=Number(i[2]);if(n>=1&&n<=12)return`${i[1]}-${String(n).padStart(2,"0")}`}let s=F(e);if(!s)throw TypeError(`Invalid civil date/month: ${t}`);return`${String(s.year).padStart(4,"0")}-${String(s.month).padStart(2,"0")}`}function N(t,e,i){let s=`${String(t).padStart(4,"0")}-${String(e).padStart(2,"0")}-${String(i).padStart(2,"0")}`;if(!c(s))throw TypeError(`Invalid civil date: ${s}`);return s}function P(t){let e=new Date(0);return e.setUTCHours(12,0,0,0),e.setUTCFullYear(t.year,t.month-1,t.day),e}function re(t){return N(t.getUTCFullYear(),t.getUTCMonth()+1,t.getUTCDate())}function H(t){let e=F(t);if(!e)throw TypeError(`Invalid civil date: ${t}`);return P(e)}function g(t,e){if(!c(t)||!c(e))throw TypeError("compareDates() expects YYYY-MM-DD values");return t===e?0:t<e?-1:1}function M(t,e){let i=F(t);if(!i||!Number.isInteger(e))throw TypeError("addDays() expects a date and integer amount");let s=P(i);return s.setUTCDate(s.getUTCDate()+e),re(s)}function st(t,e){let i=F(t);if(!i||!Number.isInteger(e))throw TypeError("addMonths() expects a date and integer amount");let s=i.year*12+(i.month-1)+e,n=Math.floor(s/12),a=(s%12+12)%12+1,o=Math.min(i.day,X(n,a));return N(n,a,o)}function wt(t,e){let i=F(t);if(!i||!Number.isInteger(e))throw TypeError("addYears() expects a date and integer amount");let s=i.year+e,n=Math.min(i.day,X(s,i.month));return N(s,i.month,n)}function q(t,e){let i=`${f(t)}-01`;return f(st(i,e))}function ae(t){return`${f(t)}-01`}function dt(t){let e=F(`${f(t)}-01`);if(!e)throw TypeError(`Invalid month: ${t}`);return N(e.year,e.month,X(e.year,e.month))}function oe(t){let e=F(t);if(!e)throw TypeError(`Invalid civil date: ${t}`);return P(e).getUTCDay()}function U(t){if(t===7)return 0;if(!Number.isInteger(t)||t<0||t>6)throw RangeError("firstDay must be 0..6 (Sunday=0, 7 accepted as Sunday alias)");return t}function nt(t,e=1){let i=(oe(t)-U(e)+7)%7;return M(t,-i)}function lt(t,e=1){return M(nt(t,e),6)}function Dt(t,e={}){let i=e.firstDay??1,s=nt(ae(t),i),n=lt(dt(t),i),r=[],a=s;for(;;){let o=[];for(let l=0;l<7;l++)o.push(M(a,l));if(r.push(o),g(o[6],n)>=0)break;a=M(a,7)}return r}function vt(t,e,i){let s=P({year:1,month:1,day:1});return Math.round((P({year:t,month:e,day:i}).getTime()-s.getTime())/86400000)}function Z(t,e=1){let i=U(e),s=vt(9999,12,31),n=f(t);for(;;){let r=F(`${n}-01`);if(!r)throw TypeError(`Invalid civil date/month: ${t}`);let a=vt(r.year,r.month,1),o=(P(r).getUTCDay()-i+7)%7;if(a-o<0){n=q(n,1);continue}let l=X(r.year,r.month),d={year:r.year,month:r.month,day:l},h=a+l-1,x=(P(d).getUTCDay()-i+7)%7;if(h-x+6>s){n=q(n,-1);continue}return n}}function Et(t,e="",i=""){if(!c(t))throw TypeError(`Invalid civil date: ${t}`);if(e&&g(t,e)<0)return e;if(i&&g(t,i)>0)return i;return t}function L(){let t=new Date;return N(t.getFullYear(),t.getMonth()+1,t.getDate())}function xt(t){let e=F(t);if(!e)throw TypeError(`Invalid civil date: ${t}`);let i=P(e),s=i.getUTCDay()||7;i.setUTCDate(i.getUTCDate()+4-s);let n=new Date(0);return n.setUTCHours(12,0,0,0),n.setUTCFullYear(i.getUTCFullYear(),0,1),Math.ceil(((i.getTime()-n.getTime())/86400000+1)/7)}class ct{constructor(t={}){let e=L();this.firstDay=U(t.firstDay??1),this.value=t.value&&c(t.value)?t.value:"",this.focused=t.focused&&c(t.focused)?t.focused:this.value||e,this.display=t.display?f(t.display):f(this.focused)}setValue(t){if(t&&!c(t))throw TypeError(`Invalid value: ${t}`);return this.value=t||"",this.value}setDisplay(t){let e=f(t),i=Number(this.focused.slice(8,10))||1,s=st(`${e}-01`,0),n=M(s,Math.max(0,i-1));return this.focused=f(n)===e?n:M(`${q(e,1)}-01`,-1),this.display=e,this.display}setFocused(t,e={}){if(!c(t))throw TypeError(`Invalid focused date: ${t}`);if(this.focused=t,e.follow!==!1)this.display=f(t);return this.focused}moveFocusDays(t){return this.setFocused(M(this.focused,t))}moveFocusMonths(t){return this.setFocused(st(this.focused,t))}moveFocusYears(t){return this.setFocused(wt(this.focused,t))}focusWeekStart(){return this.setFocused(nt(this.focused,this.firstDay))}focusWeekEnd(){return this.setFocused(lt(this.focused,this.firstDay))}navigateMonth(t){let e=q(this.display,t);return this.setDisplay(e),this.display}}function rt(t){if(t==null)return{start:"",end:""};if(typeof t!=="object")throw TypeError("highlightedRange expects { start, end }");let{start:e="",end:i=""}=t;if(e&&!c(e))throw TypeError(`Invalid range start: ${e}`);if(i&&!c(i))throw TypeError(`Invalid range end: ${i}`);if(!e&&i)throw TypeError("highlightedRange cannot define an end without a start");if(e&&i&&g(i,e)<0)throw TypeError("highlightedRange must be ordered; start must be on or before end");return{start:e,end:i}}function ht(t,e){if(!e||!c(t))return"";let{start:i,end:s}=e;if(!i||!c(i))return"";if(i===t)return s?s===t?"single":"start":"start";if(s&&s===t)return"end";if(s&&g(t,i)>=0&&g(t,s)<=0)return"in";return""}class ut{constructor(){this.activeEndpoint="",this.start="",this.end=""}get range(){return{start:this.start,end:this.end}}get complete(){return Boolean(this.start&&this.end&&g(this.end,this.start)>=0)}focus(t){this.activeEndpoint=t}_refuse(t){return{status:"refused",endpoint:t,changedEndpoints:[],range:this.range,activeEndpoint:this.activeEndpoint}}project(t,e=()=>!0){if(!c(t))throw TypeError(`Invalid range activation: ${t}`);let{start:i,end:s}=this;if(this.complete&&(g(t,i)<0||g(t,s)>0)){let r=g(t,i)<0?"start":"end";if(!e(r))return this._refuse(r);return{status:"complete",endpoint:r,changedEndpoints:[r],range:r==="start"?{start:t,end:s}:{start:i,end:t},activeEndpoint:r}}if(this.activeEndpoint==="end"){if(i&&!s&&g(t,i)<0){if(!e("start"))return this._refuse("start");if(!e("end"))return this._refuse("end");return{status:"complete",endpoint:"end",changedEndpoints:["start","end"],range:{start:t,end:i},activeEndpoint:"end"}}if(i&&g(t,i)<0)return this._refuse("end");if(!e("end"))return this._refuse("end");return{status:i?"complete":"pending",endpoint:"end",changedEndpoints:["end"],range:{start:i,end:t},activeEndpoint:"end"}}if(s&&!i&&g(t,s)>0){if(!e("start"))return this._refuse("start");if(!e("end"))return this._refuse("end");return{status:"complete",endpoint:"start",changedEndpoints:["start","end"],range:{start:s,end:t},activeEndpoint:"start"}}if(!e("start"))return this._refuse("start");let n=e("end");return{status:"pending",endpoint:"start",changedEndpoints:["start"],range:{start:t,end:s},activeEndpoint:n?"end":this.activeEndpoint,...n?{}:{close:!0}}}projectEndpoint(t,e,i=()=>!0){if(!c(t))throw TypeError(`Invalid range activation: ${t}`);if(!this.complete||!i(e))return this._refuse(e);let{start:s,end:n}=this,r=e==="start"?s:n,a=e==="start"?le(t,n):de(t,s);return{status:"complete",endpoint:e,changedEndpoints:a===r?[]:[e],range:e==="start"?{start:a,end:n}:{start:s,end:a},activeEndpoint:e}}previewRange(t,e="",i=()=>!0){if(!c(t))return null;if(!e&&Boolean(this.start)===Boolean(this.end))return null;let s=e?this.projectEndpoint(t,e,i):this.project(t,i);if(s.status==="refused")return null;let{start:n,end:r}=s.range;if(!n||r&&g(r,n)<0)return null;return{start:n,end:r}}_apply(t){if(t.status==="refused")return t;return this.start=t.range.start,this.end=t.range.end,this.activeEndpoint=t.activeEndpoint,t}activate(t,e=()=>!0){return this._apply(this.project(t,e))}moveEndpoint(t,e,i=()=>!0){return this._apply(this.projectEndpoint(t,e,i))}}function de(t,e){if(!t)return e;if(!e)return t;return g(t,e)>=0?t:e}function le(t,e){if(!t)return e;if(!e)return t;return g(t,e)<=0?t:e}var At=/[\u200e\u200f\u061c\u202a-\u202e\u2066-\u2069]/g;function I(t=""){if(t)return t;if(typeof document<"u"&&document.documentElement.lang)return document.documentElement.lang;if(typeof navigator<"u"&&navigator.language)return navigator.language;return"en-US"}function ce(t){let e=new Intl.NumberFormat(t,{useGrouping:!1}),i=new Map;for(let s=0;s<=9;s++)i.set(e.format(s),String(s));return i}function Ct(t,e,i={}){let s=String(t||"").replace(At,"");if(i.trim!==!1)s=s.trim();for(let[n,r]of ce(e))s=s.split(n).join(r);return s}function J(t,e=""){let i=I(e);return new Intl.DateTimeFormat(i,{calendar:"gregory",weekday:"long",year:"numeric",month:"long",day:"numeric",timeZone:"UTC"}).format(H(t))}function Tt(t,e=""){let i=I(e);return new Intl.DateTimeFormat(i,{calendar:"gregory",year:"numeric",month:"long",timeZone:"UTC"}).format(H(`${t.slice(0,7)}-15`))}function kt(t=""){let e=I(t);try{let i=new Intl.DateTimeFormat(e,{calendar:"gregory",year:"numeric",month:"long",timeZone:"UTC"}).formatToParts(H("2026-09-15")),s=-1,n=-1;if(i.forEach((r,a)=>{let o=r.type;if(o==="month"){if(s<0)s=a}else if(o==="year"||o==="relatedYear"||o==="yearName"){if(n<0)n=a}}),s>=0&&n>=0)return n<s?["year","month"]:["month","year"]}catch{}return["month","year"]}function St(t="",e="long"){let i=I(t),s=new Intl.DateTimeFormat(i,{calendar:"gregory",month:e,timeZone:"UTC"});return Array.from({length:12},(n,r)=>s.format(H(`2026-${String(r+1).padStart(2,"0")}-15`)))}function ft(t="",e=1,i="short"){let s=I(t),n=new Intl.DateTimeFormat(s,{calendar:"gregory",weekday:i,timeZone:"UTC"}),r=U(e),a=H("2026-01-04");return Array.from({length:7},(o,l)=>{let d=new Date(a);return d.setUTCDate(a.getUTCDate()+(r+l)%7),n.format(d)})}function he(t){return t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function Q(t=""){let e=I(t),i=new Intl.DateTimeFormat(e,{calendar:"gregory",year:"numeric",month:"2-digit",day:"2-digit",timeZone:"UTC"}),s=H("2006-11-22"),n=i.formatToParts(s).filter((d)=>d.type!=="literal"||d.value),r=n.filter((d)=>["day","month","year"].includes(d.type)).map((d)=>d.type),a=n.map((d)=>{if(d.type==="day")return"DD";if(d.type==="month")return"MM";if(d.type==="year")return"YYYY";return d.value.replace(At,"")}).join(""),o=n.map((d)=>{if(d.type==="day"||d.type==="month")return"(\\d{1,2})";if(d.type==="year")return"(\\d{4})";let h=Ct(d.value,e,{trim:!1});return he(h).replace(/\s+/g,"\\s*")}).join(""),l=new RegExp(`^\\s*${o}\\s*$`);return{locale:e,placeholder:a,format(d){if(!c(d))return"";return i.format(H(d))},parse(d){let h=Ct(d,e);if(c(h))return h;let x=l.exec(h);if(!x)return"";let y={};if(r.forEach((w,C)=>{y[w]=Number(x[C+1])}),!y.year||!y.month||!y.day)return"";try{return N(y.year,y.month,y.day)}catch{return""}}}}var ue={chooseDate:"Choose date",changeDate:"Change date",previousMonth:"Previous month",nextMonth:"Next month",month:"Month",year:"Year",calendar:"Choose a date",unavailable:"Unavailable",invalidDate:"Enter a valid date",unavailableDate:"This date is unavailable",formatHint:"Format",week:"Week",rangeStart:"Range start",rangeInRange:"Inside range",rangeEnd:"Range end",rangeSingle:"Range of one day",rangeOrderStart:"Start must be on or before end",rangeOrderEnd:"End must be on or after start"},fe={...ue};function G(){return{...fe}}function Mt(t){let e=t&&typeof t==="object"&&!Array.isArray(t)&&"dates"in t?t.dates:t,i=new Map;if(Array.isArray(e)){for(let s of e){if(!s||typeof s!=="object"||!("date"in s))continue;let{date:n,...r}=s;i.set(String(n),r)}return i}if(e&&typeof e==="object")for(let[s,n]of Object.entries(e))i.set(s,n&&typeof n==="object"?n:{});return i}var pe=0;function S(t){return String(t).replaceAll("&","&amp;").replaceAll("<","&lt;").replaceAll(">","&gt;").replaceAll('"',"&quot;").replaceAll("'","&#039;")}function me(t){let e=Number(t);if(e===7)return 0;return Number.isInteger(e)&&e>=0&&e<=6?e:1}function _e(t){return Number(t.slice(0,4))}function at(t,e){let[i,s]=t.split("-").map(Number),n=i*12+(s-1)+e,r=Math.floor(n/12),a=(n%12+12)%12+1;if(r<1||r>9999)return null;return`${String(r).padStart(4,"0")}-${String(a).padStart(2,"0")}`}function $t(t){return{"data-range-start":t==="start"||t==="single","data-range-end":t==="end"||t==="single","data-in-range":t==="in"}}function ge(t){return Object.entries($t(t)).filter(([,e])=>e).map(([e])=>` ${e}="true"`).join("")}function ye(t){if(t==="single")return"rangeSingle";if(t==="start")return"rangeStart";if(t==="end")return"rangeEnd";if(t==="in")return"rangeInRange";return""}class tt extends HTMLElement{static observedAttributes=["value","display","min","max","first-day","locale","fixed-weeks","show-week-numbers","selection","month-format"];constructor(){super();this._id=`date-calendar-${++pe}`,this._model=new ct,this._connected=!1,this._rendering=!1,this._source=null,this._sourceStates=new Map,this._loadedRanges=new Set,this._loadController=null,this._loadingKey="",this._loadingPromise=null,this._dateState=null,this._renderDay=null,this._isDateDisabled=null,this._highlightedRange={start:"",end:""},this._paintedRange={start:"",end:""},this._paintedPreview=!1,this._messages=G(),this._onClick=this._onClick.bind(this),this._onChange=this._onChange.bind(this),this._onKeyDown=this._onKeyDown.bind(this),this._onFocusIn=this._onFocusIn.bind(this)}connectedCallback(){if(this._connected)return;this._connected=!0,this.addEventListener("click",this._onClick),this.addEventListener("change",this._onChange),this.addEventListener("keydown",this._onKeyDown),this.addEventListener("focusin",this._onFocusIn),this._syncModel(),this.render()}disconnectedCallback(){this._connected=!1,this._loadController?.abort(),this._loadController=null,this._loadingKey="",this._loadingPromise=null,this.removeEventListener("click",this._onClick),this.removeEventListener("change",this._onChange),this.removeEventListener("keydown",this._onKeyDown),this.removeEventListener("focusin",this._onFocusIn)}attributeChangedCallback(){if(!this._connected||this._rendering)return;this._syncModel(),this.render()}get locale(){return I(this.getAttribute("locale")||"")}set locale(t){if(t)this.setAttribute("locale",t);else this.removeAttribute("locale")}get value(){return this._model.value}set value(t){let e=t||"";if(e&&!c(e))throw TypeError(`Invalid calendar value: ${e}`);if(e===this._model.value)return;if(this._model.setValue(e),this._reflect("value",e),this._connected)this.render()}get display(){return this._model.display}set display(t){this._setDisplay(t,{emit:!1})}get focusedDate(){return this._model.focused}set focusedDate(t){let e=t||"";if(e===this._model.focused)return;this.focusDate(e,{moveFocus:!1})}get min(){let t=this.getAttribute("min")||"";return c(t)?t:""}set min(t){if(t)this.setAttribute("min",t);else this.removeAttribute("min")}get max(){let t=this.getAttribute("max")||"";return c(t)?t:""}set max(t){if(t)this.setAttribute("max",t);else this.removeAttribute("max")}get firstDay(){return me(this.getAttribute("first-day")||"1")}set firstDay(t){this.setAttribute("first-day",String(t))}get selection(){return this.getAttribute("selection")==="none"?"none":"single"}set selection(t){this.setAttribute("selection",t==="none"?"none":"single")}get monthFormat(){return this.getAttribute("month-format")==="short"?"short":"long"}set monthFormat(t){if(t==="short")this.setAttribute("month-format","short");else this.removeAttribute("month-format")}get highlightedRange(){return{...this._highlightedRange}}set highlightedRange(t){let e=rt(t),i=this.hasAttribute("data-range-preview");if(e.start===this._paintedRange.start&&e.end===this._paintedRange.end&&i===this._paintedPreview)return;if(this._highlightedRange=e,this._connected)this._updateRangeDom()}get fixedWeeks(){return this.hasAttribute("fixed-weeks")}set fixedWeeks(t){this.toggleAttribute("fixed-weeks",Boolean(t))}get showWeekNumbers(){return this.hasAttribute("show-week-numbers")}set showWeekNumbers(t){this.toggleAttribute("show-week-numbers",Boolean(t))}get messages(){return this._messages}set messages(t){if(this._messages={...G(),...t||{}},this._connected)this.render()}get source(){return this._source}set source(t){this._source=t||null,this.refreshSource()}get dateState(){return this._dateState}set dateState(t){if(this._dateState=typeof t==="function"?t:null,this._connected)this.render()}get renderDay(){return this._renderDay}set renderDay(t){if(this._renderDay=typeof t==="function"?t:null,this._connected)this.render()}get isDateDisabled(){return this._isDateDisabled}set isDateDisabled(t){if(this._isDateDisabled=typeof t==="function"?t:null,this._connected)this.render()}_syncModel(){let t=this.firstDay;this._model.firstDay=t;let e=this.getAttribute("value")||"";if(!e||c(e))this._model.value=e;let i=this.getAttribute("display")||"";if(i)try{this._model.setDisplay(Z(i,t))}catch{}else if(this._model.value)this._model.display=f(this._model.value),this._model.focused=this._model.value;if(this._model.focused=this._clamp(this._model.focused),!this.getAttribute("display"))this._model.display=f(this._model.focused)}_reflect(t,e){if(this._rendering=!0,e){if(this.getAttribute(t)!==e)this.setAttribute(t,e)}else if(this.hasAttribute(t))this.removeAttribute(t);this._rendering=!1}_clamp(t){let e=Et(t,this.min,this.max),i=f(e),s=Z(i,this.firstDay);if(s===i)return e;let n=Number(e.slice(8,10))||1,r=M(`${s}-01`,n-1),a=dt(s);return g(r,a)>0?a:r}_weeks(t=this.display){let e=Dt(Z(t,this.firstDay),{firstDay:this.firstDay});if(!this.fixedWeeks||e.length>=6)return e;let i=e[e.length-1]?.[6]||"";while(e.length<6&&i){let s=[];for(let n=1;n<=7;n++)s.push(M(i,n));e.push(s),i=s[6]}return e}_focusTargetKey(t){if(t.matches(".dp-month-select, .dp-year-input")&&t.id)return`#${CSS.escape(t.id)}`;if(t.matches(".dp-nav[data-calendar-action]"))return`.dp-nav[data-calendar-action="${CSS.escape(t.dataset.calendarAction||"")}"]`;if(t.matches(".dp-day[data-date]")){let e=t.getAttribute("data-date")||"";if(c(e))return`.dp-day[data-date="${e}"]`}return""}_range(t=this.display){let e=this._weeks(t),i=e[0],s=e[e.length-1];if(!i||!s)throw Error("Calendar month produced no weeks");return{start:i[0],end:s[6]}}getDateState(t){let e=this._sourceStates.get(t)||{},i=this._dateState?.(t,{...e})||{},s={...e,...i},n=this.min&&g(t,this.min)<0||this.max&&g(t,this.max)>0,a=s.enabled===!0?!1:Boolean(this._isDateDisabled?.(t)),o=Boolean(n)||Boolean(s.disabled)||a;return{...s,disabled:o}}async refreshSource(){if(this._loadController?.abort(),this._loadController=null,this._loadingKey="",this._loadingPromise=null,this._loadedRanges.clear(),this._sourceStates.clear(),this._connected)this.render(),await this._loadDisplay(this.display)}async ensureDate(t){if(!c(t)||!this._source)return!0;return await this._loadDisplay(f(t),!1)==="loaded"}async _loadDisplay(t,e=!0){if(!this._source)return"loaded";let i=this._range(t),s=`${i.start}/${i.end}`;if(this._loadedRanges.has(s))return"loaded";if(s===this._loadingKey&&this._loadingPromise)return this._loadingPromise;this._loadController?.abort();let n=new AbortController;this._loadController=n,this._loadingKey=s;let r=this._source,a=(async()=>{this.toggleAttribute("data-loading",!0),this.dispatchEvent(new CustomEvent("dateloadstart",{detail:i,bubbles:!0}));try{let o=typeof r==="function"?r:r?.load?.bind(r);if(!o)throw TypeError("Date source must be a function or expose load(range, { signal })");let l=await o(i,{signal:n.signal});if(n.signal.aborted)return"cancelled";for(let[d,h]of Mt(l))this._sourceStates.set(d,h);if(this._loadedRanges.add(s),this.dispatchEvent(new CustomEvent("dateloadend",{detail:i,bubbles:!0})),e&&this._connected&&f(this.display)===f(t))this.render(!1);return"loaded"}catch(o){if(n.signal.aborted)return"cancelled";return this.dispatchEvent(new CustomEvent("dateloaderror",{detail:{...i,error:o},bubbles:!0})),"failed"}finally{if(this._loadController===n)this._loadController=null,this.removeAttribute("data-loading");if(this._loadingKey===s)this._loadingKey="",this._loadingPromise=null}})();return this._loadingPromise=a,a}_setDisplay(t,e={}){let i=this._model.display;if(this._model.setDisplay(Z(t,this.firstDay)),this._model.focused=this._clamp(this._model.focused),this._model.display=f(this._model.focused),this._reflect("display",this._model.display),this._connected)this.render();if(e.emit!==!1&&i!==this._model.display)this._emitDisplayChange();return this._model.display}_emitDisplayChange(){let t=this._range();this.dispatchEvent(new CustomEvent("displaychange",{detail:{display:this.display,...t},bubbles:!0}))}previousMonth(){return this._setDisplay(at(this.display,-1)??this.display)}nextMonth(){return this._setDisplay(at(this.display,1)??this.display)}focusDate(t,e={}){if(!c(t))throw TypeError(`Invalid date: ${t}`);let i=this._clamp(t),s=this.display,n=this._model.focused,r=e.moveFocus!==!1;if(this._model.setFocused(i),this._reflect("display",this._model.display),s!==this.display){if(this._connected)this.render();this._emitDisplayChange()}else if(this._connected&&n!==this._model.focused)this._moveFocusDom(n,this._model.focused,r);if(r)queueMicrotask(()=>this.focusGrid())}_moveFocusDom(t,e,i=!0){let s=t?this.querySelector(`.dp-day[data-date="${CSS.escape(t)}"]`):null,n=this.querySelector(`.dp-day[data-date="${CSS.escape(e)}"]`);if(s instanceof HTMLElement)s.tabIndex=-1;if(n instanceof HTMLElement){if(n.tabIndex=0,i)n.focus()}else if(i)this.focusGrid()}_moveSelectionDom(t,e){if(t){let i=this.querySelector(`.dp-day[data-date="${CSS.escape(t)}"]`);if(i instanceof HTMLElement)i.removeAttribute("data-selected"),i.removeAttribute("aria-selected")}if(e){let i=this.querySelector(`.dp-day[data-date="${CSS.escape(e)}"]`);if(i instanceof HTMLElement)return i.setAttribute("data-selected","true"),i.setAttribute("aria-selected","true"),!0}return!1}_dayLabel(t,e,i){let s=this.hasAttribute("data-range-preview")?"":ye(i),n=typeof e.description==="string"?e.description:"";return[J(t,this.locale),n,s?this._messages[s]:"",e.disabled?this._messages.unavailable:""].filter(Boolean).join(". ")}_updateRangeDom(){this._paintedRange={...this._highlightedRange},this._paintedPreview=this.hasAttribute("data-range-preview");for(let t of this.querySelectorAll(".dp-day[data-date]")){if(!(t instanceof HTMLTableCellElement))continue;let e=t.dataset.date||"",i=ht(e,this._highlightedRange);for(let[s,n]of Object.entries($t(i)))if(n)t.setAttribute(s,"true");else t.removeAttribute(s);t.setAttribute("aria-label",this._dayLabel(e,this.getDateState(e),i))}}focusGrid(){let t=this.querySelector(`.dp-day[data-date="${CSS.escape(this.focusedDate)}"]`);if(t instanceof HTMLElement)t.focus()}async activateDate(t){let e=await this.ensureDate(t),i=this.getDateState(t);if(!e||i.disabled)return this.dispatchEvent(new CustomEvent("dateinvalid",{detail:{date:t,state:i},bubbles:!0})),!1;if(!this.dispatchEvent(new CustomEvent("dateactivate",{detail:{date:t,state:i},bubbles:!0,cancelable:!0})))return!1;if(this.selection==="single"){let n=this._model.value;if(this._model.setValue(t),this._reflect("value",t),this.dispatchEvent(new CustomEvent("datechange",{detail:{value:t},bubbles:!0})),this.dispatchEvent(new Event("change",{bubbles:!0})),this._connected)if(f(t)===this.display)this._moveSelectionDom(n,t);else this.render()}else if(this._connected){if(f(t)!==this.display)this.render()}return!0}_onClick(t){let e=t.target;if(!(e instanceof Element))return;let i=e.closest("[data-calendar-action]");if(i instanceof HTMLButtonElement){let a=i.dataset.calendarAction;if(a==="previous")this.previousMonth();if(a==="next")this.nextMonth();return}let s=e.closest(".dp-day[data-date]");if(!(s instanceof HTMLTableCellElement))return;let n=s.dataset.date||"";if(!c(n))return;let r=this.display;if(this._model.setFocused(this._clamp(n)),this._reflect("display",this._model.display),r!==this.display)this._emitDisplayChange();this.activateDate(n)}_onChange(t){let e=t.target;if(e instanceof HTMLSelectElement&&e.matches(".dp-month-select")){this._setDisplay(`${this.display.slice(0,4)}-${e.value}`);return}if(e instanceof HTMLInputElement&&e.matches(".dp-year-input")){let i=Number(e.value);if(!Number.isInteger(i)||i<1||i>9998){if(this._connected)this.render(!1);return}this._setDisplay(`${String(i).padStart(4,"0")}-${this.display.slice(5,7)}`)}}_onFocusIn(t){let e=t.target;if(!(e instanceof HTMLTableCellElement)||!e.matches(".dp-day[data-date]"))return;let i=e.dataset.date||"";if(!c(i))return;this._model.focused=i,this.dispatchEvent(new CustomEvent("datefocus",{detail:{date:i,state:this.getDateState(i)},bubbles:!0}))}_onKeyDown(t){let e=t.target;if(!(e instanceof HTMLTableCellElement)||!e.matches(".dp-day[data-date]"))return;let i=e.dataset.date||this.focusedDate;if(t.key==="Enter"||t.key===" "){t.preventDefault(),this.activateDate(i);return}let s=this._model.focused,n=this._model.display;if(this._model.firstDay=this.firstDay,this._model.setFocused(i,{follow:!1}),t.key==="ArrowLeft")this._model.moveFocusDays(-1);else if(t.key==="ArrowRight")this._model.moveFocusDays(1);else if(t.key==="ArrowUp")this._model.moveFocusDays(-7);else if(t.key==="ArrowDown")this._model.moveFocusDays(7);else if(t.key==="Home")this._model.focusWeekStart();else if(t.key==="End")this._model.focusWeekEnd();else if(t.key==="PageUp")t.shiftKey?this._model.moveFocusYears(-1):this._model.moveFocusMonths(-1);else if(t.key==="PageDown")t.shiftKey?this._model.moveFocusYears(1):this._model.moveFocusMonths(1);else return;let r=this._model.focused;if(this._model.focused=s,this._model.display=n,!r)return;t.preventDefault(),this.focusDate(this._clamp(r))}render(t=!0){if(!this._connected)return;let e=this.locale,i=this.display,s=_e(i),n=Number(i.slice(5,7)),r=St(e,this.monthFormat),a=ft(e,this.firstDay,"short"),o=ft(e,this.firstDay,"long"),l=this._weeks(),d=L(),h=`${this._id}-heading`,x=`${this._id}-grid`,y=this.min?f(this.min):"",w=this.max?f(this.max):"",C=at(i,-1),k=at(i,1),E=Boolean(y&&C!==null&&C<y),b=Boolean(w&&k!==null&&k>w),v=this.min?` min="${Number(this.min.slice(0,4))}"`:"",T=this.max?` max="${Number(this.max.slice(0,4))}"`:"",D=this.showWeekNumbers&&this.firstDay===1,R=D?`<th scope="col" class="dp-week-heading" abbr="${S(this._messages.week)}">#</th>`:"",Y=r.map((u,p)=>{let _=p+1,m=`${String(s).padStart(4,"0")}-${String(_).padStart(2,"0")}`,A=y&&m<y||w&&m>w;return`<option value="${String(_).padStart(2,"0")}"${_===n?" selected":""}${A?" disabled":""}>${S(u)}</option>`}).join(""),V=a.map((u,p)=>`<th scope="col" abbr="${S(o[p])}">${S(u.replace(".",""))}</th>`).join(""),O=l.map((u)=>{let p=D?`<th scope="row" class="dp-week-number">${xt(u[0])}</th>`:"",_=u.map((m)=>{let A=this.getDateState(m),z=f(m)!==i,gt=this.value===m,jt=this.focusedDate===m,Kt=m===d,yt=ht(m,this._highlightedRange),Wt=this._dayLabel(m,A,yt);return`<td class="dp-day" data-date="${m}"${z?' data-outside-month="true"':""}${Kt?' data-today="true" aria-current="date"':""}${gt?' data-selected="true" aria-selected="true"':""}${ge(yt)}${A.disabled?' data-disabled="true" aria-disabled="true"':""} tabindex="${jt?"0":"-1"}" aria-label="${S(Wt)}"><span class="dp-day-number" aria-hidden="true">${Number(m.slice(8,10))}</span><span class="dp-day-extra" aria-hidden="true"></span></td>`}).join("");return`<tr>${p}${_}</tr>`}).join(""),j=document.activeElement,B=j instanceof HTMLElement&&this.contains(j)?this._focusTargetKey(j):"",K=kt(e)[0]==="year";this.toggleAttribute("data-year-first",K);let it=`<label class="dp-visually-hidden" for="${this._id}-month">${S(this._messages.month)}</label>
3
- <select id="${this._id}-month" class="dp-month-select" aria-label="${S(this._messages.month)}">${Y}</select>`,W=`<label class="dp-visually-hidden" for="${this._id}-year">${S(this._messages.year)}</label>
4
- <input id="${this._id}-year" class="dp-year-input" type="number" inputmode="numeric" value="${s}"${v}${T} aria-label="${S(this._messages.year)}">`;if(this._rendering=!0,this.innerHTML=`
1
+ /*** @lekoala/date-picker v0.5.1 - https://github.com/lekoala/date-picker ***/
2
+ (()=>{var{defineProperty:vt,getOwnPropertyNames:me,getOwnPropertyDescriptor:_e}=Object,ge=Object.prototype.hasOwnProperty;function ye(t){return this[t]}var be=(t)=>{var e=(Ot??=new WeakMap).get(t),s;if(e)return e;if(e=vt({},"__esModule",{value:!0}),t&&typeof t==="object"||typeof t==="function"){for(var i of me(t))if(!ge.call(e,i))vt(e,i,{get:ye.bind(t,i),enumerable:!(s=_e(t,i))||s.enumerable})}return Ot.set(t,e),e},Ot;var ve=(t)=>t;function we(t,e){this[t]=ve.bind(null,e)}var De=(t,e)=>{for(var s in e)vt(t,s,{get:e[s],enumerable:!0,configurable:!0,set:we.bind(e,s)})};var ns={};De(ns,{defineDatePicker:()=>de});var Ee=/^(\d{4})-(\d{2})-(\d{2})$/,Ce=/^(\d{4})-(\d{2})$/;function xe(t){return t%4===0&&(t%100!==0||t%400===0)}function tt(t,e){if(e===2)return xe(t)?29:28;return[4,6,9,11].includes(e)?30:31}function L(t){let e=Ee.exec(String(t||""));if(!e)return null;let s=Number(e[1]),i=Number(e[2]),n=Number(e[3]);if(s<1||s>9999||i<1||i>12)return null;if(n<1||n>tt(s,i))return null;return{year:s,month:i,day:n}}function l(t){return L(t)!==null}function f(t){let e=String(t||""),s=Ce.exec(e);if(s){let n=Number(s[2]);if(n>=1&&n<=12)return`${s[1]}-${String(n).padStart(2,"0")}`}let i=L(e);if(!i)throw TypeError(`Invalid civil date/month: ${t}`);return`${String(i.year).padStart(4,"0")}-${String(i.month).padStart(2,"0")}`}function U(t,e,s){let i=`${String(t).padStart(4,"0")}-${String(e).padStart(2,"0")}-${String(s).padStart(2,"0")}`;if(!l(i))throw TypeError(`Invalid civil date: ${i}`);return i}function V(t){let e=new Date(0);return e.setUTCHours(12,0,0,0),e.setUTCFullYear(t.year,t.month-1,t.day),e}function Ae(t){return U(t.getUTCFullYear(),t.getUTCMonth()+1,t.getUTCDate())}function B(t){let e=L(t);if(!e)throw TypeError(`Invalid civil date: ${t}`);return V(e)}function _(t,e){if(!l(t)||!l(e))throw TypeError("compareDates() expects YYYY-MM-DD values");return t===e?0:t<e?-1:1}function F(t,e){let s=L(t);if(!s||!Number.isInteger(e))throw TypeError("addDays() expects a date and integer amount");let i=V(s);return i.setUTCDate(i.getUTCDate()+e),Ae(i)}function ct(t,e){let s=L(t);if(!s||!Number.isInteger(e))throw TypeError("addMonths() expects a date and integer amount");let i=s.year*12+(s.month-1)+e,n=Math.floor(i/12),a=(i%12+12)%12+1,o=Math.min(s.day,tt(n,a));return U(n,a,o)}function Pt(t,e){let s=L(t);if(!s||!Number.isInteger(e))throw TypeError("addYears() expects a date and integer amount");let i=s.year+e,n=Math.min(s.day,tt(i,s.month));return U(i,s.month,n)}function Q(t,e){let s=`${f(t)}-01`;return f(ct(s,e))}function Se(t){return`${f(t)}-01`}function wt(t){let e=L(`${f(t)}-01`);if(!e)throw TypeError(`Invalid month: ${t}`);return U(e.year,e.month,tt(e.year,e.month))}function ke(t){let e=L(t);if(!e)throw TypeError(`Invalid civil date: ${t}`);return V(e).getUTCDay()}function G(t){if(t===7)return 0;if(!Number.isInteger(t)||t<0||t>6)throw RangeError("firstDay must be 0..6 (Sunday=0, 7 accepted as Sunday alias)");return t}function ut(t,e=1){let s=(ke(t)-G(e)+7)%7;return F(t,-s)}function Dt(t,e=1){return F(ut(t,e),6)}function Ht(t,e={}){let s=e.firstDay??1,i=ut(Se(t),s),n=Dt(wt(t),s),r=[],a=i;for(;;){let o=[];for(let c=0;c<7;c++)o.push(F(a,c));if(r.push(o),_(o[6],n)>=0){if(!e.fixedWeeks||r.length>=6||_(o[6],F("9999-12-31",-7))>0)break}a=F(a,7)}return r}function Rt(t,e,s){let i=V({year:1,month:1,day:1});return Math.round((V({year:t,month:e,day:s}).getTime()-i.getTime())/86400000)}function et(t,e=1){let s=G(e),i=Rt(9999,12,31),n=f(t);for(;;){let r=L(`${n}-01`);if(!r)throw TypeError(`Invalid civil date/month: ${t}`);let a=Rt(r.year,r.month,1),o=(V(r).getUTCDay()-s+7)%7;if(a-o<0){n=Q(n,1);continue}let c=tt(r.year,r.month),d={year:r.year,month:r.month,day:c},u=a+c-1,b=(V(d).getUTCDay()-s+7)%7;if(u-b+6>i){n=Q(n,-1);continue}return n}}function Vt(t,e="",s=""){if(!l(t))throw TypeError(`Invalid civil date: ${t}`);if(e&&_(t,e)<0)return e;if(s&&_(t,s)>0)return s;return t}function R(){let t=new Date;return U(t.getFullYear(),t.getMonth()+1,t.getDate())}function Bt(t){let e=L(t);if(!e)throw TypeError(`Invalid civil date: ${t}`);let s=V(e),i=s.getUTCDay()||7;s.setUTCDate(s.getUTCDate()+4-i);let n=new Date(0);return n.setUTCHours(12,0,0,0),n.setUTCFullYear(s.getUTCFullYear(),0,1),Math.ceil(((s.getTime()-n.getTime())/86400000+1)/7)}class Et{constructor(t={}){let e=R();this.firstDay=G(t.firstDay??1),this.value=t.value&&l(t.value)?t.value:"",this.focused=t.focused&&l(t.focused)?t.focused:this.value||e,this.display=t.display?f(t.display):f(this.focused)}setValue(t){if(t&&!l(t))throw TypeError(`Invalid value: ${t}`);return this.value=t||"",this.value}setDisplay(t){let e=f(t),s=Number(this.focused.slice(8,10))||1,i=ct(`${e}-01`,0),n=F(i,Math.max(0,s-1));return this.focused=f(n)===e?n:F(`${Q(e,1)}-01`,-1),this.display=e,this.display}setFocused(t,e={}){if(!l(t))throw TypeError(`Invalid focused date: ${t}`);if(this.focused=t,e.follow!==!1)this.display=f(t);return this.focused}moveFocusDays(t){return this.setFocused(F(this.focused,t))}moveFocusMonths(t){return this.setFocused(ct(this.focused,t))}moveFocusYears(t){return this.setFocused(Pt(this.focused,t))}focusWeekStart(){return this.setFocused(ut(this.focused,this.firstDay))}focusWeekEnd(){return this.setFocused(Dt(this.focused,this.firstDay))}navigateMonth(t){let e=Q(this.display,t);return this.setDisplay(e),this.display}}function Me(t){if(typeof t!=="string")return"";return[...new Set(t.split(/\s+/).filter((e)=>e&&!e.startsWith("dp-")&&![...e].some((s)=>s.charCodeAt(0)<32||s.charCodeAt(0)===127)))].join(" ")}function At(t,e){return t.month===e.month&&t.year===e.year&&t.nav===e.nav}var Ct={month:"",year:"",nav:""};function st(){return{...Ct}}function it(t){if(t==null)return null;let e={};for(let s of["month","year","nav"])if(Object.hasOwn(t,s))e[s]=Me(t[s]);return e}function Nt(t){return t==null||["month","year","nav"].some((e)=>!Object.hasOwn(t,e))}function nt(t){return{...st(),...it(t)}}function ht(t){let e=nt(t);if(At(Ct,e))return;Ct=e;for(let s of xt)s()}var xt=new Set;function Ut(t){return xt.add(t),()=>{xt.delete(t)}}function ft(t){if(t==null)return{start:"",end:""};if(typeof t!=="object")throw TypeError("highlightedRange expects { start, end }");let{start:e="",end:s=""}=t;if(e&&!l(e))throw TypeError(`Invalid range start: ${e}`);if(s&&!l(s))throw TypeError(`Invalid range end: ${s}`);if(!e&&s)throw TypeError("highlightedRange cannot define an end without a start");if(e&&s&&_(s,e)<0)throw TypeError("highlightedRange must be ordered; start must be on or before end");return{start:e,end:s}}function pt(t,e){if(!e||!l(t))return"";let{start:s,end:i}=e;if(!s||!l(s))return"";if(s===t)return i?i===t?"single":"start":"start";if(i&&i===t)return"end";if(i&&_(t,s)>=0&&_(t,i)<=0)return"in";return""}class St{constructor(){this.activeEndpoint="",this.start="",this.end=""}get range(){return{start:this.start,end:this.end}}get complete(){return Boolean(this.start&&this.end&&_(this.end,this.start)>=0)}focus(t){this.activeEndpoint=t}_refuse(t){return{status:"refused",endpoint:t,changedEndpoints:[],range:this.range,activeEndpoint:this.activeEndpoint}}project(t,e=()=>!0){if(!l(t))throw TypeError(`Invalid range activation: ${t}`);let{start:s,end:i}=this;if(this.complete&&(_(t,s)<0||_(t,i)>0)){let r=_(t,s)<0?"start":"end";if(!e(r))return this._refuse(r);return{status:"complete",endpoint:r,changedEndpoints:[r],range:r==="start"?{start:t,end:i}:{start:s,end:t},activeEndpoint:r}}if(this.activeEndpoint==="end"){if(s&&!i&&_(t,s)<0){if(!e("start"))return this._refuse("start");if(!e("end"))return this._refuse("end");return{status:"complete",endpoint:"end",changedEndpoints:["start","end"],range:{start:t,end:s},activeEndpoint:"end"}}if(s&&_(t,s)<0)return this._refuse("end");if(!e("end"))return this._refuse("end");return{status:s?"complete":"pending",endpoint:"end",changedEndpoints:["end"],range:{start:s,end:t},activeEndpoint:"end"}}if(i&&!s&&_(t,i)>0){if(!e("start"))return this._refuse("start");if(!e("end"))return this._refuse("end");return{status:"complete",endpoint:"start",changedEndpoints:["start","end"],range:{start:i,end:t},activeEndpoint:"start"}}if(!e("start"))return this._refuse("start");let n=e("end");return{status:"pending",endpoint:"start",changedEndpoints:["start"],range:{start:t,end:i},activeEndpoint:n?"end":this.activeEndpoint,...n?{}:{close:!0}}}projectEndpoint(t,e,s=()=>!0){if(!l(t))throw TypeError(`Invalid range activation: ${t}`);if(!this.complete||!s(e))return this._refuse(e);let{start:i,end:n}=this,r=e==="start"?i:n,a=e==="start"?$e(t,n):Te(t,i);return{status:"complete",endpoint:e,changedEndpoints:a===r?[]:[e],range:e==="start"?{start:a,end:n}:{start:i,end:a},activeEndpoint:e}}previewRange(t,e="",s=()=>!0){if(!l(t))return null;if(!e&&Boolean(this.start)===Boolean(this.end))return null;let i=e?this.projectEndpoint(t,e,s):this.project(t,s);if(i.status==="refused")return null;let{start:n,end:r}=i.range;if(!n||r&&_(r,n)<0)return null;return{start:n,end:r}}_apply(t){if(t.status==="refused")return t;return this.start=t.range.start,this.end=t.range.end,this.activeEndpoint=t.activeEndpoint,t}activate(t,e=()=>!0){return this._apply(this.project(t,e))}moveEndpoint(t,e,s=()=>!0){return this._apply(this.projectEndpoint(t,e,s))}}function Te(t,e){if(!t)return e;if(!e)return t;return _(t,e)>=0?t:e}function $e(t,e){if(!t)return e;if(!e)return t;return _(t,e)<=0?t:e}var jt=/[\u200e\u200f\u061c\u202a-\u202e\u2066-\u2069]/g,Fe=new Map,Le=new Map;function Gt(t,e,s){let i=t.get(e);if(i!==void 0)return i;let n=s(),r=t.keys().next().value;if(t.size>=64&&r!==void 0)t.delete(r);return t.set(e,n),n}function W(t,e){let s=JSON.stringify([t,e]);return Gt(Fe,s,()=>new Intl.DateTimeFormat(t,e))}function P(t=""){if(t)return t;if(typeof document<"u"&&document.documentElement.lang)return document.documentElement.lang;if(typeof navigator<"u"&&navigator.language)return navigator.language;return"en-US"}function Ie(t){return Gt(Le,t,()=>{let e=new Intl.NumberFormat(t,{useGrouping:!1}),s=new Map;for(let i=0;i<=9;i++)s.set(e.format(i),String(i));return s})}function Yt(t,e,s={}){let i=String(t||"").replace(jt,"");if(s.trim!==!1)i=i.trim();for(let[n,r]of Ie(e))i=i.split(n).join(r);return i}function rt(t,e=""){let s=P(e);return W(s,{calendar:"gregory",weekday:"long",year:"numeric",month:"long",day:"numeric",timeZone:"UTC"}).format(B(t))}function Wt(t,e=""){let s=P(e);return W(s,{calendar:"gregory",year:"numeric",month:"long",timeZone:"UTC"}).format(B(`${t.slice(0,7)}-15`))}function zt(t=""){let e=P(t);try{let s=W(e,{calendar:"gregory",year:"numeric",month:"long",timeZone:"UTC"}).formatToParts(B("2026-09-15")),i=-1,n=-1;if(s.forEach((r,a)=>{let o=r.type;if(o==="month"){if(i<0)i=a}else if(o==="year"||o==="relatedYear"||o==="yearName"){if(n<0)n=a}}),i>=0&&n>=0)return n<i?["year","month"]:["month","year"]}catch{}return["month","year"]}function Kt(t="",e="long"){let s=P(t),i=W(s,{calendar:"gregory",month:e,timeZone:"UTC"});return Array.from({length:12},(n,r)=>i.format(B(`2026-${String(r+1).padStart(2,"0")}-15`)))}function kt(t="",e=1,s="short"){let i=P(t),n=W(i,{calendar:"gregory",weekday:s,timeZone:"UTC"}),r=G(e),a=B("2026-01-04");return Array.from({length:7},(o,c)=>{let d=new Date(a);return d.setUTCDate(a.getUTCDate()+(r+c)%7),n.format(d)})}function Oe(t){return t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function at(t=""){let e=P(t),s=W(e,{calendar:"gregory",year:"numeric",month:"2-digit",day:"2-digit",timeZone:"UTC"}),i=B("2006-11-22"),n=s.formatToParts(i).filter((d)=>d.type!=="literal"||d.value),r=n.filter((d)=>["day","month","year"].includes(d.type)).map((d)=>d.type),a=n.map((d)=>{if(d.type==="day")return"DD";if(d.type==="month")return"MM";if(d.type==="year")return"YYYY";return d.value.replace(jt,"")}).join(""),o=n.map((d)=>{if(d.type==="day"||d.type==="month")return"(\\d{1,2})";if(d.type==="year")return"(\\d{4})";let u=Yt(d.value,e,{trim:!1});return Oe(u).replace(/\s+/g,"\\s*")}).join(""),c=new RegExp(`^\\s*${o}\\s*$`);return{locale:e,placeholder:a,format(d){if(!l(d))return"";return s.format(B(d))},parse(d){let u=Yt(d,e);if(l(u))return u;let b=c.exec(u);if(!b)return"";let D={};if(r.forEach((E,k)=>{D[E]=Number(b[k+1])}),!D.year||!D.month||!D.day)return"";try{return U(D.year,D.month,D.day)}catch{return""}}}}var Re={chooseDate:"Choose date",changeDate:"Change date",previousMonth:"Previous month",nextMonth:"Next month",month:"Month",year:"Year",calendar:"Choose a date",unavailable:"Unavailable",invalidDate:"Enter a valid date",unavailableDate:"This date is unavailable",formatHint:"Format",week:"Week",rangeStart:"Range start",rangeInRange:"Inside range",rangeEnd:"Range end",rangeSingle:"Range of one day",rangeOrderStart:"Start must be on or before end",rangeOrderEnd:"End must be on or after start"},Mt={...Re};function N(){return{...Mt}}function mt(t){Mt={...Mt,...t};for(let e of Tt)e()}var Tt=new Set;function _t(t){return Tt.add(t),()=>{Tt.delete(t)}}function qt(t){let e=t&&typeof t==="object"&&!Array.isArray(t)&&"dates"in t?t.dates:t,s=new Map;if(Array.isArray(e)){for(let i of e){if(!i||typeof i!=="object"||!("date"in i))continue;let{date:n,...r}=i;s.set(String(n),r)}return s}if(e&&typeof e==="object")for(let[i,n]of Object.entries(e))s.set(i,n&&typeof n==="object"?n:{});return s}function z(t,e){for(let s of e){if(!Object.hasOwn(t,s))continue;let i=Reflect.get(t,s);Reflect.deleteProperty(t,s),Reflect.set(t,s,i)}}var Pe=0;function S(t){return String(t).replaceAll("&","&amp;").replaceAll("<","&lt;").replaceAll(">","&gt;").replaceAll('"',"&quot;").replaceAll("'","&#039;")}function He(t){let e=Number(t);if(e===7)return 0;return Number.isInteger(e)&&e>=0&&e<=6?e:1}function Ve(t){return Number(t.slice(0,4))}function gt(t,e){let[s,i]=t.split("-").map(Number),n=s*12+(i-1)+e,r=Math.floor(n/12),a=(n%12+12)%12+1;if(r<1||r>9999)return null;return`${String(r).padStart(4,"0")}-${String(a).padStart(2,"0")}`}function Xt(t){return{"data-range-start":t==="start"||t==="single","data-range-end":t==="end"||t==="single","data-in-range":t==="in"}}function Be(t){return Object.entries(Xt(t)).filter(([,e])=>e).map(([e])=>` ${e}="true"`).join("")}function Ne(t){if(t==="single")return"rangeSingle";if(t==="start")return"rangeStart";if(t==="end")return"rangeEnd";if(t==="in")return"rangeInRange";return""}class ot extends HTMLElement{static observedAttributes=["value","display","min","max","first-day","locale","fixed-weeks","show-week-numbers","selection","month-format"];static setDefaultControlClasses(t){ht(t)}static getDefaultControlClasses(){return st()}static setDefaultMessages(t){mt(t)}static getDefaultMessages(){return N()}constructor(){super();this._id=`date-calendar-${++Pe}`,this._model=new Et,this._connected=!1,this._rendering=!1,this._source=null,this._sourceStates=new Map,this._loadedRanges=new Set,this._loadController=null,this._loadingKey="",this._loadingPromise=null,this._dateState=null,this._renderDay=null,this._isDateDisabled=null,this._highlightedRange={start:"",end:""},this._paintedRange={start:"",end:""},this._paintedPreview=!1,this._renderedStates=new Map,this._messages=null,this._controlClasses=null,this._stopDefaultMessages=null,this._stopDefaultControlClasses=null,this._onClick=this._onClick.bind(this),this._onChange=this._onChange.bind(this),this._onKeyDown=this._onKeyDown.bind(this),this._onFocusIn=this._onFocusIn.bind(this)}connectedCallback(){if(this._connected)return;z(this,["locale","min","max","firstDay","selection","monthFormat","fixedWeeks","showWeekNumbers","controlClasses","messages","source","dateState","renderDay","isDateDisabled","highlightedRange","value","display"]),this._syncModel(),z(this,["focusedDate"]),this._stopDefaultControlClasses=Ut(()=>{if(Nt(this._controlClasses))this.render()}),this._stopDefaultMessages=_t(()=>{if(this._messages===null)this.render()}),this._connected=!0,this.addEventListener("click",this._onClick),this.addEventListener("change",this._onChange),this.addEventListener("keydown",this._onKeyDown),this.addEventListener("focusin",this._onFocusIn),this.render()}disconnectedCallback(){this._stopDefaultControlClasses?.(),this._stopDefaultControlClasses=null,this._stopDefaultMessages?.(),this._stopDefaultMessages=null,this._connected=!1,this._loadController?.abort(),this._loadController=null,this._loadingKey="",this._loadingPromise=null,this.removeEventListener("click",this._onClick),this.removeEventListener("change",this._onChange),this.removeEventListener("keydown",this._onKeyDown),this.removeEventListener("focusin",this._onFocusIn)}attributeChangedCallback(){if(!this._connected||this._rendering)return;this._syncModel(),this.render()}get locale(){return P(this.getAttribute("locale")||"")}set locale(t){if(t)this.setAttribute("locale",t);else this.removeAttribute("locale")}get value(){return this._model.value}set value(t){let e=t||"";if(e&&!l(e))throw TypeError(`Invalid calendar value: ${e}`);if(e===this._model.value)return;if(this._model.setValue(e),this._reflect("value",e),this._connected)this.render()}get display(){return this._model.display}set display(t){this._setDisplay(t,{emit:!1})}get focusedDate(){return this._model.focused}set focusedDate(t){let e=t||"";if(e===this._model.focused)return;this.focusDate(e,{moveFocus:!1})}get min(){let t=this.getAttribute("min")||"";return l(t)?t:""}set min(t){if(t)this.setAttribute("min",t);else this.removeAttribute("min")}get max(){let t=this.getAttribute("max")||"";return l(t)?t:""}set max(t){if(t)this.setAttribute("max",t);else this.removeAttribute("max")}get firstDay(){return He(this.getAttribute("first-day")||"1")}set firstDay(t){this.setAttribute("first-day",String(t))}get selection(){return this.getAttribute("selection")==="none"?"none":"single"}set selection(t){this.setAttribute("selection",t==="none"?"none":"single")}get monthFormat(){return this.getAttribute("month-format")==="short"?"short":"long"}set monthFormat(t){if(t==="short")this.setAttribute("month-format","short");else this.removeAttribute("month-format")}get highlightedRange(){return{...this._highlightedRange}}set highlightedRange(t){let e=ft(t),s=this.hasAttribute("data-range-preview");if(e.start===this._paintedRange.start&&e.end===this._paintedRange.end&&s===this._paintedPreview)return;if(this._highlightedRange=e,this._connected)this._updateRangeDom()}get fixedWeeks(){return this.hasAttribute("fixed-weeks")}set fixedWeeks(t){this.toggleAttribute("fixed-weeks",Boolean(t))}get showWeekNumbers(){return this.hasAttribute("show-week-numbers")}set showWeekNumbers(t){this.toggleAttribute("show-week-numbers",Boolean(t))}get controlClasses(){return nt(this._controlClasses)}set controlClasses(t){let e=this.controlClasses;if(this._controlClasses=it(t),At(e,this.controlClasses))return;if(this._connected)this.render()}get messages(){return this._messages??N()}set messages(t){if(this._messages=t==null?null:{...N(),...t},this._connected)this.render()}get source(){return this._source}set source(t){this._source=t||null,this.refreshSource()}get dateState(){return this._dateState}set dateState(t){if(this._dateState=typeof t==="function"?t:null,this._connected)this.render()}get renderDay(){return this._renderDay}set renderDay(t){if(this._renderDay=typeof t==="function"?t:null,this._connected)this.render()}get isDateDisabled(){return this._isDateDisabled}set isDateDisabled(t){if(this._isDateDisabled=typeof t==="function"?t:null,this._connected)this.render()}_syncModel(){let t=this.firstDay;this._model.firstDay=t;let e=this.getAttribute("value")||"";if(!e||l(e))this._model.value=e;let s=this.getAttribute("display")||"";if(s)try{this._model.setDisplay(et(s,t))}catch{}else if(this._model.value)this._model.display=f(this._model.value),this._model.focused=this._model.value;if(this._model.focused=this._clamp(this._model.focused),!this.getAttribute("display"))this._model.display=f(this._model.focused)}_reflect(t,e){if(this._rendering=!0,e){if(this.getAttribute(t)!==e)this.setAttribute(t,e)}else if(this.hasAttribute(t))this.removeAttribute(t);this._rendering=!1}_clamp(t){let e=Vt(t,this.min,this.max),s=f(e),i=et(s,this.firstDay);if(i===s)return e;let n=Number(e.slice(8,10))||1,r=F(`${i}-01`,n-1),a=wt(i);return _(r,a)>0?a:r}_weeks(t=this.display){return Ht(et(t,this.firstDay),{firstDay:this.firstDay,fixedWeeks:this.fixedWeeks})}_focusTargetKey(t){if(t.matches(".dp-month-select, .dp-year-input")&&t.id)return`#${CSS.escape(t.id)}`;if(t.matches(".dp-nav[data-calendar-action]"))return`.dp-nav[data-calendar-action="${CSS.escape(t.dataset.calendarAction||"")}"]`;if(t.matches(".dp-day[data-date]")){let e=t.getAttribute("data-date")||"";if(l(e))return`.dp-day[data-date="${e}"]`}return""}_range(t=this.display){let e=this._weeks(t),s=e[0],i=e[e.length-1];if(!s||!i)throw Error("Calendar month produced no weeks");return{start:s[0],end:i[6]}}getDateState(t){let e=this._sourceStates.get(t)||{},s=this._dateState?.(t,{...e})||{},i={...e,...s},n=this.min&&_(t,this.min)<0||this.max&&_(t,this.max)>0,a=i.enabled===!0?!1:Boolean(this._isDateDisabled?.(t)),o=Boolean(n)||Boolean(i.disabled)||a;return{...i,disabled:o}}async refreshSource(){if(this._loadController?.abort(),this._loadController=null,this._loadingKey="",this._loadingPromise=null,this._loadedRanges.clear(),this._sourceStates.clear(),this._connected)this.render(),await this._loadDisplay(this.display)}async ensureDate(t){if(!l(t)||!this._source)return!0;return await this._loadDisplay(f(t),!1)==="loaded"}async _loadDisplay(t,e=!0){if(!this._source)return"loaded";let s=this._range(t),i=`${s.start}/${s.end}`;if(this._loadedRanges.has(i))return"loaded";if(i===this._loadingKey&&this._loadingPromise)return this._loadingPromise;this._loadController?.abort();let n=new AbortController;this._loadController=n,this._loadingKey=i;let r=this._source,a=(async()=>{this.toggleAttribute("data-loading",!0),this.dispatchEvent(new CustomEvent("dateloadstart",{detail:s,bubbles:!0}));try{let o=typeof r==="function"?r:r?.load?.bind(r);if(!o)throw TypeError("Date source must be a function or expose load(range, { signal })");let c=await o(s,{signal:n.signal});if(n.signal.aborted)return"cancelled";for(let[d,u]of qt(c))this._sourceStates.set(d,u);if(this._loadedRanges.add(i),this.dispatchEvent(new CustomEvent("dateloadend",{detail:s,bubbles:!0})),e&&this._connected&&f(this.display)===f(t))this.render(!1);return"loaded"}catch(o){if(n.signal.aborted)return"cancelled";return this.dispatchEvent(new CustomEvent("dateloaderror",{detail:{...s,error:o},bubbles:!0})),"failed"}finally{if(this._loadController===n)this._loadController=null,this.removeAttribute("data-loading");if(this._loadingKey===i)this._loadingKey="",this._loadingPromise=null}})();return this._loadingPromise=a,a}_setDisplay(t,e={}){let s=this._model.display;if(this._model.setDisplay(et(t,this.firstDay)),this._model.focused=this._clamp(this._model.focused),this._model.display=f(this._model.focused),this._reflect("display",this._model.display),this._connected)this.render();if(e.emit!==!1&&s!==this._model.display)this._emitDisplayChange();return this._model.display}_emitDisplayChange(){let t=this._range();this.dispatchEvent(new CustomEvent("displaychange",{detail:{display:this.display,...t},bubbles:!0}))}previousMonth(){return this._setDisplay(gt(this.display,-1)??this.display)}nextMonth(){return this._setDisplay(gt(this.display,1)??this.display)}focusDate(t,e={}){if(!l(t))throw TypeError(`Invalid date: ${t}`);let s=this._clamp(t),i=this.display,n=this._model.focused,r=e.moveFocus!==!1;if(this._model.setFocused(s),this._reflect("display",this._model.display),i!==this.display){if(this._connected)this.render();this._emitDisplayChange()}else if(this._connected&&n!==this._model.focused)this._moveFocusDom(n,this._model.focused,r);if(r)queueMicrotask(()=>this.focusGrid())}_moveFocusDom(t,e,s=!0){let i=t?this.querySelector(`.dp-day[data-date="${CSS.escape(t)}"]`):null,n=this.querySelector(`.dp-day[data-date="${CSS.escape(e)}"]`);if(i instanceof HTMLElement)i.tabIndex=-1;if(n instanceof HTMLElement){if(n.tabIndex=0,s)n.focus()}else if(s)this.focusGrid()}_moveSelectionDom(t,e){if(t){let s=this.querySelector(`.dp-day[data-date="${CSS.escape(t)}"]`);if(s instanceof HTMLElement)s.removeAttribute("data-selected"),s.removeAttribute("aria-selected")}if(e){let s=this.querySelector(`.dp-day[data-date="${CSS.escape(e)}"]`);if(s instanceof HTMLElement)return s.setAttribute("data-selected","true"),s.setAttribute("aria-selected","true"),!0}return!1}_dayLabel(t,e,s){let i=this.hasAttribute("data-range-preview")?"":Ne(s),n=typeof e.description==="string"?e.description:"";return[rt(t,this.locale),n,i?this.messages[i]:"",e.disabled?this.messages.unavailable:""].filter(Boolean).join(". ")}_updateRangeDom(){let t=this._paintedRange,e=this._paintedPreview;this._paintedRange={...this._highlightedRange},this._paintedPreview=this.hasAttribute("data-range-preview");for(let s of this.querySelectorAll(".dp-day[data-date]")){if(!(s instanceof HTMLTableCellElement))continue;let i=s.dataset.date||"",n=pt(i,this._highlightedRange);if(n===pt(i,t)&&e===this._paintedPreview)continue;for(let[r,a]of Object.entries(Xt(n)))if(a)s.setAttribute(r,"true");else s.removeAttribute(r);if(!e||!this._paintedPreview){let r=this._renderedStates.get(i)||{},a=this._dayLabel(i,r,n);if(s.getAttribute("aria-label")!==a)s.setAttribute("aria-label",a)}}}focusGrid(){let t=this.querySelector(`.dp-day[data-date="${CSS.escape(this.focusedDate)}"]`);if(t instanceof HTMLElement)t.focus()}async activateDate(t){let e=await this.ensureDate(t),s=this.getDateState(t);if(!e||s.disabled)return this.dispatchEvent(new CustomEvent("dateinvalid",{detail:{date:t,state:s},bubbles:!0})),!1;if(!this.dispatchEvent(new CustomEvent("dateactivate",{detail:{date:t,state:s},bubbles:!0,cancelable:!0})))return!1;if(this.selection==="single"){let n=this._model.value;if(this._model.setValue(t),this._reflect("value",t),this.dispatchEvent(new CustomEvent("datechange",{detail:{value:t},bubbles:!0})),this.dispatchEvent(new Event("change",{bubbles:!0})),this._connected)if(f(t)===this.display)this._moveSelectionDom(n,t);else this.render()}else if(this._connected){if(f(t)!==this.display)this.render()}return!0}_onClick(t){let e=t.target;if(!(e instanceof Element))return;let s=e.closest("[data-calendar-action]");if(s instanceof HTMLButtonElement){let a=s.dataset.calendarAction;if(a==="previous")this.previousMonth();if(a==="next")this.nextMonth();return}let i=e.closest(".dp-day[data-date]");if(!(i instanceof HTMLTableCellElement))return;let n=i.dataset.date||"";if(!l(n))return;let r=this.display;if(this._model.setFocused(this._clamp(n)),this._reflect("display",this._model.display),r!==this.display)this._emitDisplayChange();this.activateDate(n)}_onChange(t){let e=t.target;if(e instanceof HTMLSelectElement&&e.matches(".dp-month-select")){this._setDisplay(`${this.display.slice(0,4)}-${e.value}`);return}if(e instanceof HTMLInputElement&&e.matches(".dp-year-input")){let s=Number(e.value);if(!Number.isInteger(s)||s<1||s>9998){if(this._connected)this.render(!1);return}this._setDisplay(`${String(s).padStart(4,"0")}-${this.display.slice(5,7)}`)}}_onFocusIn(t){let e=t.target;if(!(e instanceof HTMLTableCellElement)||!e.matches(".dp-day[data-date]"))return;let s=e.dataset.date||"";if(!l(s))return;this._model.focused=s,this.dispatchEvent(new CustomEvent("datefocus",{detail:{date:s,state:this.getDateState(s)},bubbles:!0}))}_onKeyDown(t){let e=t.target;if(!(e instanceof HTMLTableCellElement)||!e.matches(".dp-day[data-date]"))return;let s=e.dataset.date||this.focusedDate;if(t.key==="Enter"||t.key===" "){t.preventDefault(),this.activateDate(s);return}let i=this._model.focused,n=this._model.display;if(this._model.firstDay=this.firstDay,this._model.setFocused(s,{follow:!1}),t.key==="ArrowLeft")this._model.moveFocusDays(-1);else if(t.key==="ArrowRight")this._model.moveFocusDays(1);else if(t.key==="ArrowUp")this._model.moveFocusDays(-7);else if(t.key==="ArrowDown")this._model.moveFocusDays(7);else if(t.key==="Home")this._model.focusWeekStart();else if(t.key==="End")this._model.focusWeekEnd();else if(t.key==="PageUp")t.shiftKey?this._model.moveFocusYears(-1):this._model.moveFocusMonths(-1);else if(t.key==="PageDown")t.shiftKey?this._model.moveFocusYears(1):this._model.moveFocusMonths(1);else return;let r=this._model.focused;if(this._model.focused=i,this._model.display=n,!r)return;t.preventDefault(),this.focusDate(this._clamp(r))}render(t=!0){if(!this._connected)return;let e=this.locale,s=this.display,i=Ve(s),n=Number(s.slice(5,7)),r=Kt(e,this.monthFormat),a=kt(e,this.firstDay,"short"),o=kt(e,this.firstDay,"long"),c=this._weeks(),d=R(),u=`${this._id}-heading`,b=`${this._id}-grid`,D=this.min?f(this.min):"",E=this.max?f(this.max):"",k=gt(s,-1),M=gt(s,1),T=Boolean(D&&k!==null&&k<D),y=Boolean(E&&M!==null&&M>E),v=this.min?` min="${Number(this.min.slice(0,4))}"`:"",C=this.max?` max="${Number(this.max.slice(0,4))}"`:"",A=this.showWeekNumbers&&this.firstDay===1,x=A?`<th scope="col" class="dp-week-heading" abbr="${S(this.messages.week)}">#</th>`:"",H=r.map((h,m)=>{let w=m+1,p=`${String(i).padStart(4,"0")}-${String(w).padStart(2,"0")}`,J=D&&p<D||E&&p>E;return`<option value="${String(w).padStart(2,"0")}"${w===n?" selected":""}${J?" disabled":""}>${S(h)}</option>`}).join(""),I=a.map((h,m)=>`<th scope="col" abbr="${S(o[m])}">${S(h.replace(".",""))}</th>`).join("");this._renderedStates.clear();let Y=c.map((h)=>{let m=A?`<th scope="row" class="dp-week-number">${Bt(h[0])}</th>`:"",w=h.map((p)=>{let J=this.getDateState(p);this._renderedStates.set(p,J);let ce=f(p)!==s,ue=this.value===p,he=this.focusedDate===p,fe=p===d,It=pt(p,this._highlightedRange),pe=this._dayLabel(p,J,It);return`<td class="dp-day" data-date="${p}"${ce?' data-outside-month="true"':""}${fe?' data-today="true" aria-current="date"':""}${ue?' data-selected="true" aria-selected="true"':""}${Be(It)}${J.disabled?' data-disabled="true" aria-disabled="true"':""} tabindex="${he?"0":"-1"}" aria-label="${S(pe)}"><span class="dp-day-number" aria-hidden="true">${Number(p.slice(8,10))}</span><span class="dp-day-extra" aria-hidden="true"></span></td>`}).join("");return`<tr>${m}${w}</tr>`}).join(""),K=document.activeElement,q=K instanceof HTMLElement&&this.contains(K)?this._focusTargetKey(K):"",O=zt(e)[0]==="year";this.toggleAttribute("data-year-first",O);let X=this.controlClasses,j=S(X.month||"dp-skin"),bt=S(X.year||"dp-skin"),dt=S(X.nav||"dp-skin"),Z=`<label class="dp-visually-hidden" for="${this._id}-month">${S(this.messages.month)}</label>
3
+ <select id="${this._id}-month" class="dp-month-select ${j}" aria-label="${S(this.messages.month)}">${H}</select>`,g=`<label class="dp-visually-hidden" for="${this._id}-year">${S(this.messages.year)}</label>
4
+ <input id="${this._id}-year" class="dp-year-input ${bt}" type="number" inputmode="numeric" value="${i}"${v}${C} aria-label="${S(this.messages.year)}">`;if(this._rendering=!0,this.innerHTML=`
5
5
  <div class="dp-calendar-shell">
6
6
  <div class="dp-calendar-header">
7
- ${K?W:it}
8
- ${K?it:W}
9
- <button type="button" class="dp-nav dp-prev" data-calendar-action="previous" aria-label="${S(this._messages.previousMonth)}"${E?" disabled":""}><svg aria-hidden="true" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="m4 10 4-4 4 4"/></svg></button>
10
- <button type="button" class="dp-nav dp-next" data-calendar-action="next" aria-label="${S(this._messages.nextMonth)}"${b?" disabled":""}><svg aria-hidden="true" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="m4 6 4 4 4-4"/></svg></button>
7
+ ${O?g:Z}
8
+ ${O?Z:g}
9
+ <button type="button" class="dp-nav dp-prev ${dt}" data-calendar-action="previous" aria-label="${S(this.messages.previousMonth)}"${T?" disabled":""}><svg aria-hidden="true" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="m4 10 4-4 4 4"/></svg></button>
10
+ <button type="button" class="dp-nav dp-next ${dt}" data-calendar-action="next" aria-label="${S(this.messages.nextMonth)}"${y?" disabled":""}><svg aria-hidden="true" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="m4 6 4 4 4-4"/></svg></button>
11
11
  </div>
12
- <h2 id="${h}" class="dp-calendar-heading dp-visually-hidden" aria-live="polite">${S(Tt(`${i}-15`,e))}</h2>
13
- <table id="${x}" class="dp-grid" role="grid" aria-labelledby="${h}">
14
- <thead><tr>${R}${V}</tr></thead>
15
- <tbody>${O}</tbody>
12
+ <h2 id="${u}" class="dp-calendar-heading dp-visually-hidden" aria-live="polite">${S(Wt(`${s}-15`,e))}</h2>
13
+ <table id="${b}" class="dp-grid" role="grid" aria-labelledby="${u}">
14
+ <thead><tr>${x}${I}</tr></thead>
15
+ <tbody>${Y}</tbody>
16
16
  </table>
17
- </div>`,this._rendering=!1,this._paintedRange={...this._highlightedRange},this._paintedPreview=this.hasAttribute("data-range-preview"),B)queueMicrotask(()=>{let u=B;if(u.startsWith(".dp-day[data-date="))u=`.dp-day[data-date="${CSS.escape(this._model.focused)}"]`;let p=this.querySelector(u);if(p instanceof HTMLElement)p.focus()});if(this._renderDay)for(let u of this.querySelectorAll(".dp-day[data-date]")){if(!(u instanceof HTMLTableCellElement))continue;let p=u.dataset.date||"",_=u.querySelector(".dp-day-extra");if(!(_ instanceof HTMLElement))continue;let m=this._renderDay(p,this.getDateState(p));if(m instanceof Node)_.append(m);else if(m!==void 0&&m!==null)_.textContent=String(m)}if(t)this._loadDisplay(i)}}function Pt(t){return t==="top"||t==="bottom"?"x":"y"}function be(t){let[e,i=null]=t.split("-");return{side:e,align:i,crossAxis:Pt(e)}}function ve(t){return{top:"bottom",bottom:"top",left:"right",right:"left"}[t]||t}function we(t,e,i,s,n,r){let a=Pt(i),o=t.x+t.width/2-e.width/2,l=t.y+t.height/2-e.height/2,d=t[a==="x"?"width":"height"]/2-e[a==="x"?"width":"height"]/2,h;switch(i){case"top":h={x:o,y:t.y-e.height-r};break;case"bottom":h={x:o,y:t.y+t.height+r};break;case"right":h={x:t.x+t.width+r,y:l};break;case"left":h={x:t.x-e.width-r,y:l};break;default:h={x:t.x,y:t.y}}if(s==="start"||s==="end"){let x=(n&&a==="x"?-1:1)*(s==="end"?1:-1);h[a]+=d*x}return h}function De(t,e,i,s){return Math.max(i-t,0)+Math.max(t+e-s,0)}function Ee(t){let e="dir"in t?t.dir:"";if(e==="rtl")return!0;if(e==="ltr")return!1;let i=t.ownerDocument?.defaultView;if(i?.CSS?.supports?.("selector(:dir(rtl))")&&typeof t.matches==="function")return t.matches(":dir(rtl)");return Boolean(i?.Element&&t instanceof i.Element&&i.getComputedStyle(t).direction==="rtl")}var xe=25;function Ce(t){let e=t.defaultView;if(!e)return null;let i=t.documentElement,s=e.visualViewport,n=s?.offsetLeft||0,r=s?.offsetTop||0,a=s?.width||i.clientWidth||e.innerWidth,o=s?.height||i.clientHeight||e.innerHeight,l=t.compatMode==="BackCompat"?a-i.clientWidth:i.clientWidth-i.getBoundingClientRect().width;if(l>0&&l<=xe){let d=e.getComputedStyle?.(i).scrollbarGutter;if(d&&d!=="auto")a-=l}return{x:n,y:r,width:a,height:o,right:n+a,bottom:r+o}}function Ae(t,e){return e.scope?e.scope.getBoundingClientRect():Ce(t.ownerDocument)}function Ft(t,e,i,s,n){let r=i+n,a=s-e-n,o=a>=r,l=o?r:i,d=o?a:s-e;return Math.max(l,Math.min(t,d))}function Lt(t,e,i){if(!i)return 50;let s=(t-e)/i*100;return Math.round(Math.min(100,Math.max(0,s))*1000)/1000}function Te(t,e){return t.right<e.x||t.left>e.right||t.bottom<e.y||t.top>e.bottom}function ke(t,e,i,s,n){if(e==="top")return Math.max(0,t.top-i.y-s-n);if(e==="bottom")return Math.max(0,i.bottom-t.bottom-s-n);return Math.max(0,i.height-n*2)}function Se(t){if(t.hidden)return!1;if(typeof t.checkVisibility==="function")return t.checkVisibility();return t.getClientRects().length>0}function Ht(t){let{offsetWidth:e,offsetHeight:i}=t;if(e&&i)return{width:e,height:i};let s=t.getBoundingClientRect();return{width:e||s.width,height:i||s.height}}var It=new WeakMap,Rt={scroll:0,resize:1,"element-resize":2};function Me(t){let e=t.defaultView;if(!e)throw TypeError("floating must belong to a document with a browsing context");let i=new Set,s=new Map,n=e.ResizeObserver,r=!1,a=!1,o=e.visualViewport;function l(E,b){let v=s.get(E);if(v===void 0||Rt[b]>Rt[v])s.set(E,b)}function d(){if(r)return;r=!0,e.requestAnimationFrame(()=>{let E=[...s];s.clear(),r=!1;for(let[b,v]of E){if(!i.has(b)||!b.floating.isConnected)continue;b.callback({type:v})}})}function h(E){for(let b of i)l(b,E);d()}function x(E){if(!n)return null;let b=new Set,v=new n((R)=>{let Y=!1;for(let V of R)if(b.has(V.target))Y=!0;else b.add(V.target);if(!Y)return;l(E,"element-resize"),d()}),{reference:T,floating:D}=E;if(T)v.observe(T);if(D!==T)v.observe(D);return v}let y=()=>h("scroll"),w=()=>h("resize");function C(){if(a)return;t.addEventListener("scroll",y,{passive:!0,capture:!0}),e.addEventListener("resize",w,{passive:!0}),o?.addEventListener("scroll",y,{passive:!0}),o?.addEventListener("resize",w,{passive:!0}),a=!0}function k(){if(!a)return;t.removeEventListener("scroll",y,{capture:!0}),e.removeEventListener("resize",w),o?.removeEventListener("scroll",y),o?.removeEventListener("resize",w),a=!1}return{add(E,b,v){let T={reference:E,floating:b,callback:v};i.add(T),C();let D=x(T),R=!1;return()=>{if(R)return;if(R=!0,i.delete(T),s.delete(T),D?.disconnect(),i.size===0)k()}}}}function $e(t){let e=t.ownerDocument,i=It.get(e);if(!i)i=Me(e),It.set(e,i);return i}function Vt(t,e,i){if(!e?.ownerDocument)throw TypeError("autoUpdate() expects a floating HTMLElement");if(t&&t.ownerDocument!==e.ownerDocument)throw TypeError("reference and floating must belong to the same document");if(typeof i!=="function")throw TypeError("callback must be a function");return $e(e).add(t,e,i)}function Ot(t,e,i){if(!Se(e))return null;let s=i.placement||"bottom-start",n=i.distance||0,r=i.flip!==!1,a=i.shift!==!1,o=i.shiftPadding??4,{side:l,align:d,crossAxis:h}=be(s),x=d?Ee(t):!1,y=t.getClientRects(),w=l==="bottom"?y[y.length-1]:y[0];if(!w)return null;let C=Ae(t,i);if(!C||Te(w,C))return null;let k=Ht(e),E={x:{size:k.width,start:C.x,end:C.right},y:{size:k.height,start:C.y,end:C.bottom}},b=(u,p)=>we(w,k,u,p,x,n),v=(u,p)=>{let{size:_,start:m,end:A}=E[p];return De(u,_,m+o,A-o)},T=(u,p)=>{let{size:_,start:m,end:A}=E[p];return v(a?Ft(u,_,m,A,o):u,p)},D=b(l,d);if(r){let u=h==="x"?"y":"x",p=v(D[u],u);if(p>0){let _=ve(l),m=b(_,d),A=v(m[u],u);if(A<p)l=_,D=m,p=A}if(u==="x"&&p>0){let _=b("top",d),m=b("bottom",d),A=v(m.y,"y")<v(_.y,"y"),z=A?m:_;if(v(z.y,"y")+T(z.x,"x")<p+T(D.y,"y"))l=A?"bottom":"top",h="x",D=z}}if(h==="x"&&a&&d){let u=v(D.x,"x");if(u>0){let p=d==="end"?"start":"end",_=b(l,p);if(v(_.x,"x")<u)d=p,D=_}}if(a){let{size:u,start:p,end:_}=E[h];D[h]=Ft(D[h],u,p,_,o)}let R=Lt(w.x+w.width/2,D.x,k.width),Y=Lt(w.y+w.height/2,D.y,k.height),V=`${ke(w,l,C,n,o)}px`,{style:O}=e,j=O.getPropertyValue("--available-height")!==V,B=i.coordinateSpace==="document"?t.ownerDocument.defaultView:null,K=B?B.scrollX:0,it=B?B.scrollY:0;O.left=`${D.x+K}px`,O.top=`${D.y+it}px`,O.setProperty("--arrow-x",`${R}%`),O.setProperty("--arrow-y",`${Y}%`),O.setProperty("--available-height",V);let W=d?`${l}-${d}`:l;return e.dataset.placement=W,{width:k.width,height:k.height,roomChanged:j,placement:W}}function Bt(t,e,i={}){let s=Ot(t,e,i);if(!s)return!1;if(s.roomChanged){let n=Ht(e);if(n.width!==s.width||n.height!==s.height)Ot(t,e,{...i,placement:s.placement,flip:!1})}return!0}class et{constructor(t,e={}){this.input=t,this.messages=e.messages||{},this.adapter=Q(e.locale||""),this.hidden=null,this.canonical="",this._dirty=!1,this._commitId=0,this._originalName=t.getAttribute("name")||"",this._attributeObserver=null,this.onAttributesChanged=null,this.confirm=null}setLocale(t){this.adapter=Q(t||"")}setMessages(t){this.messages=t||{}}format(t){return this.adapter.format(t)}parse(t){return this.adapter.parse(t)}get placeholder(){return this.adapter.placeholder}get isDisabled(){return this.input.disabled}get isReadOnly(){return this.input.readOnly}setupFormValue(){let t=this.input;this._originalName=t.getAttribute("name")||"",this._attributeObserver=new MutationObserver(()=>this.onAttributesChanged?.()),this._attributeObserver.observe(t,{attributes:!0,attributeFilter:["disabled","readonly","name","form"]}),this.syncInputState()}syncInputState(){let t=this.input,e=t.getAttribute("name")||"";if(e){if(!this.hidden){let i=document.createElement("input");i.type="hidden",i.value=this.canonical,t.insertAdjacentElement("afterend",i),this.hidden=i}if(this.hidden)this.hidden.name=e;t.removeAttribute("name")}if(this.hidden){if(t.hasAttribute("form"))this.hidden.setAttribute("form",t.getAttribute("form")||"");else this.hidden.removeAttribute("form");this.hidden.disabled=t.disabled}}dirty(){this._commitId++}get isDirty(){return this._dirty}handleInput(){let t=this.input,e=t.value.trim(),i=this.canonical?this.adapter.format(this.canonical):"";if(this.dirty(),e===i){if(this._dirty=!1,this.hidden)this.hidden.value=this.canonical;t.setCustomValidity("");return}if(this._dirty=!0,this.hidden)this.hidden.value="";if(!e){t.setCustomValidity("");return}t.setCustomValidity(e===i?"":this.messages.invalidDate)}async commit(t={}){let e=this.input,i=++this._commitId,s=e.value.trim();if(!s){if(i!==this._commitId)return{status:"stale"};return e.setCustomValidity(""),{status:"clear",value:""}}let n=this.adapter.parse(s);if(!n){if(i!==this._commitId)return{status:"stale"};if(this.hidden)this.hidden.value="";return e.setCustomValidity(this.messages.invalidDate),{status:"invalid"}}if(this.confirm){let r=await this.confirm(n,t);if(i!==this._commitId)return{status:"stale"};if(!r?.ok){if(this.hidden)this.hidden.value="";return e.setCustomValidity(r?.message||this.messages.unavailableDate),{status:"invalid"}}}return{status:"ok",value:n}}setCanonical(t,e={}){let i=t||"";if(i&&!c(i))throw TypeError(`Invalid date-picker value: ${i}`);if(this.dirty(),this.canonical=i,this._dirty=!1,this.hidden)this.hidden.value=i;if(e.format!==!1)this.input.value=i?this.adapter.format(i):"";this.input.setCustomValidity("")}restoreDefault(){let t=String(this.input.defaultValue??"").trim(),e=c(t)?t:this.adapter.parse(t);return e&&c(e)?e:""}teardown(){this._attributeObserver?.disconnect(),this._attributeObserver=null;let t=this.hidden?.getAttribute("name")||this._originalName;if(t)this.input.setAttribute("name",t);this.hidden?.remove(),this.hidden=null}}var Fe=/^(\d{2}):(\d{2})(?::(\d{2})(?:\.(\d{1,3}))?)?$/;function pt(t){let e=Fe.exec(String(t||""));if(!e)return null;let i=Number(e[1]),s=Number(e[2]),n=e[3]===void 0?0:Number(e[3]),r=e[4]===void 0?0:Number(e[4].padEnd(3,"0"));if(i>23||s>59||n>59||r>999)return null;return{hour:i,minute:s,second:n,millisecond:r}}function mt(t){return pt(t)!==null}function Nt(t){return((t.hour*60+t.minute)*60+t.second)*1000+t.millisecond}function Yt(t,e){let i=pt(t),s=pt(e);if(!i||!s)throw TypeError("compareTimes() expects HH:MM values");let n=Nt(i)-Nt(s);return n===0?0:n<0?-1:1}var Le=0,Ut=4;class _t extends HTMLElement{static observedAttributes=["value","locale","min","max","open-on-focus","month-format"];constructor(){super();this._id=`date-picker-${++Le}`,this._connected=!1,this._reflecting=!1,this._value="",this._input=null,this._field=null,this._fields=null,this._range=null,this._orderTags=new Set,this._timeFields=[null,null],this._timeOrderOwned=new Set,this._lastFocusEndpoint="",this._rangeCommitId=0,this._pendingIntents=new Map,this._previewDate="",this._drag=null,this._suppressGridClick=!1,this._buttons=[],this._returnFocus=null,this._panel=null,this._calendar=null,this._originalDescribedBy="",this._rangeOriginalDescribedBy=["",""],this._formatHint=null,this._generatedPlaceholder=!1,this._controller=null,this._stopTracking=null,this._open=!1,this._suppressFocusOpen=!1,this._messages=G(),this._source=null,this._dateState=null,this._renderDay=null,this._isDateDisabled=null,this._coordinateSpace="viewport"}_rangeMode(){return this.hasAttribute("range")&&Boolean(this._range)}connectedCallback(){if(this._connected)return;if(this.hasAttribute("range")){this._connectRange();return}this._connectSingle()}_connectSingle(){let t=this.querySelector(":scope > input:not([type=hidden]):not([type=time]):not([data-time-start]):not([data-time-end])");if(!(t instanceof HTMLInputElement)){console.warn("<date-picker> expects a direct child text input");return}this._connected=!0,this._input=t,this._discoverTimeFields(),this._field=new et(t,{messages:this._messages,locale:this.locale}),this._field.onAttributesChanged=()=>this._syncInputState(),this._field.confirm=(s,n)=>this._confirmDate(s,n),this._setupFormValue(),this._build(),this._syncInputState(),this._bind(),this._syncCalendarOptions();let e=this._adapter(),i=this.getAttribute("value")||(c(t.value)?t.value:e.parse(t.value));if(i&&c(i))this._setValue(i,{emit:!1,format:!0});else if(!t.value)this._setValue("",{emit:!1,format:!1});else t.setCustomValidity(this._messages.invalidDate);if(this._field.hidden)this._field.hidden.defaultValue=this._value;if(t.getAttribute("value")==null&&t.defaultValue==="")t.defaultValue=t.value}_discoverTimeFields(){this._timeFields=[null,null];let t=["data-time-start","data-time-end"];for(let[e,i]of t.entries()){let s=this.querySelectorAll(`:scope > input[${i}]`);if(s.length>1)console.warn(`<date-picker> expects at most one direct child input[${i}]; ignoring extras`);let n=s[0];if(n==null)continue;if(!(n instanceof HTMLInputElement)||n.type!=="time"){console.warn(`<date-picker> input[${i}] must be an <input type="time">; ignoring it`);continue}this._timeFields[e]=n}if(this.querySelector(":scope > input[type=time]:not([data-time-start]):not([data-time-end])"))console.warn("<date-picker> time inputs need [data-time-start] or [data-time-end]; ignoring it")}_connectRange(){if(this.querySelector(":scope > input[data-time-start], :scope > input[data-time-end]"))console.warn("<date-picker range> time companions are not supported yet; leaving them native");let t=this.querySelector(":scope > input[data-range-start]"),e=this.querySelector(":scope > input[data-range-end]");if(!(t instanceof HTMLInputElement)||!(e instanceof HTMLInputElement)){console.warn("<date-picker range> expects direct child inputs marked [data-range-start] and [data-range-end]");return}this._connected=!0,this._input=null,this._fields=[new et(t,{messages:this._messages,locale:this.locale}),new et(e,{messages:this._messages,locale:this.locale})],this._range=new ut,this._rangeOriginalDescribedBy=[t.getAttribute("aria-describedby")||"",e.getAttribute("aria-describedby")||""];for(let r of this._fields)r.onAttributesChanged=()=>this._syncRangeFields(),r.confirm=(a,o)=>this._confirmDate(a,o),r.setupFormValue();this._build(),this._setRangeAria(),this._syncRangeFields(),this._bindRange(),this._syncCalendarOptions();let i=this._adapter(),s=c(t.value)?t.value:i.parse(t.value),n=c(e.value)?e.value:i.parse(e.value);if(this._setRange(s||"",n||"",{emit:!1}),t.value.trim()&&!c(s))t.setCustomValidity(this._messages.invalidDate);if(e.value.trim()&&!c(n))e.setCustomValidity(this._messages.invalidDate);if(this._fields[0].hidden)this._fields[0].hidden.defaultValue=this._range.start;if(this._fields[1].hidden)this._fields[1].hidden.defaultValue=this._range.end;if(t.getAttribute("value")==null&&t.defaultValue==="")t.defaultValue=t.value;if(e.getAttribute("value")==null&&e.defaultValue==="")e.defaultValue=e.value}disconnectedCallback(){if(this._connected=!1,this.hide(!1),this._controller?.abort(),this._controller=null,this._clearTimeOrderValidity(),this._timeFields=[null,null],this._rangeMode()){for(let t of this._fields||[])this._teardownField(t);this._fields=null,this._range=null}else this._teardownField(this._field);this._field=null;for(let{button:t}of this._buttons)t.remove();this._buttons=[],this._returnFocus=null,this._panel?.remove(),this._formatHint?.remove(),this._panel=null,this._calendar=null,this._formatHint=null}_teardownField(t){if(!t)return;let e=t.input,i=this._fields?.includes(t)?this._rangeOriginalDescribedBy[this._fields?.indexOf(t)??0]||"":this._originalDescribedBy;if(t.teardown(),i)e.setAttribute("aria-describedby",i);else e.removeAttribute("aria-describedby");e.removeAttribute("role"),e.removeAttribute("aria-haspopup"),e.removeAttribute("aria-expanded"),e.removeAttribute("aria-controls")}attributeChangedCallback(t,e,i){if(!this._connected||this._reflecting||e===i)return;if(t==="value"){if(this._rangeMode())return;if(!i||c(i))this._setValue(i||"",{emit:!1,format:!0,reflect:!1});return}if(t==="locale")this._refreshLocale();if(t==="open-on-focus")return;this._syncCalendarOptions(),this.validate()}get input(){return this._rangeMode()?void 0:this._input}get calendar(){return this._calendar}get value(){return this._rangeMode()?void 0:this._value}set value(t){if(this._rangeMode())throw TypeError("value is not available in range mode; use range");if(t&&!c(t))throw TypeError(`Invalid date-picker value: ${t}`);this._setValue(t||"",{emit:!1,format:!0})}get range(){return this._rangeMode()&&this._range?{...this._range.range}:void 0}set range(t){if(!this._rangeMode())throw TypeError("range is only available on <date-picker range>");let{start:e,end:i}=rt(t);this._setRange(e,i)}get locale(){return I(this.getAttribute("locale")||"")}set locale(t){if(t)this.setAttribute("locale",t);else this.removeAttribute("locale")}get monthFormat(){return this.getAttribute("month-format")==="short"?"short":"long"}set monthFormat(t){if(t==="short")this.setAttribute("month-format","short");else this.removeAttribute("month-format")}get min(){let t=this.getAttribute("min")||"";return c(t)?t:""}set min(t){if(t)this.setAttribute("min",t);else this.removeAttribute("min")}get max(){let t=this.getAttribute("max")||"";return c(t)?t:""}set max(t){if(t)this.setAttribute("max",t);else this.removeAttribute("max")}get openOnFocus(){return this.getAttribute("open-on-focus")!=="false"}set openOnFocus(t){if(t===!1)this.setAttribute("open-on-focus","false");else this.removeAttribute("open-on-focus")}get open(){return this._open}get messages(){return this._messages}set messages(t){if(this._messages={...G(),...t||{}},this._calendar)this._calendar.messages=this._messages;for(let e of this._fields||[])e.setMessages(this._messages);this._field?.setMessages(this._messages),this._refreshButtonLabel(),this.validate()}get source(){return this._source}set source(t){if(this._source=t||null,this._calendar)this._calendar.source=this._source;if(this._connected)this.validate()}get dateState(){return this._dateState}set dateState(t){if(this._dateState=typeof t==="function"?t:null,this._calendar)this._calendar.dateState=this._dateState;if(this._connected)this.validate()}get renderDay(){return this._renderDay}set renderDay(t){if(this._renderDay=typeof t==="function"?t:null,this._calendar)this._calendar.renderDay=this._renderDay}get isDateDisabled(){return this._isDateDisabled}set isDateDisabled(t){if(this._isDateDisabled=typeof t==="function"?t:null,this._calendar)this._calendar.isDateDisabled=this._isDateDisabled;if(this._connected)this.validate()}get coordinateSpace(){return this._coordinateSpace}set coordinateSpace(t){this._coordinateSpace=t==="document"?"document":"viewport"}_adapter(){return this._field?.adapter??this._fields?.[0]?.adapter??Q(this.locale)}_setupFormValue(){this._field?.setupFormValue()}_syncInputState(){let t=this._input;if(!t)return;this._field?.syncInputState();let e=this._buttons[0]?.button;if(e)e.disabled=t.disabled||t.readOnly;if(this._open&&(t.disabled||t.readOnly))this.hide(!1)}_syncRangeFields(){if(!this._fields)return;for(let e of this._fields)e.syncInputState();for(let{button:e,endpoint:i}of this._buttons){let s=i==="end"?1:0,n=this._fields[s];e.disabled=Boolean(n?.input.disabled||n?.input.readOnly)}this._syncDragAffordance();let t=this._range?.activeEndpoint==="end"?1:0;if(this._open&&(this._fields[t]?.input.disabled||this._fields[t]?.input.readOnly))this.hide(!1)}_setRangeAria(){if(!this._fields||!this._panel||!this._formatHint)return;for(let t of this._fields){let e=t.input,i=[this._rangeOriginalDescribedBy[this._fields.indexOf(t)],this._formatHint.id].filter(Boolean).join(" ");e.setAttribute("aria-describedby",i),e.setAttribute("role","combobox"),e.setAttribute("aria-haspopup","dialog"),e.setAttribute("aria-expanded","false"),e.setAttribute("aria-controls",this._panel.id)}}_createTrigger(t){let e=document.createElement("button");if(e.type="button",e.className="dp-picker-button",e.setAttribute("aria-haspopup","dialog"),e.setAttribute("aria-expanded","false"),e.setAttribute("aria-controls",`${this._id}-panel`),t)e.dataset.endpoint=t;return e.innerHTML='<span aria-hidden="true"><svg viewBox="0 0 16 16" width="1em" height="1em" fill="none" stroke="currentColor" stroke-width="1.4" stroke-linecap="round"><rect x="1.75" y="3" width="12.5" height="11" rx="1.75"/><path d="M1.75 6.75h12.5"/><path d="M5.25 1.75v2.5M10.75 1.75v2.5"/></svg></span>',e}_build(){let t=this._rangeMode(),e=[];if(t)for(let[o,l]of(this._fields||[]).entries())e.push([l.input,o===1?"end":"start"]);else if(this._input)e.push([this._input,""]);if(!e.length)return;let i=`${this._id}-panel`,s=`${this._id}-format`;this._buttons=e.map(([o,l])=>{let d=this._createTrigger(l);return o.insertAdjacentElement("afterend",d),{button:d,endpoint:l}});let n=document.createElement("div");n.id=i,n.className="dp-picker-panel",n.setAttribute("popover","manual"),n.setAttribute("role","dialog"),n.setAttribute("aria-label",this._messages.calendar);let r=new tt;r.selection="none",r.fixedWeeks=!0,n.append(r);let a=document.createElement("span");if(a.id=s,a.className="dp-visually-hidden",this.append(n,a),this._panel=n,this._calendar=r,this._formatHint=a,!t&&this._input){this._originalDescribedBy=this._input.getAttribute("aria-describedby")||"";let o=[this._originalDescribedBy,s].filter(Boolean).join(" ");this._input.setAttribute("aria-describedby",o),this._input.setAttribute("role","combobox"),this._input.setAttribute("aria-haspopup","dialog"),this._input.setAttribute("aria-expanded","false"),this._input.setAttribute("aria-controls",i)}this._refreshLocale(),this._refreshButtonLabel()}_bind(){let t=this._input,e=this._buttons[0]?.button,i=this._calendar;if(!t||!e||!i)return;let s=new AbortController;this._controller=s;let{signal:n}=s;t.addEventListener("input",()=>{this._field?.handleInput()},{signal:n}),t.addEventListener("change",()=>void this._commitText(!1),{signal:n}),t.addEventListener("blur",()=>void this._commitText(!1),{signal:n}),t.addEventListener("focus",(r)=>{if(!this.openOnFocus||this._suppressFocusOpen)return;let a=r.relatedTarget;if(a instanceof Node&&this.contains(a))return;if(!this._open)this.show({moveFocus:!1})},{signal:n}),t.addEventListener("keydown",(r)=>{this._onFieldKeyDown("",r)},{signal:n});for(let[r,a]of this._timeFields.entries()){if(!a)continue;let o=r===1?"end":"start";a.addEventListener("input",()=>this._revalidateTimeOrder(o),{signal:n}),a.addEventListener("change",()=>this._revalidateTimeOrder(o),{signal:n})}e.addEventListener("click",(r)=>{if(this._open){if(r.detail===0){setTimeout(()=>this._calendar?.focusGrid(),0);return}this.hide(!1);return}this.show({returnFocus:e})},{signal:n}),e.addEventListener("keydown",(r)=>this._onTriggerKeyDown("",r),{signal:n}),i.addEventListener("dateactivate",(r)=>{let a=r,o=a.detail?.date;if(!c(o))return;queueMicrotask(()=>{if(a.defaultPrevented||!this._connected)return;if(this._input?.disabled||this._input?.readOnly)return;this._field?.dirty(),this._setValue(o,{emit:!0,format:!0}),this.hide(!1),this._restoreFocus()})},{signal:n}),i.addEventListener("dateloadend",()=>void this.validate(),{signal:n}),this.ownerDocument.addEventListener("pointerdown",(r)=>{if(!this._open||r.composedPath().includes(this))return;this.hide(!1)},{capture:!0,signal:n}),this.ownerDocument.addEventListener("reset",(r)=>{let a=r.target;if(a instanceof HTMLFormElement&&this._input&&a===this._input.form)this.hide(!1),queueMicrotask(()=>{if(!r.defaultPrevented)this._restoreDefault()})},{capture:!0,signal:n}),this.addEventListener("keydown",(r)=>this._onEscape(r),{signal:n})}_bindRange(){let t=this._calendar;if(!this._fields||!this._buttons.length||!t)return;let e=new AbortController;this._controller=e;let{signal:i}=e;for(let[s,n]of this._fields.entries()){let r=s===1?"end":"start";n.input.addEventListener("input",()=>n.handleInput(),{signal:i}),n.input.addEventListener("change",()=>void this._commitFieldText(r),{signal:i}),n.input.addEventListener("blur",()=>void this._commitFieldText(r),{signal:i}),n.input.addEventListener("focus",(a)=>this._onFieldFocus(r,a),{signal:i}),n.input.addEventListener("keydown",(a)=>this._onFieldKeyDown(r,a),{signal:i})}for(let s of this._buttons){let n=s.endpoint;if(n==="")continue;s.button.addEventListener("click",(r)=>this._onRangeTriggerClick(n,r),{signal:i}),s.button.addEventListener("keydown",(r)=>this._onTriggerKeyDown(n,r),{signal:i})}t.addEventListener("click",(s)=>{if(this._suppressGridClick){this._suppressGridClick=!1,s.preventDefault(),s.stopImmediatePropagation();return}this._captureGridIntent(s)},{capture:!0,signal:i}),t.addEventListener("keydown",(s)=>this._captureGridIntent(s),{capture:!0,signal:i}),t.addEventListener("dateactivate",(s)=>{let n=s,r=n.detail?.date;if(!c(r))return;queueMicrotask(()=>{if(n.defaultPrevented||!this._connected||!this._range)return;let a=this._pendingIntents.get(r);if(a===void 0||a.id!==this._rangeCommitId)return;this._pendingIntents.delete(r);let o=(d)=>this._boundEditable(d),l=a.endpoint?this._range.moveEndpoint(r,a.endpoint,o):this._range.activate(r,o);if(l.status==="refused"){this._calendar?.dispatchEvent(new CustomEvent("dateinvalid",{detail:{date:r,state:this._calendar.getDateState(r)},bubbles:!0}));return}if(this._applyRangeTransition(l),a.endpoint)return;if(l.close||l.status==="complete")this.hide(!1),this._focusField(l.endpoint)})},{signal:i}),t.addEventListener("datefocus",(s)=>this._onGridDateFocus(s),{signal:i}),t.addEventListener("pointerover",(s)=>this._onGridPointerOver(s),{signal:i}),t.addEventListener("pointerleave",()=>this._onGridPointerLeave(),{signal:i}),t.addEventListener("pointerdown",(s)=>this._onGridPointerDown(s),{signal:i}),t.addEventListener("pointermove",(s)=>this._onGridPointerMove(s),{signal:i}),t.addEventListener("pointerup",(s)=>this._onGridPointerUp(s),{signal:i}),t.addEventListener("pointercancel",(s)=>this._onGridPointerCancel(s),{signal:i}),t.addEventListener("lostpointercapture",(s)=>this._onGridPointerCancel(s),{signal:i}),t.addEventListener("dateloadend",()=>void this.validate(),{signal:i}),this.ownerDocument.addEventListener("pointerdown",(s)=>{if(!this._open||s.composedPath().includes(this))return;this.hide(!1)},{capture:!0,signal:i}),this.ownerDocument.addEventListener("reset",(s)=>{let n=s.target;if(n instanceof HTMLFormElement&&this._fields&&n===this._fields[0].input.form)this.hide(!1),queueMicrotask(()=>{if(!s.defaultPrevented)this._restoreRangeDefault()})},{capture:!0,signal:i}),this.addEventListener("keydown",(s)=>this._onEscape(s),{signal:i})}_activateRangeEndpoint(t){let e=this._calendar;if(!this._range||!e)return;this._range.focus(t),this._rangeCommitId++,this._pendingIntents.clear(),this._lastFocusEndpoint=t;let i=this._boundCanonical(t)||L();e.display=f(i),e.focusedDate=i,this._clearPreview()}_onRangeTriggerClick(t,e){if(!this._open){this.show({endpoint:t});return}if(e.detail===0){this._activateRangeEndpoint(t),setTimeout(()=>this._calendar?.focusGrid(),0);return}if(t!==this._range?.activeEndpoint){this._activateRangeEndpoint(t);return}this.hide(!1)}_onTriggerKeyDown(t,e){if(e.key!=="ArrowDown")return;if(e.preventDefault(),this._open){if(this._rangeMode()&&t)this._activateRangeEndpoint(t);setTimeout(()=>this._calendar?.focusGrid(),0);return}if(this._rangeMode())this.show({endpoint:t||void 0});else this.show({returnFocus:this._buttons[0]?.button})}_onFieldKeyDown(t,e){if(e.key==="ArrowDown"){if(e.preventDefault(),this._rangeMode()&&t)this._lastFocusEndpoint=t,this._range?.focus(t);if(this._open)setTimeout(()=>this._calendar?.focusGrid(),0);else this.show()}else if(e.key==="Escape"&&this._open)e.preventDefault(),this.hide(!1)}_onFieldFocus(t,e){if(!this._rangeMode()||!t)return;let i=t!==this._range?.activeEndpoint;if(this._lastFocusEndpoint=t,this._range?.focus(t),i)this._rangeCommitId++,this._pendingIntents.clear();if(!this.openOnFocus||this._suppressFocusOpen)return;let s=e.relatedTarget;if(s instanceof Node&&this.contains(s))return;if(!this._open)this.show({moveFocus:!1})}_captureGridIntent(t){if(!this._rangeMode()||!this._range)return;if(t.type==="keydown"){let s=t.key;if(s!=="Enter"&&s!==" ")return}if(!(t.target instanceof Element))return;let i=t.target.closest(".dp-day[data-date]")?.getAttribute("data-date")||"";if(!c(i))return;this._pendingIntents.clear(),this._pendingIntents.set(i,{id:++this._rangeCommitId,endpoint:""})}_boundEditable(t){let e=this._fields?.[t==="end"?1:0];return e!=null&&!e.input.disabled&&!e.input.readOnly}_applyRangeTransition(t){let e=this._fields;if(!e||!this._range||t.status==="refused")return;let i=[];for(let s of t.changedEndpoints){let n=e[s==="end"?1:0],r=s==="end"?t.range.end:t.range.start;if(!n||n.canonical===r)continue;n.setCanonical(r,{format:!0}),i.push(n)}if(this._syncHighlight(),this._refreshRangeButtonLabel(),this._revalidateRange(t.endpoint),!i.length)return;this._emitRangeChange();for(let s of i)s.input.dispatchEvent(new Event("input",{bubbles:!0})),s.input.dispatchEvent(new Event("change",{bubbles:!0}))}_setPreview(t,e=""){let i=this._calendar;if(!i||!this._range||!this._open)return;let s=c(t)&&!i.getDateState(t).disabled?t:"",n=s?this._range.previewRange(s,e,(r)=>this._boundEditable(r)):null;if(!n){this._clearPreview();return}this._previewDate=s,i.toggleAttribute("data-range-preview",!0),i.highlightedRange=n}_clearPreview(){if(!this._previewDate)return;this._syncHighlight()}_onGridDateFocus(t){if(this._drag)return;let e=t.detail?.date;if(c(e))this._setPreview(e)}_onGridPointerOver(t){let e=t;if(this._drag||e.pointerType==="touch")return;this._setPreview(this._cellDate(e.target))}_onGridPointerLeave(){if(this._drag?.active===!1)this._drag=null;if(this._drag)return;this._clearPreview()}_cellDate(t){let i=(t instanceof Element?t.closest(".dp-day[data-date]"):null)?.getAttribute("data-date")||"";return c(i)?i:""}_dateAtPoint(t,e){let i=this.ownerDocument.elementFromPoint(t,e);if(!(i instanceof Element)||!this._calendar?.contains(i))return"";return this._cellDate(i)}_onGridPointerDown(t){let e=t;if(this._suppressGridClick=!1,this._drag?.active===!1)this._drag=null;if(!this._open||!this._range||this._drag)return;if(!e.isPrimary||e.button!==0)return;if(e.pointerType!=="mouse"&&e.pointerType!=="pen")return;if(!this._range.complete)return;let i=e.target instanceof Element?e.target.closest(".dp-day[data-date]"):null;if(!(i instanceof HTMLElement))return;let s=i.hasAttribute("data-range-start"),n=i.hasAttribute("data-range-end");if(s===n)return;let r=s?"start":"end",a=this._cellDate(i);if(!a||!this._boundEditable(r))return;this._drag={pointerId:e.pointerId,endpoint:r,x:e.clientX,y:e.clientY,date:a,active:!1}}_onGridPointerMove(t){let e=t,i=this._drag;if(!i||e.pointerId!==i.pointerId)return;if(!i.active){if(!(Math.abs(e.clientX-i.x)>Ut||Math.abs(e.clientY-i.y)>Ut))return;i.active=!0;try{this._calendar?.setPointerCapture(i.pointerId)}catch{}this._syncDragAffordance()}let s=this._dateAtPoint(e.clientX,e.clientY);if(!s||this._calendar?.getDateState(s).disabled)return;i.date=s,this._setPreview(s,i.endpoint)}_onGridPointerUp(t){let e=t,i=this._drag;if(!i||e.pointerId!==i.pointerId)return;if(this._drag=null,this._releaseDragCapture(i.pointerId),!i.active){this._syncDragAffordance();return}this._suppressGridClick=!0;let s=this._range?.projectEndpoint(i.date,i.endpoint,(r)=>this._boundEditable(r));if(!s||s.status==="refused"||!s.changedEndpoints.length){this._syncHighlight();return}let n=i.endpoint==="start"?s.range.start:s.range.end;this._pendingIntents.clear(),this._pendingIntents.set(n,{id:++this._rangeCommitId,endpoint:i.endpoint}),this._calendar?.activateDate(n)}_onGridPointerCancel(t){let e=t,i=this._drag;if(!i||e.pointerId!==i.pointerId)return;this._drag=null,this._releaseDragCapture(i.pointerId),this._syncHighlight()}_releaseDragCapture(t){let e=this._calendar;if(e?.hasPointerCapture(t))e.releasePointerCapture(t)}_syncDragAffordance(){let t=this._calendar;if(!t||!this._range)return;if(this._drag?.active){t.setAttribute("data-range-drag","active");return}let{start:e,end:i}=this._range;if(this._range.complete&&e!==i&&(this._boundEditable("start")||this._boundEditable("end")))t.setAttribute("data-range-drag","ready");else t.removeAttribute("data-range-drag")}_onEscape(t){if(t.key==="Escape"&&this._open)t.preventDefault(),t.stopPropagation(),this.hide(!0)}_syncCalendarOptions(){let t=this._calendar,e=this._panel;if(!t)return;if(t.locale=this.locale,t.min=this.min,t.max=this.max,t.monthFormat=this.monthFormat,t.messages=this._messages,t.source=this._source,t.dateState=this._dateState,t.renderDay=this._renderDay,t.isDateDisabled=this._isDateDisabled,!this._rangeMode()&&this._value)t.value=this._value;if(e)e.setAttribute("aria-label",this._messages.calendar)}_refreshLocale(){let t=this._formatHint;if(!t)return;if(this._rangeMode()&&this._fields){this._fields[0].setLocale(this.locale),this._fields[1].setLocale(this.locale),t.textContent=`${this._messages.formatHint}: ${this._fields[0].placeholder}`;for(let[i,s]of this._fields.entries()){if(!s.input.hasAttribute("placeholder")||this._generatedPlaceholder)s.input.placeholder=s.placeholder,this._generatedPlaceholder=!0;let n=i===1?this._range?.end||"":this._range?.start||"";if(n)s.input.value=s.format(n)}this._refreshButtonLabel();return}let e=this._field;if(!e)return;if(e.setLocale(this.locale),t.textContent=`${this._messages.formatHint}: ${e.placeholder}`,!e.input.hasAttribute("placeholder")||this._generatedPlaceholder)e.input.placeholder=e.placeholder,this._generatedPlaceholder=!0;if(this._value)e.input.value=e.format(this._value);this._refreshButtonLabel()}_refreshButtonLabel(){let t=this._buttons[0]?.button;if(!t)return;if(this._rangeMode()){this._refreshRangeButtonLabel();return}let e=this._value?this._messages.changeDate:this._messages.chooseDate,i=this._value?`, ${J(this._value,this.locale)}`:"";t.setAttribute("aria-label",`${e}${i}`)}_refreshRangeButtonLabel(){if(!this._range)return;let{start:t,end:e}=this._range;for(let{button:i,endpoint:s}of this._buttons){let n=s==="end"?e:t,r=n?this._messages.changeDate:this._messages.chooseDate,a=n?`, ${J(n,this.locale)}`:"",o=s==="end"?this._messages.rangeEnd:this._messages.rangeStart;i.setAttribute("aria-label",`${r}${a}, ${o}`)}}_reflectValue(t){if(this._reflecting=!0,t)this.setAttribute("value",t);else this.removeAttribute("value");this._reflecting=!1}_setValue(t,e={}){if(t&&!c(t))throw TypeError(`Invalid date-picker value: ${t}`);let i=this._value;if(this._value=t||"",e.reflect!==!1)this._reflectValue(this._value);if(this._field?.setCanonical(this._value,{format:e.format!==!1}),this._calendar){if(this._calendar.value=this._value,this._value&&e.moveDisplay!==!1)this._calendar.focusedDate=this._value}if(this._refreshButtonLabel(),i!==this._value){if(this.dispatchEvent(new CustomEvent("valuechange",{detail:{value:this._value},bubbles:!0})),e.emit&&this._field){let s=this._field.input;s.dispatchEvent(new Event("input",{bubbles:!0})),s.dispatchEvent(new Event("change",{bubbles:!0}))}}}async _confirmDate(t,e={}){let i=this._calendar;if(!i)return{ok:!0};if(e.moveDisplay!==!1){let r=f(t);if(i.display!==r)i.display=r}let s=await i.ensureDate(t),n=i.getDateState(t);if(!s||n.disabled)return{ok:!1,message:this._messages.unavailableDate};return{ok:!0}}async _commitText(t,e={}){let i=this._field;if(!i)return!1;if(!e.force&&!i.isDirty)return!1;let s=await i.commit(e);if(s.status==="stale"||s.status==="invalid")return!1;return this._setValue(s.value||"",{emit:t,format:s.status==="ok",moveDisplay:e.moveDisplay}),!0}async _commitFieldText(t){let e=this._fields;if(!e)return!1;let i=t==="end"?1:0,s=e[i];if(!s?.isDirty)return!1;let n=await s.commit();if(n.status==="stale")return!1;if(n.status==="invalid")return this._orderTags.delete(i),!1;return this._setBound(t,n.value||"",{emit:!1,user:!0,format:n.status==="ok"}),!0}_setBound(t,e,i={}){if(!this._range)return!1;let s=this._fields;if(!s)return!1;let r=s[t==="end"?1:0];if(!r)return!1;if(i.user===!0&&(r.input.disabled||r.input.readOnly))return!1;let a=e||"",o=r.canonical;if(r.setCanonical(a,{format:i.format!==!1}),t==="end")this._range.end=a;else this._range.start=a;let l=o!==a;if(l){if(this._syncHighlight(),this._refreshRangeButtonLabel(),this._emitRangeChange(),i.emit)r.input.dispatchEvent(new Event("input",{bubbles:!0})),r.input.dispatchEvent(new Event("change",{bubbles:!0}))}return this._revalidateRange(t),l}_setRange(t,e,i={}){if(!this._range||!this._fields)return;if(this._range.start=t||"",this._range.end=e||"",this._fields[0].setCanonical(t||"",{format:i.format!==!1}),this._fields[1].setCanonical(e||"",{format:i.format!==!1}),this._syncHighlight(),this._refreshRangeButtonLabel(),this._revalidateRange("start"),this._revalidateRange("end"),i.emit!==!1)this._emitRangeChange()}_boundCanonical(t){return this._range?t==="end"?this._range.end:this._range.start:""}_emitRangeChange(){if(!this._range)return;this.dispatchEvent(new CustomEvent("rangechange",{detail:{...this._range.range},bubbles:!0}))}_displayRange(){let{start:t,end:e}=this._range?.range??{start:"",end:""};if(!t)return{start:"",end:""};if(e&&g(e,t)<0)return{start:t,end:""};return{start:t,end:e}}_syncHighlight(){if(!this._calendar||!this._range)return;this._previewDate="",this._calendar.removeAttribute("data-range-preview"),this._calendar.highlightedRange=this._displayRange(),this._syncDragAffordance()}_revalidateRange(t){if(!this._fields||!this._range)return;let{start:e,end:i}=this._range,s=Boolean(e&&i&&g(i,e)<0),n=["start","end"];for(let r of n){let a=r==="end"?1:0,o=this._fields[a].input,l=r==="end"?this._messages.rangeOrderEnd:this._messages.rangeOrderStart;if(s&&r===t)o.setCustomValidity(l),this._orderTags.add(a);else if(this._orderTags.has(a))o.setCustomValidity(""),this._orderTags.delete(a)}}_revalidateTimeOrder(t){let[e,i]=this._timeFields,s=["start","end"],n=[e,i],r=e&&!e.disabled?e.value.trim():"",a=i&&!i.disabled?i.value.trim():"",o=Boolean(e&&i&&r&&a)&&mt(r)&&mt(a)&&Yt(a,r)<0;for(let[l,d]of s.entries()){let h=n[l];if(!h)continue;let x=d==="end"?this._messages.rangeOrderEnd:this._messages.rangeOrderStart;if(o&&d===t)h.setCustomValidity(x),this._timeOrderOwned.add(h);else if(this._timeOrderOwned.has(h))h.setCustomValidity(""),this._timeOrderOwned.delete(h)}}_clearTimeOrderValidity(){for(let t of this._timeOrderOwned)t.setCustomValidity("");this._timeOrderOwned.clear()}_restoreDefault(){let t=this._field;if(!t)return;let e=t.restoreDefault();if(this._setValue(e,{emit:!1,format:!0}),this._calendar)if(this._value)this._calendar.display=f(this._value),this._calendar.focusedDate=this._value;else this._calendar.display=f(L()),this._calendar.focusedDate=L();this.validate()}_restoreRangeDefault(){if(!this._fields)return;let t=this._fields[0].restoreDefault(),e=this._fields[1].restoreDefault();if(this._setRange(t,e),this._calendar){let i=this._range?.start||L();this._calendar.display=f(i),this._calendar.focusedDate=i}this.validate()}_focusField(t){let e=t==="end"?1:0,i=this._fields?.[e]?.input;if(!i)return;this._suppressFocusOpen=!0,setTimeout(()=>{i.focus(),this._suppressFocusOpen=!1},0)}_restoreFocus(){let t=this._returnFocus;if(this._returnFocus=null,!(t instanceof HTMLElement)||!t.isConnected||t.matches(":disabled"))return;this._suppressFocusOpen=!0,setTimeout(()=>{t.focus(),this._suppressFocusOpen=!1},0)}_resolveRangeEndpoint(){if(!this._fields)return"";let t=this._lastFocusEndpoint||"start",e=t==="end"?1:0;if(!this._fields[e].input.disabled&&!this._fields[e].input.readOnly)return t;let i=t==="end"?"start":"end",s=i==="end"?1:0;if(!this._fields[s].input.disabled&&!this._fields[s].input.readOnly)return i;return""}async validate(){if(this._rangeMode()){let i=this._fields;if(!i)return!0;for(let[s,n]of i.entries()){let r=await n.commit({moveDisplay:!1});if(r.status==="ok"||r.status==="clear"){let a=s===1?"end":"start";this._setBound(a,r.value||"",{format:r.status==="ok"})}}return this._revalidateRange("start"),this._revalidateRange("end"),i.every((s)=>s.input.checkValidity())}let t=this._field?.input;if(!t)return!0;if(!t.value.trim())t.setCustomValidity("");else await this._commitText(!1,{force:!0,moveDisplay:!1});this._revalidateTimeOrder("start"),this._revalidateTimeOrder("end");let e=this._timeFields.every((i)=>i?.checkValidity()??!0);return t.checkValidity()&&e}show(t={}){let e=this._panel,i=this._calendar;if(!e||!i||!this._buttons.length||this._open)return;if(this._rangeMode()){let r=t.endpoint||this._resolveRangeEndpoint();if(!r)return;this._activateRangeEndpoint(r)}else{let r=this._input;if(!r||r.disabled||r.readOnly)return;let a=this._value||this._adapter().parse(r.value)||L();i.display=f(a),i.focusedDate=a,this._returnFocus=t.returnFocus instanceof HTMLElement?t.returnFocus:r}e.showPopover(),this._open=!0,this._setExpanded(!0);let s=this.coordinateSpace;e.style.position=s==="document"?"absolute":"fixed";let n=()=>Bt(this,e,{placement:"bottom-start",distance:4,shiftPadding:8,coordinateSpace:s});if(n(),this._stopTracking=Vt(this,e,n),t.moveFocus!==!1)queueMicrotask(()=>i.focusGrid());this.dispatchEvent(new Event("open",{bubbles:!0}))}_setExpanded(t){let e=t?"true":"false";this._input?.setAttribute("aria-expanded",e);for(let{button:i}of this._buttons)i.setAttribute("aria-expanded",e);for(let i of this._fields||[])i.input.setAttribute("aria-expanded",e)}hide(t=!1){if(!this._panel||!this._open)return;this._stopTracking?.(),this._stopTracking=null;try{this._panel.hidePopover()}catch{}if(this._open=!1,this._setExpanded(!1),this._rangeCommitId++,this._pendingIntents.clear(),this._suppressGridClick=!1,this._drag)this._releaseDragCapture(this._drag.pointerId),this._drag=null;if(this._syncHighlight(),t)if(this._rangeMode()){let e=this._restoreFocusEndpoint();if(e)this._focusField(e)}else this._restoreFocus();this.dispatchEvent(new Event("close",{bubbles:!0}))}_restoreFocusEndpoint(){let t=this._range?.activeEndpoint||"";if(t){let e=t==="end"?1:0,i=this._fields?.[e];if(i&&!i.input.disabled&&!i.input.readOnly)return t}return this._resolveRangeEndpoint()}}function Gt(){if(!customElements.get("date-calendar"))customElements.define("date-calendar",tt);if(!customElements.get("date-picker"))customElements.define("date-picker",_t)}Gt();})();
17
+ </div>`,this._rendering=!1,this._paintedRange={...this._highlightedRange},this._paintedPreview=this.hasAttribute("data-range-preview"),q)queueMicrotask(()=>{let h=q;if(h.startsWith(".dp-day[data-date="))h=`.dp-day[data-date="${CSS.escape(this._model.focused)}"]`;let m=this.querySelector(h);if(m instanceof HTMLElement)m.focus()});if(this._renderDay)for(let h of this.querySelectorAll(".dp-day[data-date]")){if(!(h instanceof HTMLTableCellElement))continue;let m=h.dataset.date||"",w=h.querySelector(".dp-day-extra");if(!(w instanceof HTMLElement))continue;let p=this._renderDay(m,this._renderedStates.get(m)||{});if(p instanceof Node)w.append(p);else if(p!==void 0&&p!==null)w.textContent=String(p)}if(t)this._loadDisplay(s)}}function yt(t){return t==="top"||t==="bottom"?"x":"y"}var se={top:"bottom",bottom:"top",left:"right",right:"left"},Ue=new Set(Object.keys(se).flatMap((t)=>[t,`${t}-start`,`${t}-end`])),Ye=new Set(["viewport","document"]);function je(t){if(!Ue.has(t))throw TypeError(`Unknown placement: ${t}`);let[e,s=null]=t.split("-");return{side:e,align:s,crossAxis:yt(e)}}function Ge(t,e,s,i,n,r){let a=yt(s),o=t.x+t.width/2-e.width/2,c=t.y+t.height/2-e.height/2,d=t[a==="x"?"width":"height"]/2-e[a==="x"?"width":"height"]/2,u;switch(s){case"top":u={x:o,y:t.y-e.height-r};break;case"bottom":u={x:o,y:t.y+t.height+r};break;case"right":u={x:t.x+t.width+r,y:c};break;case"left":u={x:t.x-e.width-r,y:c};break;default:u={x:t.x,y:t.y}}if(i==="start"||i==="end"){let b=(n&&a==="x"?-1:1)*(i==="end"?1:-1);u[a]+=d*b}return u}function We(t,e,s,i){return Math.max(s-t,0)+Math.max(t+e-i,0)}function ze(t){let e=t.ownerDocument?.defaultView;if(e&&t instanceof e.Element)return e.getComputedStyle(t).direction==="rtl";return"dir"in t&&t.dir==="rtl"}var Ke=25;function qe(t){let e=t.defaultView;if(!e)return null;let s=t.documentElement,i=e.visualViewport,n=i?.offsetLeft||0,r=i?.offsetTop||0,a=i?.width||s.clientWidth||e.innerWidth,o=i?.height||s.clientHeight||e.innerHeight,c=t.compatMode==="BackCompat"?a-s.clientWidth:s.clientWidth-s.getBoundingClientRect().width;if(c>0&&c<=Ke){let d=e.getComputedStyle?.(s).scrollbarGutter;if(d&&d!=="auto")a-=c}return{x:n,y:r,width:a,height:o,right:n+a,bottom:r+o}}function Xe(t,e){return e.scope?e.scope.getBoundingClientRect():qe(t.ownerDocument)}function Zt(t,e,s,i,n){let r=s+n,a=i-e-n,o=a>=r,c=o?r:s,d=o?a:i-e;return Math.max(c,Math.min(t,d))}function Jt(t,e,s){if(!s)return 50;let i=(t-e)/s*100;return Math.round(Math.min(100,Math.max(0,i))*1000)/1000}function Ze(t,e){for(let s=0;s<t.length;s++){let i=t[s];if(i.right>=e.x&&i.left<=e.right&&i.bottom>=e.y&&i.top<=e.bottom)return!1}return!0}function Je(t,e,s,i,n){if(e==="top")return Math.max(0,t.top-s.y-i-n);if(e==="bottom")return Math.max(0,s.bottom-t.bottom-i-n);return Math.max(0,s.height-n*2)}function Qe(t){if(t.hidden)return!1;if(typeof t.checkVisibility==="function")return t.checkVisibility();return t.getClientRects().length>0}function ie(t){let{offsetWidth:e,offsetHeight:s}=t;if(e&&s)return{width:e,height:s};let i=t.getBoundingClientRect();return{width:e||i.width,height:s||i.height}}var Qt=new WeakMap,te={scroll:0,resize:1,"element-resize":2};function ts(t){let e=t.defaultView;if(!e)throw TypeError("floating must belong to a document with a browsing context");let s=new Set,i=new Map,n=e.ResizeObserver,r=!1,a=!1,o=e.visualViewport;function c(y,v){let C=i.get(y);if(C===void 0||te[v]>te[C])i.set(y,v)}function d(){if(r)return;r=!0,e.requestAnimationFrame(()=>{let y=[...i];i.clear(),r=!1;for(let[v,C]of y){if(!s.has(v)||!v.floating.isConnected)continue;try{v.callback({type:C})}catch(A){u(A)}}})}function u(y){if(typeof e.reportError==="function")e.reportError(y);else e.setTimeout(()=>{throw y})}function b(y){for(let v of s)c(v,y);d()}function D(y){if(!n)return null;let v=new Set,C=new n((H)=>{let I=!1;for(let Y of H)if(v.has(Y.target))I=!0;else v.add(Y.target);if(!I)return;c(y,"element-resize"),d()}),{reference:A,floating:x}=y;if(A)C.observe(A);if(x!==A)C.observe(x);return C}let E=()=>b("scroll"),k=()=>b("resize");function M(){if(a)return;t.addEventListener("scroll",E,{passive:!0,capture:!0}),e.addEventListener("resize",k,{passive:!0}),o?.addEventListener("scroll",E,{passive:!0}),o?.addEventListener("resize",k,{passive:!0}),a=!0}function T(){if(!a)return;t.removeEventListener("scroll",E,{capture:!0}),e.removeEventListener("resize",k),o?.removeEventListener("scroll",E),o?.removeEventListener("resize",k),a=!1}return{add(y,v,C){let A={reference:y,floating:v,callback:C};s.add(A),M();let x=D(A),H=!1;return()=>{if(H)return;if(H=!0,s.delete(A),i.delete(A),x?.disconnect(),s.size===0)T()}}}}function es(t){let e=t.ownerDocument,s=Qt.get(e);if(!s)s=ts(e),Qt.set(e,s);return s}function ne(t,e,s){if(!e?.ownerDocument)throw TypeError("autoUpdate() expects a floating HTMLElement");if(t&&t.ownerDocument!==e.ownerDocument)throw TypeError("reference and floating must belong to the same document");if(typeof s!=="function")throw TypeError("callback must be a function");return es(e).add(t,e,s)}function ee(t,e,s){let i=s.placement===void 0?"bottom-start":s.placement,{side:n,align:r,crossAxis:a}=je(i),o=s.coordinateSpace===void 0?"viewport":s.coordinateSpace;if(!Ye.has(o))throw TypeError(`Unknown coordinateSpace: ${o}`);if(!Qe(e))return null;let c=s.distance||0,d=s.flip!==!1,u=s.shift!==!1,b=s.shiftPadding??4,D=r?ze(t):!1,E=t.getClientRects();if(!E.length)return null;let k=(g)=>g==="bottom"?E[E.length-1]:E[0],M=Xe(t,s);if(!M||Ze(E,M))return null;let T=ie(e),y={x:{size:T.width,start:M.x,end:M.right},y:{size:T.height,start:M.y,end:M.bottom}},v=(g,h)=>Ge(k(g),T,g,h,D,c),C=(g,h)=>{let{size:m,start:w,end:p}=y[h];return We(g,m,w+b,p-b)},A=(g,h)=>{let{size:m,start:w,end:p}=y[h];return C(u?Zt(g,m,w,p,b):g,h)},x=v(n,r),H=(g,h)=>{let m=yt(g),w=m==="x"?"y":"x",p=C(h[w],w);return{main:p,total:p+A(h[m],m)}};if(d){let g=H(n,x),h=(m)=>{let w=v(m,r),p=H(m,w);if(p.total<g.total)n=m,x=w,g=p};if(g.main>0)h(se[n]);if(a==="y"&&g.main>0)h("top"),h("bottom");a=yt(n)}if(a==="x"&&u&&r){let g=C(x.x,"x");if(g>0){let h=r==="end"?"start":"end",m=v(n,h);if(C(m.x,"x")<g)r=h,x=m}}if(u){let{size:g,start:h,end:m}=y[a];x[a]=Zt(x[a],g,h,m,b)}let I=k(n),Y=Jt(I.x+I.width/2,x.x,T.width),K=Jt(I.y+I.height/2,x.y,T.height),q=`${Je(I,n,M,c,b)}px`,{style:O}=e,X=O.getPropertyValue("--available-height")!==q,j=o==="document"?t.ownerDocument.defaultView:null,bt=j?j.scrollX:0,dt=j?j.scrollY:0;O.left=`${x.x+bt}px`,O.top=`${x.y+dt}px`,O.setProperty("--arrow-x",`${Y}%`),O.setProperty("--arrow-y",`${K}%`),O.setProperty("--available-height",q);let Z=r?`${n}-${r}`:n;return e.dataset.placement=Z,{width:T.width,height:T.height,roomChanged:X,placement:Z}}function re(t,e,s={}){let i=ee(t,e,s);if(!i)return!1;if(i.roomChanged){let n=ie(e);if(n.width!==i.width||n.height!==i.height)ee(t,e,{...s,placement:i.placement,flip:!1})}return!0}class lt{constructor(t,e={}){this.input=t,this.messages=e.messages||{},this.adapter=at(e.locale||""),this.hidden=null,this.canonical="",this._dirty=!1,this._commitId=0,this._originalName=t.getAttribute("name")||"",this._attributeObserver=null,this.onAttributesChanged=null,this.confirm=null}setLocale(t){this.adapter=at(t||"")}setMessages(t){this.messages=t||{}}format(t){return this.adapter.format(t)}parse(t){return this.adapter.parse(t)}get placeholder(){return this.adapter.placeholder}get isDisabled(){return this.input.disabled}get isReadOnly(){return this.input.readOnly}setupFormValue(){let t=this.input;this._originalName=t.getAttribute("name")||"",this._attributeObserver=new MutationObserver(()=>this.onAttributesChanged?.()),this._attributeObserver.observe(t,{attributes:!0,attributeFilter:["disabled","readonly","name","form"]}),this.syncInputState()}syncInputState(){let t=this.input,e=t.getAttribute("name")||"";if(e){if(!this.hidden){let s=document.createElement("input");s.type="hidden",s.value=this.canonical,t.insertAdjacentElement("afterend",s),this.hidden=s}if(this.hidden)this.hidden.name=e;t.removeAttribute("name")}if(this.hidden){if(t.hasAttribute("form"))this.hidden.setAttribute("form",t.getAttribute("form")||"");else this.hidden.removeAttribute("form");this.hidden.disabled=t.disabled}}dirty(){this._commitId++}get isDirty(){return this._dirty}handleInput(){let t=this.input,e=t.value.trim(),s=this.canonical?this.adapter.format(this.canonical):"";if(this.dirty(),e===s){if(this._dirty=!1,this.hidden)this.hidden.value=this.canonical;t.setCustomValidity("");return}if(this._dirty=!0,this.hidden)this.hidden.value="";if(!e){t.setCustomValidity("");return}t.setCustomValidity(this.messages.invalidDate)}async commit(t={}){let e=this.input,s=++this._commitId,i=e.value.trim();if(!i){if(s!==this._commitId)return{status:"stale"};return e.setCustomValidity(""),{status:"clear",value:""}}let n=this.adapter.parse(i);if(!n){if(s!==this._commitId)return{status:"stale"};if(this.hidden)this.hidden.value="";return e.setCustomValidity(this.messages.invalidDate),{status:"invalid"}}if(this.confirm){let r=await this.confirm(n,t);if(s!==this._commitId)return{status:"stale"};if(!r?.ok){if(this.hidden)this.hidden.value="";return e.setCustomValidity(r?.message||this.messages.unavailableDate),{status:"invalid"}}}return{status:"ok",value:n}}setCanonical(t,e={}){let s=t||"";if(s&&!l(s))throw TypeError(`Invalid date-picker value: ${s}`);if(this.dirty(),this.canonical=s,this._dirty=!1,this.hidden)this.hidden.value=s;if(e.format!==!1)this.input.value=s?this.adapter.format(s):"";this.input.setCustomValidity("")}restoreDefault(){let t=String(this.input.defaultValue??"").trim(),e=l(t)?t:this.adapter.parse(t);return e&&l(e)?e:""}teardown(){this._attributeObserver?.disconnect(),this._attributeObserver=null;let t=this.hidden?.getAttribute("name")||this._originalName;if(t)this.input.setAttribute("name",t);this.hidden?.remove(),this.hidden=null}}var ss=/^(\d{2}):(\d{2})(?::(\d{2})(?:\.(\d{1,3}))?)?$/;function $t(t){let e=ss.exec(String(t||""));if(!e)return null;let s=Number(e[1]),i=Number(e[2]),n=e[3]===void 0?0:Number(e[3]),r=e[4]===void 0?0:Number(e[4].padEnd(3,"0"));if(s>23||i>59||n>59||r>999)return null;return{hour:s,minute:i,second:n,millisecond:r}}function Ft(t){return $t(t)!==null}function ae(t){return((t.hour*60+t.minute)*60+t.second)*1000+t.millisecond}function oe(t,e){let s=$t(t),i=$t(e);if(!s||!i)throw TypeError("compareTimes() expects HH:MM values");let n=ae(s)-ae(i);return n===0?0:n<0?-1:1}var is=0,le=4;class Lt extends HTMLElement{static observedAttributes=["value","locale","min","max","open-on-focus","month-format"];static setDefaultControlClasses(t){ht(t)}static getDefaultControlClasses(){return st()}static setDefaultMessages(t){mt(t)}static getDefaultMessages(){return N()}constructor(){super();this._id=`date-picker-${++is}`,this._connected=!1,this._reflecting=!1,this._value="",this._input=null,this._field=null,this._fields=null,this._range=null,this._orderTags=new Set,this._timeFields=[null,null],this._timeOrderOwned=new Set,this._lastFocusEndpoint="",this._rangeCommitId=0,this._pendingIntents=new Map,this._previewDate="",this._drag=null,this._suppressGridClick=!1,this._buttons=[],this._returnFocus=null,this._panel=null,this._calendar=null,this._originalDescribedBy="",this._rangeOriginalDescribedBy=["",""],this._formatHint=null,this._generatedPlaceholder=!1,this._controller=null,this._stopTracking=null,this._open=!1,this._suppressFocusOpen=!1,this._messages=null,this._controlClasses=null,this._stopDefaultMessages=null,this._source=null,this._dateState=null,this._renderDay=null,this._isDateDisabled=null,this._coordinateSpace="viewport"}_rangeMode(){return this.hasAttribute("range")&&Boolean(this._range)}connectedCallback(){if(this._connected)return;if(z(this,["locale","min","max","monthFormat","openOnFocus","coordinateSpace","controlClasses","messages","source","dateState","renderDay","isDateDisabled"]),this.hasAttribute("range"))this._connectRange();else this._connectSingle();if(this._connected)z(this,["value","range"]),this._stopDefaultMessages=_t(()=>{if(this._messages===null)this._refreshMessages()})}_connectSingle(){let t=this.querySelector(":scope > input:not([type=hidden]):not([type=time]):not([data-time-start]):not([data-time-end])");if(!(t instanceof HTMLInputElement)){console.warn("<date-picker> expects a direct child text input");return}this._connected=!0,this._input=t,this._discoverTimeFields(),this._field=new lt(t,{messages:this.messages,locale:this.locale}),this._field.onAttributesChanged=()=>this._syncInputState(),this._field.confirm=(i,n)=>this._confirmDate(i,n),this._setupFormValue(),this._build(),this._syncInputState(),this._bind(),this._syncCalendarOptions();let e=this._adapter(),s=this.getAttribute("value")||(l(t.value)?t.value:e.parse(t.value));if(s&&l(s))this._setValue(s,{emit:!1,format:!0});else if(!t.value)this._setValue("",{emit:!1,format:!1});else t.setCustomValidity(this.messages.invalidDate);if(this._field.hidden)this._field.hidden.defaultValue=this._value;if(t.getAttribute("value")==null&&t.defaultValue==="")t.defaultValue=t.value}_discoverTimeFields(){this._timeFields=[null,null];let t=["data-time-start","data-time-end"];for(let[e,s]of t.entries()){let i=this.querySelectorAll(`:scope > input[${s}]`);if(i.length>1)console.warn(`<date-picker> expects at most one direct child input[${s}]; ignoring extras`);let n=i[0];if(n==null)continue;if(!(n instanceof HTMLInputElement)||n.type!=="time"){console.warn(`<date-picker> input[${s}] must be an <input type="time">; ignoring it`);continue}this._timeFields[e]=n}if(this.querySelector(":scope > input[type=time]:not([data-time-start]):not([data-time-end])"))console.warn("<date-picker> time inputs need [data-time-start] or [data-time-end]; ignoring it")}_connectRange(){if(this.querySelector(":scope > input[data-time-start], :scope > input[data-time-end]"))console.warn("<date-picker range> time companions are not supported yet; leaving them native");let t=this.querySelector(":scope > input[data-range-start]"),e=this.querySelector(":scope > input[data-range-end]");if(!(t instanceof HTMLInputElement)||!(e instanceof HTMLInputElement)){console.warn("<date-picker range> expects direct child inputs marked [data-range-start] and [data-range-end]");return}this._connected=!0,this._input=null,this._fields=[new lt(t,{messages:this.messages,locale:this.locale}),new lt(e,{messages:this.messages,locale:this.locale})],this._range=new St,this._rangeOriginalDescribedBy=[t.getAttribute("aria-describedby")||"",e.getAttribute("aria-describedby")||""];for(let r of this._fields)r.onAttributesChanged=()=>this._syncRangeFields(),r.confirm=(a,o)=>this._confirmDate(a,o),r.setupFormValue();this._build(),this._setRangeAria(),this._syncRangeFields(),this._bindRange(),this._syncCalendarOptions();let s=this._adapter(),i=l(t.value)?t.value:s.parse(t.value),n=l(e.value)?e.value:s.parse(e.value);if(this._setRange(i||"",n||"",{emit:!1}),t.value.trim()&&!l(i))t.setCustomValidity(this.messages.invalidDate);if(e.value.trim()&&!l(n))e.setCustomValidity(this.messages.invalidDate);if(this._fields[0].hidden)this._fields[0].hidden.defaultValue=this._range.start;if(this._fields[1].hidden)this._fields[1].hidden.defaultValue=this._range.end;if(t.getAttribute("value")==null&&t.defaultValue==="")t.defaultValue=t.value;if(e.getAttribute("value")==null&&e.defaultValue==="")e.defaultValue=e.value}disconnectedCallback(){if(this._stopDefaultMessages?.(),this._stopDefaultMessages=null,this._connected=!1,this.hide(!1),this._controller?.abort(),this._controller=null,this._clearTimeOrderValidity(),this._timeFields=[null,null],this._rangeMode()){for(let t of this._fields||[])this._teardownField(t);this._fields=null,this._range=null}else this._teardownField(this._field);this._field=null;for(let{button:t}of this._buttons)t.remove();this._buttons=[],this._returnFocus=null,this._panel?.remove(),this._formatHint?.remove(),this._panel=null,this._calendar=null,this._formatHint=null}_teardownField(t){if(!t)return;let e=t.input,s=this._fields?.includes(t)?this._rangeOriginalDescribedBy[this._fields?.indexOf(t)??0]||"":this._originalDescribedBy;if(t.teardown(),s)e.setAttribute("aria-describedby",s);else e.removeAttribute("aria-describedby");e.removeAttribute("role"),e.removeAttribute("aria-haspopup"),e.removeAttribute("aria-expanded"),e.removeAttribute("aria-controls")}attributeChangedCallback(t,e,s){if(!this._connected||this._reflecting||e===s)return;if(t==="value"){if(this._rangeMode())return;if(!s||l(s))this._setValue(s||"",{emit:!1,format:!0,reflect:!1});return}if(t==="locale")this._refreshLocale();if(t==="open-on-focus")return;this._syncCalendarOptions(),this.validate()}get input(){return this._rangeMode()?void 0:this._input}get calendar(){return this._calendar}get value(){return this._rangeMode()?void 0:this._value}set value(t){if(this._rangeMode())throw TypeError("value is not available in range mode; use range");if(t&&!l(t))throw TypeError(`Invalid date-picker value: ${t}`);this._setValue(t||"",{emit:!1,format:!0})}get range(){return this._rangeMode()&&this._range?{...this._range.range}:void 0}set range(t){if(!this._rangeMode())throw TypeError("range is only available on <date-picker range>");let{start:e,end:s}=ft(t);this._setRange(e,s)}get locale(){return P(this.getAttribute("locale")||"")}set locale(t){if(t)this.setAttribute("locale",t);else this.removeAttribute("locale")}get monthFormat(){return this.getAttribute("month-format")==="short"?"short":"long"}set monthFormat(t){if(t==="short")this.setAttribute("month-format","short");else this.removeAttribute("month-format")}get min(){let t=this.getAttribute("min")||"";return l(t)?t:""}set min(t){if(t)this.setAttribute("min",t);else this.removeAttribute("min")}get max(){let t=this.getAttribute("max")||"";return l(t)?t:""}set max(t){if(t)this.setAttribute("max",t);else this.removeAttribute("max")}get openOnFocus(){return this.getAttribute("open-on-focus")!=="false"}set openOnFocus(t){if(t===!1)this.setAttribute("open-on-focus","false");else this.removeAttribute("open-on-focus")}get open(){return this._open}get controlClasses(){return nt(this._controlClasses)}set controlClasses(t){if(this._controlClasses=it(t),this._calendar)this._calendar.controlClasses=this._controlClasses}get messages(){return this._messages??N()}set messages(t){if(this._messages=t==null?null:{...N(),...t},this._calendar)this._calendar.messages=this._messages;this._refreshMessages()}_refreshMessages(){let t=this.messages;for(let s of this._fields||[])s.setMessages(t);this._field?.setMessages(t),this._panel?.setAttribute("aria-label",t.calendar);let e=this._field??this._fields?.[0];if(this._formatHint&&e)this._formatHint.textContent=`${t.formatHint}: ${e.placeholder}`;if(this._refreshButtonLabel(),this._connected)this.validate()}get source(){return this._source}set source(t){if(this._source=t||null,this._calendar)this._calendar.source=this._source;if(this._connected)this.validate()}get dateState(){return this._dateState}set dateState(t){if(this._dateState=typeof t==="function"?t:null,this._calendar)this._calendar.dateState=this._dateState;if(this._connected)this.validate()}get renderDay(){return this._renderDay}set renderDay(t){if(this._renderDay=typeof t==="function"?t:null,this._calendar)this._calendar.renderDay=this._renderDay}get isDateDisabled(){return this._isDateDisabled}set isDateDisabled(t){if(this._isDateDisabled=typeof t==="function"?t:null,this._calendar)this._calendar.isDateDisabled=this._isDateDisabled;if(this._connected)this.validate()}get coordinateSpace(){return this._coordinateSpace}set coordinateSpace(t){this._coordinateSpace=t==="document"?"document":"viewport"}_adapter(){return this._field?.adapter??this._fields?.[0]?.adapter??at(this.locale)}_setupFormValue(){this._field?.setupFormValue()}_syncInputState(){let t=this._input;if(!t)return;this._field?.syncInputState();let e=this._buttons[0]?.button;if(e)e.disabled=t.disabled||t.readOnly;if(this._open&&(t.disabled||t.readOnly))this.hide(!1)}_syncRangeFields(){if(!this._fields)return;for(let e of this._fields)e.syncInputState();for(let{button:e,endpoint:s}of this._buttons){let i=s==="end"?1:0,n=this._fields[i];e.disabled=Boolean(n?.input.disabled||n?.input.readOnly)}this._syncDragAffordance();let t=this._range?.activeEndpoint==="end"?1:0;if(this._open&&(this._fields[t]?.input.disabled||this._fields[t]?.input.readOnly))this.hide(!1)}_setRangeAria(){if(!this._fields||!this._panel||!this._formatHint)return;for(let t of this._fields){let e=t.input,s=[this._rangeOriginalDescribedBy[this._fields.indexOf(t)],this._formatHint.id].filter(Boolean).join(" ");e.setAttribute("aria-describedby",s),e.setAttribute("role","combobox"),e.setAttribute("aria-haspopup","dialog"),e.setAttribute("aria-expanded","false"),e.setAttribute("aria-controls",this._panel.id)}}_createTrigger(t){let e=document.createElement("button");if(e.type="button",e.className="dp-picker-button",e.setAttribute("aria-haspopup","dialog"),e.setAttribute("aria-expanded","false"),e.setAttribute("aria-controls",`${this._id}-panel`),t)e.dataset.endpoint=t;return e.innerHTML='<span aria-hidden="true"><svg viewBox="0 0 16 16" width="1em" height="1em" fill="none" stroke="currentColor" stroke-width="1.4" stroke-linecap="round"><rect x="1.75" y="3" width="12.5" height="11" rx="1.75"/><path d="M1.75 6.75h12.5"/><path d="M5.25 1.75v2.5M10.75 1.75v2.5"/></svg></span>',e}_build(){let t=this._rangeMode(),e=[];if(t)for(let[o,c]of(this._fields||[]).entries())e.push([c.input,o===1?"end":"start"]);else if(this._input)e.push([this._input,""]);if(!e.length)return;let s=`${this._id}-panel`,i=`${this._id}-format`;this._buttons=e.map(([o,c])=>{let d=this._createTrigger(c);return o.insertAdjacentElement("afterend",d),{button:d,endpoint:c}});let n=document.createElement("div");n.id=s,n.className="dp-picker-panel",n.setAttribute("popover","manual"),n.setAttribute("role","dialog"),n.setAttribute("aria-label",this.messages.calendar);let r=new ot;r.selection="none",r.fixedWeeks=!0,n.append(r);let a=document.createElement("span");if(a.id=i,a.className="dp-visually-hidden",this.append(n,a),this._panel=n,this._calendar=r,this._formatHint=a,!t&&this._input){this._originalDescribedBy=this._input.getAttribute("aria-describedby")||"";let o=[this._originalDescribedBy,i].filter(Boolean).join(" ");this._input.setAttribute("aria-describedby",o),this._input.setAttribute("role","combobox"),this._input.setAttribute("aria-haspopup","dialog"),this._input.setAttribute("aria-expanded","false"),this._input.setAttribute("aria-controls",s)}this._refreshLocale(),this._refreshButtonLabel()}_bindPopup(t,e,s){this.ownerDocument.addEventListener("pointerdown",(i)=>{if(!this._open||i.composedPath().includes(this))return;this.hide(!1)},{capture:!0,signal:t}),this.ownerDocument.addEventListener("reset",(i)=>{if(!(i.target instanceof HTMLFormElement)||!e||i.target!==e.form)return;this.hide(!1),queueMicrotask(()=>{if(!i.defaultPrevented)s()})},{capture:!0,signal:t}),this.addEventListener("keydown",(i)=>this._onEscape(i),{signal:t})}_bind(){let t=this._input,e=this._buttons[0]?.button,s=this._calendar;if(!t||!e||!s)return;let i=new AbortController;this._controller=i;let{signal:n}=i;t.addEventListener("input",()=>{this._field?.handleInput()},{signal:n}),t.addEventListener("change",()=>void this._commitText(!1),{signal:n}),t.addEventListener("blur",()=>void this._commitText(!1),{signal:n}),t.addEventListener("focus",(r)=>{if(!this.openOnFocus||this._suppressFocusOpen)return;let a=r.relatedTarget;if(a instanceof Node&&this.contains(a))return;if(!this._open)this.show({moveFocus:!1})},{signal:n}),t.addEventListener("keydown",(r)=>{this._onFieldKeyDown("",r)},{signal:n});for(let[r,a]of this._timeFields.entries()){if(!a)continue;let o=r===1?"end":"start";a.addEventListener("input",()=>this._revalidateTimeOrder(o),{signal:n}),a.addEventListener("change",()=>this._revalidateTimeOrder(o),{signal:n})}e.addEventListener("click",(r)=>{if(this._open){if(r.detail===0){setTimeout(()=>this._calendar?.focusGrid(),0);return}this.hide(!1);return}this.show({returnFocus:e})},{signal:n}),e.addEventListener("keydown",(r)=>this._onTriggerKeyDown("",r),{signal:n}),s.addEventListener("dateactivate",(r)=>{let a=r,o=a.detail?.date;if(!l(o))return;queueMicrotask(()=>{if(a.defaultPrevented||!this._connected)return;if(this._input?.disabled||this._input?.readOnly)return;this._field?.dirty(),this._setValue(o,{emit:!0,format:!0}),this.hide(!1),this._restoreFocus()})},{signal:n}),s.addEventListener("dateloadend",()=>void this.validate(),{signal:n}),this._bindPopup(n,this._input,()=>this._restoreDefault())}_bindRange(){let t=this._calendar;if(!this._fields||!this._buttons.length||!t)return;let e=new AbortController;this._controller=e;let{signal:s}=e;for(let[i,n]of this._fields.entries()){let r=i===1?"end":"start";n.input.addEventListener("input",()=>n.handleInput(),{signal:s}),n.input.addEventListener("change",()=>void this._commitFieldText(r),{signal:s}),n.input.addEventListener("blur",()=>void this._commitFieldText(r),{signal:s}),n.input.addEventListener("focus",(a)=>this._onFieldFocus(r,a),{signal:s}),n.input.addEventListener("keydown",(a)=>this._onFieldKeyDown(r,a),{signal:s})}for(let i of this._buttons){let n=i.endpoint;if(n==="")continue;i.button.addEventListener("click",(r)=>this._onRangeTriggerClick(n,r),{signal:s}),i.button.addEventListener("keydown",(r)=>this._onTriggerKeyDown(n,r),{signal:s})}t.addEventListener("click",(i)=>{if(this._suppressGridClick){this._suppressGridClick=!1,i.preventDefault(),i.stopImmediatePropagation();return}this._captureGridIntent(i)},{capture:!0,signal:s}),t.addEventListener("keydown",(i)=>this._captureGridIntent(i),{capture:!0,signal:s}),t.addEventListener("dateactivate",(i)=>{let n=i,r=n.detail?.date;if(!l(r))return;queueMicrotask(()=>{if(n.defaultPrevented||!this._connected||!this._range)return;let a=this._pendingIntents.get(r);if(a===void 0||a.id!==this._rangeCommitId)return;this._pendingIntents.delete(r);let o=(d)=>this._boundEditable(d),c=a.endpoint?this._range.moveEndpoint(r,a.endpoint,o):this._range.activate(r,o);if(c.status==="refused"){this._calendar?.dispatchEvent(new CustomEvent("dateinvalid",{detail:{date:r,state:this._calendar.getDateState(r)},bubbles:!0}));return}if(this._applyRangeTransition(c),a.endpoint)return;if(c.close||c.status==="complete")this.hide(!1),this._focusField(c.endpoint)})},{signal:s}),t.addEventListener("datefocus",(i)=>this._onGridDateFocus(i),{signal:s}),t.addEventListener("pointerover",(i)=>this._onGridPointerOver(i),{signal:s}),t.addEventListener("pointerleave",()=>this._onGridPointerLeave(),{signal:s}),t.addEventListener("pointerdown",(i)=>this._onGridPointerDown(i),{signal:s}),t.addEventListener("pointermove",(i)=>this._onGridPointerMove(i),{signal:s}),t.addEventListener("pointerup",(i)=>this._onGridPointerUp(i),{signal:s}),t.addEventListener("pointercancel",(i)=>this._onGridPointerCancel(i),{signal:s}),t.addEventListener("lostpointercapture",(i)=>this._onGridPointerCancel(i),{signal:s}),t.addEventListener("dateloadend",()=>void this.validate(),{signal:s}),this._bindPopup(s,this._fields?.[0]?.input,()=>this._restoreRangeDefault())}_activateRangeEndpoint(t){let e=this._calendar;if(!this._range||!e)return;this._range.focus(t),this._rangeCommitId++,this._pendingIntents.clear(),this._lastFocusEndpoint=t;let s=this._boundCanonical(t)||R();e.display=f(s),e.focusedDate=s,this._clearPreview()}_onRangeTriggerClick(t,e){if(!this._open){this.show({endpoint:t});return}if(e.detail===0){this._activateRangeEndpoint(t),setTimeout(()=>this._calendar?.focusGrid(),0);return}if(t!==this._range?.activeEndpoint){this._activateRangeEndpoint(t);return}this.hide(!1)}_onTriggerKeyDown(t,e){if(e.key!=="ArrowDown")return;if(e.preventDefault(),this._open){if(this._rangeMode()&&t)this._activateRangeEndpoint(t);setTimeout(()=>this._calendar?.focusGrid(),0);return}if(this._rangeMode())this.show({endpoint:t||void 0});else this.show({returnFocus:this._buttons[0]?.button})}_onFieldKeyDown(t,e){if(e.key==="ArrowDown"){if(e.preventDefault(),this._rangeMode()&&t)this._lastFocusEndpoint=t,this._range?.focus(t);if(this._open)setTimeout(()=>this._calendar?.focusGrid(),0);else this.show()}else if(e.key==="Escape"&&this._open)e.preventDefault(),this.hide(!1)}_onFieldFocus(t,e){if(!this._rangeMode()||!t)return;let s=t!==this._range?.activeEndpoint;if(this._lastFocusEndpoint=t,this._range?.focus(t),s)this._rangeCommitId++,this._pendingIntents.clear();if(!this.openOnFocus||this._suppressFocusOpen)return;let i=e.relatedTarget;if(i instanceof Node&&this.contains(i))return;if(!this._open)this.show({moveFocus:!1})}_captureGridIntent(t){if(!this._rangeMode()||!this._range)return;if(t.type==="keydown"){let i=t.key;if(i!=="Enter"&&i!==" ")return}if(!(t.target instanceof Element))return;let s=t.target.closest(".dp-day[data-date]")?.getAttribute("data-date")||"";if(!l(s))return;this._pendingIntents.clear(),this._pendingIntents.set(s,{id:++this._rangeCommitId,endpoint:""})}_boundEditable(t){let e=this._fields?.[t==="end"?1:0];return e!=null&&!e.input.disabled&&!e.input.readOnly}_applyRangeTransition(t){let e=this._fields;if(!e||!this._range||t.status==="refused")return;let s=[];for(let i of t.changedEndpoints){let n=e[i==="end"?1:0],r=i==="end"?t.range.end:t.range.start;if(!n||n.canonical===r)continue;n.setCanonical(r,{format:!0}),s.push(n)}if(this._syncHighlight(),this._refreshRangeButtonLabel(),this._revalidateRange(t.endpoint),!s.length)return;this._emitRangeChange();for(let i of s)i.input.dispatchEvent(new Event("input",{bubbles:!0})),i.input.dispatchEvent(new Event("change",{bubbles:!0}))}_setPreview(t,e=""){let s=this._calendar;if(!s||!this._range||!this._open)return;let i=l(t)&&!s.getDateState(t).disabled?t:"",n=i?this._range.previewRange(i,e,(r)=>this._boundEditable(r)):null;if(!n){this._clearPreview();return}this._previewDate=i,s.toggleAttribute("data-range-preview",!0),s.highlightedRange=n}_clearPreview(){if(!this._previewDate)return;this._syncHighlight()}_onGridDateFocus(t){if(this._drag)return;let e=t.detail?.date;if(l(e))this._setPreview(e)}_onGridPointerOver(t){let e=t;if(this._drag||e.pointerType==="touch")return;this._setPreview(this._cellDate(e.target))}_onGridPointerLeave(){if(this._drag?.active===!1)this._drag=null;if(this._drag)return;this._clearPreview()}_cellDate(t){let s=(t instanceof Element?t.closest(".dp-day[data-date]"):null)?.getAttribute("data-date")||"";return l(s)?s:""}_dateAtPoint(t,e){let s=this.ownerDocument.elementFromPoint(t,e);if(!(s instanceof Element)||!this._calendar?.contains(s))return"";return this._cellDate(s)}_onGridPointerDown(t){let e=t;if(this._suppressGridClick=!1,this._drag?.active===!1)this._drag=null;if(!this._open||!this._range||this._drag)return;if(!e.isPrimary||e.button!==0)return;if(e.pointerType!=="mouse"&&e.pointerType!=="pen")return;if(!this._range.complete)return;let s=e.target instanceof Element?e.target.closest(".dp-day[data-date]"):null;if(!(s instanceof HTMLElement))return;let i=s.hasAttribute("data-range-start"),n=s.hasAttribute("data-range-end");if(i===n)return;let r=i?"start":"end",a=this._cellDate(s);if(!a||!this._boundEditable(r))return;this._drag={pointerId:e.pointerId,endpoint:r,x:e.clientX,y:e.clientY,date:a,active:!1}}_onGridPointerMove(t){let e=t,s=this._drag;if(!s||e.pointerId!==s.pointerId)return;if(!s.active){if(!(Math.abs(e.clientX-s.x)>le||Math.abs(e.clientY-s.y)>le))return;s.active=!0;try{this._calendar?.setPointerCapture(s.pointerId)}catch{}this._syncDragAffordance()}let i=this._dateAtPoint(e.clientX,e.clientY);if(!i||this._calendar?.getDateState(i).disabled)return;s.date=i,this._setPreview(i,s.endpoint)}_onGridPointerUp(t){let e=t,s=this._drag;if(!s||e.pointerId!==s.pointerId)return;if(this._drag=null,this._releaseDragCapture(s.pointerId),!s.active){this._syncDragAffordance();return}this._suppressGridClick=!0;let i=this._range?.projectEndpoint(s.date,s.endpoint,(r)=>this._boundEditable(r));if(!i||i.status==="refused"||!i.changedEndpoints.length){this._syncHighlight();return}let n=s.endpoint==="start"?i.range.start:i.range.end;this._pendingIntents.clear(),this._pendingIntents.set(n,{id:++this._rangeCommitId,endpoint:s.endpoint}),this._calendar?.activateDate(n)}_onGridPointerCancel(t){let e=t,s=this._drag;if(!s||e.pointerId!==s.pointerId)return;this._drag=null,this._releaseDragCapture(s.pointerId),this._syncHighlight()}_releaseDragCapture(t){let e=this._calendar;if(e?.hasPointerCapture(t))e.releasePointerCapture(t)}_syncDragAffordance(){let t=this._calendar;if(!t||!this._range)return;if(this._drag?.active){t.setAttribute("data-range-drag","active");return}let{start:e,end:s}=this._range;if(this._range.complete&&e!==s&&(this._boundEditable("start")||this._boundEditable("end")))t.setAttribute("data-range-drag","ready");else t.removeAttribute("data-range-drag")}_onEscape(t){if(t.key==="Escape"&&this._open)t.preventDefault(),t.stopPropagation(),this.hide(!0)}_syncCalendarOptions(){let t=this._calendar,e=this._panel;if(!t)return;if(t.locale=this.locale,t.min=this.min,t.max=this.max,t.monthFormat=this.monthFormat,t.controlClasses=this._controlClasses,t.messages=this._messages,t.source=this._source,t.dateState=this._dateState,t.renderDay=this._renderDay,t.isDateDisabled=this._isDateDisabled,!this._rangeMode()&&this._value)t.value=this._value;if(e)e.setAttribute("aria-label",this.messages.calendar)}_refreshLocale(){let t=this._formatHint;if(!t)return;if(this._rangeMode()&&this._fields){this._fields[0].setLocale(this.locale),this._fields[1].setLocale(this.locale),t.textContent=`${this.messages.formatHint}: ${this._fields[0].placeholder}`;for(let[s,i]of this._fields.entries()){if(!i.input.hasAttribute("placeholder")||this._generatedPlaceholder)i.input.placeholder=i.placeholder,this._generatedPlaceholder=!0;let n=s===1?this._range?.end||"":this._range?.start||"";if(n)i.input.value=i.format(n)}this._refreshButtonLabel();return}let e=this._field;if(!e)return;if(e.setLocale(this.locale),t.textContent=`${this.messages.formatHint}: ${e.placeholder}`,!e.input.hasAttribute("placeholder")||this._generatedPlaceholder)e.input.placeholder=e.placeholder,this._generatedPlaceholder=!0;if(this._value)e.input.value=e.format(this._value);this._refreshButtonLabel()}_refreshButtonLabel(){let t=this._buttons[0]?.button;if(!t)return;if(this._rangeMode()){this._refreshRangeButtonLabel();return}let e=this._value?this.messages.changeDate:this.messages.chooseDate,s=this._value?`, ${rt(this._value,this.locale)}`:"";t.setAttribute("aria-label",`${e}${s}`)}_refreshRangeButtonLabel(){if(!this._range)return;let{start:t,end:e}=this._range;for(let{button:s,endpoint:i}of this._buttons){let n=i==="end"?e:t,r=n?this.messages.changeDate:this.messages.chooseDate,a=n?`, ${rt(n,this.locale)}`:"",o=i==="end"?this.messages.rangeEnd:this.messages.rangeStart;s.setAttribute("aria-label",`${r}${a}, ${o}`)}}_reflectValue(t){if(this._reflecting=!0,t)this.setAttribute("value",t);else this.removeAttribute("value");this._reflecting=!1}_setValue(t,e={}){if(t&&!l(t))throw TypeError(`Invalid date-picker value: ${t}`);let s=this._value;if(this._value=t||"",e.reflect!==!1)this._reflectValue(this._value);if(this._field?.setCanonical(this._value,{format:e.format!==!1}),this._calendar){if(this._calendar.value=this._value,this._value&&e.moveDisplay!==!1)this._calendar.focusedDate=this._value}if(this._refreshButtonLabel(),s!==this._value){if(this.dispatchEvent(new CustomEvent("valuechange",{detail:{value:this._value},bubbles:!0})),e.emit&&this._field){let i=this._field.input;i.dispatchEvent(new Event("input",{bubbles:!0})),i.dispatchEvent(new Event("change",{bubbles:!0}))}}}async _confirmDate(t,e={}){let s=this._calendar;if(!s)return{ok:!0};if(e.moveDisplay!==!1){let r=f(t);if(s.display!==r)s.display=r}let i=await s.ensureDate(t),n=s.getDateState(t);if(!i||n.disabled)return{ok:!1,message:this.messages.unavailableDate};return{ok:!0}}async _commitText(t,e={}){let s=this._field;if(!s)return!1;if(!e.force&&!s.isDirty)return!1;let i=await s.commit(e);if(i.status==="stale"||i.status==="invalid")return!1;return this._setValue(i.value||"",{emit:t,format:i.status==="ok",moveDisplay:e.moveDisplay}),!0}async _commitFieldText(t){let e=this._fields;if(!e)return!1;let s=t==="end"?1:0,i=e[s];if(!i?.isDirty)return!1;let n=await i.commit();if(n.status==="stale")return!1;if(n.status==="invalid")return this._orderTags.delete(s),!1;return this._setBound(t,n.value||"",{emit:!1,user:!0,format:n.status==="ok"}),!0}_setBound(t,e,s={}){if(!this._range)return!1;let i=this._fields;if(!i)return!1;let r=i[t==="end"?1:0];if(!r)return!1;if(s.user===!0&&(r.input.disabled||r.input.readOnly))return!1;let a=e||"",o=r.canonical;if(r.setCanonical(a,{format:s.format!==!1}),t==="end")this._range.end=a;else this._range.start=a;let c=o!==a;if(c){if(this._syncHighlight(),this._refreshRangeButtonLabel(),this._emitRangeChange(),s.emit)r.input.dispatchEvent(new Event("input",{bubbles:!0})),r.input.dispatchEvent(new Event("change",{bubbles:!0}))}return this._revalidateRange(t),c}_setRange(t,e,s={}){if(!this._range||!this._fields)return;if(this._range.start=t||"",this._range.end=e||"",this._fields[0].setCanonical(t||"",{format:s.format!==!1}),this._fields[1].setCanonical(e||"",{format:s.format!==!1}),this._syncHighlight(),this._refreshRangeButtonLabel(),this._revalidateRange("start"),this._revalidateRange("end"),s.emit!==!1)this._emitRangeChange()}_boundCanonical(t){return this._range?t==="end"?this._range.end:this._range.start:""}_emitRangeChange(){if(!this._range)return;this.dispatchEvent(new CustomEvent("rangechange",{detail:{...this._range.range},bubbles:!0}))}_displayRange(){let{start:t,end:e}=this._range?.range??{start:"",end:""};if(!t)return{start:"",end:""};if(e&&_(e,t)<0)return{start:t,end:""};return{start:t,end:e}}_syncHighlight(){if(!this._calendar||!this._range)return;this._previewDate="",this._calendar.removeAttribute("data-range-preview"),this._calendar.highlightedRange=this._displayRange(),this._syncDragAffordance()}_revalidateRange(t){if(!this._fields||!this._range)return;let{start:e,end:s}=this._range,i=Boolean(e&&s&&_(s,e)<0),n=["start","end"];for(let r of n){let a=r==="end"?1:0,o=this._fields[a].input,c=r==="end"?this.messages.rangeOrderEnd:this.messages.rangeOrderStart;if(i&&r===t)o.setCustomValidity(c),this._orderTags.add(a);else if(this._orderTags.has(a))o.setCustomValidity(""),this._orderTags.delete(a)}}_revalidateTimeOrder(t){let[e,s]=this._timeFields,i=["start","end"],n=[e,s],r=e&&!e.disabled?e.value.trim():"",a=s&&!s.disabled?s.value.trim():"",o=Boolean(e&&s&&r&&a)&&Ft(r)&&Ft(a)&&oe(a,r)<0;for(let[c,d]of i.entries()){let u=n[c];if(!u)continue;let b=d==="end"?this.messages.rangeOrderEnd:this.messages.rangeOrderStart;if(o&&d===t)u.setCustomValidity(b),this._timeOrderOwned.add(u);else if(this._timeOrderOwned.has(u))u.setCustomValidity(""),this._timeOrderOwned.delete(u)}}_clearTimeOrderValidity(){for(let t of this._timeOrderOwned)t.setCustomValidity("");this._timeOrderOwned.clear()}_restoreDefault(){let t=this._field;if(!t)return;let e=t.restoreDefault();if(this._setValue(e,{emit:!1,format:!0}),this._calendar)if(this._value)this._calendar.display=f(this._value),this._calendar.focusedDate=this._value;else this._calendar.display=f(R()),this._calendar.focusedDate=R();this.validate()}_restoreRangeDefault(){if(!this._fields)return;let t=this._fields[0].restoreDefault(),e=this._fields[1].restoreDefault();if(this._setRange(t,e),this._calendar){let s=this._range?.start||R();this._calendar.display=f(s),this._calendar.focusedDate=s}this.validate()}_focusField(t){let e=t==="end"?1:0,s=this._fields?.[e]?.input;if(!s)return;this._suppressFocusOpen=!0,setTimeout(()=>{s.focus(),this._suppressFocusOpen=!1},0)}_restoreFocus(){let t=this._returnFocus;if(this._returnFocus=null,!(t instanceof HTMLElement)||!t.isConnected||t.matches(":disabled"))return;this._suppressFocusOpen=!0,setTimeout(()=>{t.focus(),this._suppressFocusOpen=!1},0)}_resolveRangeEndpoint(){if(!this._fields)return"";let t=this._lastFocusEndpoint||"start",e=t==="end"?1:0;if(!this._fields[e].input.disabled&&!this._fields[e].input.readOnly)return t;let s=t==="end"?"start":"end",i=s==="end"?1:0;if(!this._fields[i].input.disabled&&!this._fields[i].input.readOnly)return s;return""}async validate(){if(this._rangeMode()){let s=this._fields;if(!s)return!0;for(let[i,n]of s.entries()){let r=await n.commit({moveDisplay:!1});if(r.status==="ok"||r.status==="clear"){let a=i===1?"end":"start";this._setBound(a,r.value||"",{format:r.status==="ok"})}}return this._revalidateRange("start"),this._revalidateRange("end"),s.every((i)=>i.input.checkValidity())}let t=this._field?.input;if(!t)return!0;if(!t.value.trim())t.setCustomValidity("");else await this._commitText(!1,{force:!0,moveDisplay:!1});this._revalidateTimeOrder("start"),this._revalidateTimeOrder("end");let e=this._timeFields.every((s)=>s?.checkValidity()??!0);return t.checkValidity()&&e}show(t={}){let e=this._panel,s=this._calendar;if(!e||!s||!this._buttons.length||this._open)return;if(this._rangeMode()){let r=t.endpoint||this._resolveRangeEndpoint();if(!r)return;this._activateRangeEndpoint(r)}else{let r=this._input;if(!r||r.disabled||r.readOnly)return;let a=this._value||this._adapter().parse(r.value)||R();s.display=f(a),s.focusedDate=a,this._returnFocus=t.returnFocus instanceof HTMLElement?t.returnFocus:r}e.showPopover(),this._open=!0,this._setExpanded(!0);let i=this.coordinateSpace;e.style.position=i==="document"?"absolute":"fixed";let n=()=>re(this,e,{placement:"bottom-start",distance:4,shiftPadding:8,coordinateSpace:i});if(n(),this._stopTracking=ne(this,e,n),t.moveFocus!==!1)queueMicrotask(()=>s.focusGrid());this.dispatchEvent(new Event("open",{bubbles:!0}))}_setExpanded(t){let e=t?"true":"false";this._input?.setAttribute("aria-expanded",e);for(let{button:s}of this._buttons)s.setAttribute("aria-expanded",e);for(let s of this._fields||[])s.input.setAttribute("aria-expanded",e)}hide(t=!1){if(!this._panel||!this._open)return;this._stopTracking?.(),this._stopTracking=null;try{this._panel.hidePopover()}catch{}if(this._open=!1,this._setExpanded(!1),this._rangeCommitId++,this._pendingIntents.clear(),this._suppressGridClick=!1,this._drag)this._releaseDragCapture(this._drag.pointerId),this._drag=null;if(this._syncHighlight(),t)if(this._rangeMode()){let e=this._restoreFocusEndpoint();if(e)this._focusField(e)}else this._restoreFocus();this.dispatchEvent(new Event("close",{bubbles:!0}))}_restoreFocusEndpoint(){let t=this._range?.activeEndpoint||"";if(t){let e=t==="end"?1:0,s=this._fields?.[e];if(s&&!s.input.disabled&&!s.input.readOnly)return t}return this._resolveRangeEndpoint()}}function de(){if(!customElements.get("date-calendar"))customElements.define("date-calendar",ot);if(!customElements.get("date-picker"))customElements.define("date-picker",Lt)}de();})();