@m3e/web 2.0.5 → 2.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (137) hide show
  1. package/dist/all.js +801 -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 +147 -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 +408 -328
  26. package/dist/custom-elements.json +5820 -4150
  27. package/dist/html-custom-data.json +174 -99
  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.min.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/query.js","../../../node_modules/@lit/reactive-element/decorators/base.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","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 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","/**\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","d","c","arguments","length","r","Object","getOwnPropertyDescriptor","Reflect","decorate","i","defineProperty","__classPrivateFieldGet","receiver","state","kind","f","TypeError","has","call","value","get","__classPrivateFieldSet","set","SuppressedError","t","e","o","addInitializer","customElements","define","globalThis","ShadowRoot","ShadyCSS","nativeShadow","Document","prototype","CSSStyleSheet","s","Symbol","WeakMap","n$3","constructor","this","_$cssResult$","Error","cssText","styleSheet","replaceSync","toString","cssRules","n","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","super","_$Ep","isUpdatePending","hasUpdated","_$Em","_$Ev","_$ES","Promise","enableUpdating","_$AL","_$E_","forEach","addController","_$EO","add","renderRoot","isConnected","hostConnected","removeController","delete","size","createRenderRoot","shadowRoot","attachShadow","shadowRootOptions","adoptStyles","adoptedStyleSheets","map","document","createElement","litNonce","setAttribute","textContent","appendChild","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","name","init","querySelector","createPolicy","createHTML","Math","random","toFixed","slice","createMarker","createComment","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","S","_$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","iterator","O","insertBefore","createTextNode","_$AC","_$AP","remove","setConnected","element","fill","j","toggleAttribute","capture","once","passive","removeEventListener","addEventListener","handleEvent","host","litHtmlPolyfillSupport","litHtmlVersions","_$Ct","_$Ci","render","filter","join","st","nt","classList","createDateWithOverflow","year","month","day","date","Date","setFullYear","setHours","addCalendarDays","days","getFullYear","getMonth","getDate","addCalendarMonths","months","newDate","addCalendarYears","years","compareDate","first","second","sameDate","parseDate","getActiveOffset","activeDate","minDate","maxDate","euclideanModulo","YEARS_PER_PAGE","getStartingYear","minYearOfPage","maxYearOfPage","clampDate","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","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","async","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]}
@@ -1,19 +0,0 @@
1
- import { CustomElementDecorator } from "lit/decorators.js";
2
- export type Constructor<T> = {
3
- new (...args: unknown[]): T;
4
- };
5
- /**
6
- * Class decorator factory that defines the decorated class as a custom element.
7
- *
8
- * ```js
9
- * @component('my-element')
10
- * class MyElement extends LitElement {
11
- * render() {
12
- * return html``;
13
- * }
14
- * }
15
- * ```
16
- * @param {string} tagName The tag name of the custom element to define.
17
- */
18
- export declare const component: (tagName: string) => CustomElementDecorator;
19
- //# sourceMappingURL=component.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"component.d.ts","sourceRoot":"","sources":["../../../../../src/core/shared/decorators/component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAE3D,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI;IAAE,KAAK,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,CAAC,CAAA;CAAE,CAAC;AAE7D;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,SAAS,GACnB,SAAS,MAAM,KAAG,sBAgBlB,CAAC"}
@@ -1,19 +0,0 @@
1
- import { CustomElementDecorator } from "lit/decorators.js";
2
- export type Constructor<T> = {
3
- new (...args: unknown[]): T;
4
- };
5
- /**
6
- * Class decorator factory that defines the decorated class as a custom element.
7
- *
8
- * ```js
9
- * @customElement('my-element')
10
- * class MyElement extends LitElement {
11
- * render() {
12
- * return html``;
13
- * }
14
- * }
15
- * ```
16
- * @param {string} tagName The tag name of the custom element to define.
17
- */
18
- export declare const customElement: (tagName: string) => CustomElementDecorator;
19
- //# sourceMappingURL=element.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"element.d.ts","sourceRoot":"","sources":["../../../../../src/core/shared/decorators/element.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAE3D,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI;IAAE,KAAK,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,CAAC,CAAA;CAAE,CAAC;AAE7D;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,aAAa,GACvB,SAAS,MAAM,KAAG,sBAgBlB,CAAC"}
@@ -1,15 +0,0 @@
1
- /**
2
- * Convenience function used to test whether an element's internals have a specific state set.
3
- * @param {HTMLElement} element The element to test.
4
- * @param {string} state The state to test.
5
- * @returns Whether `element`'s state contains `state`.
6
- */
7
- export declare function getState<T extends HTMLElement>(element: T, state: string): boolean;
8
- /**
9
- * Convenience function used to set the state of an element's internals.
10
- * @param {HTMLElement} element The element for which to set state.
11
- * @param {string} state The state to add or remove.
12
- * @param {boolean} value Whether to add or remove `state`.
13
- */
14
- export declare function setState<T extends HTMLElement>(element: T, state: string, value: boolean): void;
15
- //# sourceMappingURL=getState.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"getState.d.ts","sourceRoot":"","sources":["../../../../../src/core/shared/utils/getState.ts"],"names":[],"mappings":"AAIA;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,CAAC,SAAS,WAAW,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAElF;AAED;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,CAAC,SAAS,WAAW,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI,CAO/F"}