@m3e/web 2.0.5 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (137) hide show
  1. package/dist/all.js +773 -473
  2. package/dist/all.js.map +1 -1
  3. package/dist/all.min.js +52 -58
  4. package/dist/all.min.js.map +1 -1
  5. package/dist/autocomplete.js +342 -69
  6. package/dist/autocomplete.js.map +1 -1
  7. package/dist/autocomplete.min.js +1 -1
  8. package/dist/autocomplete.min.js.map +1 -1
  9. package/dist/chips.js +18 -4
  10. package/dist/chips.js.map +1 -1
  11. package/dist/chips.min.js +1 -1
  12. package/dist/chips.min.js.map +1 -1
  13. package/dist/core-a11y.js +3 -118
  14. package/dist/core-a11y.js.map +1 -1
  15. package/dist/core-a11y.min.js +13 -4
  16. package/dist/core-a11y.min.js.map +1 -1
  17. package/dist/core-anchoring.js +193 -1
  18. package/dist/core-anchoring.js.map +1 -1
  19. package/dist/core-anchoring.min.js +1 -1
  20. package/dist/core-anchoring.min.js.map +1 -1
  21. package/dist/core.js +119 -91
  22. package/dist/core.js.map +1 -1
  23. package/dist/core.min.js +1 -1
  24. package/dist/core.min.js.map +1 -1
  25. package/dist/css-custom-data.json +406 -326
  26. package/dist/custom-elements.json +4321 -3297
  27. package/dist/html-custom-data.json +169 -94
  28. package/dist/loading-indicator.js +1 -0
  29. package/dist/loading-indicator.js.map +1 -1
  30. package/dist/loading-indicator.min.js +1 -1
  31. package/dist/loading-indicator.min.js.map +1 -1
  32. package/dist/menu.js +1 -1
  33. package/dist/menu.js.map +1 -1
  34. package/dist/menu.min.js +1 -1
  35. package/dist/menu.min.js.map +1 -1
  36. package/dist/option.js +94 -121
  37. package/dist/option.js.map +1 -1
  38. package/dist/option.min.js +1 -1
  39. package/dist/option.min.js.map +1 -1
  40. package/dist/progress-indicator.js +2 -0
  41. package/dist/progress-indicator.js.map +1 -1
  42. package/dist/progress-indicator.min.js +2 -2
  43. package/dist/progress-indicator.min.js.map +1 -1
  44. package/dist/select.js +59 -23
  45. package/dist/select.js.map +1 -1
  46. package/dist/select.min.js +1 -1
  47. package/dist/select.min.js.map +1 -1
  48. package/dist/src/autocomplete/AutocompleteElement.d.ts +71 -2
  49. package/dist/src/autocomplete/AutocompleteElement.d.ts.map +1 -1
  50. package/dist/src/autocomplete/AutocompleteFilterMode.d.ts +3 -0
  51. package/dist/src/autocomplete/AutocompleteFilterMode.d.ts.map +1 -0
  52. package/dist/src/autocomplete/QueryEventDetail.d.ts +12 -0
  53. package/dist/src/autocomplete/QueryEventDetail.d.ts.map +1 -0
  54. package/dist/src/autocomplete/index.d.ts +2 -0
  55. package/dist/src/autocomplete/index.d.ts.map +1 -1
  56. package/dist/src/chips/ChipElement.d.ts +2 -0
  57. package/dist/src/chips/ChipElement.d.ts.map +1 -1
  58. package/dist/src/chips/InputChipSetChangeEventDetail.d.ts +13 -0
  59. package/dist/src/chips/InputChipSetChangeEventDetail.d.ts.map +1 -0
  60. package/dist/src/chips/InputChipSetElement.d.ts +10 -0
  61. package/dist/src/chips/InputChipSetElement.d.ts.map +1 -1
  62. package/dist/src/chips/index.d.ts +1 -0
  63. package/dist/src/chips/index.d.ts.map +1 -1
  64. package/dist/src/core/a11y/FocusTrapElement.d.ts +1 -1
  65. package/dist/src/core/a11y/list-key/ListKeyManager.d.ts.map +1 -1
  66. package/dist/src/core/a11y/list-key/RadioKeyManager.d.ts +1 -2
  67. package/dist/src/core/a11y/list-key/RadioKeyManager.d.ts.map +1 -1
  68. package/dist/src/core/a11y/list-key/SelectionManager.d.ts +1 -2
  69. package/dist/src/core/a11y/list-key/SelectionManager.d.ts.map +1 -1
  70. package/dist/src/core/a11y/list-key/Typeahead.d.ts.map +1 -1
  71. package/dist/src/core/anchoring/FloatingPanelElement.d.ts +74 -0
  72. package/dist/src/core/anchoring/FloatingPanelElement.d.ts.map +1 -0
  73. package/dist/src/core/anchoring/index.d.ts +1 -0
  74. package/dist/src/core/anchoring/index.d.ts.map +1 -1
  75. package/dist/src/core/shared/controllers/MutationController.d.ts.map +1 -1
  76. package/dist/src/core/shared/controllers/ResizeController.d.ts.map +1 -1
  77. package/dist/src/core/shared/mixins/AttachInternals.d.ts.map +1 -1
  78. package/dist/src/core/shared/primitives/TextHighlightElement.d.ts +9 -2
  79. package/dist/src/core/shared/primitives/TextHighlightElement.d.ts.map +1 -1
  80. package/dist/src/core/shared/primitives/TextHighlightMode.d.ts +3 -0
  81. package/dist/src/core/shared/primitives/TextHighlightMode.d.ts.map +1 -0
  82. package/dist/src/core/shared/primitives/index.d.ts +2 -1
  83. package/dist/src/core/shared/primitives/index.d.ts.map +1 -1
  84. package/dist/src/loading-indicator/LoadingIndicatorElement.d.ts.map +1 -1
  85. package/dist/src/menu/MenuItemElementBase.d.ts.map +1 -1
  86. package/dist/src/option/OptionElement.d.ts +21 -1
  87. package/dist/src/option/OptionElement.d.ts.map +1 -1
  88. package/dist/src/option/OptionPanelElement.d.ts +11 -34
  89. package/dist/src/option/OptionPanelElement.d.ts.map +1 -1
  90. package/dist/src/option/OptionPanelState.d.ts +3 -0
  91. package/dist/src/option/OptionPanelState.d.ts.map +1 -0
  92. package/dist/src/option/index.d.ts +1 -0
  93. package/dist/src/option/index.d.ts.map +1 -1
  94. package/dist/src/progress-indicator/CircularProgressIndicatorElement.d.ts.map +1 -1
  95. package/dist/src/progress-indicator/LinearProgressIndicatorElement.d.ts.map +1 -1
  96. package/dist/src/select/SelectElement.d.ts +3 -2
  97. package/dist/src/select/SelectElement.d.ts.map +1 -1
  98. package/dist/src/toc/TocElement.d.ts.map +1 -1
  99. package/dist/toc.js +0 -1
  100. package/dist/toc.js.map +1 -1
  101. package/dist/toc.min.js +1 -1
  102. package/dist/toc.min.js.map +1 -1
  103. package/package.json +1 -1
  104. package/dist/datepicker.js +0 -2346
  105. package/dist/datepicker.js.map +0 -1
  106. package/dist/datepicker.min.js +0 -102
  107. package/dist/datepicker.min.js.map +0 -1
  108. package/dist/src/core/shared/decorators/component.d.ts +0 -19
  109. package/dist/src/core/shared/decorators/component.d.ts.map +0 -1
  110. package/dist/src/core/shared/decorators/element.d.ts +0 -19
  111. package/dist/src/core/shared/decorators/element.d.ts.map +0 -1
  112. package/dist/src/core/shared/utils/getState.d.ts +0 -15
  113. package/dist/src/core/shared/utils/getState.d.ts.map +0 -1
  114. package/dist/src/datepicker/CalendarElement.d.ts +0 -203
  115. package/dist/src/datepicker/CalendarElement.d.ts.map +0 -1
  116. package/dist/src/datepicker/CalendarView.d.ts +0 -3
  117. package/dist/src/datepicker/CalendarView.d.ts.map +0 -1
  118. package/dist/src/datepicker/CalendarViewElementBase.d.ts +0 -28
  119. package/dist/src/datepicker/CalendarViewElementBase.d.ts.map +0 -1
  120. package/dist/src/datepicker/DateAdapter.d.ts +0 -4
  121. package/dist/src/datepicker/DateAdapter.d.ts.map +0 -1
  122. package/dist/src/datepicker/DatepickerElement.d.ts +0 -180
  123. package/dist/src/datepicker/DatepickerElement.d.ts.map +0 -1
  124. package/dist/src/datepicker/DatepickerToggleElement.d.ts +0 -21
  125. package/dist/src/datepicker/DatepickerToggleElement.d.ts.map +0 -1
  126. package/dist/src/datepicker/DatepickerVariant.d.ts +0 -3
  127. package/dist/src/datepicker/DatepickerVariant.d.ts.map +0 -1
  128. package/dist/src/datepicker/MonthViewElement.d.ts +0 -35
  129. package/dist/src/datepicker/MonthViewElement.d.ts.map +0 -1
  130. package/dist/src/datepicker/MultiYearViewElement.d.ts +0 -27
  131. package/dist/src/datepicker/MultiYearViewElement.d.ts.map +0 -1
  132. package/dist/src/datepicker/YearViewElement.d.ts +0 -27
  133. package/dist/src/datepicker/YearViewElement.d.ts.map +0 -1
  134. package/dist/src/datepicker/index.d.ts +0 -10
  135. package/dist/src/datepicker/index.d.ts.map +0 -1
  136. package/dist/src/datepicker/utils.d.ts +0 -26
  137. package/dist/src/datepicker/utils.d.ts.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"datepicker.js","sources":["../../../node_modules/tslib/tslib.es6.js","../../../node_modules/@lit/reactive-element/decorators/custom-element.js","../../../node_modules/@lit/reactive-element/css-tag.js","../../../node_modules/@lit/reactive-element/reactive-element.js","../../../node_modules/@lit/reactive-element/decorators/property.js","../../../node_modules/@lit/reactive-element/decorators/state.js","../../../node_modules/@lit/reactive-element/decorators/base.js","../../../node_modules/@lit/reactive-element/decorators/query.js","../../../node_modules/lit-html/lit-html.js","../../../node_modules/lit-html/directive.js","../../../node_modules/lit-html/directives/class-map.js","../../../node_modules/lit-html/directives/if-defined.js","../../src/datepicker/utils.ts","../../src/datepicker/CalendarViewElementBase.ts","../../src/datepicker/MonthViewElement.ts","../../src/datepicker/CalendarElement.ts","../../src/datepicker/DatepickerElement.ts","../../src/datepicker/DatepickerToggleElement.ts","../../src/datepicker/MultiYearViewElement.ts","../../src/datepicker/YearViewElement.ts"],"sourcesContent":["/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise, SuppressedError, Symbol, Iterator */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\r\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\r\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\r\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\r\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\r\n var _, done = false;\r\n for (var i = decorators.length - 1; i >= 0; i--) {\r\n var context = {};\r\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\r\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\r\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\r\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\r\n if (kind === \"accessor\") {\r\n if (result === void 0) continue;\r\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\r\n if (_ = accept(result.get)) descriptor.get = _;\r\n if (_ = accept(result.set)) descriptor.set = _;\r\n if (_ = accept(result.init)) initializers.unshift(_);\r\n }\r\n else if (_ = accept(result)) {\r\n if (kind === \"field\") initializers.unshift(_);\r\n else descriptor[key] = _;\r\n }\r\n }\r\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\r\n done = true;\r\n};\r\n\r\nexport function __runInitializers(thisArg, initializers, value) {\r\n var useValue = arguments.length > 2;\r\n for (var i = 0; i < initializers.length; i++) {\r\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\r\n }\r\n return useValue ? value : void 0;\r\n};\r\n\r\nexport function __propKey(x) {\r\n return typeof x === \"symbol\" ? x : \"\".concat(x);\r\n};\r\n\r\nexport function __setFunctionName(f, name, prefix) {\r\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\r\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\r\n};\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\r\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\r\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nvar ownKeys = function(o) {\r\n ownKeys = Object.getOwnPropertyNames || function (o) {\r\n var ar = [];\r\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\r\n return ar;\r\n };\r\n return ownKeys(o);\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n\r\nexport function __addDisposableResource(env, value, async) {\r\n if (value !== null && value !== void 0) {\r\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\r\n var dispose, inner;\r\n if (async) {\r\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\r\n dispose = value[Symbol.asyncDispose];\r\n }\r\n if (dispose === void 0) {\r\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\r\n dispose = value[Symbol.dispose];\r\n if (async) inner = dispose;\r\n }\r\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\r\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\r\n env.stack.push({ value: value, dispose: dispose, async: async });\r\n }\r\n else if (async) {\r\n env.stack.push({ async: true });\r\n }\r\n return value;\r\n\r\n}\r\n\r\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\r\n var e = new Error(message);\r\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\r\n};\r\n\r\nexport function __disposeResources(env) {\r\n function fail(e) {\r\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\r\n env.hasError = true;\r\n }\r\n var r, s = 0;\r\n function next() {\r\n while (r = env.stack.pop()) {\r\n try {\r\n if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\r\n if (r.dispose) {\r\n var result = r.dispose.call(r.value);\r\n if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\r\n }\r\n else s |= 1;\r\n }\r\n catch (e) {\r\n fail(e);\r\n }\r\n }\r\n if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\r\n if (env.hasError) throw env.error;\r\n }\r\n return next();\r\n}\r\n\r\nexport function __rewriteRelativeImportExtension(path, preserveJsx) {\r\n if (typeof path === \"string\" && /^\\.\\.?\\//.test(path)) {\r\n return path.replace(/\\.(tsx)$|((?:\\.d)?)((?:\\.[^./]+?)?)\\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {\r\n return tsx ? preserveJsx ? \".jsx\" : \".js\" : d && (!ext || !cm) ? m : (d + ext + \".\" + cm.toLowerCase() + \"js\");\r\n });\r\n }\r\n return path;\r\n}\r\n\r\nexport default {\r\n __extends: __extends,\r\n __assign: __assign,\r\n __rest: __rest,\r\n __decorate: __decorate,\r\n __param: __param,\r\n __esDecorate: __esDecorate,\r\n __runInitializers: __runInitializers,\r\n __propKey: __propKey,\r\n __setFunctionName: __setFunctionName,\r\n __metadata: __metadata,\r\n __awaiter: __awaiter,\r\n __generator: __generator,\r\n __createBinding: __createBinding,\r\n __exportStar: __exportStar,\r\n __values: __values,\r\n __read: __read,\r\n __spread: __spread,\r\n __spreadArrays: __spreadArrays,\r\n __spreadArray: __spreadArray,\r\n __await: __await,\r\n __asyncGenerator: __asyncGenerator,\r\n __asyncDelegator: __asyncDelegator,\r\n __asyncValues: __asyncValues,\r\n __makeTemplateObject: __makeTemplateObject,\r\n __importStar: __importStar,\r\n __importDefault: __importDefault,\r\n __classPrivateFieldGet: __classPrivateFieldGet,\r\n __classPrivateFieldSet: __classPrivateFieldSet,\r\n __classPrivateFieldIn: __classPrivateFieldIn,\r\n __addDisposableResource: __addDisposableResource,\r\n __disposeResources: __disposeResources,\r\n __rewriteRelativeImportExtension: __rewriteRelativeImportExtension,\r\n};\r\n","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst t=t=>(e,o)=>{void 0!==o?o.addInitializer((()=>{customElements.define(t,e)})):customElements.define(t,e)};export{t as customElement};\n//# sourceMappingURL=custom-element.js.map\n","/**\n * @license\n * Copyright 2019 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst t=globalThis,e=t.ShadowRoot&&(void 0===t.ShadyCSS||t.ShadyCSS.nativeShadow)&&\"adoptedStyleSheets\"in Document.prototype&&\"replace\"in CSSStyleSheet.prototype,s=Symbol(),o=new WeakMap;class n{constructor(t,e,o){if(this._$cssResult$=!0,o!==s)throw Error(\"CSSResult is not constructable. Use `unsafeCSS` or `css` instead.\");this.cssText=t,this.t=e}get styleSheet(){let t=this.o;const s=this.t;if(e&&void 0===t){const e=void 0!==s&&1===s.length;e&&(t=o.get(s)),void 0===t&&((this.o=t=new CSSStyleSheet).replaceSync(this.cssText),e&&o.set(s,t))}return t}toString(){return this.cssText}}const r=t=>new n(\"string\"==typeof t?t:t+\"\",void 0,s),i=(t,...e)=>{const o=1===t.length?t[0]:e.reduce(((e,s,o)=>e+(t=>{if(!0===t._$cssResult$)return t.cssText;if(\"number\"==typeof t)return t;throw Error(\"Value passed to 'css' function must be a 'css' function result: \"+t+\". Use 'unsafeCSS' to pass non-literal values, but take care to ensure page security.\")})(s)+t[o+1]),t[0]);return new n(o,t,s)},S=(s,o)=>{if(e)s.adoptedStyleSheets=o.map((t=>t instanceof CSSStyleSheet?t:t.styleSheet));else for(const e of o){const o=document.createElement(\"style\"),n=t.litNonce;void 0!==n&&o.setAttribute(\"nonce\",n),o.textContent=e.cssText,s.appendChild(o)}},c=e?t=>t:t=>t instanceof CSSStyleSheet?(t=>{let e=\"\";for(const s of t.cssRules)e+=s.cssText;return r(e)})(t):t;export{n as CSSResult,S as adoptStyles,i as css,c as getCompatibleStyle,e as supportsAdoptingStyleSheets,r as unsafeCSS};\n//# sourceMappingURL=css-tag.js.map\n","import{getCompatibleStyle as t,adoptStyles as s}from\"./css-tag.js\";export{CSSResult,css,supportsAdoptingStyleSheets,unsafeCSS}from\"./css-tag.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const{is:i,defineProperty:e,getOwnPropertyDescriptor:h,getOwnPropertyNames:r,getOwnPropertySymbols:o,getPrototypeOf:n}=Object,a=globalThis,c=a.trustedTypes,l=c?c.emptyScript:\"\",p=a.reactiveElementPolyfillSupport,d=(t,s)=>t,u={toAttribute(t,s){switch(s){case Boolean:t=t?l:null;break;case Object:case Array:t=null==t?t:JSON.stringify(t)}return t},fromAttribute(t,s){let i=t;switch(s){case Boolean:i=null!==t;break;case Number:i=null===t?null:Number(t);break;case Object:case Array:try{i=JSON.parse(t)}catch(t){i=null}}return i}},f=(t,s)=>!i(t,s),b={attribute:!0,type:String,converter:u,reflect:!1,useDefault:!1,hasChanged:f};Symbol.metadata??=Symbol(\"metadata\"),a.litPropertyMetadata??=new WeakMap;class y extends HTMLElement{static addInitializer(t){this._$Ei(),(this.l??=[]).push(t)}static get observedAttributes(){return this.finalize(),this._$Eh&&[...this._$Eh.keys()]}static createProperty(t,s=b){if(s.state&&(s.attribute=!1),this._$Ei(),this.prototype.hasOwnProperty(t)&&((s=Object.create(s)).wrapped=!0),this.elementProperties.set(t,s),!s.noAccessor){const i=Symbol(),h=this.getPropertyDescriptor(t,i,s);void 0!==h&&e(this.prototype,t,h)}}static getPropertyDescriptor(t,s,i){const{get:e,set:r}=h(this.prototype,t)??{get(){return this[s]},set(t){this[s]=t}};return{get:e,set(s){const h=e?.call(this);r?.call(this,s),this.requestUpdate(t,h,i)},configurable:!0,enumerable:!0}}static getPropertyOptions(t){return this.elementProperties.get(t)??b}static _$Ei(){if(this.hasOwnProperty(d(\"elementProperties\")))return;const t=n(this);t.finalize(),void 0!==t.l&&(this.l=[...t.l]),this.elementProperties=new Map(t.elementProperties)}static finalize(){if(this.hasOwnProperty(d(\"finalized\")))return;if(this.finalized=!0,this._$Ei(),this.hasOwnProperty(d(\"properties\"))){const t=this.properties,s=[...r(t),...o(t)];for(const i of s)this.createProperty(i,t[i])}const t=this[Symbol.metadata];if(null!==t){const s=litPropertyMetadata.get(t);if(void 0!==s)for(const[t,i]of s)this.elementProperties.set(t,i)}this._$Eh=new Map;for(const[t,s]of this.elementProperties){const i=this._$Eu(t,s);void 0!==i&&this._$Eh.set(i,t)}this.elementStyles=this.finalizeStyles(this.styles)}static finalizeStyles(s){const i=[];if(Array.isArray(s)){const e=new Set(s.flat(1/0).reverse());for(const s of e)i.unshift(t(s))}else void 0!==s&&i.push(t(s));return i}static _$Eu(t,s){const i=s.attribute;return!1===i?void 0:\"string\"==typeof i?i:\"string\"==typeof t?t.toLowerCase():void 0}constructor(){super(),this._$Ep=void 0,this.isUpdatePending=!1,this.hasUpdated=!1,this._$Em=null,this._$Ev()}_$Ev(){this._$ES=new Promise((t=>this.enableUpdating=t)),this._$AL=new Map,this._$E_(),this.requestUpdate(),this.constructor.l?.forEach((t=>t(this)))}addController(t){(this._$EO??=new Set).add(t),void 0!==this.renderRoot&&this.isConnected&&t.hostConnected?.()}removeController(t){this._$EO?.delete(t)}_$E_(){const t=new Map,s=this.constructor.elementProperties;for(const i of s.keys())this.hasOwnProperty(i)&&(t.set(i,this[i]),delete this[i]);t.size>0&&(this._$Ep=t)}createRenderRoot(){const t=this.shadowRoot??this.attachShadow(this.constructor.shadowRootOptions);return s(t,this.constructor.elementStyles),t}connectedCallback(){this.renderRoot??=this.createRenderRoot(),this.enableUpdating(!0),this._$EO?.forEach((t=>t.hostConnected?.()))}enableUpdating(t){}disconnectedCallback(){this._$EO?.forEach((t=>t.hostDisconnected?.()))}attributeChangedCallback(t,s,i){this._$AK(t,i)}_$ET(t,s){const i=this.constructor.elementProperties.get(t),e=this.constructor._$Eu(t,i);if(void 0!==e&&!0===i.reflect){const h=(void 0!==i.converter?.toAttribute?i.converter:u).toAttribute(s,i.type);this._$Em=t,null==h?this.removeAttribute(e):this.setAttribute(e,h),this._$Em=null}}_$AK(t,s){const i=this.constructor,e=i._$Eh.get(t);if(void 0!==e&&this._$Em!==e){const t=i.getPropertyOptions(e),h=\"function\"==typeof t.converter?{fromAttribute:t.converter}:void 0!==t.converter?.fromAttribute?t.converter:u;this._$Em=e;const r=h.fromAttribute(s,t.type);this[e]=r??this._$Ej?.get(e)??r,this._$Em=null}}requestUpdate(t,s,i){if(void 0!==t){const e=this.constructor,h=this[t];if(i??=e.getPropertyOptions(t),!((i.hasChanged??f)(h,s)||i.useDefault&&i.reflect&&h===this._$Ej?.get(t)&&!this.hasAttribute(e._$Eu(t,i))))return;this.C(t,s,i)}!1===this.isUpdatePending&&(this._$ES=this._$EP())}C(t,s,{useDefault:i,reflect:e,wrapped:h},r){i&&!(this._$Ej??=new Map).has(t)&&(this._$Ej.set(t,r??s??this[t]),!0!==h||void 0!==r)||(this._$AL.has(t)||(this.hasUpdated||i||(s=void 0),this._$AL.set(t,s)),!0===e&&this._$Em!==t&&(this._$Eq??=new Set).add(t))}async _$EP(){this.isUpdatePending=!0;try{await this._$ES}catch(t){Promise.reject(t)}const t=this.scheduleUpdate();return null!=t&&await t,!this.isUpdatePending}scheduleUpdate(){return this.performUpdate()}performUpdate(){if(!this.isUpdatePending)return;if(!this.hasUpdated){if(this.renderRoot??=this.createRenderRoot(),this._$Ep){for(const[t,s]of this._$Ep)this[t]=s;this._$Ep=void 0}const t=this.constructor.elementProperties;if(t.size>0)for(const[s,i]of t){const{wrapped:t}=i,e=this[s];!0!==t||this._$AL.has(s)||void 0===e||this.C(s,void 0,i,e)}}let t=!1;const s=this._$AL;try{t=this.shouldUpdate(s),t?(this.willUpdate(s),this._$EO?.forEach((t=>t.hostUpdate?.())),this.update(s)):this._$EM()}catch(s){throw t=!1,this._$EM(),s}t&&this._$AE(s)}willUpdate(t){}_$AE(t){this._$EO?.forEach((t=>t.hostUpdated?.())),this.hasUpdated||(this.hasUpdated=!0,this.firstUpdated(t)),this.updated(t)}_$EM(){this._$AL=new Map,this.isUpdatePending=!1}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$ES}shouldUpdate(t){return!0}update(t){this._$Eq&&=this._$Eq.forEach((t=>this._$ET(t,this[t]))),this._$EM()}updated(t){}firstUpdated(t){}}y.elementStyles=[],y.shadowRootOptions={mode:\"open\"},y[d(\"elementProperties\")]=new Map,y[d(\"finalized\")]=new Map,p?.({ReactiveElement:y}),(a.reactiveElementVersions??=[]).push(\"2.1.1\");export{y as ReactiveElement,s as adoptStyles,u as defaultConverter,t as getCompatibleStyle,f as notEqual};\n//# sourceMappingURL=reactive-element.js.map\n","import{defaultConverter as t,notEqual as e}from\"../reactive-element.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const o={attribute:!0,type:String,converter:t,reflect:!1,hasChanged:e},r=(t=o,e,r)=>{const{kind:n,metadata:i}=r;let s=globalThis.litPropertyMetadata.get(i);if(void 0===s&&globalThis.litPropertyMetadata.set(i,s=new Map),\"setter\"===n&&((t=Object.create(t)).wrapped=!0),s.set(r.name,t),\"accessor\"===n){const{name:o}=r;return{set(r){const n=e.get.call(this);e.set.call(this,r),this.requestUpdate(o,n,t)},init(e){return void 0!==e&&this.C(o,void 0,t,e),e}}}if(\"setter\"===n){const{name:o}=r;return function(r){const n=this[o];e.call(this,r),this.requestUpdate(o,n,t)}}throw Error(\"Unsupported decorator location: \"+n)};function n(t){return(e,o)=>\"object\"==typeof o?r(t,e,o):((t,e,o)=>{const r=e.hasOwnProperty(o);return e.constructor.createProperty(o,t),r?Object.getOwnPropertyDescriptor(e,o):void 0})(t,e,o)}export{n as property,r as standardProperty};\n//# sourceMappingURL=property.js.map\n","import{property as t}from\"./property.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */function r(r){return t({...r,state:!0,attribute:!1})}export{r as state};\n//# sourceMappingURL=state.js.map\n","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst e=(e,t,c)=>(c.configurable=!0,c.enumerable=!0,Reflect.decorate&&\"object\"!=typeof t&&Object.defineProperty(e,t,c),c);export{e as desc};\n//# sourceMappingURL=base.js.map\n","import{desc as t}from\"./base.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */function e(e,r){return(n,s,i)=>{const o=t=>t.renderRoot?.querySelector(e)??null;if(r){const{get:e,set:r}=\"object\"==typeof s?n:i??(()=>{const t=Symbol();return{get(){return this[t]},set(e){this[t]=e}}})();return t(n,s,{get(){let t=e.call(this);return void 0===t&&(t=o(this),(null!==t||this.hasUpdated)&&r.call(this,t)),t}})}return t(n,s,{get(){return o(this)}})}}export{e as query};\n//# sourceMappingURL=query.js.map\n","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst t=globalThis,i=t.trustedTypes,s=i?i.createPolicy(\"lit-html\",{createHTML:t=>t}):void 0,e=\"$lit$\",h=`lit$${Math.random().toFixed(9).slice(2)}$`,o=\"?\"+h,n=`<${o}>`,r=document,l=()=>r.createComment(\"\"),c=t=>null===t||\"object\"!=typeof t&&\"function\"!=typeof t,a=Array.isArray,u=t=>a(t)||\"function\"==typeof t?.[Symbol.iterator],d=\"[ \\t\\n\\f\\r]\",f=/<(?:(!--|\\/[^a-zA-Z])|(\\/?[a-zA-Z][^>\\s]*)|(\\/?$))/g,v=/-->/g,_=/>/g,m=RegExp(`>|${d}(?:([^\\\\s\"'>=/]+)(${d}*=${d}*(?:[^ \\t\\n\\f\\r\"'\\`<>=]|(\"|')|))|$)`,\"g\"),p=/'/g,g=/\"/g,$=/^(?:script|style|textarea|title)$/i,y=t=>(i,...s)=>({_$litType$:t,strings:i,values:s}),x=y(1),b=y(2),w=y(3),T=Symbol.for(\"lit-noChange\"),E=Symbol.for(\"lit-nothing\"),A=new WeakMap,C=r.createTreeWalker(r,129);function P(t,i){if(!a(t)||!t.hasOwnProperty(\"raw\"))throw Error(\"invalid template strings array\");return void 0!==s?s.createHTML(i):i}const V=(t,i)=>{const s=t.length-1,o=[];let r,l=2===i?\"<svg>\":3===i?\"<math>\":\"\",c=f;for(let i=0;i<s;i++){const s=t[i];let a,u,d=-1,y=0;for(;y<s.length&&(c.lastIndex=y,u=c.exec(s),null!==u);)y=c.lastIndex,c===f?\"!--\"===u[1]?c=v:void 0!==u[1]?c=_:void 0!==u[2]?($.test(u[2])&&(r=RegExp(\"</\"+u[2],\"g\")),c=m):void 0!==u[3]&&(c=m):c===m?\">\"===u[0]?(c=r??f,d=-1):void 0===u[1]?d=-2:(d=c.lastIndex-u[2].length,a=u[1],c=void 0===u[3]?m:'\"'===u[3]?g:p):c===g||c===p?c=m:c===v||c===_?c=f:(c=m,r=void 0);const x=c===m&&t[i+1].startsWith(\"/>\")?\" \":\"\";l+=c===f?s+n:d>=0?(o.push(a),s.slice(0,d)+e+s.slice(d)+h+x):s+h+(-2===d?i:x)}return[P(t,l+(t[s]||\"<?>\")+(2===i?\"</svg>\":3===i?\"</math>\":\"\")),o]};class N{constructor({strings:t,_$litType$:s},n){let r;this.parts=[];let c=0,a=0;const u=t.length-1,d=this.parts,[f,v]=V(t,s);if(this.el=N.createElement(f,n),C.currentNode=this.el.content,2===s||3===s){const t=this.el.content.firstChild;t.replaceWith(...t.childNodes)}for(;null!==(r=C.nextNode())&&d.length<u;){if(1===r.nodeType){if(r.hasAttributes())for(const t of r.getAttributeNames())if(t.endsWith(e)){const i=v[a++],s=r.getAttribute(t).split(h),e=/([.?@])?(.*)/.exec(i);d.push({type:1,index:c,name:e[2],strings:s,ctor:\".\"===e[1]?H:\"?\"===e[1]?I:\"@\"===e[1]?L:k}),r.removeAttribute(t)}else t.startsWith(h)&&(d.push({type:6,index:c}),r.removeAttribute(t));if($.test(r.tagName)){const t=r.textContent.split(h),s=t.length-1;if(s>0){r.textContent=i?i.emptyScript:\"\";for(let i=0;i<s;i++)r.append(t[i],l()),C.nextNode(),d.push({type:2,index:++c});r.append(t[s],l())}}}else if(8===r.nodeType)if(r.data===o)d.push({type:2,index:c});else{let t=-1;for(;-1!==(t=r.data.indexOf(h,t+1));)d.push({type:7,index:c}),t+=h.length-1}c++}}static createElement(t,i){const s=r.createElement(\"template\");return s.innerHTML=t,s}}function S(t,i,s=t,e){if(i===T)return i;let h=void 0!==e?s._$Co?.[e]:s._$Cl;const o=c(i)?void 0:i._$litDirective$;return h?.constructor!==o&&(h?._$AO?.(!1),void 0===o?h=void 0:(h=new o(t),h._$AT(t,s,e)),void 0!==e?(s._$Co??=[])[e]=h:s._$Cl=h),void 0!==h&&(i=S(t,h._$AS(t,i.values),h,e)),i}class M{constructor(t,i){this._$AV=[],this._$AN=void 0,this._$AD=t,this._$AM=i}get parentNode(){return this._$AM.parentNode}get _$AU(){return this._$AM._$AU}u(t){const{el:{content:i},parts:s}=this._$AD,e=(t?.creationScope??r).importNode(i,!0);C.currentNode=e;let h=C.nextNode(),o=0,n=0,l=s[0];for(;void 0!==l;){if(o===l.index){let i;2===l.type?i=new R(h,h.nextSibling,this,t):1===l.type?i=new l.ctor(h,l.name,l.strings,this,t):6===l.type&&(i=new z(h,this,t)),this._$AV.push(i),l=s[++n]}o!==l?.index&&(h=C.nextNode(),o++)}return C.currentNode=r,e}p(t){let i=0;for(const s of this._$AV)void 0!==s&&(void 0!==s.strings?(s._$AI(t,s,i),i+=s.strings.length-2):s._$AI(t[i])),i++}}class R{get _$AU(){return this._$AM?._$AU??this._$Cv}constructor(t,i,s,e){this.type=2,this._$AH=E,this._$AN=void 0,this._$AA=t,this._$AB=i,this._$AM=s,this.options=e,this._$Cv=e?.isConnected??!0}get parentNode(){let t=this._$AA.parentNode;const i=this._$AM;return void 0!==i&&11===t?.nodeType&&(t=i.parentNode),t}get startNode(){return this._$AA}get endNode(){return this._$AB}_$AI(t,i=this){t=S(this,t,i),c(t)?t===E||null==t||\"\"===t?(this._$AH!==E&&this._$AR(),this._$AH=E):t!==this._$AH&&t!==T&&this._(t):void 0!==t._$litType$?this.$(t):void 0!==t.nodeType?this.T(t):u(t)?this.k(t):this._(t)}O(t){return this._$AA.parentNode.insertBefore(t,this._$AB)}T(t){this._$AH!==t&&(this._$AR(),this._$AH=this.O(t))}_(t){this._$AH!==E&&c(this._$AH)?this._$AA.nextSibling.data=t:this.T(r.createTextNode(t)),this._$AH=t}$(t){const{values:i,_$litType$:s}=t,e=\"number\"==typeof s?this._$AC(t):(void 0===s.el&&(s.el=N.createElement(P(s.h,s.h[0]),this.options)),s);if(this._$AH?._$AD===e)this._$AH.p(i);else{const t=new M(e,this),s=t.u(this.options);t.p(i),this.T(s),this._$AH=t}}_$AC(t){let i=A.get(t.strings);return void 0===i&&A.set(t.strings,i=new N(t)),i}k(t){a(this._$AH)||(this._$AH=[],this._$AR());const i=this._$AH;let s,e=0;for(const h of t)e===i.length?i.push(s=new R(this.O(l()),this.O(l()),this,this.options)):s=i[e],s._$AI(h),e++;e<i.length&&(this._$AR(s&&s._$AB.nextSibling,e),i.length=e)}_$AR(t=this._$AA.nextSibling,i){for(this._$AP?.(!1,!0,i);t!==this._$AB;){const i=t.nextSibling;t.remove(),t=i}}setConnected(t){void 0===this._$AM&&(this._$Cv=t,this._$AP?.(t))}}class k{get tagName(){return this.element.tagName}get _$AU(){return this._$AM._$AU}constructor(t,i,s,e,h){this.type=1,this._$AH=E,this._$AN=void 0,this.element=t,this.name=i,this._$AM=e,this.options=h,s.length>2||\"\"!==s[0]||\"\"!==s[1]?(this._$AH=Array(s.length-1).fill(new String),this.strings=s):this._$AH=E}_$AI(t,i=this,s,e){const h=this.strings;let o=!1;if(void 0===h)t=S(this,t,i,0),o=!c(t)||t!==this._$AH&&t!==T,o&&(this._$AH=t);else{const e=t;let n,r;for(t=h[0],n=0;n<h.length-1;n++)r=S(this,e[s+n],i,n),r===T&&(r=this._$AH[n]),o||=!c(r)||r!==this._$AH[n],r===E?t=E:t!==E&&(t+=(r??\"\")+h[n+1]),this._$AH[n]=r}o&&!e&&this.j(t)}j(t){t===E?this.element.removeAttribute(this.name):this.element.setAttribute(this.name,t??\"\")}}class H extends k{constructor(){super(...arguments),this.type=3}j(t){this.element[this.name]=t===E?void 0:t}}class I extends k{constructor(){super(...arguments),this.type=4}j(t){this.element.toggleAttribute(this.name,!!t&&t!==E)}}class L extends k{constructor(t,i,s,e,h){super(t,i,s,e,h),this.type=5}_$AI(t,i=this){if((t=S(this,t,i,0)??E)===T)return;const s=this._$AH,e=t===E&&s!==E||t.capture!==s.capture||t.once!==s.once||t.passive!==s.passive,h=t!==E&&(s===E||e);e&&this.element.removeEventListener(this.name,this,s),h&&this.element.addEventListener(this.name,this,t),this._$AH=t}handleEvent(t){\"function\"==typeof this._$AH?this._$AH.call(this.options?.host??this.element,t):this._$AH.handleEvent(t)}}class z{constructor(t,i,s){this.element=t,this.type=6,this._$AN=void 0,this._$AM=i,this.options=s}get _$AU(){return this._$AM._$AU}_$AI(t){S(this,t)}}const Z={M:e,P:h,A:o,C:1,L:V,R:M,D:u,V:S,I:R,H:k,N:I,U:L,B:H,F:z},j=t.litHtmlPolyfillSupport;j?.(N,R),(t.litHtmlVersions??=[]).push(\"3.3.1\");const B=(t,i,s)=>{const e=s?.renderBefore??i;let h=e._$litPart$;if(void 0===h){const t=s?.renderBefore??null;e._$litPart$=h=new R(i.insertBefore(l(),t),t,void 0,s??{})}return h._$AI(t),h};export{Z as _$LH,x as html,w as mathml,T as noChange,E as nothing,B as render,b as svg};\n//# sourceMappingURL=lit-html.js.map\n","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst t={ATTRIBUTE:1,CHILD:2,PROPERTY:3,BOOLEAN_ATTRIBUTE:4,EVENT:5,ELEMENT:6},e=t=>(...e)=>({_$litDirective$:t,values:e});class i{constructor(t){}get _$AU(){return this._$AM._$AU}_$AT(t,e,i){this._$Ct=t,this._$AM=e,this._$Ci=i}_$AS(t,e){return this.update(t,e)}update(t,e){return this.render(...e)}}export{i as Directive,t as PartType,e as directive};\n//# sourceMappingURL=directive.js.map\n","import{noChange as t}from\"../lit-html.js\";import{directive as s,Directive as i,PartType as r}from\"../directive.js\";\n/**\n * @license\n * Copyright 2018 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const e=s(class extends i{constructor(t){if(super(t),t.type!==r.ATTRIBUTE||\"class\"!==t.name||t.strings?.length>2)throw Error(\"`classMap()` can only be used in the `class` attribute and must be the only part in the attribute.\")}render(t){return\" \"+Object.keys(t).filter((s=>t[s])).join(\" \")+\" \"}update(s,[i]){if(void 0===this.st){this.st=new Set,void 0!==s.strings&&(this.nt=new Set(s.strings.join(\" \").split(/\\s/).filter((t=>\"\"!==t))));for(const t in i)i[t]&&!this.nt?.has(t)&&this.st.add(t);return this.render(i)}const r=s.element.classList;for(const t of this.st)t in i||(r.remove(t),this.st.delete(t));for(const t in i){const s=!!i[t];s===this.st.has(t)||this.nt?.has(t)||(s?(r.add(t),this.st.add(t)):(r.remove(t),this.st.delete(t)))}return t}});export{e as classMap};\n//# sourceMappingURL=class-map.js.map\n","import{nothing as t}from\"../lit-html.js\";\n/**\n * @license\n * Copyright 2018 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const o=o=>o??t;export{o as ifDefined};\n//# sourceMappingURL=if-defined.js.map\n","/** @private */\r\nfunction createDateWithOverflow(year: number, month: number, day: number): Date {\r\n const date = new Date();\r\n date.setFullYear(year, month, day);\r\n date.setHours(0, 0, 0, 0);\r\n return date;\r\n}\r\n\r\n/** @private */\r\nfunction getStartingYear(minDate: Date | null, maxDate: Date | null): number {\r\n if (maxDate) {\r\n return maxDate.getFullYear() - YEARS_PER_PAGE + 1;\r\n } else if (minDate) {\r\n return minDate.getFullYear();\r\n }\r\n return 0;\r\n}\r\n\r\n/** @private */\r\nfunction euclideanModulo(a: number, b: number): number {\r\n return ((a % b) + b) % b;\r\n}\r\n\r\n/** @internal */\r\nexport function addCalendarDays(date: Date, days: number): Date {\r\n return createDateWithOverflow(date.getFullYear(), date.getMonth(), date.getDate() + days);\r\n}\r\n\r\n/** @internal */\r\nexport function addCalendarMonths(date: Date, months: number): Date {\r\n let newDate = createDateWithOverflow(date.getFullYear(), date.getMonth() + months, date.getDate());\r\n if (newDate.getMonth() != (((date.getMonth() + months) % 12) + 12) % 12) {\r\n newDate = createDateWithOverflow(newDate.getFullYear(), newDate.getMonth(), 0);\r\n }\r\n return newDate;\r\n}\r\n\r\n/** @internal */\r\nexport function addCalendarYears(date: Date, years: number): Date {\r\n return addCalendarMonths(date, years * 12);\r\n}\r\n\r\n/** @internal */\r\nexport function getNumDaysInMonth(date: Date): number {\r\n return createDateWithOverflow(date.getFullYear(), date.getMonth() + 1, 0).getDate();\r\n}\r\n\r\n/** @internal */\r\nexport function compareDate(first: Date, second: Date): number {\r\n return (\r\n first.getFullYear() - second.getFullYear() ||\r\n first.getMonth() - second.getMonth() ||\r\n first.getDate() - second.getDate()\r\n );\r\n}\r\n\r\n/** @internal */\r\nexport function sameDate(first: Date | null, second: Date | null): boolean {\r\n return first && second ? compareDate(first, second) == 0 : first == second;\r\n}\r\n\r\n/** @internal */\r\nexport function parseDate(value: string | null): Date | null {\r\n return !value ? null : new Date(value);\r\n}\r\n\r\n/** @internal */\r\nexport function getActiveOffset(activeDate: Date, minDate: Date | null, maxDate: Date | null): number {\r\n return euclideanModulo(activeDate.getFullYear() - getStartingYear(minDate, maxDate), YEARS_PER_PAGE);\r\n}\r\n\r\n/** @internal */\r\nexport function minYearOfPage(activeDate: Date, minDate: Date | null, maxDate: Date | null): number {\r\n return activeDate.getFullYear() - getActiveOffset(activeDate, minDate, maxDate);\r\n}\r\n\r\n/** @internal */\r\nexport function maxYearOfPage(activeDate: Date, minDate: Date | null, maxDate: Date | null): number {\r\n return minYearOfPage(activeDate, minDate, maxDate) + YEARS_PER_PAGE - 1;\r\n}\r\n\r\n/** @internal */\r\nexport function clampDate(date: Date, minDate: Date | null, maxDate: Date | null): Date {\r\n if (minDate && compareDate(date, minDate) < 0) return minDate;\r\n if (maxDate && compareDate(date, maxDate) > 0) return maxDate;\r\n return date;\r\n}\r\n\r\n/** @internal */ export const YEARS_PER_PAGE = 15;\r\n/** @internal */ export const YEARS_PER_ROW = 3;\r\n/** @internal */ export const MONTHS_PER_ROW = 4;\r\n","import { css, CSSResultGroup, LitElement } from \"lit\";\r\nimport { property, query } from \"lit/decorators.js\";\r\n\r\nimport { DesignToken, focusWhenReady } from \"@m3e/web/core\";\r\n\r\nimport { clampDate, parseDate, sameDate } from \"./utils\";\r\n\r\n/**\r\n * A base implementation for a view in a calendar. This class must be inherited.\r\n * @internal\r\n */\r\nexport abstract class CalendarViewElementBase extends LitElement {\r\n /** The styles of the element. */\r\n static override styles: CSSResultGroup = css`\r\n :host {\r\n display: inline-block;\r\n user-select: none;\r\n vertical-align: top;\r\n }\r\n .visually-hidden {\r\n position: absolute;\r\n appearance: none;\r\n visibility: hidden;\r\n border: none;\r\n outline: none;\r\n overflow: hidden;\r\n left: 0;\r\n height: 1px;\r\n width: 1px;\r\n margin: -1px;\r\n padding: 0;\r\n white-space: nowrap;\r\n }\r\n table {\r\n border-collapse: collapse;\r\n border-spacing: 0;\r\n width: calc(3rem * 7);\r\n }\r\n td,\r\n th {\r\n font: inherit;\r\n text-align: center;\r\n padding: unset;\r\n }\r\n td {\r\n box-sizing: border-box;\r\n height: 3rem;\r\n padding: 0.25rem;\r\n position: relative;\r\n }\r\n .item,\r\n .item > span {\r\n position: relative;\r\n }\r\n .item {\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n border-radius: inherit;\r\n outline: none;\r\n width: 100%;\r\n height: 100%;\r\n border-radius: ${DesignToken.shape.corner.full};\r\n }\r\n .item:not([aria-disabled]) {\r\n cursor: pointer;\r\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\r\n }\r\n .touch {\r\n position: absolute;\r\n height: 3rem;\r\n width: 3rem;\r\n margin: auto;\r\n }\r\n td:not(:has(.item[aria-disabled])).selected {\r\n color: var(--m3e-calendar-item-selected-color, ${DesignToken.color.onPrimary});\r\n --m3e-ripple-color: var(--m3e-calendar-item-selected-ripple-color, ${DesignToken.color.onPrimary});\r\n --m3e-state-layer-hover-color: var(--m3e-calendar-item-selected-hover-color, ${DesignToken.color.onPrimary});\r\n --m3e-state-layer-focus-color: var(--m3e-calendar-item-selected-focus-color, ${DesignToken.color.onPrimary});\r\n }\r\n td:not(:has(.item[aria-disabled])).selected .state-layer {\r\n background-color: var(--m3e-calendar-item-selected-container-color, ${DesignToken.color.primary});\r\n }\r\n td.current:not(.selected):not(.special):not(.range-start):not(.range-end) {\r\n color: var(--m3e-calendar-item-current-outline-color, ${DesignToken.color.primary});\r\n }\r\n td.current:not(.selected):not(.special):not(.range-start):not(.range-end) .state-layer {\r\n border-style: solid;\r\n border-width: var(--m3e-calendar-item-current-outline-thickness, 0.0625rem);\r\n border-color: var(--m3e-calendar-item-current-outline-color, ${DesignToken.color.primary});\r\n }\r\n td:has(.item[aria-disabled]) {\r\n color: color-mix(\r\n in srgb,\r\n var(--m3e-calendar-item-disabled-color, ${DesignToken.color.onSurface})\r\n var(--m3e-calendar-item-disabled-color-opacity, 38%),\r\n transparent\r\n );\r\n }\r\n `;\r\n\r\n /** @private */ @query(\".active > .item\") private readonly _activeItem?: HTMLElement;\r\n\r\n /** Today's date. */\r\n @property({ converter: { fromAttribute: parseDate } }) today: Date = new Date();\r\n\r\n /** The selected date. */\r\n @property({ converter: { fromAttribute: parseDate } }) date: Date | null = null;\r\n\r\n /** The active date. */\r\n @property({ attribute: \"active-date\", converter: { fromAttribute: parseDate } }) activeDate: Date = new Date();\r\n\r\n /** The minimum date that can be selected. */\r\n @property({ attribute: \"min-date\", converter: { fromAttribute: parseDate } }) minDate: Date | null = null;\r\n\r\n /** The maximum date that can be selected. */\r\n @property({ attribute: \"max-date\", converter: { fromAttribute: parseDate } }) maxDate: Date | null = null;\r\n\r\n /**\r\n * Asynchronously focuses the active date.\r\n * @returns {Promise<void>} A promise that resolves after the active date has been focused.\r\n */\r\n async focusActiveCell(): Promise<void> {\r\n if (this.isUpdatePending) {\r\n await this.updateComplete;\r\n }\r\n\r\n if (this._activeItem) {\r\n await focusWhenReady(this._activeItem);\r\n }\r\n }\r\n\r\n /** @internal */\r\n protected _changeActiveDate(activeDate: Date): void {\r\n activeDate = clampDate(activeDate, this.minDate, this.maxDate);\r\n if (!sameDate(activeDate, this.activeDate)) {\r\n this._activeItem?.style.setProperty(\"--m3e-state-layer-duration\", \"0ms\");\r\n this._activeItem?.blur();\r\n this._activeItem?.style.removeProperty(\"--m3e-state-layer-duration\");\r\n\r\n this.activeDate = activeDate;\r\n this.dispatchEvent(new Event(\"active-change\", { bubbles: false }));\r\n }\r\n }\r\n}\r\n","/**\r\n * Adapted from Angular Material Datepicker\r\n * Source: https://github.com/angular/components/blob/main/src/material/datepicker/month-view.ts\r\n *\r\n * @license MIT\r\n * Copyright (c) 2025 Google LLC\r\n * See LICENSE file in the project root for full license text.\r\n */\r\n\r\nimport { css, CSSResultGroup, html, nothing } from \"lit\";\r\nimport { customElement, property } from \"lit/decorators.js\";\r\nimport { classMap } from \"lit/directives/class-map.js\";\r\nimport { ifDefined } from \"lit/directives/if-defined.js\";\r\n\r\nimport { DesignToken } from \"@m3e/web/core\";\r\nimport { M3eDirectionality } from \"@m3e/web/core/bidi\";\r\n\r\nimport { CalendarViewElementBase } from \"./CalendarViewElementBase\";\r\nimport {\r\n addCalendarDays,\r\n addCalendarMonths,\r\n addCalendarYears,\r\n clampDate,\r\n compareDate,\r\n getNumDaysInMonth,\r\n parseDate,\r\n sameDate,\r\n} from \"./utils\";\r\n\r\n/**\r\n * An internal component used to display a single month in a calendar.\r\n * @internal\r\n */\r\n@customElement(\"m3e-month-view\")\r\nexport class M3eMonthViewElement extends CalendarViewElementBase {\r\n /** The styles of the element. */\r\n static override styles: CSSResultGroup = [\r\n CalendarViewElementBase.styles,\r\n css`\r\n thead {\r\n font-size: var(--m3e-calendar-weekday-font-size, ${DesignToken.typescale.standard.title.small.fontSize});\r\n font-weight: var(--m3e-calendar-weekday-font-weight, ${DesignToken.typescale.standard.title.small.fontWeight});\r\n line-height: var(--m3e-calendar-weekday-line-height, ${DesignToken.typescale.standard.title.small.lineHeight});\r\n letter-spacing: var(--m3e-calendar-weekday-tracking, ${DesignToken.typescale.standard.title.small.tracking});\r\n }\r\n th {\r\n height: 1.5rem;\r\n padding-block-start: 1.875rem;\r\n padding-block-end: 1rem;\r\n }\r\n tbody {\r\n font-size: var(--m3e-calendar-date-font-size, ${DesignToken.typescale.standard.body.medium.fontSize});\r\n font-weight: var(--m3e-calendar-date-font-weight, ${DesignToken.typescale.standard.body.medium.fontWeight});\r\n line-height: var(--m3e-calendar-date-line-height, ${DesignToken.typescale.standard.body.medium.lineHeight});\r\n letter-spacing: var(--m3e-calendar-date-tracking, ${DesignToken.typescale.standard.body.medium.tracking});\r\n }\r\n td:not(:has(.item[aria-disabled])):not(.selected):not(.range-start):not(.range-end).special {\r\n color: var(--m3e-calendar-item-special-color, ${DesignToken.color.onTertiaryContainer});\r\n --m3e-ripple-color: var(--m3e-calendar-item-special-ripple-color, ${DesignToken.color.onTertiaryContainer});\r\n --m3e-state-layer-hover-color: var(\r\n --m3e-calendar-item-special-hover-color,\r\n ${DesignToken.color.onTertiaryContainer}\r\n );\r\n --m3e-state-layer-focus-color: var(\r\n --m3e-calendar-item-special-focus-color,\r\n ${DesignToken.color.onTertiaryContainer}\r\n );\r\n }\r\n td:not(:has(.item[aria-disabled])):not(.selected):not(.range-start):not(.range-end).special .state-layer {\r\n background-color: var(--m3e-calendar-item-special-container-color, ${DesignToken.color.tertiaryContainer});\r\n }\r\n td:not(:has(.item[aria-disabled])).range-start,\r\n td:not(:has(.item[aria-disabled])).range-end {\r\n color: var(--m3e-calendar-item-selected-color, ${DesignToken.color.onPrimary});\r\n --m3e-ripple-color: var(--m3e-calendar-item-selected-ripple-color, ${DesignToken.color.onPrimary});\r\n }\r\n td:not(:has(.item[aria-disabled])).range-start .state-layer,\r\n td:not(:has(.item[aria-disabled])).range-end .state-layer {\r\n background-color: var(--m3e-calendar-item-selected-container-color, ${DesignToken.color.primary});\r\n }\r\n td:not(:has(.item[aria-disabled])).range::before,\r\n td:not(:has(.item[aria-disabled])).range-start-range::before,\r\n td:not(:has(.item[aria-disabled])).range-end::before {\r\n content: \"\";\r\n position: absolute;\r\n left: 0;\r\n right: 0;\r\n top: 0.25rem;\r\n bottom: 0.25rem;\r\n background-color: var(--m3e-calendar-range-container-color, ${DesignToken.color.primaryContainer});\r\n }\r\n td:not(:has(.item[aria-disabled])):not(.selected).range {\r\n color: var(--m3e-calendar-range-color, ${DesignToken.color.onPrimaryContainer});\r\n }\r\n td:not(:has(.item[aria-disabled])).range-start::before {\r\n inset-inline-start: 50%;\r\n width: 50%;\r\n }\r\n td:not(:has(.item[aria-disabled])).range-end::before {\r\n inset-inline-end: 50%;\r\n width: 50%;\r\n }\r\n td:not(:has(.item[aria-disabled])).range-highlight-start .item::after,\r\n td:not(:has(.item[aria-disabled])).range-highlight .item::after,\r\n td:not(:has(.item[aria-disabled])).range-highlight-end .item::after {\r\n content: \"\";\r\n position: absolute;\r\n top: 0;\r\n left: calc(0px - 0.1875rem);\r\n right: calc(0px - 0.1875rem);\r\n bottom: 0;\r\n border-style: dashed;\r\n border-color: ${DesignToken.color.primary};\r\n border-width: 1px;\r\n }\r\n td:not(:has(.item[aria-disabled])).range-highlight-start .item::after {\r\n margin-inline-start: 50%;\r\n }\r\n td:not(:has(.item[aria-disabled])).range-highlight-end .item::after {\r\n margin-inline-end: 0.1875rem;\r\n }\r\n td:not(:has(.item[aria-disabled])).range-highlight-start .item::after,\r\n td:not(:has(.item[aria-disabled])).range-highlight .item::after {\r\n border-inline-style: none;\r\n }\r\n td:not(:has(.item[aria-disabled])).range-highlight-end .item::after {\r\n border-start-end-radius: ${DesignToken.shape.corner.full};\r\n border-end-end-radius: ${DesignToken.shape.corner.full};\r\n border-inline-start-style: none;\r\n }\r\n `,\r\n ];\r\n\r\n /** Start of a date range. */\r\n @property({ attribute: \"range-start\", converter: { fromAttribute: parseDate } }) rangeStart: Date | null = null;\r\n\r\n /** End of a date range. */\r\n @property({ attribute: \"range-end\", converter: { fromAttribute: parseDate } }) rangeEnd: Date | null = null;\r\n\r\n /** A function used to determine whether a date cannot be selected. */\r\n @property({ attribute: false }) blackoutDates: ((date: Date) => boolean) | null = null;\r\n\r\n /** A function used to determine whether a date is special. */\r\n @property({ attribute: false }) specialDates: ((date: Date) => boolean) | null = null;\r\n\r\n /** @inheritdoc */\r\n protected override render(): unknown {\r\n const date = new Date(this.today);\r\n date.setDate(1);\r\n\r\n while (date.getDay() != 0) {\r\n date.setDate(date.getDate() + 1);\r\n }\r\n\r\n const weekdays = new Array<{ long: string; narrow: string; id: number }>();\r\n const narrowFormat = new Intl.DateTimeFormat(navigator.language, { weekday: \"narrow\" });\r\n const longFormat = new Intl.DateTimeFormat(navigator.language, { weekday: \"long\" });\r\n\r\n for (let i = 0; i < 7; i++) {\r\n weekdays.push({ id: i, narrow: narrowFormat.format(date), long: longFormat.format(date) });\r\n date.setDate(date.getDate() + 1);\r\n }\r\n\r\n const year = this.activeDate.getFullYear();\r\n const month = this.activeDate.getMonth();\r\n const firstDate = new Date(year, month, 1);\r\n const lastDate = new Date(year, month + 1, 0);\r\n const numDays = lastDate.getDate();\r\n\r\n let weeks: number[][] = [];\r\n let dayOfWeek = firstDate.getDay();\r\n\r\n for (let i = 1; i <= numDays; i++) {\r\n if (dayOfWeek === 0 || weeks.length === 0) {\r\n weeks.push([]);\r\n }\r\n weeks[weeks.length - 1].push(i);\r\n dayOfWeek = (dayOfWeek + 1) % 7;\r\n }\r\n\r\n weeks = weeks.filter((x) => !!x.length);\r\n\r\n return html`<table role=\"grid\">\r\n <thead>\r\n <tr>\r\n ${weekdays.map(\r\n (x) =>\r\n html`<th scope=\"col\">\r\n <span class=\"visually-hidden\">${x.long}</span>\r\n <div id=\"weekday-${x.id}-month-${month}\" aria-hidden=\"true\">${x.narrow}</div>\r\n <m3e-tooltip for=\"weekday-${x.id}-month-${month}\">${x.long}</m3e-tooltip>\r\n </th>`,\r\n )}\r\n </tr>\r\n </thead>\r\n <tbody>\r\n ${weeks.map(\r\n (row, i) =>\r\n html`<tr role=\"row\">\r\n ${i === 0 && row.length < 7 ? html`<td colspan=\"${7 - row.length}\"></td>` : nothing}\r\n ${row.map((y) => this.#renderItem(new Date(year, month, y)))}\r\n ${i > 0 && row.length < 7 ? html`<td colspan=\"${7 - row.length}\"></td>` : nothing}\r\n </tr>`,\r\n )}\r\n </tbody>\r\n </table>`;\r\n }\r\n\r\n /** @private */\r\n #renderItem(value: Date): unknown {\r\n const long = new Intl.DateTimeFormat(navigator.language, {\r\n year: \"numeric\",\r\n month: \"long\",\r\n day: \"numeric\",\r\n }).format(value);\r\n\r\n const special = this.specialDates?.(value) ?? false;\r\n const selected = sameDate(this.date, value);\r\n const active = sameDate(this.activeDate, value);\r\n const current = sameDate(this.today, value);\r\n const disabled =\r\n (this.minDate && compareDate(value, this.minDate) < 0) ||\r\n (this.maxDate && compareDate(value, this.maxDate) > 0) ||\r\n this.blackoutDates?.(value) === true;\r\n\r\n const id = `date-${value.getMonth()}-${value.getDate()}-${value.getFullYear()}`;\r\n\r\n let range = false,\r\n rangeStart = false,\r\n rangeEnd = false,\r\n rangeStartRange = false;\r\n\r\n if (this.rangeStart) {\r\n if (!this.rangeEnd) {\r\n rangeStart = sameDate(value, this.rangeStart);\r\n } else {\r\n range = compareDate(value, this.rangeStart) > 0 && compareDate(value, this.rangeEnd) < 0;\r\n if (!range) {\r\n rangeStart = compareDate(value, this.rangeStart) >= 0 && compareDate(value, this.rangeEnd) < 0;\r\n if (!rangeStart) {\r\n rangeEnd = compareDate(value, this.rangeStart) > 0 && compareDate(value, this.rangeEnd) <= 0;\r\n } else {\r\n rangeStartRange = true;\r\n }\r\n }\r\n }\r\n }\r\n\r\n return html`<td\r\n role=\"gridcell\"\r\n class=\"${classMap({\r\n current,\r\n selected,\r\n active,\r\n special,\r\n range,\r\n \"range-start\": rangeStart,\r\n \"range-start-range\": rangeStartRange,\r\n \"range-end\": rangeEnd,\r\n })}\"\r\n >\r\n <div\r\n id=\"${id}\"\r\n role=\"button\"\r\n class=\"item\"\r\n data-value=\"${value.toISOString()}\"\r\n tabindex=\"${active ? \"0\" : \"-1\"}\"\r\n aria-disabled=\"${ifDefined(disabled || undefined)}\"\r\n aria-current=\"${ifDefined(current ? \"date\" : undefined)}\"\r\n aria-pressed=\"${selected || rangeStart || rangeEnd}\"\r\n @click=\"${this.#handleItemClick}\"\r\n @mouseenter=\"${this.#handleDateRangeHighlight}\"\r\n @focus=\"${this.#handleDateRangeHighlight}\"\r\n @mouseleave=\"${this.#clearRangeHighlight}\"\r\n @blur=\"${this.#clearRangeHighlight}\"\r\n @keydown=\"${this.#handleItemKeyDown}\"\r\n >\r\n <m3e-focus-ring class=\"focus-ring\" for=\"${id}\"></m3e-focus-ring>\r\n <m3e-state-layer class=\"state-layer\" for=\"${id}\" ?disable-hover=\"${disabled}\"></m3e-state-layer>\r\n <m3e-ripple class=\"ripple\" centered for=\"${id}\" ?disabled=\"${disabled}\"></m3e-ripple>\r\n <div class=\"touch\"></div>\r\n <span class=\"visually-hidden\">${long}</span>\r\n <span aria-hidden=\"true\">${value.getDate()}</span>\r\n </div>\r\n </td>`;\r\n }\r\n\r\n /** @private */\r\n #handleItemClick(e: Event): void {\r\n const item = e.currentTarget as HTMLElement;\r\n if (item.ariaDisabled === \"true\" || !item.dataset[\"value\"]) return;\r\n\r\n this.activeDate = new Date(item.dataset[\"value\"]);\r\n this.activeDate = clampDate(this.activeDate, this.minDate, this.maxDate);\r\n\r\n if (this.rangeStart) {\r\n if (compareDate(this.activeDate, this.rangeStart) < 0) {\r\n this.rangeStart = this.activeDate;\r\n this.rangeEnd = null;\r\n } else {\r\n this.rangeEnd = this.activeDate;\r\n }\r\n this.#clearRangeHighlight();\r\n }\r\n\r\n this.dispatchEvent(new Event(\"change\", { bubbles: false }));\r\n }\r\n\r\n /** @private */\r\n #handleItemKeyDown(e: KeyboardEvent): void {\r\n let activeDate = this.activeDate;\r\n\r\n switch (e.key) {\r\n case \" \":\r\n case \"Enter\":\r\n e.preventDefault();\r\n (e.currentTarget as HTMLElement).click();\r\n return;\r\n\r\n case \"ArrowLeft\":\r\n case \"Left\":\r\n activeDate = addCalendarDays(this.activeDate, M3eDirectionality.current === \"rtl\" ? 1 : -1);\r\n break;\r\n\r\n case \"ArrowRight\":\r\n case \"Right\":\r\n activeDate = addCalendarDays(this.activeDate, M3eDirectionality.current === \"rtl\" ? -1 : 1);\r\n break;\r\n\r\n case \"ArrowUp\":\r\n case \"Up\":\r\n activeDate = addCalendarDays(this.activeDate, -7);\r\n break;\r\n\r\n case \"ArrowDown\":\r\n case \"Down\":\r\n activeDate = addCalendarDays(this.activeDate, 7);\r\n break;\r\n\r\n case \"Home\":\r\n activeDate = addCalendarDays(this.activeDate, 1 - this.activeDate.getDate());\r\n break;\r\n\r\n case \"End\":\r\n activeDate = addCalendarDays(this.activeDate, getNumDaysInMonth(this.activeDate) - this.activeDate.getDate());\r\n break;\r\n\r\n case \"PageUp\":\r\n activeDate = e.altKey ? addCalendarYears(this.activeDate, -1) : addCalendarMonths(this.activeDate, -1);\r\n break;\r\n\r\n case \"PageDown\":\r\n activeDate = e.altKey ? addCalendarYears(this.activeDate, 1) : addCalendarMonths(this.activeDate, 1);\r\n break;\r\n\r\n default:\r\n return;\r\n }\r\n\r\n e.preventDefault();\r\n this._changeActiveDate(activeDate);\r\n }\r\n\r\n /** @private */\r\n #handleDateRangeHighlight(e: Event): void {\r\n this.#setRangeHighlight(e.currentTarget as HTMLElement);\r\n }\r\n\r\n /** @private */\r\n #setRangeHighlight(item: HTMLElement): void {\r\n this.#clearRangeHighlight();\r\n\r\n if (this.rangeStart && item.dataset[\"value\"]) {\r\n if (compareDate(new Date(item.dataset[\"value\"]), this.rangeStart) > 0) {\r\n item.parentElement!.classList.add(\"range-highlight-end\");\r\n }\r\n for (const cell of item.closest(\"table\")?.querySelectorAll<HTMLElement>(\".item\") ?? []) {\r\n if (cell === item) break;\r\n\r\n const value = new Date(cell.dataset[\"value\"]!);\r\n if (compareDate(value, this.rangeStart) > 0) {\r\n cell.parentElement!.classList.add(\"range-highlight\");\r\n } else if (compareDate(value, this.rangeStart) >= 0) {\r\n cell.parentElement!.classList.add(\"range-highlight-start\");\r\n }\r\n }\r\n }\r\n }\r\n\r\n /** @private */\r\n #clearRangeHighlight(): void {\r\n if (this.rangeStart) {\r\n this.shadowRoot\r\n ?.querySelectorAll(\".range-highlight,.range-highlight-end,.range-highlight-start\")\r\n .forEach((x) => x.classList.remove(\"range-highlight\", \"range-highlight-end\", \"range-highlight-start\"));\r\n }\r\n }\r\n}\r\n\r\ndeclare global {\r\n interface HTMLElementTagNameMap {\r\n \"m3e-month-view\": M3eMonthViewElement;\r\n }\r\n}\r\n","/**\r\n * Adapted from Angular Material Datepicker\r\n * Source: https://github.com/angular/components/blob/main/src/material/datepicker/calendar.ts\r\n *\r\n * @license MIT\r\n * Copyright (c) 2025 Google LLC\r\n * See LICENSE file in the project root for full license text.\r\n */\r\n\r\nimport { css, CSSResultGroup, html, LitElement, PropertyValues, unsafeCSS } from \"lit\";\r\nimport { customElement, property, query, state } from \"lit/decorators.js\";\r\nimport { classMap } from \"lit/directives/class-map.js\";\r\nimport { ifDefined } from \"lit/directives/if-defined.js\";\r\n\r\nimport { DesignToken, prefersReducedMotion } from \"@m3e/web/core\";\r\nimport { M3eDirectionality } from \"@m3e/web/core/bidi\";\r\n\r\nimport { CalendarView } from \"./CalendarView\";\r\nimport { CalendarViewElementBase } from \"./CalendarViewElementBase\";\r\nimport { M3eMonthViewElement } from \"./MonthViewElement\";\r\nimport { maxYearOfPage, minYearOfPage, parseDate } from \"./utils\";\r\n\r\n/**\r\n * A calendar used to select a date.\r\n *\r\n * @description\r\n * The `m3e-calendar` component provides structured navigation and selection across\r\n * month, year, and multi‑year views. It supports single‑date and range selection,\r\n * applies disabled rules including minimum, maximum, and blackout constraints, and\r\n * provides styling hooks for special date states.\r\n *\r\n * @example\r\n * The following example illustrates use of the `m3e-calendar`. In this example, a calendar is displayed\r\n * with a selected date.\r\n *\r\n * ```html\r\n * <m3e-calendar date=\"2025-12-13\"></m3e-calendar>\r\n * ```\r\n *\r\n * @tag m3e-calendar\r\n *\r\n * @slot header - Renders the header of the calendar.\r\n *\r\n * @attr date - The selected date.\r\n * @attr max-date - The maximum date that can be selected.\r\n * @attr min-date - The minimum date that can be selected.\r\n * @attr range-end - End of a date range.\r\n * @attr range-start - Start of a date range.\r\n * @attr start-at - A date specifying the period (month or year) to start the calendar in.\r\n * @attr start-view - The initial view used to select a date.\r\n * @attr previous-month-label - The accessible label given to the button used to move to the previous month.\r\n * @attr next-month-label - The accessible label given to the button used to move to the next month.\r\n * @attr previous-year-label - The accessible label given to the button used to move to the previous year.\r\n * @attr next-year-label - The accessible label given to the button used to move to the next year.\r\n * @attr previous-multi-year-label - The accessible label given to the button used to move to the previous 24 years.\r\n * @attr next-multi-year-label - The accessible label given to the button used to move to the next 24 years.\r\n *\r\n * @fires change - Emitted when the selected date changes.\r\n *\r\n * @cssprop --m3e-calendar-padding - Padding applied to the calendar header and body.\r\n * @cssprop --m3e-calendar-period-button-text-color - Text color used for the period‑navigation buttons in the header.\r\n * @cssprop --m3e-calendar-weekday-font-size - Font size of weekday labels in month view.\r\n * @cssprop --m3e-calendar-weekday-font-weight - Font weight of weekday labels in month view.\r\n * @cssprop --m3e-calendar-weekday-line-height - Line height of weekday labels in month view.\r\n * @cssprop --m3e-calendar-weekday-tracking - Letter spacing of weekday labels in month view.\r\n * @cssprop --m3e-calendar-date-font-size - Font size of date cells in month view.\r\n * @cssprop --m3e-calendar-date-font-weight - Font weight of date cells in month view.\r\n * @cssprop --m3e-calendar-date-line-height - Line height of date cells in month view.\r\n * @cssprop --m3e-calendar-date-tracking - Letter spacing of date cells in month view.\r\n * @cssprop --m3e-calendar-item-font-size - Font size of items in year and multi‑year views.\r\n * @cssprop --m3e-calendar-item-font-weight - Font weight of items in year and multi‑year views.\r\n * @cssprop --m3e-calendar-item-line-height - Line height of items in year and multi‑year views.\r\n * @cssprop --m3e-calendar-item-tracking - Letter spacing of items in year and multi‑year views.\r\n * @cssprop --m3e-calendar-item-selected-color - Text color for selected date items.\r\n * @cssprop --m3e-calendar-item-selected-container-color - Background color for selected date items.\r\n * @cssprop --m3e-calendar-item-selected-ripple-color - Ripple color used when interacting with selected date items.\r\n * @cssprop --m3e-calendar-item-selected-hover-color - Hover color used when interacting with selected date items.\r\n * @cssprop --m3e-calendar-item-selected-focus-color - Focus color used when interacting with selected date items.\r\n * @cssprop --m3e-calendar-item-current-outline-thickness - Outline thickness used to indicate the current date.\r\n * @cssprop --m3e-calendar-item-current-outline-color - Outline color used to indicate the current date.\r\n * @cssprop --m3e-calendar-item-special-color - Text color for dates marked as special.\r\n * @cssprop --m3e-calendar-item-special-container-color - Background color for dates marked as special.\r\n * @cssprop --m3e-calendar-item-special-ripple-color - Ripple color used when interacting with dates marked as special.\r\n * @cssprop --m3e-calendar-item-special-hover-color - Hover color used when interacting with dates marked as special.\r\n * @cssprop --m3e-calendar-item-special-focus-color - Focus color used when interacting with dates marked as special.\r\n * @cssprop --m3e-calendar-range-container-color - Background color applied to the selected date range.\r\n * @cssprop --m3e-calendar-range-color - Text color for dates within a selected range.\r\n * @cssprop --m3e-calendar-item-disabled-color - Color used for disabled date items.\r\n * @cssprop --m3e-calendar-item-disabled-color-opacity - Opacity applied to the disabled item color.\r\n * @cssprop --m3e-calendar-slide-animation-duration - Duration of slide transitions between calendar views.\r\n */\r\n@customElement(\"m3e-calendar\")\r\nexport class M3eCalendarElement extends LitElement {\r\n /** The styles of the element. */\r\n static override styles: CSSResultGroup = css`\r\n :host {\r\n display: inline-block;\r\n vertical-align: top;\r\n }\r\n .header {\r\n display: flex;\r\n align-items: center;\r\n padding-block-start: var(--m3e-calendar-padding, 0.5rem);\r\n padding-inline: var(--m3e-calendar-padding, 0.5rem);\r\n --m3e-text-button-label-text-color: var(\r\n --m3e-calendar-period-button-text-color,\r\n ${DesignToken.color.onSurfaceVariant}\r\n );\r\n --m3e-text-button-hover-label-text-color: var(\r\n --m3e-calendar-period-button-text-color,\r\n ${DesignToken.color.onSurfaceVariant}\r\n );\r\n --m3e-text-button-focus-label-text-color: var(\r\n --m3e-calendar-period-button-text-color,\r\n ${DesignToken.color.onSurfaceVariant}\r\n );\r\n --m3e-text-button-pressed-label-text-color: var(\r\n --m3e-calendar-period-button-text-color,\r\n ${DesignToken.color.onSurfaceVariant}\r\n );\r\n }\r\n .spacer {\r\n flex: 1 1 auto;\r\n }\r\n svg {\r\n transition: transform ${DesignToken.motion.spring.fastEffects};\r\n }\r\n svg.rotate {\r\n transform: rotate(-180deg);\r\n }\r\n .body {\r\n position: relative;\r\n overflow: hidden;\r\n padding-inline: var(--m3e-calendar-padding, 0.5rem);\r\n padding-block-end: var(--m3e-calendar-padding, 0.5rem);\r\n }\r\n .view:not(.no-animate) {\r\n transition: ${unsafeCSS(\r\n `margin var(--m3e-calendar-slide-animation-duration, ${DesignToken.motion.duration.long2}) ${DesignToken.motion.easing.standard},\r\n visibility var(--m3e-calendar-slide-animation-duration, ${DesignToken.motion.duration.long2}) ${DesignToken.motion.easing.standard} allow-discrete`,\r\n )};\r\n }\r\n .view.before,\r\n .view.after {\r\n visibility: hidden;\r\n position: absolute;\r\n }\r\n .view.before {\r\n margin-inline-start: -100%;\r\n }\r\n .view.after {\r\n margin-inline-start: 100%;\r\n }\r\n .view:not(.before):not(.after) {\r\n visibility: visible;\r\n position: relative;\r\n left: 0;\r\n margin-inline-start: 0;\r\n }\r\n .row {\r\n opacity: 1;\r\n transform: translateY(0);\r\n }\r\n .row.multi-year {\r\n transition: ${unsafeCSS(\r\n `transform var(--m3e-calendar-slide-animation-duration, ${DesignToken.motion.duration.long2}) ${DesignToken.motion.easing.standard} allow-discrete,\r\n opacity var(--m3e-calendar-slide-animation-duration, ${DesignToken.motion.duration.long2}) ${DesignToken.motion.easing.standard} allow-discrete`,\r\n )};\r\n }\r\n .row:not(.multi-year) {\r\n transition: ${unsafeCSS(\r\n `opacity var(--m3e-calendar-slide-animation-duration, ${DesignToken.motion.duration.long2}) ${DesignToken.motion.easing.standard} allow-discrete`,\r\n )};\r\n }\r\n .body.month > .row:not(.month),\r\n .body.year > .row:not(.year),\r\n .body.multi-year > .row:not(.multi-year) {\r\n visibility: hidden;\r\n position: absolute;\r\n transform: translateY(-10%);\r\n opacity: 0;\r\n }\r\n .body.month > .row:not(.month) .view:not(.before):not(.after),\r\n .body.year > .row:not(.year) .view:not(.before):not(.after),\r\n .body.multi-year > .row:not(.multi-year) .view:not(.before):not(.after) {\r\n visibility: hidden;\r\n transition: none;\r\n }\r\n\r\n @media (prefers-reduced-motion) {\r\n .row:not(.multi-year),\r\n .row.multi-year,\r\n .view:not(.no-animate),\r\n svg {\r\n transition: none;\r\n }\r\n }\r\n `;\r\n\r\n /** @private */ #transitionComplete?: Promise<void>;\r\n /** @private */ @state() private _today = new Date();\r\n /** @private */ @state() private _activeView: CalendarView = \"month\";\r\n /** @private */ @state() private _activeDate: Date = new Date();\r\n /** @private */ @query(\".active\") private readonly _view?: CalendarViewElementBase;\r\n\r\n /**\r\n * The initial view used to select a date.\r\n * @default \"month\"\r\n */\r\n @property({ attribute: \"start-view\" }) startView: CalendarView = \"month\";\r\n\r\n /**\r\n * The selected date.\r\n * @default null\r\n */\r\n @property({ converter: { fromAttribute: parseDate } })\r\n date: Date | null = null;\r\n\r\n /**\r\n * A date specifying the period (month or year) to start the calendar in.\r\n * @default null\r\n */\r\n @property({ attribute: \"start-at\", converter: { fromAttribute: parseDate } })\r\n startAt: Date | null = null;\r\n\r\n /**\r\n * The minimum date that can be selected.\r\n * @default null\r\n */\r\n @property({ attribute: \"min-date\", converter: { fromAttribute: parseDate } })\r\n minDate: Date | null = null;\r\n\r\n /**\r\n * The maximum date that can be selected.\r\n * @default null\r\n */\r\n @property({ attribute: \"max-date\", converter: { fromAttribute: parseDate } })\r\n maxDate: Date | null = null;\r\n\r\n /**\r\n * Start of a date range.\r\n * @default null\r\n */\r\n @property({ attribute: \"range-start\", converter: { fromAttribute: parseDate } })\r\n rangeStart: Date | null = null;\r\n\r\n /**\r\n * End of a date range.\r\n * @default null\r\n */\r\n @property({ attribute: \"range-end\", converter: { fromAttribute: parseDate } })\r\n rangeEnd: Date | null = null;\r\n\r\n /**\r\n * A function used to determine whether a date cannot be selected.\r\n * @default null\r\n */\r\n @property({ attribute: false }) blackoutDates: ((date: Date) => boolean) | null = null;\r\n\r\n /**\r\n * A function used to determine whether a date is special.\r\n * @default null\r\n */\r\n @property({ attribute: false }) specialDates: ((date: Date) => boolean) | null = null;\r\n\r\n /**\r\n * The accessible label given to the button used to move to the previous month.\r\n * @default \"Previous month\"\r\n */\r\n @property({ attribute: \"previous-month-label\" }) previousMonthLabel = \"Previous month\";\r\n\r\n /**\r\n * The accessible label given to the button used to move to the previous year.\r\n * @default \"Previous year\"\r\n */\r\n @property({ attribute: \"previous-year-label\" }) previousYearLabel = \"Previous year\";\r\n\r\n /**\r\n * The accessible label given to the button used to move to the previous 24 years.\r\n * @default \"Previous 24 years\"\r\n */\r\n @property({ attribute: \"previous-multi-year-label\" }) previousMultiYearLabel = \"Previous 24 years\";\r\n\r\n /**\r\n * The accessible label given to the button used to move to the next month.\r\n * @default \"Next month\"\r\n */\r\n @property({ attribute: \"next-month-label\" }) nextMonthLabel = \"Next month\";\r\n\r\n /**\r\n * The accessible label given to the button used to move to the next year.\r\n * @default \"Next year\"\r\n */\r\n @property({ attribute: \"next-year-label\" }) nextYearLabel = \"Next year\";\r\n\r\n /**\r\n * The accessible label given to the button used to move to the next 24 years.\r\n * @default \"Next 24 years\"\r\n */\r\n @property({ attribute: \"next-multi-year-label\" }) nextMultiYearLabel = \"Next 24 years\";\r\n\r\n /** The label to present for the current period. */\r\n get periodLabel(): string {\r\n switch (this._activeView) {\r\n case \"month\":\r\n return new Intl.DateTimeFormat(navigator.language, { month: \"short\", year: \"numeric\" }).format(\r\n this._activeDate,\r\n );\r\n\r\n case \"year\":\r\n return new Intl.DateTimeFormat(navigator.language, { year: \"numeric\" }).format(\r\n new Date(this._activeDate.getFullYear(), 0, 1),\r\n );\r\n\r\n case \"multi-year\":\r\n return new Intl.DateTimeFormat(navigator.language, { year: \"numeric\" }).formatRange(\r\n new Date(minYearOfPage(this._activeDate, this.minDate, this.maxDate), 0, 1),\r\n new Date(maxYearOfPage(this._activeDate, this.minDate, this.maxDate), 0, 1),\r\n );\r\n }\r\n }\r\n\r\n /** Whether the calendar can move to the previous period. */\r\n get canMovePreviousPeriod(): boolean {\r\n if (!this.minDate) return true;\r\n switch (this._activeView) {\r\n case \"month\":\r\n return new Date(this._activeDate.getFullYear(), this._activeDate.getMonth(), 0) >= this.minDate;\r\n\r\n case \"year\":\r\n return new Date(this._activeDate.getFullYear() - 1, 12, 1) >= this.minDate;\r\n\r\n case \"multi-year\":\r\n return new Date(minYearOfPage(this._activeDate, this.minDate, this.maxDate) - 1, 12, 1) >= this.minDate;\r\n }\r\n }\r\n\r\n /** Whether the calendar can move to the next period. */\r\n get canMoveNextPeriod(): boolean {\r\n if (!this.maxDate) return true;\r\n switch (this._activeView) {\r\n case \"month\":\r\n return new Date(this._activeDate.getFullYear(), this._activeDate.getMonth() + 1, 1) <= this.maxDate;\r\n\r\n case \"year\":\r\n return new Date(this._activeDate.getFullYear() + 1, 1, 1) <= this.maxDate;\r\n\r\n case \"multi-year\":\r\n return new Date(maxYearOfPage(this._activeDate, this.minDate, this.maxDate) + 1, 12, 1) <= this.maxDate;\r\n }\r\n }\r\n\r\n /**\r\n * Asynchronously focuses the active date.\r\n * @returns {Promise<void>} A promise that resolves after the active date has been focused.\r\n */\r\n async focusActiveCell(): Promise<void> {\r\n if (this.isUpdatePending) {\r\n await this.updateComplete;\r\n }\r\n await this._view?.focusActiveCell();\r\n }\r\n\r\n /** Updates today's date. */\r\n updateTodayDate(): void {\r\n this._today = new Date();\r\n }\r\n\r\n /**\r\n * Moves the calendar to the previous period.\r\n * @returns {Promise<void>} A promise that resolves when the operation is complete.\r\n */\r\n async movePreviousPeriod(): Promise<void> {\r\n if (!this.canMovePreviousPeriod) return;\r\n if (prefersReducedMotion()) {\r\n this._activeDate = this.#getPreviousPeriod(this._activeView);\r\n return;\r\n }\r\n\r\n await this.#transitionComplete;\r\n\r\n const views = [...(this.shadowRoot?.querySelectorAll<HTMLElement>(`.row.${this._activeView} .view`) ?? [])];\r\n if (views.length != 3) return;\r\n\r\n this.#transitionComplete = new Promise<void>((resolve) => {\r\n views[0].addEventListener(\r\n \"transitionend\",\r\n () => {\r\n this._activeDate = this.#getPreviousPeriod(this._activeView);\r\n views.forEach((x) => x.classList.add(\"no-animate\"));\r\n views[1].classList.remove(\"after\");\r\n views[0].classList.add(\"before\");\r\n setTimeout(() => {\r\n views.forEach((x) => x.classList.remove(\"no-animate\"));\r\n resolve();\r\n });\r\n },\r\n { once: true },\r\n );\r\n });\r\n\r\n views[1].classList.add(\"after\");\r\n views[0].classList.remove(\"before\");\r\n\r\n await this.#transitionComplete;\r\n }\r\n\r\n /**\r\n * Moves the calendar to the next period.\r\n * @returns {Promise<void>} A promise that resolves when the operation is complete.\r\n */\r\n async moveNextPeriod(): Promise<void> {\r\n if (!this.canMoveNextPeriod) return;\r\n if (prefersReducedMotion()) {\r\n this._activeDate = this.#getNextPeriod(this._activeView);\r\n return;\r\n }\r\n\r\n await this.#transitionComplete;\r\n\r\n const views = [...(this.shadowRoot?.querySelectorAll<HTMLElement>(`.row.${this._activeView} .view`) ?? [])];\r\n if (views.length != 3) return;\r\n\r\n this.#transitionComplete = new Promise<void>((resolve) => {\r\n views[2].addEventListener(\r\n \"transitionend\",\r\n () => {\r\n this._activeDate = this.#getNextPeriod(this._activeView);\r\n views.forEach((x) => x.classList.add(\"no-animate\"));\r\n views[1].classList.remove(\"before\");\r\n views[2].classList.add(\"after\");\r\n setTimeout(() => {\r\n views.forEach((x) => x.classList.remove(\"no-animate\"));\r\n resolve();\r\n });\r\n },\r\n { once: true },\r\n );\r\n });\r\n\r\n views[1].classList.add(\"before\");\r\n views[2].classList.remove(\"after\");\r\n\r\n await this.#transitionComplete;\r\n }\r\n\r\n /**\r\n * Toggles the current period.\r\n * @returns {Promise<void>} A promise that resolves when the operation is complete.\r\n */\r\n async togglePeriod(): Promise<void> {\r\n await this.#transitionComplete;\r\n this._activeView = this._activeView === \"month\" ? \"multi-year\" : \"month\";\r\n await this.focusActiveCell();\r\n }\r\n\r\n /** @inheritdoc */\r\n protected override update(changedProperties: PropertyValues<this>): void {\r\n super.update(changedProperties);\r\n\r\n if (changedProperties.has(\"date\")) {\r\n this._activeDate = new Date(this.date ?? this._today);\r\n }\r\n if (changedProperties.has(\"startAt\")) {\r\n this._activeDate = new Date(this.startAt ?? this.date ?? this._today);\r\n }\r\n if (changedProperties.has(\"startView\")) {\r\n this._activeView = this.startView;\r\n }\r\n }\r\n\r\n /** @inheritdoc */\r\n protected override updated(_changedProperties: PropertyValues<this>): void {\r\n super.updated(_changedProperties);\r\n\r\n if (this._view instanceof M3eMonthViewElement) {\r\n if (_changedProperties.has(\"specialDates\") || _changedProperties.has(\"blackoutDates\")) {\r\n this.shadowRoot?.querySelectorAll(\"m3e-month-view\").forEach((x) => {\r\n x.specialDates = this.specialDates;\r\n x.blackoutDates = this.blackoutDates;\r\n });\r\n }\r\n }\r\n }\r\n\r\n /** @inheritdoc */\r\n protected override render(): unknown {\r\n return html`<slot name=\"header\">${this.#renderHeader()}</slot>\r\n <div class=\"body ${this._activeView}\">\r\n <div class=\"row multi-year\">\r\n ${this.#renderView(\"multi-year\", -1)}${this.#renderView(\"multi-year\", 0)}${this.#renderView(\"multi-year\", 1)}\r\n </div>\r\n <div class=\"row year\">\r\n ${this.#renderView(\"year\", -1)}${this.#renderView(\"year\", 0)}${this.#renderView(\"year\", 1)}\r\n </div>\r\n <div class=\"row month\">\r\n ${this.#renderView(\"month\", -1)}${this.#renderView(\"month\", 0)}${this.#renderView(\"month\", 1)}\r\n </div>\r\n </div>`;\r\n }\r\n\r\n /** @private */\r\n #renderHeader(): unknown {\r\n return html`<div class=\"header\">\r\n <m3e-button @click=\"${this.togglePeriod}\">\r\n ${this.periodLabel}\r\n <svg\r\n class=\"${classMap({ rotate: this._activeView !== \"month\" })}\"\r\n slot=\"trailing-icon\"\r\n viewBox=\"0 -960 960 960\"\r\n fill=\"currentColor\"\r\n >\r\n <path d=\"M480-360 280-560h400L480-360Z\" />\r\n </svg>\r\n </m3e-button>\r\n <div class=\"spacer\"></div>\r\n <m3e-icon-button\r\n ?disabled=\"${!this.canMovePreviousPeriod}\"\r\n @click=\"${this.movePreviousPeriod}\"\r\n aria-label=\"${this._activeView === \"month\"\r\n ? this.previousMonthLabel\r\n : this._activeView === \"year\"\r\n ? this.previousYearLabel\r\n : this.previousMultiYearLabel}\"\r\n >\r\n ${M3eDirectionality.current === \"ltr\"\r\n ? html`<svg viewBox=\"0 -960 960 960\" fill=\"currentColor\">\r\n <path d=\"M560-240 320-480l240-240 56 56-184 184 184 184-56 56Z\" />\r\n </svg>`\r\n : html`<svg viewBox=\"0 -960 960 960\" fill=\"currentColor\">\r\n <path d=\"M504-480 320-664l56-56 240 240-240 240-56-56 184-184Z\" />\r\n </svg>`}\r\n </m3e-icon-button>\r\n <m3e-icon-button\r\n ?disabled=\"${!this.canMoveNextPeriod}\"\r\n @click=\"${this.moveNextPeriod}\"\r\n aria-label=\"${this._activeView === \"month\"\r\n ? this.nextMonthLabel\r\n : this._activeView === \"year\"\r\n ? this.nextYearLabel\r\n : this.nextMultiYearLabel}\"\r\n >\r\n ${M3eDirectionality.current === \"ltr\"\r\n ? html`<svg viewBox=\"0 -960 960 960\" fill=\"currentColor\">\r\n <path d=\"M504-480 320-664l56-56 240 240-240 240-56-56 184-184Z\" />\r\n </svg>`\r\n : html`<svg viewBox=\"0 -960 960 960\" fill=\"currentColor\">\r\n <path d=\"M560-240 320-480l240-240 56 56-184 184 184 184-56 56Z\" />\r\n </svg>`}\r\n </m3e-icon-button>\r\n </div>`;\r\n }\r\n\r\n /** @private */\r\n #renderView(view: CalendarView, offset: -1 | 0 | 1): unknown {\r\n const activeDate =\r\n offset < 0 ? this.#getPreviousPeriod(view) : offset > 0 ? this.#getNextPeriod(view) : new Date(this._activeDate);\r\n\r\n switch (view) {\r\n case \"month\":\r\n return html`<m3e-month-view\r\n class=\"view ${classMap({\r\n before: offset < 0,\r\n after: offset > 0,\r\n active: view === this._activeView && offset === 0,\r\n })}\"\r\n ?inert=\"${offset !== 0}\"\r\n today=\"${this._today.toISOString()}\"\r\n date=\"${ifDefined(this.date?.toISOString())}\"\r\n active-date=\"${activeDate.toISOString()}\"\r\n min-date=\"${ifDefined(this.minDate?.toISOString())}\"\r\n max-date=\"${ifDefined(this.maxDate?.toISOString())}\"\r\n range-start=\"${ifDefined(this.rangeStart?.toISOString())}\"\r\n range-end=\"${ifDefined(this.rangeEnd?.toISOString())}\"\r\n @active-change=\"${offset === 0 ? this.#handleActiveChange : undefined}\"\r\n @change=\"${offset === 0 ? this.#handleDateChange : undefined}\"\r\n >\r\n </m3e-month-view>`;\r\n\r\n case \"year\":\r\n return html`<m3e-year-view\r\n class=\"view ${classMap({\r\n before: offset < 0,\r\n after: offset > 0,\r\n active: view === this._activeView && offset === 0,\r\n })}\"\r\n ?inert=\"${offset !== 0}\"\r\n today=\"${this._today.toISOString()}\"\r\n date=\"${ifDefined(this.date?.toISOString())}\"\r\n active-date=\"${activeDate.toISOString()}\"\r\n min-date=\"${ifDefined(this.minDate?.toISOString())}\"\r\n max-date=\"${ifDefined(this.maxDate?.toISOString())}\"\r\n @active-change=\"${offset === 0 ? this.#handleActiveChange : undefined}\"\r\n @change=\"${offset === 0 ? this.#handleMonthChange : undefined}\"\r\n ></m3e-year-view>`;\r\n\r\n case \"multi-year\":\r\n return html`<m3e-multi-year-view\r\n class=\"view ${classMap({\r\n before: offset < 0,\r\n after: offset > 0,\r\n active: view === this._activeView && offset === 0,\r\n })}\"\r\n ?inert=\"${offset !== 0}\"\r\n today=\"${this._today.toISOString()}\"\r\n date=\"${ifDefined(this.date?.toISOString())}\"\r\n active-date=\"${activeDate.toISOString()}\"\r\n min-date=\"${ifDefined(this.minDate?.toISOString())}\"\r\n max-date=\"${ifDefined(this.maxDate?.toISOString())}\"\r\n @active-change=\"${offset === 0 ? this.#handleActiveChange : undefined}\"\r\n @change=\"${offset === 0 ? this.#handleYearChange : undefined}\"\r\n >\r\n </m3e-multi-year-view>`;\r\n }\r\n }\r\n\r\n /** @private */\r\n #handleDateChange(e: Event): void {\r\n const monthView = e.currentTarget as M3eMonthViewElement;\r\n this._activeDate = new Date(monthView.activeDate);\r\n this.rangeStart = monthView.rangeStart;\r\n this.rangeEnd = monthView.rangeEnd;\r\n this.date = new Date(this._activeDate);\r\n this.dispatchEvent(new Event(\"change\", { bubbles: true }));\r\n }\r\n\r\n /** @private */\r\n async #handleMonthChange(e: Event): Promise<void> {\r\n this._activeDate = new Date((e.currentTarget as CalendarViewElementBase).activeDate);\r\n this._activeView = \"month\";\r\n this.focusActiveCell();\r\n }\r\n\r\n /** @private */\r\n #handleYearChange(e: Event): void {\r\n this._activeDate = new Date((e.currentTarget as CalendarViewElementBase).activeDate);\r\n this._activeView = \"year\";\r\n this.focusActiveCell();\r\n }\r\n\r\n /** @private */\r\n async #handleActiveChange(e: Event): Promise<void> {\r\n this._activeDate = new Date((e.currentTarget as CalendarViewElementBase).activeDate);\r\n await this.focusActiveCell();\r\n }\r\n\r\n /** @private */\r\n #getPreviousPeriod(view: CalendarView): Date {\r\n const activeDate = new Date(this._activeDate);\r\n switch (view) {\r\n case \"month\":\r\n activeDate.setMonth(this._activeDate.getMonth() - 1);\r\n while (activeDate.getMonth() === this._activeDate.getMonth()) {\r\n activeDate.setDate(activeDate.getDate() - 1);\r\n }\r\n\r\n break;\r\n\r\n case \"year\":\r\n activeDate.setFullYear(this._activeDate.getFullYear() - 1);\r\n break;\r\n\r\n case \"multi-year\": {\r\n activeDate.setDate(1);\r\n activeDate.setFullYear(minYearOfPage(this._activeDate, this.minDate, this.maxDate) - 1);\r\n }\r\n }\r\n return activeDate;\r\n }\r\n\r\n /** @private */\r\n #getNextPeriod(view: CalendarView): Date {\r\n const activeDate = new Date(this._activeDate);\r\n switch (view) {\r\n case \"month\":\r\n activeDate.setMonth(this._activeDate.getMonth() + 1);\r\n while (activeDate.getMonth() === this._activeDate.getMonth()) {\r\n activeDate.setDate(activeDate.getDate() + 1);\r\n }\r\n break;\r\n\r\n case \"year\":\r\n activeDate.setFullYear(this._activeDate.getFullYear() + 1);\r\n break;\r\n\r\n case \"multi-year\":\r\n activeDate.setDate(1);\r\n activeDate.setFullYear(maxYearOfPage(this._activeDate, this.minDate, this.maxDate) + 1);\r\n break;\r\n }\r\n return activeDate;\r\n }\r\n}\r\n\r\ndeclare global {\r\n interface HTMLElementTagNameMap {\r\n \"m3e-calendar\": M3eCalendarElement;\r\n }\r\n}\r\n","/* eslint-disable @typescript-eslint/no-unsafe-declaration-merging */\r\nimport { css, CSSResultGroup, html, LitElement, nothing, PropertyValues, unsafeCSS } from \"lit\";\r\nimport { customElement, property, query, state } from \"lit/decorators.js\";\r\nimport { ifDefined } from \"lit/directives/if-defined.js\";\r\n\r\nimport { DesignToken, ScrollController, Role } from \"@m3e/web/core\";\r\nimport { positionAnchor } from \"@m3e/web/core/anchoring\";\r\nimport { M3eDirectionality } from \"@m3e/web/core/bidi\";\r\nimport { Breakpoint, M3eBreakpointObserver } from \"@m3e/web/core/layout\";\r\n\r\nimport type { M3eCalendarElement } from \"./CalendarElement\";\r\nimport type { CalendarView } from \"./CalendarView\";\r\n\r\nimport { DatepickerVariant } from \"./DatepickerVariant\";\r\n\r\n/**\r\n * Presents a date picker on a temporary surface.\r\n *\r\n * @description\r\n * The `m3e-datepicker` component provides a date selection interface that presents\r\n * a temporary surface for picking a date. It supports various variants and modes, including modal\r\n * and input-based presentations, with full keyboard navigation and accessibility support.\r\n *\r\n * @tag m3e-datepicker\r\n *\r\n * @fires change - Dispatched when the selected date changes.\r\n * @fires beforetoggle - Dispatched before the toggle state changes.\r\n * @fires toggle - Dispatched after the toggle state has changed.\r\n *\r\n * @cssprop --m3e-datepicker-container-shape - Controls the corner radius of the container.\r\n * @cssprop --m3e-datepicker-container-padding-block - Vertical padding inside the container.\r\n * @cssprop --m3e-datepicker-container-color - Background color of the container.\r\n * @cssprop --m3e-datepicker-container-elevation - Box shadow elevation of the container.\r\n */\r\n@customElement(\"m3e-datepicker\")\r\nexport class M3eDatepickerElement extends Role(LitElement, \"dialog\") {\r\n /** The styles of the element. */\r\n static override styles: CSSResultGroup = css`\r\n :host {\r\n flex-direction: column;\r\n margin: unset;\r\n border: unset;\r\n padding-block: var(--m3e-datepicker-container-padding-block, 0.75rem);\r\n padding-inline: var(--m3e-datepicker-container-padding-inline, 0.25rem);\r\n background-color: var(--m3e-datepicker-container-color, ${DesignToken.color.surfaceContainer});\r\n box-shadow: var(--m3e-datepicker-container-elevation, ${DesignToken.elevation.level3});\r\n opacity: 0;\r\n display: none;\r\n }\r\n .headline {\r\n font-size: var(\r\n --m3e-datepicker-modal-headline-font-size,\r\n ${DesignToken.typescale.standard.headline.large.fontSize}\r\n );\r\n font-weight: var(\r\n --m3e-datepicker-modal-headline-font-weight,\r\n ${DesignToken.typescale.standard.headline.large.fontWeight}\r\n );\r\n line-height: var(\r\n --m3e-datepicker-modal-headline-line-height,\r\n ${DesignToken.typescale.standard.headline.large.lineHeight}\r\n );\r\n letter-spacing: var(\r\n --m3e-datepicker-modal-headline-tracking,\r\n ${DesignToken.typescale.standard.headline.large.tracking}\r\n );\r\n margin-block-start: 2.25rem;\r\n margin-block-end: 0.75rem;\r\n margin-inline: 1.5rem;\r\n }\r\n .supporting-text {\r\n font-size: var(\r\n --m3e-datepicker-modal-supporting-text-font-size,\r\n ${DesignToken.typescale.standard.label.large.fontSize}\r\n );\r\n font-weight: var(\r\n --m3e-datepicker-modal-supporting-text-font-weight,\r\n ${DesignToken.typescale.standard.label.large.fontWeight}\r\n );\r\n line-height: var(\r\n --m3e-datepicker-modal-supporting-text-line-height,\r\n ${DesignToken.typescale.standard.label.large.lineHeight}\r\n );\r\n letter-spacing: var(\r\n --m3e-datepicker-modal-supporting-text-tracking,\r\n ${DesignToken.typescale.standard.label.large.tracking}\r\n );\r\n margin-block-start: 1rem;\r\n margin-inline: 1.5rem;\r\n }\r\n .divider {\r\n height: var(--m3e-divider-thickness, 1px);\r\n width: 100%;\r\n position: relative;\r\n }\r\n .divider::before {\r\n content: \"\";\r\n box-sizing: border-box;\r\n position: absolute;\r\n border-bottom: var(--m3e-divider-thickness, 1px) solid\r\n var(--m3e-divider-color, ${DesignToken.color.outlineVariant});\r\n height: inherit;\r\n left: -0.25rem;\r\n right: -0.25rem;\r\n }\r\n .actions {\r\n display: flex;\r\n align-items: center;\r\n justify-content: flex-end;\r\n column-gap: 0.5rem;\r\n padding-inline: var(--m3e-datepicker-actions-padding-inline, 0.5rem);\r\n }\r\n :host(.-docked) {\r\n position: absolute;\r\n background-color: var(--m3e-datepicker-docked-container-color, ${DesignToken.color.surfaceContainer});\r\n border-radius: var(--m3e-datepicker-docked-container-shape, ${DesignToken.shape.corner.large});\r\n }\r\n :host(.-modal) {\r\n position: fixed;\r\n inset: 0;\r\n margin: auto;\r\n transform-origin: top;\r\n background-color: var(--m3e-datepicker-modal-container-color, ${DesignToken.color.surfaceContainerHigh});\r\n border-radius: var(--m3e-datepicker-modal-container-shape, ${DesignToken.shape.corner.extraLarge});\r\n }\r\n :host(:not(.-no-animate)) {\r\n transition: ${unsafeCSS(\r\n `opacity ${DesignToken.motion.duration.short2} ${DesignToken.motion.easing.standard}, \r\n transform ${DesignToken.motion.duration.short2} ${DesignToken.motion.easing.standard},\r\n overlay ${DesignToken.motion.duration.short2} ${DesignToken.motion.easing.standard} allow-discrete,\r\n display ${DesignToken.motion.duration.short2} ${DesignToken.motion.easing.standard} allow-discrete`,\r\n )};\r\n }\r\n :host {\r\n transform: scaleY(0.8);\r\n }\r\n :host(:popover-open) {\r\n transform: scaleY(1);\r\n display: inline-flex;\r\n opacity: 1;\r\n }\r\n :host(.-docked)::backdrop {\r\n background-color: transparent;\r\n }\r\n :host(.-modal)::backdrop {\r\n background-color: color-mix(in srgb, var(--m3e-dialog-scrim-color, ${DesignToken.color.scrim}) 0%, transparent);\r\n margin-inline-end: -20px;\r\n }\r\n :host(.-modal:not(:popover-open))::backdrop {\r\n transition: ${unsafeCSS(\r\n `background-color ${DesignToken.motion.duration.short3} ${DesignToken.motion.easing.standard}, \r\n overlay ${DesignToken.motion.duration.short3} ${DesignToken.motion.easing.standard} allow-discrete,\r\n visibility ${DesignToken.motion.duration.short3} ${DesignToken.motion.easing.standard} allow-discrete`,\r\n )};\r\n }\r\n :host(.-modal:popover-open)::backdrop {\r\n background-color: color-mix(\r\n in srgb,\r\n var(--m3e-dialog-scrim-color, ${DesignToken.color.scrim}) var(--m3e-dialog-scrim-opacity, 32%),\r\n transparent\r\n );\r\n transition: ${unsafeCSS(\r\n `background-color ${DesignToken.motion.duration.long2} ${DesignToken.motion.easing.standard}, \r\n overlay ${DesignToken.motion.duration.long2} ${DesignToken.motion.easing.standard} allow-discrete,\r\n visibility ${DesignToken.motion.duration.long2} ${DesignToken.motion.easing.standard} allow-discrete`,\r\n )};\r\n }\r\n :host(.-bottom) {\r\n transform-origin: top;\r\n }\r\n :host(.-top) {\r\n transform-origin: bottom;\r\n }\r\n @starting-style {\r\n :host(:popover-open) {\r\n transform: scaleY(0.8);\r\n }\r\n :host(.-modal:popover-open)::backdrop {\r\n background-color: color-mix(in srgb, var(--m3e-dialog-scrim-color, ${DesignToken.color.scrim}) 0%, transparent);\r\n }\r\n }\r\n @media (prefers-reduced-motion) {\r\n :host(:not(.-no-animate)) {\r\n transition: none;\r\n }\r\n }\r\n @media (forced-colors: active) {\r\n :host {\r\n background-color: Menu;\r\n color: MenuText;\r\n border: 1px solid CanvasText;\r\n }\r\n }\r\n `;\r\n\r\n /** @private */ @state() private _date?: Date | null;\r\n /** @private */ @state() private _rangeStart?: Date | null;\r\n /** @private */ @state() private _rangeEnd?: Date | null;\r\n\r\n /** @private */ @query(\"m3e-calendar\") private readonly _calendar!: M3eCalendarElement;\r\n /** @private */ @state() private _variant?: Exclude<DatepickerVariant, \"auto\">;\r\n /** @private */ #breakpointUnobserve?: () => void;\r\n\r\n /** @private */ #trigger?: HTMLElement;\r\n /** @private */ #anchor?: HTMLElement;\r\n /** @private */ #anchorCleanup?: () => void;\r\n\r\n /** @private */ readonly #documentClickHandler = (e: MouseEvent) => this.#handleDocumentClick(e);\r\n /** @private */ readonly #scrollController = new ScrollController(this, {\r\n target: null,\r\n callback: () => this.hide(false),\r\n });\r\n\r\n /** @private */ readonly #toggleHandler = (e: ToggleEvent) => {\r\n if (e.newState === \"closed\") {\r\n this.#clearSelectionState();\r\n this.#anchorCleanup?.();\r\n this.#anchorCleanup = undefined;\r\n }\r\n };\r\n\r\n /**\r\n * The appearance variant of the picker.\r\n * @default \"docked\"\r\n */\r\n @property() variant: DatepickerVariant = \"docked\";\r\n\r\n /**\r\n * The initial view used to select a date.\r\n * @default \"month\"\r\n */\r\n @property({ attribute: \"start-view\" }) startView: CalendarView = \"month\";\r\n\r\n /**\r\n * The selected date.\r\n * @default null\r\n */\r\n @property({ converter: { fromAttribute: parseDate } })\r\n date: Date | null = null;\r\n\r\n /**\r\n * A date specifying the period (month or year) to start the calendar in.\r\n * @default null\r\n */\r\n @property({ attribute: \"start-at\", converter: { fromAttribute: parseDate } })\r\n startAt: Date | null = null;\r\n\r\n /**\r\n * The minimum date that can be selected.\r\n * @default null\r\n */\r\n @property({ attribute: \"min-date\", converter: { fromAttribute: parseDate } })\r\n minDate: Date | null = null;\r\n\r\n /**\r\n * The maximum date that can be selected.\r\n * @default null\r\n */\r\n @property({ attribute: \"max-date\", converter: { fromAttribute: parseDate } })\r\n maxDate: Date | null = null;\r\n\r\n /**\r\n * Start of a date range.\r\n * @default null\r\n */\r\n @property({ attribute: \"range-start\", converter: { fromAttribute: parseDate } })\r\n rangeStart: Date | null = null;\r\n\r\n /**\r\n * End of a date range.\r\n * @default null\r\n */\r\n @property({ attribute: \"range-end\", converter: { fromAttribute: parseDate } })\r\n rangeEnd: Date | null = null;\r\n\r\n /**\r\n * A function used to determine whether a date cannot be selected.\r\n * @default null\r\n */\r\n @property({ attribute: false }) blackoutDates: ((date: Date) => boolean) | null = null;\r\n\r\n /**\r\n * A function used to determine whether a date is special.\r\n * @default null\r\n */\r\n @property({ attribute: false }) specialDates: ((date: Date) => boolean) | null = null;\r\n\r\n /**\r\n * The accessible label given to the button used to move to the previous month.\r\n * @default \"Previous month\"\r\n */\r\n @property({ attribute: \"previous-month-label\" }) previousMonthLabel = \"Previous month\";\r\n\r\n /**\r\n * The accessible label given to the button used to move to the previous year.\r\n * @default \"Previous year\"\r\n */\r\n @property({ attribute: \"previous-year-label\" }) previousYearLabel = \"Previous year\";\r\n\r\n /**\r\n * The accessible label given to the button used to move to the previous 24 years.\r\n * @default \"Previous 24 years\"\r\n */\r\n @property({ attribute: \"previous-multi-year-label\" }) previousMultiYearLabel = \"Previous 24 years\";\r\n\r\n /**\r\n * The accessible label given to the button used to move to the next month.\r\n * @default \"Next month\"\r\n */\r\n @property({ attribute: \"next-month-label\" }) nextMonthLabel = \"Next month\";\r\n\r\n /**\r\n * The accessible label given to the button used to move to the next year.\r\n * @default \"Next year\"\r\n */\r\n @property({ attribute: \"next-year-label\" }) nextYearLabel = \"Next year\";\r\n\r\n /**\r\n * The accessible label given to the button used to move to the next 24 years.\r\n * @default \"Next 24 years\"\r\n */\r\n @property({ attribute: \"next-multi-year-label\" }) nextMultiYearLabel = \"Next 24 years\";\r\n\r\n /**\r\n * The label given to the button used apply the selected date and close the picker.\r\n * @default \"OK\"\r\n */\r\n @property({ attribute: \"confirm-label\" }) confirmLabel = \"OK\";\r\n\r\n /**\r\n * The label given to the button used discard the selected date and close the picker.\r\n * @default \"Cancel\"\r\n */\r\n @property({ attribute: \"dismiss-label\" }) dismissLabel = \"Cancel\";\r\n\r\n /**\r\n * The label given to the the picker.\r\n * @default \"Select date\"\r\n */\r\n @property() label = \"Select date\";\r\n\r\n /** Whether the picker is open. */\r\n get isOpen() {\r\n return this.#trigger !== undefined;\r\n }\r\n\r\n /** The current variant applied to the picker. */\r\n get currentVariant(): Exclude<DatepickerVariant, \"auto\"> {\r\n return this._variant ?? (this.variant !== \"modal\" ? \"docked\" : \"modal\");\r\n }\r\n\r\n /** @inheritdoc */\r\n override connectedCallback(): void {\r\n super.connectedCallback();\r\n\r\n this.ariaModal = \"true\";\r\n\r\n this.classList.add(\"-no-animate\");\r\n this.setAttribute(\"popover\", \"manual\");\r\n this.addEventListener(\"toggle\", this.#toggleHandler);\r\n document.addEventListener(\"click\", this.#documentClickHandler);\r\n }\r\n\r\n /** @inheritdoc */\r\n override disconnectedCallback(): void {\r\n super.disconnectedCallback();\r\n\r\n this._variant = undefined;\r\n this.#breakpointUnobserve?.();\r\n\r\n this.classList.remove(\"-docked\");\r\n this.classList.remove(\"-modal\");\r\n\r\n this.removeEventListener(\"toggle\", this.#toggleHandler);\r\n document.removeEventListener(\"click\", this.#documentClickHandler);\r\n }\r\n\r\n /**\r\n * Opens the picker.\r\n * @param {HTMLElement} trigger The element that triggered the picker.\r\n * @param {HTMLElement | undefined} anchor The element used to position the picker.\r\n * @returns {Promise<void>} A `Promise` that resolves when the picker is opened.\r\n */\r\n async show(trigger: HTMLElement, anchor?: HTMLElement): Promise<void> {\r\n if (this.#trigger && this.#trigger !== trigger) {\r\n this.hide();\r\n }\r\n\r\n this._calendar.date = this.date;\r\n this._calendar.rangeStart = this.rangeStart;\r\n this._calendar.rangeEnd = this.rangeEnd;\r\n\r\n this.#trigger = trigger;\r\n this.#trigger.ariaExpanded = \"true\";\r\n this.#anchor = anchor;\r\n\r\n await this.#updatePosition();\r\n this.showPopover();\r\n\r\n this.#scrollController.observe(this.#trigger);\r\n\r\n await this._calendar.focusActiveCell();\r\n }\r\n\r\n /**\r\n * Hides the picker.\r\n * @param {boolean} [restoreFocus=false] Whether to restore focus to the picker's trigger.\r\n */\r\n hide(restoreFocus: boolean = false): void {\r\n this.hidePopover();\r\n\r\n if (this.#trigger) {\r\n this.#trigger.ariaExpanded = \"false\";\r\n if (restoreFocus) {\r\n this.#trigger.focus();\r\n }\r\n this.#scrollController.unobserve(this.#trigger);\r\n this.#trigger = undefined;\r\n }\r\n }\r\n\r\n /**\r\n * Toggles the picker.\r\n * @param {HTMLElement} trigger The element that triggered the picker.\r\n * @param {HTMLElement | undefined} anchor The element used to position the picker.\r\n * @returns {Promise<void>} A `Promise` that resolves when the picker is opened or closed.\r\n */\r\n async toggle(trigger: HTMLElement, anchor?: HTMLElement): Promise<void> {\r\n if (this.#trigger) {\r\n this.hide();\r\n } else {\r\n await this.show(trigger, anchor);\r\n }\r\n }\r\n\r\n /** @inheritdoc */\r\n protected override render(): unknown {\r\n return html`<m3e-focus-trap>\r\n ${this.#renderHeader()}\r\n <m3e-calendar\r\n start-view=\"${this.startView}\"\r\n start-at=\"${ifDefined(this.startAt?.toISOString())}\"\r\n min-date=\"${ifDefined(this.minDate?.toISOString())}\"\r\n max-date=\"${ifDefined(this.maxDate?.toISOString())}\"\r\n @change=\"${this.#handleCalendarChange}\"\r\n ></m3e-calendar>\r\n <div class=\"actions\">\r\n <m3e-button @click=\"${this.#handleDismissClick}\">${this.dismissLabel}</m3e-button>\r\n <m3e-button @click=\"${this.#handleConfirmClick}\">${this.confirmLabel}</m3e-button>\r\n </div>\r\n </m3e-focus-trap>`;\r\n }\r\n\r\n /** @inheritdoc */\r\n #renderHeader(): unknown {\r\n if (this.currentVariant === \"docked\") return nothing;\r\n\r\n const selectedDate = this._date ?? this.date;\r\n\r\n return html`<div class=\"supporting-text\">${this.label}</div>\r\n <div class=\"headline\">\r\n ${selectedDate\r\n ? new Intl.DateTimeFormat(navigator.language, {\r\n weekday: \"short\",\r\n month: \"short\",\r\n day: \"numeric\",\r\n }).format(selectedDate)\r\n : \"––\"}\r\n </div>\r\n <div class=\"divider\"></div>`;\r\n }\r\n\r\n /** @inheritdoc */\r\n protected override firstUpdated(_changedProperties: PropertyValues): void {\r\n super.firstUpdated(_changedProperties);\r\n requestAnimationFrame(() => this.classList.remove(\"-no-animate\"));\r\n }\r\n\r\n /** @inheritdoc */\r\n protected override update(changedProperties: PropertyValues<this>): void {\r\n super.update(changedProperties);\r\n\r\n if ([\"date\", \"rangeStart\", \"rangeEnd\"].some((x) => changedProperties.has(<keyof M3eDatepickerElement>x))) {\r\n this.#clearSelectionState();\r\n }\r\n\r\n if (changedProperties.has(\"variant\")) {\r\n this.#breakpointUnobserve?.();\r\n\r\n if (this.variant === \"auto\") {\r\n this.#breakpointUnobserve = M3eBreakpointObserver.observe([Breakpoint.XSmall, Breakpoint.Small], (matches) => {\r\n this._variant = matches.get(Breakpoint.XSmall) || matches.get(Breakpoint.Small) ? \"modal\" : \"docked\";\r\n this.#updateVariant();\r\n });\r\n } else {\r\n this._variant = undefined;\r\n this.#updateVariant();\r\n }\r\n }\r\n }\r\n\r\n /** @inheritdoc */\r\n protected override updated(_changedProperties: PropertyValues<this>): void {\r\n super.updated(_changedProperties);\r\n\r\n if (_changedProperties.has(\"specialDates\") || _changedProperties.has(\"blackoutDates\")) {\r\n this._calendar.specialDates = this.specialDates;\r\n this._calendar.blackoutDates = this.blackoutDates;\r\n }\r\n }\r\n\r\n /** @private */\r\n #handleDocumentClick(e: MouseEvent): void {\r\n if (!e.composedPath().some((x) => x instanceof M3eDatepickerElement || x === this.#trigger || x === this.#anchor)) {\r\n this.hide();\r\n }\r\n }\r\n\r\n /** @private */\r\n #handleCalendarChange(): void {\r\n this._date = this._calendar.date;\r\n this._rangeStart = this._calendar.rangeStart;\r\n this._rangeEnd = this._calendar.rangeEnd;\r\n }\r\n\r\n /** @private */\r\n #handleDismissClick(): void {\r\n this.hide(true);\r\n }\r\n\r\n /** @private */\r\n #handleConfirmClick(): void {\r\n this.date = this._date ?? this.date;\r\n this.rangeStart = this._rangeStart ?? this.rangeStart;\r\n this.rangeEnd = this._rangeEnd ?? this.rangeEnd;\r\n this.hide(true);\r\n this.dispatchEvent(new Event(\"change\", { bubbles: true }));\r\n }\r\n\r\n /** @private */\r\n #updateVariant(): void {\r\n switch (this.currentVariant) {\r\n case \"docked\":\r\n this.classList.remove(\"-modal\");\r\n this.classList.add(\"-docked\");\r\n break;\r\n\r\n case \"modal\":\r\n this.classList.remove(\"-docked\");\r\n this.classList.add(\"-modal\");\r\n break;\r\n }\r\n\r\n if (this.isOpen) {\r\n this.#updatePosition();\r\n }\r\n }\r\n\r\n /** @private */\r\n async #updatePosition(): Promise<void> {\r\n if (this.currentVariant === \"docked\" && this.#trigger) {\r\n this.#anchorCleanup = await positionAnchor(\r\n this,\r\n this.#anchor ?? this.#trigger,\r\n {\r\n position: \"bottom-start\",\r\n inline: true,\r\n flip: true,\r\n },\r\n (x, y, position) => {\r\n this.classList.toggle(\"-top\", position.includes(\"top\"));\r\n this.classList.toggle(\"-bottom\", position.includes(\"bottom\"));\r\n\r\n if (M3eDirectionality.current === \"rtl\") {\r\n this.style.right = `${window.innerWidth - x - this.clientWidth}px`;\r\n this.style.left = \"\";\r\n } else {\r\n this.style.left = `${x}px`;\r\n this.style.right = \"\";\r\n }\r\n\r\n this.style.top = `${y}px`;\r\n },\r\n );\r\n } else {\r\n this.#anchorCleanup?.();\r\n this.#anchorCleanup = undefined;\r\n this.style.left = \"\";\r\n this.style.right = \"\";\r\n this.style.top = \"\";\r\n }\r\n }\r\n\r\n /** @private */\r\n #clearSelectionState(): void {\r\n this._date = this._rangeStart = this._rangeEnd = undefined;\r\n }\r\n}\r\n\r\ninterface M3eDatepickerElementEventMap extends HTMLElementEventMap {\r\n beforetoggle: ToggleEvent;\r\n toggle: ToggleEvent;\r\n}\r\n\r\nexport interface M3eDatepickerElement {\r\n addEventListener<K extends keyof M3eDatepickerElementEventMap>(\r\n type: K,\r\n listener: (this: M3eDatepickerElement, ev: M3eDatepickerElementEventMap[K]) => void,\r\n options?: boolean | AddEventListenerOptions,\r\n ): void;\r\n\r\n addEventListener(\r\n type: string,\r\n listener: EventListenerOrEventListenerObject,\r\n options?: boolean | AddEventListenerOptions,\r\n ): void;\r\n\r\n removeEventListener<K extends keyof M3eDatepickerElementEventMap>(\r\n type: K,\r\n listener: (this: M3eDatepickerElement, ev: M3eDatepickerElementEventMap[K]) => void,\r\n options?: boolean | EventListenerOptions,\r\n ): void;\r\n\r\n removeEventListener(\r\n type: string,\r\n listener: EventListenerOrEventListenerObject,\r\n options?: boolean | EventListenerOptions,\r\n ): void;\r\n}\r\n\r\n/** @private */\r\nfunction parseDate(value: string | null): Date | null {\r\n return !value ? null : new Date(value);\r\n}\r\n\r\ndeclare global {\r\n interface HTMLElementTagNameMap {\r\n \"m3e-datepicker\": M3eDatepickerElement;\r\n }\r\n}\r\n","import { customElement } from \"lit/decorators.js\";\r\n\r\nimport { ActionElementBase, HtmlFor } from \"@m3e/web/core\";\r\nimport type { M3eFormFieldElement } from \"@m3e/web/form-field\";\r\n\r\nimport { M3eDatepickerElement } from \"./DatepickerElement\";\r\n\r\n/**\r\n * An element, nested within a clickable element, used to toggle a datepicker.\r\n * @tag m3e-datepicker-toggle\r\n */\r\n@customElement(\"m3e-datepicker-toggle\")\r\nexport class M3eDatepickerToggleElement extends HtmlFor(ActionElementBase) {\r\n /** @inheritdoc */\r\n override connectedCallback(): void {\r\n super.connectedCallback();\r\n\r\n if (this.parentElement) {\r\n this.parentElement.ariaHasPopup = \"dialog\";\r\n }\r\n }\r\n\r\n /** @inheritdoc */\r\n override disconnectedCallback(): void {\r\n super.disconnectedCallback();\r\n\r\n if (this.parentElement) {\r\n this.parentElement.ariaHasPopup = null;\r\n }\r\n }\r\n\r\n /** @inheritdoc */\r\n override _onClick(): void {\r\n if (this.control instanceof M3eDatepickerElement && this.parentElement) {\r\n this.control.toggle(this.parentElement, this.closest<M3eFormFieldElement>(\"m3e-form-field\") ?? undefined);\r\n }\r\n }\r\n}\r\n\r\ndeclare global {\r\n interface HTMLElementTagNameMap {\r\n \"m3e-datepicker-toggle\": M3eDatepickerToggleElement;\r\n }\r\n}\r\n","/**\r\n * Adapted from Angular Material Datepicker\r\n * Source: https://github.com/angular/components/blob/main/src/material/datepicker/multi-year-view.ts\r\n *\r\n * @license MIT\r\n * Copyright (c) 2025 Google LLC\r\n * See LICENSE file in the project root for full license text.\r\n */\r\n\r\nimport { css, CSSResultGroup, html } from \"lit\";\r\nimport { customElement } from \"lit/decorators.js\";\r\nimport { classMap } from \"lit/directives/class-map.js\";\r\nimport { ifDefined } from \"lit/directives/if-defined.js\";\r\n\r\nimport { DesignToken } from \"@m3e/web/core\";\r\nimport { M3eDirectionality } from \"@m3e/web/core/bidi\";\r\n\r\nimport { CalendarViewElementBase } from \"./CalendarViewElementBase\";\r\nimport { addCalendarYears, clampDate, getActiveOffset, minYearOfPage, YEARS_PER_PAGE, YEARS_PER_ROW } from \"./utils\";\r\n\r\n/**\r\n * An internal component used to display a year selector in a calendar.\r\n * @internal\r\n */\r\n@customElement(\"m3e-multi-year-view\")\r\nexport class M3eMultiYearViewElement extends CalendarViewElementBase {\r\n /** The styles of the element. */\r\n static override styles: CSSResultGroup = [\r\n CalendarViewElementBase.styles,\r\n css`\r\n .item {\r\n height: 2.25rem;\r\n }\r\n .touch {\r\n width: 100%;\r\n }\r\n th {\r\n height: 1rem;\r\n }\r\n td {\r\n padding-inline: 1rem;\r\n }\r\n tbody {\r\n font-size: var(--m3e-calendar-item-font-size, ${DesignToken.typescale.standard.body.medium.fontSize});\r\n font-weight: var(--m3e-calendar-item-font-weight, ${DesignToken.typescale.standard.body.medium.fontWeight});\r\n line-height: var(--m3e-calendar-item-line-height, ${DesignToken.typescale.standard.body.medium.lineHeight});\r\n letter-spacing: var(--m3e-calendar-item-tracking, ${DesignToken.typescale.standard.body.medium.tracking});\r\n }\r\n `,\r\n ];\r\n\r\n /** @inheritdoc */\r\n protected override render(): unknown {\r\n const years = new Array<number[]>();\r\n const minYear = minYearOfPage(this.activeDate, this.minDate, this.maxDate);\r\n for (let i = 0, row: number[] = []; i < YEARS_PER_PAGE; i++) {\r\n row.push(minYear + i);\r\n if (row.length === YEARS_PER_ROW) {\r\n years.push(row);\r\n row = new Array<number>();\r\n }\r\n }\r\n\r\n return html`<table role=\"grid\">\r\n <thead aria-hidden=\"true\">\r\n <tr>\r\n <th colspan=\"${YEARS_PER_ROW}\"></th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n ${years.map(\r\n (row) =>\r\n html`<tr role=\"row\">\r\n ${row.map((year) => this.#renderItem(year))}\r\n </tr>`,\r\n )}\r\n </tbody>\r\n </table>`;\r\n }\r\n\r\n /** @private */\r\n #renderItem(year: number): unknown {\r\n const yearFormat = new Intl.DateTimeFormat(navigator.language, { year: \"numeric\" });\r\n const active = this.activeDate.getFullYear() === year;\r\n const selected = this.date?.getFullYear() === year;\r\n const current = this.today.getFullYear() === year;\r\n const disabled =\r\n (this.minDate && year < this.minDate.getFullYear()) || (this.maxDate && year > this.maxDate.getFullYear());\r\n\r\n const id = `year-${year}`;\r\n\r\n return html`<td role=\"gridcell\" class=\"${classMap({ current, selected, active })}\">\r\n <div\r\n id=\"${id}\"\r\n class=\"item\"\r\n role=\"button\"\r\n tabindex=\"${active ? \"0\" : \"-1\"}\"\r\n data-value=\"${year}\"\r\n aria-disabled=\"${ifDefined(disabled || undefined)}\"\r\n aria-current=\"${ifDefined(current ? \"date\" : undefined)}\"\r\n aria-pressed=\"${selected}\"\r\n @click=\"${this.#handleItemClick}\"\r\n @keydown=\"${this.#handleItemKeyDown}\"\r\n >\r\n <m3e-focus-ring class=\"focus-ring\" for=\"${id}\"></m3e-focus-ring>\r\n <m3e-state-layer class=\"state-layer\" for=\"${id}\" ?disable-hover=\"${disabled}\"></m3e-state-layer>\r\n <m3e-ripple class=\"ripple\" for=\"${id}\" centered ?disabled=\"${disabled}\"></m3e-ripple>\r\n <div class=\"touch\"></div>\r\n <span>${yearFormat.format(new Date(year, 0, 1))}</span>\r\n </div>\r\n </td>`;\r\n }\r\n\r\n /** @private */\r\n #handleItemClick(e: Event): void {\r\n const item = e.currentTarget as HTMLElement;\r\n if (item.ariaDisabled === \"true\" || !item.dataset[\"value\"]) return;\r\n\r\n this.activeDate = new Date(this.activeDate);\r\n this.activeDate.setFullYear(Number(item.dataset[\"value\"]));\r\n this.activeDate = clampDate(this.activeDate, this.minDate, this.maxDate);\r\n this.dispatchEvent(new Event(\"change\", { bubbles: false }));\r\n }\r\n\r\n /** @private */\r\n #handleItemKeyDown(e: KeyboardEvent): void {\r\n let activeDate = this.activeDate;\r\n switch (e.key) {\r\n case \" \":\r\n case \"Enter\":\r\n e.preventDefault();\r\n (e.currentTarget as HTMLElement).click();\r\n return;\r\n\r\n case \"ArrowLeft\":\r\n case \"Left\":\r\n activeDate = addCalendarYears(this.activeDate, M3eDirectionality.current === \"rtl\" ? 1 : -1);\r\n break;\r\n\r\n case \"ArrowRight\":\r\n case \"Right\":\r\n activeDate = addCalendarYears(this.activeDate, M3eDirectionality.current === \"rtl\" ? -1 : 1);\r\n break;\r\n\r\n case \"ArrowUp\":\r\n case \"Up\":\r\n activeDate = addCalendarYears(this.activeDate, -YEARS_PER_ROW);\r\n break;\r\n\r\n case \"ArrowDown\":\r\n case \"Down\":\r\n activeDate = addCalendarYears(this.activeDate, YEARS_PER_ROW);\r\n break;\r\n\r\n case \"Home\":\r\n activeDate = addCalendarYears(this.activeDate, -getActiveOffset(this.activeDate, this.minDate, this.maxDate));\r\n break;\r\n\r\n case \"End\":\r\n activeDate = addCalendarYears(\r\n this.activeDate,\r\n YEARS_PER_PAGE - getActiveOffset(this.activeDate, this.minDate, this.maxDate) - 1,\r\n );\r\n break;\r\n\r\n case \"PageUp\":\r\n activeDate = addCalendarYears(this.activeDate, e.altKey ? -YEARS_PER_PAGE * 10 : -YEARS_PER_PAGE);\r\n break;\r\n\r\n case \"PageDown\":\r\n activeDate = addCalendarYears(this.activeDate, e.altKey ? YEARS_PER_PAGE * 10 : YEARS_PER_PAGE);\r\n break;\r\n\r\n default:\r\n return;\r\n }\r\n\r\n e.preventDefault();\r\n this._changeActiveDate(activeDate);\r\n }\r\n}\r\n\r\ndeclare global {\r\n interface HTMLElementTagNameMap {\r\n \"m3e-multi-year-view\": M3eMultiYearViewElement;\r\n }\r\n}\r\n","/**\r\n * Adapted from Angular Material Datepicker\r\n * Source: https://github.com/angular/components/blob/main/src/material/datepicker/year-view.ts\r\n *\r\n * @license MIT\r\n * Copyright (c) 2025 Google LLC\r\n * See LICENSE file in the project root for full license text.\r\n */\r\n\r\nimport { css, CSSResultGroup, html } from \"lit\";\r\nimport { customElement } from \"lit/decorators.js\";\r\nimport { classMap } from \"lit/directives/class-map.js\";\r\nimport { ifDefined } from \"lit/directives/if-defined.js\";\r\n\r\nimport { DesignToken } from \"@m3e/web/core\";\r\nimport { M3eDirectionality } from \"@m3e/web/core/bidi\";\r\n\r\nimport { CalendarViewElementBase } from \"./CalendarViewElementBase\";\r\nimport { addCalendarMonths, addCalendarYears, clampDate, MONTHS_PER_ROW } from \"./utils\";\r\n\r\n/**\r\n * An internal component used to display a single year in a calendar.\r\n * @internal\r\n */\r\n@customElement(\"m3e-year-view\")\r\nexport class M3eYearViewElement extends CalendarViewElementBase {\r\n /** The styles of the element. */\r\n static override styles: CSSResultGroup = [\r\n CalendarViewElementBase.styles,\r\n css`\r\n .item {\r\n height: 2.25rem;\r\n }\r\n .touch {\r\n width: 100%;\r\n }\r\n th {\r\n height: 1rem;\r\n }\r\n td {\r\n padding-inline: 0.375rem;\r\n }\r\n tbody {\r\n font-size: var(--m3e-calendar-item-font-size, ${DesignToken.typescale.standard.body.medium.fontSize});\r\n font-weight: var(--m3e-calendar-item-font-weight, ${DesignToken.typescale.standard.body.medium.fontWeight});\r\n line-height: var(--m3e-calendar-item-line-height, ${DesignToken.typescale.standard.body.medium.lineHeight});\r\n letter-spacing: var(--m3e-calendar-item-tracking, ${DesignToken.typescale.standard.body.medium.tracking});\r\n }\r\n `,\r\n ];\r\n\r\n /** @inheritdoc */\r\n protected override render(): unknown {\r\n const months = new Array<Array<{ date: Date; long: string; narrow: string }>>();\r\n const shortFormat = new Intl.DateTimeFormat(navigator.language, { month: \"short\" });\r\n const longFormat = new Intl.DateTimeFormat(navigator.language, { month: \"long\" });\r\n const year = this.activeDate.getFullYear();\r\n\r\n for (let month = 0, row = new Array<{ date: Date; long: string; narrow: string }>(); month < 12; month++) {\r\n const date = new Date(year, month, 1);\r\n row.push({ narrow: shortFormat.format(date), long: longFormat.format(date), date: date });\r\n\r\n if (row.length == MONTHS_PER_ROW) {\r\n months.push(row);\r\n row = [];\r\n }\r\n }\r\n\r\n return html`<table role=\"grid\">\r\n <thead aria-hidden=\"true\">\r\n <tr>\r\n <th colspan=\"${MONTHS_PER_ROW}\"></th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n ${months.map(\r\n (row) =>\r\n html`<tr role=\"row\">\r\n ${row.map((month) => this.#renderItem(month))}\r\n </tr>`,\r\n )}\r\n </tbody>\r\n </table>`;\r\n }\r\n\r\n /** @private */\r\n #renderItem(month: { date: Date; long: string; narrow: string }): unknown {\r\n const active =\r\n this.activeDate.getFullYear() === month.date.getFullYear() &&\r\n this.activeDate.getMonth() === month.date.getMonth();\r\n\r\n const selected =\r\n this.date?.getFullYear() === month.date.getFullYear() && this.date?.getMonth() === month.date.getMonth();\r\n\r\n const current =\r\n this.today.getFullYear() === month.date.getFullYear() && this.today.getMonth() === month.date.getMonth();\r\n\r\n const disabled =\r\n (this.minDate &&\r\n (month.date.getFullYear() < this.minDate.getFullYear() ||\r\n (month.date.getFullYear() === this.minDate.getFullYear() &&\r\n month.date.getMonth() < this.minDate.getMonth()))) ||\r\n (this.maxDate &&\r\n (month.date.getFullYear() > this.maxDate.getFullYear() ||\r\n (month.date.getFullYear() === this.maxDate.getFullYear() &&\r\n month.date.getMonth() > this.maxDate.getMonth())));\r\n\r\n const id = `month-${month.date.getMonth()}`;\r\n\r\n return html`<td role=\"gridcell\" class=\"${classMap({ current, selected, active })}\">\r\n <div\r\n id=\"${id}\"\r\n class=\"item\"\r\n role=\"button\"\r\n tabindex=\"${active ? \"0\" : \"-1\"}\"\r\n data-value=\"${month.date.toISOString()}\"\r\n aria-disabled=\"${ifDefined(disabled || undefined)}\"\r\n aria-current=\"${ifDefined(current ? \"date\" : undefined)}\"\r\n aria-pressed=\"${selected}\"\r\n @click=\"${this.#handleItemClick}\"\r\n @keydown=\"${this.#handleItemKeyDown}\"\r\n >\r\n <m3e-focus-ring class=\"focus-ring\" for=\"${id}\"></m3e-focus-ring>\r\n <m3e-state-layer class=\"state-layer\" for=\"${id}\" ?disable-hover=\"${disabled}\"></m3e-state-layer>\r\n <m3e-ripple class=\"ripple\" centered for=\"${id}\" ?disabled=\"${disabled}\"></m3e-ripple>\r\n <div class=\"touch\"></div>\r\n <span class=\"visually-hidden\">${month.long}</span>\r\n <span aria-hidden=\"true\">${month.narrow}</span>\r\n </div>\r\n </td>`;\r\n }\r\n\r\n /** @private */\r\n #handleItemClick(e: Event): void {\r\n const item = e.currentTarget as HTMLElement;\r\n if (item.ariaDisabled === \"true\" || !item.dataset[\"value\"]) return;\r\n\r\n this.activeDate = clampDate(new Date(item.dataset[\"value\"]), this.minDate, this.maxDate);\r\n this.dispatchEvent(new Event(\"change\", { bubbles: false }));\r\n }\r\n\r\n /** @private */\r\n #handleItemKeyDown(e: KeyboardEvent): void {\r\n let activeDate = this.activeDate;\r\n switch (e.key) {\r\n case \" \":\r\n case \"Enter\":\r\n e.preventDefault();\r\n (e.currentTarget as HTMLElement).click();\r\n return;\r\n\r\n case \"ArrowLeft\":\r\n case \"Left\":\r\n activeDate = addCalendarMonths(this.activeDate, M3eDirectionality.current === \"rtl\" ? 1 : -1);\r\n break;\r\n\r\n case \"ArrowRight\":\r\n case \"Right\":\r\n activeDate = addCalendarMonths(this.activeDate, M3eDirectionality.current === \"rtl\" ? -1 : 1);\r\n break;\r\n\r\n case \"ArrowUp\":\r\n case \"Up\":\r\n activeDate = addCalendarMonths(this.activeDate, -4);\r\n break;\r\n\r\n case \"ArrowDown\":\r\n case \"Down\":\r\n activeDate = addCalendarMonths(this.activeDate, 4);\r\n break;\r\n\r\n case \"Home\":\r\n activeDate = addCalendarMonths(this.activeDate, -this.activeDate.getMonth());\r\n break;\r\n\r\n case \"End\":\r\n activeDate = addCalendarMonths(this.activeDate, 11 - this.activeDate.getMonth());\r\n break;\r\n\r\n case \"PageUp\":\r\n activeDate = addCalendarYears(this.activeDate, e.altKey ? -10 : -1);\r\n break;\r\n\r\n case \"PageDown\":\r\n activeDate = addCalendarYears(this.activeDate, e.altKey ? 10 : 1);\r\n break;\r\n\r\n default:\r\n return;\r\n }\r\n\r\n e.preventDefault();\r\n this._changeActiveDate(activeDate);\r\n }\r\n}\r\n\r\ndeclare global {\r\n interface HTMLElementTagNameMap {\r\n \"m3e-year-view\": M3eYearViewElement;\r\n }\r\n}\r\n"],"names":["__decorate","decorators","target","key","desc","c","arguments","length","r","Object","getOwnPropertyDescriptor","d","Reflect","decorate","i","defineProperty","__classPrivateFieldGet","receiver","state","kind","f","TypeError","has","call","value","get","__classPrivateFieldSet","set","SuppressedError","error","suppressed","message","e","Error","name","t","o","addInitializer","customElements","define","globalThis","ShadowRoot","ShadyCSS","nativeShadow","Document","prototype","CSSStyleSheet","s","Symbol","WeakMap","n","constructor","_$cssResult$","cssText","styleSheet","replaceSync","toString","S","adoptStyles","adoptedStyleSheets","map","document","createElement","litNonce","setAttribute","textContent","appendChild","cssRules","is","h","getOwnPropertyNames","getOwnPropertySymbols","getPrototypeOf","a","trustedTypes","l","emptyScript","p","reactiveElementPolyfillSupport","JSCompiler_renameProperty","u","toAttribute","Boolean","Array","JSON","stringify","fromAttribute","Number","parse","notEqual","b","attribute","type","String","converter","reflect","useDefault","hasChanged","metadata","litPropertyMetadata","y","HTMLElement","_$Ei","push","observedAttributes","finalize","_$Eh","keys","createProperty","hasOwnProperty","create","wrapped","elementProperties","noAccessor","getPropertyDescriptor","requestUpdate","configurable","enumerable","getPropertyOptions","Map","finalized","properties","_$Eu","elementStyles","finalizeStyles","styles","isArray","Set","flat","reverse","unshift","toLowerCase","_$Ep","isUpdatePending","hasUpdated","_$Em","_$Ev","_$ES","Promise","enableUpdating","_$AL","_$E_","forEach","addController","_$EO","add","renderRoot","isConnected","hostConnected","removeController","delete","size","createRenderRoot","shadowRoot","attachShadow","shadowRootOptions","connectedCallback","disconnectedCallback","hostDisconnected","attributeChangedCallback","_$AK","_$ET","removeAttribute","_$Ej","hasAttribute","C","_$EP","_$Eq","reject","scheduleUpdate","performUpdate","shouldUpdate","willUpdate","hostUpdate","update","_$EM","_$AE","hostUpdated","firstUpdated","updated","updateComplete","getUpdateComplete","mode","ReactiveElement","reactiveElementVersions","standardProperty","init","querySelector","createPolicy","createHTML","Math","random","toFixed","slice","createMarker","createComment","iterator","v","_","m","RegExp","g","$","T","for","E","A","createTreeWalker","P","V","getTemplateHtml","lastIndex","exec","test","x","startsWith","N","strings","_$litType$","parts","el","currentNode","content","firstChild","replaceWith","childNodes","nextNode","nodeType","hasAttributes","getAttributeNames","endsWith","getAttribute","split","index","ctor","H","I","L","k","tagName","append","data","indexOf","innerHTML","_$Co","_$Cl","_$litDirective$","_$AO","_$AT","_$AS","values","M","_$AV","_$AN","_$AD","_$AM","parentNode","_$AU","creationScope","importNode","R","nextSibling","z","_$AI","_$Cv","_$AH","_$AA","_$AB","options","startNode","endNode","_$AR","O","insertBefore","createTextNode","_$AC","_$AP","remove","setConnected","element","fill","j","toggleAttribute","capture","once","passive","removeEventListener","addEventListener","handleEvent","host","litHtmlPolyfillSupport","litHtmlVersions","ATTRIBUTE","_$Ct","_$Ci","render","filter","join","st","nt","classList","createDateWithOverflow","year","month","day","date","Date","setFullYear","setHours","getStartingYear","minDate","maxDate","getFullYear","YEARS_PER_PAGE","euclideanModulo","addCalendarDays","days","getMonth","getDate","addCalendarMonths","months","newDate","addCalendarYears","years","getNumDaysInMonth","compareDate","first","second","sameDate","parseDate","getActiveOffset","activeDate","minYearOfPage","maxYearOfPage","clampDate","YEARS_PER_ROW","MONTHS_PER_ROW","CalendarViewElementBase","LitElement","today","focusActiveCell","_activeItem","focusWhenReady","_changeActiveDate","style","setProperty","blur","removeProperty","dispatchEvent","Event","bubbles","css","DesignToken","shape","corner","full","color","onPrimary","primary","onSurface","query","property","M3eMonthViewElement","rangeStart","rangeEnd","blackoutDates","specialDates","setDate","getDay","weekdays","narrowFormat","Intl","DateTimeFormat","navigator","language","weekday","longFormat","id","narrow","format","long","firstDate","lastDate","numDays","weeks","dayOfWeek","html","row","nothing","_M3eMonthViewElement_instances","_M3eMonthViewElement_renderItem","special","selected","active","current","disabled","range","rangeStartRange","classMap","toISOString","ifDefined","undefined","_M3eMonthViewElement_handleItemClick","_M3eMonthViewElement_handleDateRangeHighlight","_M3eMonthViewElement_clearRangeHighlight","_M3eMonthViewElement_handleItemKeyDown","item","currentTarget","ariaDisabled","dataset","preventDefault","click","M3eDirectionality","altKey","parentElement","cell","closest","querySelectorAll","typescale","standard","title","small","fontSize","fontWeight","lineHeight","tracking","body","medium","onTertiaryContainer","tertiaryContainer","primaryContainer","onPrimaryContainer","customElement","M3eCalendarElement","_M3eCalendarElement_transitionComplete","_today","_activeView","_activeDate","startView","startAt","previousMonthLabel","previousYearLabel","previousMultiYearLabel","nextMonthLabel","nextYearLabel","nextMultiYearLabel","periodLabel","formatRange","canMovePreviousPeriod","canMoveNextPeriod","_view","updateTodayDate","movePreviousPeriod","prefersReducedMotion","_M3eCalendarElement_instances","_M3eCalendarElement_getPreviousPeriod","views","resolve","setTimeout","moveNextPeriod","_M3eCalendarElement_getNextPeriod","togglePeriod","changedProperties","_changedProperties","_M3eCalendarElement_renderHeader","_M3eCalendarElement_renderView","rotate","view","offset","before","after","_M3eCalendarElement_handleActiveChange","_M3eCalendarElement_handleDateChange","_M3eCalendarElement_handleMonthChange","_M3eCalendarElement_handleYearChange","monthView","setMonth","onSurfaceVariant","motion","spring","fastEffects","unsafeCSS","duration","long2","easing","M3eDatepickerElement","M3eDatepickerElement_1","Role","_M3eDatepickerElement_breakpointUnobserve","_M3eDatepickerElement_trigger","_M3eDatepickerElement_anchor","_M3eDatepickerElement_anchorCleanup","_M3eDatepickerElement_documentClickHandler","_M3eDatepickerElement_scrollController","ScrollController","callback","hide","_M3eDatepickerElement_toggleHandler","newState","_M3eDatepickerElement_instances","_M3eDatepickerElement_clearSelectionState","variant","confirmLabel","dismissLabel","label","isOpen","currentVariant","_variant","ariaModal","show","trigger","anchor","_calendar","ariaExpanded","_M3eDatepickerElement_updatePosition","showPopover","observe","restoreFocus","hidePopover","focus","unobserve","toggle","_M3eDatepickerElement_renderHeader","_M3eDatepickerElement_handleCalendarChange","_M3eDatepickerElement_handleDismissClick","_M3eDatepickerElement_handleConfirmClick","requestAnimationFrame","some","M3eBreakpointObserver","Breakpoint","XSmall","Small","matches","_M3eDatepickerElement_updateVariant","selectedDate","_date","composedPath","_rangeStart","_rangeEnd","positionAnchor","position","inline","flip","includes","right","window","innerWidth","clientWidth","left","top","surfaceContainer","elevation","level3","headline","large","outlineVariant","surfaceContainerHigh","extraLarge","short2","scrim","short3","M3eDatepickerToggleElement","HtmlFor","ActionElementBase","ariaHasPopup","_onClick","control","M3eMultiYearViewElement","minYear","yearFormat","_M3eMultiYearViewElement_instances","_M3eMultiYearViewElement_handleItemClick","_M3eMultiYearViewElement_handleItemKeyDown","M3eYearViewElement","shortFormat","_M3eYearViewElement_instances","_M3eYearViewElement_handleItemClick","_M3eYearViewElement_handleItemKeyDown"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11]}