@m3e/core 1.0.0-rc.2 → 1.0.0-rc.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/a11y.js.map +1 -1
- package/dist/a11y.min.js.map +1 -1
- package/dist/css-custom-data.json +20 -0
- package/dist/custom-elements.json +263 -50
- package/dist/html-custom-data.json +22 -0
- package/dist/index.js +242 -15
- package/dist/index.js.map +1 -1
- package/dist/index.min.js +43 -32
- package/dist/index.min.js.map +1 -1
- package/dist/src/a11y/AriaDescriber.d.ts +31 -0
- package/dist/src/a11y/AriaDescriber.d.ts.map +1 -0
- package/dist/src/a11y/FocusTrapElement.d.ts +25 -0
- package/dist/src/a11y/FocusTrapElement.d.ts.map +1 -0
- package/dist/src/a11y/InteractivityChecker.d.ts +22 -0
- package/dist/src/a11y/InteractivityChecker.d.ts.map +1 -0
- package/dist/src/a11y/LiveAnnouncer.d.ts +56 -0
- package/dist/src/a11y/LiveAnnouncer.d.ts.map +1 -0
- package/dist/src/a11y/aria-reference.d.ts +30 -0
- package/dist/src/a11y/aria-reference.d.ts.map +1 -0
- package/dist/src/a11y/index.d.ts +8 -0
- package/dist/src/a11y/index.d.ts.map +1 -0
- package/dist/src/a11y/keycodes/KeyCode.d.ts +118 -0
- package/dist/src/a11y/keycodes/KeyCode.d.ts.map +1 -0
- package/dist/src/a11y/keycodes/ModifierKeys.d.ts +5 -0
- package/dist/src/a11y/keycodes/ModifierKeys.d.ts.map +1 -0
- package/dist/src/a11y/keycodes/getKeyCode.d.ts +7 -0
- package/dist/src/a11y/keycodes/getKeyCode.d.ts.map +1 -0
- package/dist/src/a11y/keycodes/hasModifierKey.d.ts +9 -0
- package/dist/src/a11y/keycodes/hasModifierKey.d.ts.map +1 -0
- package/dist/src/a11y/keycodes/index.d.ts +6 -0
- package/dist/src/a11y/keycodes/index.d.ts.map +1 -0
- package/dist/src/a11y/keycodes/isModifierAllowed.d.ts +9 -0
- package/dist/src/a11y/keycodes/isModifierAllowed.d.ts.map +1 -0
- package/dist/src/a11y/list-key/FocusKeyManager.d.ts +17 -0
- package/dist/src/a11y/list-key/FocusKeyManager.d.ts.map +1 -0
- package/dist/src/a11y/list-key/ListKeyManager.d.ts +114 -0
- package/dist/src/a11y/list-key/ListKeyManager.d.ts.map +1 -0
- package/dist/src/a11y/list-key/ListManager.d.ts +37 -0
- package/dist/src/a11y/list-key/ListManager.d.ts.map +1 -0
- package/dist/src/a11y/list-key/RadioKeyManager.d.ts +20 -0
- package/dist/src/a11y/list-key/RadioKeyManager.d.ts.map +1 -0
- package/dist/src/a11y/list-key/RovingTabIndexManager.d.ts +22 -0
- package/dist/src/a11y/list-key/RovingTabIndexManager.d.ts.map +1 -0
- package/dist/src/a11y/list-key/SelectionManager.d.ts +46 -0
- package/dist/src/a11y/list-key/SelectionManager.d.ts.map +1 -0
- package/dist/src/a11y/list-key/Typeahead.d.ts +64 -0
- package/dist/src/a11y/list-key/Typeahead.d.ts.map +1 -0
- package/dist/src/a11y/list-key/index.d.ts +8 -0
- package/dist/src/a11y/list-key/index.d.ts.map +1 -0
- package/dist/src/a11y/visuallyHide.d.ts +6 -0
- package/dist/src/a11y/visuallyHide.d.ts.map +1 -0
- package/dist/src/anchoring/AnchorOptions.d.ts +15 -0
- package/dist/src/anchoring/AnchorOptions.d.ts.map +1 -0
- package/dist/src/anchoring/AnchorPosition.d.ts +3 -0
- package/dist/src/anchoring/AnchorPosition.d.ts.map +1 -0
- package/dist/src/anchoring/index.d.ts +4 -0
- package/dist/src/anchoring/index.d.ts.map +1 -0
- package/dist/src/anchoring/positionAnchor.d.ts +12 -0
- package/dist/src/anchoring/positionAnchor.d.ts.map +1 -0
- package/dist/src/bidi/Directionality.d.ts +27 -0
- package/dist/src/bidi/Directionality.d.ts.map +1 -0
- package/dist/src/bidi/index.d.ts +2 -0
- package/dist/src/bidi/index.d.ts.map +1 -0
- package/dist/src/index.d.ts +2 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/layout/Breakpoint.d.ts +26 -0
- package/dist/src/layout/Breakpoint.d.ts.map +1 -0
- package/dist/src/layout/BreakpointObserver.d.ts +18 -0
- package/dist/src/layout/BreakpointObserver.d.ts.map +1 -0
- package/dist/src/layout/index.d.ts +3 -0
- package/dist/src/layout/index.d.ts.map +1 -0
- package/dist/src/platform/Platform.d.ts +34 -0
- package/dist/src/platform/Platform.d.ts.map +1 -0
- package/dist/src/platform/index.d.ts +2 -0
- package/dist/src/platform/index.d.ts.map +1 -0
- package/dist/src/shared/controllers/FocusController.d.ts +30 -0
- package/dist/src/shared/controllers/FocusController.d.ts.map +1 -0
- package/dist/src/shared/controllers/HoverController.d.ts +40 -0
- package/dist/src/shared/controllers/HoverController.d.ts.map +1 -0
- package/dist/src/shared/controllers/IntersectionController.d.ts +40 -0
- package/dist/src/shared/controllers/IntersectionController.d.ts.map +1 -0
- package/dist/src/shared/controllers/LongPressController.d.ts +32 -0
- package/dist/src/shared/controllers/LongPressController.d.ts.map +1 -0
- package/dist/src/shared/controllers/MonitorControllerBase.d.ts +62 -0
- package/dist/src/shared/controllers/MonitorControllerBase.d.ts.map +1 -0
- package/dist/src/shared/controllers/MutationController.d.ts +37 -0
- package/dist/src/shared/controllers/MutationController.d.ts.map +1 -0
- package/dist/src/shared/controllers/PressedController.d.ts +47 -0
- package/dist/src/shared/controllers/PressedController.d.ts.map +1 -0
- package/dist/src/shared/controllers/ResizeController.d.ts +40 -0
- package/dist/src/shared/controllers/ResizeController.d.ts.map +1 -0
- package/dist/src/shared/controllers/ScrollController.d.ts +34 -0
- package/dist/src/shared/controllers/ScrollController.d.ts.map +1 -0
- package/dist/src/shared/controllers/index.d.ts +9 -0
- package/dist/src/shared/controllers/index.d.ts.map +1 -0
- package/dist/src/shared/decorators/debounce.d.ts +7 -0
- package/dist/src/shared/decorators/debounce.d.ts.map +1 -0
- package/dist/src/shared/decorators/index.d.ts +2 -0
- package/dist/src/shared/decorators/index.d.ts.map +1 -0
- package/dist/src/shared/directives/index.d.ts +2 -0
- package/dist/src/shared/directives/index.d.ts.map +1 -0
- package/dist/src/shared/directives/safeStyleMap.d.ts +44 -0
- package/dist/src/shared/directives/safeStyleMap.d.ts.map +1 -0
- package/dist/src/shared/index.d.ts +8 -0
- package/dist/src/shared/index.d.ts.map +1 -0
- package/dist/src/shared/mixins/AttachInternals.d.ts +24 -0
- package/dist/src/shared/mixins/AttachInternals.d.ts.map +1 -0
- package/dist/src/shared/mixins/Checked.d.ts +24 -0
- package/dist/src/shared/mixins/Checked.d.ts.map +1 -0
- package/dist/src/shared/mixins/CheckedIndeterminate.d.ts +25 -0
- package/dist/src/shared/mixins/CheckedIndeterminate.d.ts.map +1 -0
- package/dist/src/shared/mixins/CheckedOrSelected.d.ts +23 -0
- package/dist/src/shared/mixins/CheckedOrSelected.d.ts.map +1 -0
- package/dist/src/shared/mixins/ConstraintValidation.d.ts +48 -0
- package/dist/src/shared/mixins/ConstraintValidation.d.ts.map +1 -0
- package/dist/src/shared/mixins/Constructor.d.ts +3 -0
- package/dist/src/shared/mixins/Constructor.d.ts.map +1 -0
- package/dist/src/shared/mixins/Dirty.d.ts +27 -0
- package/dist/src/shared/mixins/Dirty.d.ts.map +1 -0
- package/dist/src/shared/mixins/Disabled.d.ts +25 -0
- package/dist/src/shared/mixins/Disabled.d.ts.map +1 -0
- package/dist/src/shared/mixins/DisabledInteractive.d.ts +25 -0
- package/dist/src/shared/mixins/DisabledInteractive.d.ts.map +1 -0
- package/dist/src/shared/mixins/EventAttribute.d.ts +11 -0
- package/dist/src/shared/mixins/EventAttribute.d.ts.map +1 -0
- package/dist/src/shared/mixins/Focusable.d.ts +11 -0
- package/dist/src/shared/mixins/Focusable.d.ts.map +1 -0
- package/dist/src/shared/mixins/FormAssociated.d.ts +34 -0
- package/dist/src/shared/mixins/FormAssociated.d.ts.map +1 -0
- package/dist/src/shared/mixins/FormSubmitter.d.ts +34 -0
- package/dist/src/shared/mixins/FormSubmitter.d.ts.map +1 -0
- package/dist/src/shared/mixins/HtmlFor.d.ts +30 -0
- package/dist/src/shared/mixins/HtmlFor.d.ts.map +1 -0
- package/dist/src/shared/mixins/KeyboardClick.d.ts +11 -0
- package/dist/src/shared/mixins/KeyboardClick.d.ts.map +1 -0
- package/dist/src/shared/mixins/Labelled.d.ts +26 -0
- package/dist/src/shared/mixins/Labelled.d.ts.map +1 -0
- package/dist/src/shared/mixins/LinkButton.d.ts +46 -0
- package/dist/src/shared/mixins/LinkButton.d.ts.map +1 -0
- package/dist/src/shared/mixins/ReadOnly.d.ts +25 -0
- package/dist/src/shared/mixins/ReadOnly.d.ts.map +1 -0
- package/dist/src/shared/mixins/Required.d.ts +26 -0
- package/dist/src/shared/mixins/Required.d.ts.map +1 -0
- package/dist/src/shared/mixins/RequiredConstraintValidation.d.ts +21 -0
- package/dist/src/shared/mixins/RequiredConstraintValidation.d.ts.map +1 -0
- package/dist/src/shared/mixins/Role.d.ts +13 -0
- package/dist/src/shared/mixins/Role.d.ts.map +1 -0
- package/dist/src/shared/mixins/Selected.d.ts +24 -0
- package/dist/src/shared/mixins/Selected.d.ts.map +1 -0
- package/dist/src/shared/mixins/Touched.d.ts +27 -0
- package/dist/src/shared/mixins/Touched.d.ts.map +1 -0
- package/dist/src/shared/mixins/Vertical.d.ts +24 -0
- package/dist/src/shared/mixins/Vertical.d.ts.map +1 -0
- package/dist/src/shared/mixins/hasKeys.d.ts +9 -0
- package/dist/src/shared/mixins/hasKeys.d.ts.map +1 -0
- package/dist/src/shared/mixins/index.d.ts +25 -0
- package/dist/src/shared/mixins/index.d.ts.map +1 -0
- package/dist/src/shared/primitives/CollapsibleElement.d.ts +58 -0
- package/dist/src/shared/primitives/CollapsibleElement.d.ts.map +1 -0
- package/dist/src/shared/primitives/ElevationElement.d.ts +87 -0
- package/dist/src/shared/primitives/ElevationElement.d.ts.map +1 -0
- package/dist/src/shared/primitives/ElevationLevel.d.ts +3 -0
- package/dist/src/shared/primitives/ElevationLevel.d.ts.map +1 -0
- package/dist/src/shared/primitives/ElevationToken.d.ts +15 -0
- package/dist/src/shared/primitives/ElevationToken.d.ts.map +1 -0
- package/dist/src/shared/primitives/FocusRingElement.d.ts +77 -0
- package/dist/src/shared/primitives/FocusRingElement.d.ts.map +1 -0
- package/dist/src/shared/primitives/FocusRingToken.d.ts +17 -0
- package/dist/src/shared/primitives/FocusRingToken.d.ts.map +1 -0
- package/dist/src/shared/primitives/PseudoCheckboxElement.d.ts +49 -0
- package/dist/src/shared/primitives/PseudoCheckboxElement.d.ts.map +1 -0
- package/dist/src/shared/primitives/PseudoRadioElement.d.ts +40 -0
- package/dist/src/shared/primitives/PseudoRadioElement.d.ts.map +1 -0
- package/dist/src/shared/primitives/RippleElement.d.ts +109 -0
- package/dist/src/shared/primitives/RippleElement.d.ts.map +1 -0
- package/dist/src/shared/primitives/RippleToken.d.ts +12 -0
- package/dist/src/shared/primitives/RippleToken.d.ts.map +1 -0
- package/dist/src/shared/primitives/ScrollContainerElement.d.ts +61 -0
- package/dist/src/shared/primitives/ScrollContainerElement.d.ts.map +1 -0
- package/dist/src/shared/primitives/ScrollDividers.d.ts +3 -0
- package/dist/src/shared/primitives/ScrollDividers.d.ts.map +1 -0
- package/dist/src/shared/primitives/SlideElement.d.ts +46 -0
- package/dist/src/shared/primitives/SlideElement.d.ts.map +1 -0
- package/dist/src/shared/primitives/StateLayerElement.d.ts +76 -0
- package/dist/src/shared/primitives/StateLayerElement.d.ts.map +1 -0
- package/dist/src/shared/primitives/StateLayerToken.d.ts +13 -0
- package/dist/src/shared/primitives/StateLayerToken.d.ts.map +1 -0
- package/dist/src/shared/primitives/TextHighlightElement.d.ts +81 -0
- package/dist/src/shared/primitives/TextHighlightElement.d.ts.map +1 -0
- package/dist/src/shared/primitives/TextOverflowElement.d.ts +38 -0
- package/dist/src/shared/primitives/TextOverflowElement.d.ts.map +1 -0
- package/dist/src/shared/primitives/index.d.ts +14 -0
- package/dist/src/shared/primitives/index.d.ts.map +1 -0
- package/dist/src/shared/tokens/ColorToken.d.ts +96 -0
- package/dist/src/shared/tokens/ColorToken.d.ts.map +1 -0
- package/dist/src/shared/tokens/DensityToken.d.ts +15 -0
- package/dist/src/shared/tokens/DensityToken.d.ts.map +1 -0
- package/dist/src/shared/tokens/DesignToken.d.ts +366 -0
- package/dist/src/shared/tokens/DesignToken.d.ts.map +1 -0
- package/dist/src/shared/tokens/ElevationToken.d.ts +16 -0
- package/dist/src/shared/tokens/ElevationToken.d.ts.map +1 -0
- package/dist/src/shared/tokens/MotionToken.d.ts +69 -0
- package/dist/src/shared/tokens/MotionToken.d.ts.map +1 -0
- package/dist/src/shared/tokens/ScrollbarToken.d.ts +10 -0
- package/dist/src/shared/tokens/ScrollbarToken.d.ts.map +1 -0
- package/dist/src/shared/tokens/ShapeToken.d.ts +79 -0
- package/dist/src/shared/tokens/ShapeToken.d.ts.map +1 -0
- package/dist/src/shared/tokens/StateToken.d.ts +10 -0
- package/dist/src/shared/tokens/StateToken.d.ts.map +1 -0
- package/dist/src/shared/tokens/TypescaleToken.d.ts +220 -0
- package/dist/src/shared/tokens/TypescaleToken.d.ts.map +1 -0
- package/dist/src/shared/tokens/index.d.ts +2 -0
- package/dist/src/shared/tokens/index.d.ts.map +1 -0
- package/dist/src/shared/utils/getTextContent.d.ts +8 -0
- package/dist/src/shared/utils/getTextContent.d.ts.map +1 -0
- package/dist/src/shared/utils/guid.d.ts +6 -0
- package/dist/src/shared/utils/guid.d.ts.map +1 -0
- package/dist/src/shared/utils/hasAssignedNodes.d.ts +7 -0
- package/dist/src/shared/utils/hasAssignedNodes.d.ts.map +1 -0
- package/dist/src/shared/utils/index.d.ts +6 -0
- package/dist/src/shared/utils/index.d.ts.map +1 -0
- package/dist/src/shared/utils/prefersReducedMotion.d.ts +6 -0
- package/dist/src/shared/utils/prefersReducedMotion.d.ts.map +1 -0
- package/dist/src/shared/utils/scrollIntoViewIfNeeded.d.ts +8 -0
- package/dist/src/shared/utils/scrollIntoViewIfNeeded.d.ts.map +1 -0
- package/package.json +1 -1
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../node_modules/tslib/tslib.es6.js","../../src/shared/controllers/MonitorControllerBase.ts","../../src/shared/controllers/FocusController.ts","../../src/shared/controllers/HoverController.ts","../../src/shared/controllers/IntersectionController.ts","../../src/shared/controllers/LongPressController.ts","../../src/shared/controllers/MutationController.ts","../../src/shared/controllers/PressedController.ts","../../src/shared/controllers/ResizeController.ts","../../src/shared/decorators/debounce.ts","../../src/shared/controllers/ScrollController.ts","../../../node_modules/lit-html/directive.js","../../src/shared/directives/safeStyleMap.ts","../../src/shared/mixins/hasKeys.ts","../../src/shared/mixins/AttachInternals.ts","../../../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/base.js","../../../node_modules/@lit/reactive-element/decorators/query.js","../../../node_modules/@lit/reactive-element/decorators/query-assigned-elements.js","../../src/shared/mixins/Checked.ts","../../src/shared/mixins/CheckedIndeterminate.ts","../../src/shared/mixins/Selected.ts","../../src/shared/mixins/CheckedOrSelected.ts","../../src/shared/mixins/Dirty.ts","../../src/shared/mixins/Touched.ts","../../src/shared/tokens/ColorToken.ts","../../src/shared/tokens/DensityToken.ts","../../src/shared/tokens/ElevationToken.ts","../../src/shared/tokens/MotionToken.ts","../../src/shared/tokens/ScrollbarToken.ts","../../src/shared/tokens/ShapeToken.ts","../../src/shared/tokens/StateToken.ts","../../src/shared/tokens/TypescaleToken.ts","../../src/shared/tokens/DesignToken.ts","../../src/shared/mixins/Disabled.ts","../../src/shared/mixins/DisabledInteractive.ts","../../src/shared/mixins/Labelled.ts","../../src/shared/mixins/FormAssociated.ts","../../src/shared/mixins/ConstraintValidation.ts","../../src/shared/mixins/EventAttribute.ts","../../src/shared/mixins/Focusable.ts","../../src/shared/mixins/FormSubmitter.ts","../../src/shared/mixins/HtmlFor.ts","../../src/shared/mixins/KeyboardClick.ts","../../../node_modules/lit-html/lit-html.js","../../../node_modules/lit-html/directives/if-defined.js","../../src/shared/mixins/LinkButton.ts","../../src/shared/mixins/ReadOnly.ts","../../src/shared/mixins/Required.ts","../../src/shared/mixins/RequiredConstraintValidation.ts","../../src/shared/mixins/Role.ts","../../src/shared/mixins/Vertical.ts","../../src/shared/utils/getTextContent.ts","../../src/shared/utils/guid.ts","../../src/shared/utils/hasAssignedNodes.ts","../../src/shared/utils/prefersReducedMotion.ts","../../src/shared/utils/scrollIntoViewIfNeeded.ts","../../src/shared/primitives/CollapsibleElement.ts","../../src/shared/primitives/ElevationToken.ts","../../src/shared/primitives/ElevationElement.ts","../../src/shared/primitives/FocusRingToken.ts","../../src/shared/primitives/FocusRingElement.ts","../../src/shared/primitives/PseudoCheckboxElement.ts","../../src/shared/primitives/PseudoRadioElement.ts","../../src/shared/primitives/RippleToken.ts","../../src/shared/primitives/RippleElement.ts","../../src/shared/primitives/ScrollContainerElement.ts","../../src/shared/primitives/SlideElement.ts","../../src/shared/primitives/StateLayerToken.ts","../../src/shared/primitives/StateLayerElement.ts","../../src/shared/primitives/TextOverflowElement.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","import { ReactiveController, ReactiveControllerHost } from \"lit\";\r\n\r\n/** Encapsulates options used to monitor the state of one or more elements. */\r\nexport interface MonitorControllerOptions {\r\n /**\r\n * The element to observe. In addition to configuring the target here,\r\n * the `observe` method can be called to observe additional targets. When\r\n * not specified, the target defaults to the `host`. If set to `null`, no\r\n * target is automatically observed. Only the configured target will be\r\n * re-observed if the host connects again after unobserving via disconnection.\r\n */\r\n target?: HTMLElement | null;\r\n}\r\n\r\n/**\r\n * A base implementation for a `ReactiveController` used to monitor the state of one\r\n * or more elements. This class must be inherited.\r\n */\r\nexport abstract class MonitorControllerBase implements ReactiveController {\r\n /** @private */ readonly #host: ReactiveControllerHost & HTMLElement;\r\n /** @private */ readonly #target?: HTMLElement | null;\r\n /** @private */ readonly #targets = new Set<HTMLElement>();\r\n\r\n /**\r\n * Initializes the `MonitorControllerBase` base class values when called by a derived class.\r\n * @param {ReactiveControllerHost & HTMLElement} host The host element to which this controller will be added.\r\n * @param {MonitorControllerOptions} options Options used to configure this controller.\r\n */\r\n constructor(host: ReactiveControllerHost & HTMLElement, options: MonitorControllerOptions) {\r\n this.#host = host;\r\n this.#target = options.target;\r\n this.#host.addController(this);\r\n }\r\n\r\n /** The targets being observed. */\r\n get targets(): Iterable<HTMLElement> {\r\n return this.#targets.values();\r\n }\r\n\r\n /** @inheritdoc */\r\n hostConnected(): void {\r\n // Target defaults to host unless explicitly null.\r\n if (this.#target !== null) {\r\n this.observe(this.#target ?? this.#host);\r\n }\r\n }\r\n\r\n /** @inheritdoc */\r\n hostDisconnected(): void {\r\n this.#targets.forEach((x) => this.unobserve(x));\r\n this.#targets.clear();\r\n }\r\n\r\n /** @inheritdoc */\r\n hostUpdate?(): void;\r\n\r\n /** @inheritdoc */\r\n hostUpdated?(): void;\r\n\r\n /**\r\n * Starts observing the specified element.\r\n * @param {HTMLElement} target The element to start observing.\r\n */\r\n observe(target: HTMLElement): void {\r\n if (this.#targets.has(target)) return;\r\n this.#targets.add(target);\r\n this._observe(target);\r\n }\r\n\r\n /**\r\n * Determines whether the specified element is being observed.\r\n * @param {HTMLElement} target The element to test.\r\n * @returns {boolean} Whether `target` is being observed.\r\n */\r\n isObserving(target: HTMLElement): boolean {\r\n return this.#targets.has(target);\r\n }\r\n\r\n /**\r\n * Stops observing the specified element.\r\n * @param {HTMLElement} target The element to stop observing.\r\n */\r\n unobserve(target: HTMLElement): void {\r\n if (!this.#targets.delete(target)) return;\r\n this._unobserve(target);\r\n }\r\n\r\n /**\r\n * When implemented by a derived class, starts observing the specified element.\r\n * @param {HTMLElement} target The element to start observing.\r\n */\r\n protected abstract _observe(target: HTMLElement): void;\r\n\r\n /**\r\n * When implemented by a derived class, stops observing the specified element.\r\n * @param {HTMLElement} target The element to stop observing.\r\n */\r\n protected abstract _unobserve(target: HTMLElement): void;\r\n}\r\n","import { ReactiveControllerHost } from \"lit\";\r\n\r\nimport { MonitorControllerBase, MonitorControllerOptions } from \"./MonitorControllerBase\";\r\n\r\n/** The callback function invoked when the focused state of an element changes. */\r\nexport type FocusControllerCallback = (focused: boolean, focusVisible: boolean, target: HTMLElement) => void;\r\n\r\n/** Encapsulates options used to configure a `FocusController`. */\r\nexport interface FocusControllerOptions extends MonitorControllerOptions {\r\n /** The callback invoked when the focused state of an element changes. */\r\n callback: FocusControllerCallback;\r\n}\r\n\r\n/** A `ReactiveController` used to monitor the focused state of one or more elements. */\r\nexport class FocusController extends MonitorControllerBase {\r\n /** @private */ readonly #callback: FocusControllerCallback;\r\n /** @private */ readonly #focusInHandler = (e: Event) => this.#handleFocusIn(e);\r\n /** @private */ readonly #focusOutHandler = (e: Event) => this.#handleFocusOut(e);\r\n\r\n /**\r\n * Initializes a new instance of this class.\r\n * @param {ReactiveControllerHost & HTMLElement} host The host element to which this controller will be added.\r\n * @param {FocusControllerOptions} options Options used to configure this controller.\r\n */\r\n constructor(host: ReactiveControllerHost & HTMLElement, options: FocusControllerOptions) {\r\n super(host, options);\r\n this.#callback = options.callback;\r\n }\r\n\r\n /**\r\n * Starts observing the specified element.\r\n * @param {HTMLElement} target The element to start observing.\r\n */\r\n protected override _observe(target: HTMLElement): void {\r\n target.addEventListener(\"keydown\", this.#focusInHandler);\r\n target.addEventListener(\"focusin\", this.#focusInHandler);\r\n target.addEventListener(\"focusout\", this.#focusOutHandler);\r\n }\r\n\r\n /**\r\n * Stops observing the specified element.\r\n * @param {HTMLElement} target The element to stop observing.\r\n */\r\n protected override _unobserve(target: HTMLElement): void {\r\n target.removeEventListener(\"keydown\", this.#focusInHandler);\r\n target.removeEventListener(\"focusin\", this.#focusInHandler);\r\n target.removeEventListener(\"focusout\", this.#focusOutHandler);\r\n }\r\n\r\n /** @private */\r\n #handleFocusIn(e: Event): void {\r\n const target = e.target as HTMLElement;\r\n this.#callback(true, target.matches(\":focus-visible\") || matchMedia(\"(forced-colors: active)\").matches, target);\r\n }\r\n\r\n /** @private */\r\n #handleFocusOut(e: Event): void {\r\n this.#callback(false, false, e.target as HTMLElement);\r\n }\r\n}\r\n","import { ReactiveControllerHost } from \"lit\";\r\n\r\nimport { MonitorControllerBase, MonitorControllerOptions } from \"./MonitorControllerBase\";\r\n\r\n/** The callback function invoked when the hover state of an element changes. */\r\nexport type HoverControllerCallback = (hovering: boolean, target: HTMLElement) => void;\r\n\r\n/** Encapsulates options used to configure a `HoverController`. */\r\nexport interface HoverControllerOptions extends MonitorControllerOptions {\r\n /** The callback invoked when the hover state of an element changes. */\r\n callback: HoverControllerCallback;\r\n\r\n /** The delay, in milliseconds, before reporting hover start. */\r\n startDelay?: number;\r\n\r\n /** The delay, in milliseconds, before reporting hover end. */\r\n endDelay?: number;\r\n}\r\n\r\n/** A `ReactiveController` used to monitor the hover state of one or more elements. */\r\nexport class HoverController extends MonitorControllerBase {\r\n /** @private */ readonly #callback: HoverControllerCallback;\r\n /** @private */ readonly #startDelays = new Map<HTMLElement, number>();\r\n /** @private */ readonly #endDelays = new Map<HTMLElement, number>();\r\n /** @private */ readonly #pointerInHandler = (e: Event) => this.#handlePointerEnter(e);\r\n /** @private */ readonly #pointerLeaveHandler = (e: Event) => this.#handlePointerLeave(e);\r\n\r\n /** The delay, in milliseconds, before reporting hover start. */\r\n startDelay: number;\r\n\r\n /** The delay, in milliseconds, before reporting hover end. */\r\n endDelay: number;\r\n\r\n /**\r\n * Initializes a new instance of this class.\r\n * @param {ReactiveControllerHost & HTMLElement} host The host element to which this controller will be added.\r\n * @param {HoverControllerOptions} options Options used to configure this controller.\r\n */\r\n constructor(host: ReactiveControllerHost & HTMLElement, options: HoverControllerOptions) {\r\n super(host, options);\r\n this.#callback = options.callback;\r\n this.startDelay = options.startDelay ?? 0;\r\n this.endDelay = options.endDelay ?? 0;\r\n }\r\n\r\n /** Clears any hover delays for all targets. */\r\n clearDelays(): void {\r\n for (const target of this.targets) {\r\n this.#clearDelays(target);\r\n }\r\n }\r\n\r\n /**\r\n * Starts observing the specified element.\r\n * @param {HTMLElement} target The element to start observing.\r\n */\r\n protected override _observe(target: HTMLElement): void {\r\n target.addEventListener(\"pointerenter\", this.#pointerInHandler);\r\n target.addEventListener(\"pointerleave\", this.#pointerLeaveHandler);\r\n }\r\n\r\n /**\r\n * Stops observing the specified element.\r\n * @param {HTMLElement} target The element to stop observing.\r\n */\r\n protected override _unobserve(target: HTMLElement): void {\r\n target.removeEventListener(\"pointerenter\", this.#pointerInHandler);\r\n target.removeEventListener(\"pointerleave\", this.#pointerLeaveHandler);\r\n }\r\n\r\n /** @private */\r\n #clearDelays(target: HTMLElement): void {\r\n this.#clearStartDelay(target);\r\n this.#clearEndDelay(target);\r\n }\r\n\r\n /** @private */\r\n #clearStartDelay(target: HTMLElement): boolean {\r\n if (this.#startDelays.has(target)) {\r\n clearTimeout(this.#startDelays.get(target));\r\n return this.#startDelays.delete(target);\r\n }\r\n return false;\r\n }\r\n\r\n /** @private */\r\n #clearEndDelay(target: HTMLElement): boolean {\r\n if (this.#endDelays.has(target)) {\r\n clearTimeout(this.#endDelays.get(target));\r\n return this.#endDelays.delete(target);\r\n }\r\n return false;\r\n }\r\n\r\n /** @private */\r\n #handlePointerEnter(e: Event): void {\r\n const target = e.target as HTMLElement;\r\n\r\n // If there is a pending end delay, cancel it.\r\n this.#clearEndDelay(target);\r\n\r\n // Otherwise, if there is a pending start delay, cancel it and start a new one.\r\n if (this.startDelay > 0) {\r\n this.#clearStartDelay(target);\r\n this.#startDelays.set(\r\n target,\r\n setTimeout(() => {\r\n this.#startDelays.delete(target);\r\n this.#callback(true, target);\r\n }, this.startDelay)\r\n );\r\n } else {\r\n // Otherwise, report the start.\r\n this.#callback(true, target);\r\n }\r\n }\r\n\r\n /** @private */\r\n #handlePointerLeave(e: Event): void {\r\n const target = e.target as HTMLElement;\r\n\r\n // If there is a pending start delay, cancel it and do not report the end.\r\n if (this.#clearStartDelay(target)) return;\r\n\r\n // Otherwise, if there is a pending end delay, cancel it and start a new one.\r\n if (this.endDelay > 0) {\r\n this.#clearEndDelay(target);\r\n this.#endDelays.set(\r\n target,\r\n setTimeout(() => {\r\n this.#endDelays.delete(target);\r\n this.#callback(false, target);\r\n }, this.endDelay)\r\n );\r\n } else {\r\n // Otherwise, report the end.\r\n this.#callback(false, target);\r\n }\r\n }\r\n}\r\n","import { isServer, ReactiveControllerHost } from \"lit\";\r\n\r\nimport { MonitorControllerBase, MonitorControllerOptions } from \"./MonitorControllerBase\";\r\n\r\n/** The callback function for a `IntersectionController`. */\r\nexport type IntersectionControllerCallback = (...args: Parameters<IntersectionObserverCallback>) => void;\r\n\r\n/** Encapsulates options used to configure a `IntersectionController`. */\r\nexport interface IntersectionControllerOptions extends MonitorControllerOptions {\r\n /** The callback used to process detected changes. */\r\n callback: IntersectionControllerCallback;\r\n\r\n /**\r\n * By default, the `callback` is invoked without changes when a\r\n * target is observed in order to help maintain initial state. Use\r\n * `skipInitial` to skip this step.\r\n */\r\n skipInitial?: boolean;\r\n\r\n /** The configuration object for the underlying `IntersectionObserver`. */\r\n init?: IntersectionObserverInit;\r\n}\r\n\r\n/** A `ReactiveController` used to monitor changes in the intersection of a target element with an ancestor element. */\r\nexport class IntersectionController extends MonitorControllerBase {\r\n /** @private */ #host: ReactiveControllerHost;\r\n /** @private */ #callback: IntersectionControllerCallback;\r\n /** @private */ #skipInitial = false;\r\n /** @private */ #observer?: IntersectionObserver;\r\n /** @private */ #unobservedUpdate = true;\r\n\r\n /**\r\n * Initializes a new instance of the `IntersectionController` class.\r\n * @param {ReactiveControllerHost & HTMLElement} host The host element to which this controller will be added.\r\n * @param {IntersectionControllerOptions} options Options used to configure this controller.\r\n */\r\n constructor(host: ReactiveControllerHost & HTMLElement, options: IntersectionControllerOptions) {\r\n super(host, options);\r\n\r\n this.#host = host;\r\n this.#callback = options.callback;\r\n this.#skipInitial = options.skipInitial ?? false;\r\n\r\n if (isServer) return;\r\n if (!window.IntersectionObserver) {\r\n console.warn(\"IntersectionController error: the browser does not support IntersectionObserver.\");\r\n return;\r\n }\r\n\r\n this.#observer = new IntersectionObserver((entries, observer) => {\r\n this.#callback(entries, observer);\r\n this.#host.requestUpdate();\r\n }, options.init);\r\n }\r\n\r\n /** @inheritdoc */\r\n override async hostUpdated(): Promise<void> {\r\n if (this.#observer && !this.#skipInitial && this.#unobservedUpdate) {\r\n this.#callback([], this.#observer);\r\n }\r\n this.#unobservedUpdate = false;\r\n }\r\n\r\n /**\r\n * Starts observing the specified element.\r\n * @param {HTMLElement} target The element to start observing.\r\n */\r\n protected override _observe(target: HTMLElement): void {\r\n this.#observer?.observe(target);\r\n this.#unobservedUpdate = true;\r\n this.#host.requestUpdate();\r\n }\r\n\r\n /**\r\n * Stops observing the specified element.\r\n * @param {HTMLElement} target The element to stop observing.\r\n */\r\n protected override _unobserve(target: HTMLElement): void {\r\n this.#observer?.unobserve(target);\r\n }\r\n}\r\n","import { ReactiveControllerHost } from \"lit\";\r\n\r\nimport { MonitorControllerBase, MonitorControllerOptions } from \"./MonitorControllerBase\";\r\n\r\n/** The callback function invoked when a long press gesture is detected. */\r\nexport type LongPressControllerCallback = (pressed: boolean, target: HTMLElement) => void;\r\n\r\n/** Encapsulates options used to configure a `LongPressController`. */\r\nexport interface LongPressControllerOptions extends MonitorControllerOptions {\r\n /** The callback invoked when the pressed state of an element changes. */\r\n callback: LongPressControllerCallback;\r\n\r\n /** The amount of time, in milliseconds, a touch gesture must be held. */\r\n threshold?: number;\r\n}\r\n\r\n/** A `ReactiveController` used to detect a long press gesture. */\r\nexport class LongPressController extends MonitorControllerBase {\r\n /** @private */ readonly #callback: LongPressControllerCallback;\r\n /** @private */ readonly #threshold: number;\r\n /** @private */ readonly #pressedTargets = new Set<HTMLElement>();\r\n /** @private */ readonly #pressedTimeouts = new Map<HTMLElement, number>();\r\n\r\n /** @private */ readonly #touchStartHandler = (e: TouchEvent) => this.#handleTouchStart(e);\r\n /** @private */ readonly #touchEndOrCancelHandler = (e: TouchEvent) => this.#handleTouchEndOrCancel(e);\r\n\r\n /**\r\n * Initializes a new instance of this class.\r\n * @param {ReactiveControllerHost & HTMLElement} host The host element to which this controller will be added.\r\n * @param {LongPressControllerOptions} options Options used to configure this controller.\r\n */\r\n constructor(host: ReactiveControllerHost & HTMLElement, options: LongPressControllerOptions) {\r\n super(host, options);\r\n this.#callback = options.callback;\r\n this.#threshold = options.threshold ?? 500;\r\n }\r\n\r\n /**\r\n * Starts observing the specified element.\r\n * @param {HTMLElement} target The element to start observing.\r\n */\r\n protected override _observe(target: HTMLElement): void {\r\n target.addEventListener(\"touchstart\", this.#touchStartHandler);\r\n target.addEventListener(\"touchend\", this.#touchEndOrCancelHandler);\r\n target.addEventListener(\"touchcancel\", this.#touchEndOrCancelHandler);\r\n }\r\n\r\n /**\r\n * Stops observing the specified element.\r\n * @param {HTMLElement} target The element to stop observing.\r\n */\r\n protected override _unobserve(target: HTMLElement): void {\r\n target.removeEventListener(\"touchstart\", this.#touchStartHandler);\r\n target.removeEventListener(\"touchend\", this.#touchEndOrCancelHandler);\r\n target.removeEventListener(\"touchcancel\", this.#touchEndOrCancelHandler);\r\n }\r\n\r\n /** @private */\r\n #handleTouchStart(e: TouchEvent): void {\r\n if (e.currentTarget instanceof HTMLElement && this.isObserving(e.currentTarget)) {\r\n const target = e.currentTarget;\r\n this.#pressedTimeouts.set(\r\n target,\r\n setTimeout(() => {\r\n this.#pressedTargets.add(target);\r\n this.#pressedTimeouts.delete(target);\r\n this.#callback(true, target);\r\n }, this.#threshold)\r\n );\r\n }\r\n }\r\n\r\n /** @private */\r\n #handleTouchEndOrCancel(e: TouchEvent): void {\r\n if (e.currentTarget instanceof HTMLElement && this.isObserving(e.currentTarget)) {\r\n const target = e.currentTarget;\r\n if (this.#pressedTargets.has(target)) {\r\n this.#callback(false, target);\r\n this.#pressedTargets.delete(target);\r\n }\r\n if (this.#pressedTimeouts.has(target)) {\r\n clearTimeout(this.#pressedTimeouts.get(target));\r\n this.#pressedTimeouts.delete(target);\r\n }\r\n }\r\n }\r\n}\r\n","import { isServer, ReactiveControllerHost } from \"lit\";\r\n\r\nimport { MonitorControllerBase, MonitorControllerOptions } from \"./MonitorControllerBase\";\r\n\r\n/** Encapsulates options used to configure a `MutationController`. */\r\nexport interface MutationControllerOptions extends MonitorControllerOptions {\r\n /** The callback used to process detected changes. */\r\n callback: MutationCallback;\r\n\r\n /**\r\n * By default, the `callback` is invoked without changes when a\r\n * target is observed in order to help maintain initial state. Use\r\n * `skipInitial` to skip this step.\r\n */\r\n skipInitial?: boolean;\r\n\r\n /** The configuration object for the underlying `MutationObserver`. */\r\n config?: MutationObserverInit;\r\n}\r\n\r\n/**\r\n * A `ReactiveController` that integrates a `MutationObserver` with an element's reactive update lifecycle\r\n * to detect arbitrary changes to DOM, including nodes being added or removed and attributes changing.\r\n */\r\nexport class MutationController extends MonitorControllerBase {\r\n /** @private */ #host: ReactiveControllerHost;\r\n /** @private */ #callback: MutationCallback;\r\n /** @private */ #skipInitial = false;\r\n /** @private */ #config?: MutationObserverInit;\r\n /** @private */ #observer?: MutationObserver;\r\n /** @private */ #unobservedUpdate = true;\r\n\r\n /**\r\n * Initializes a new instance of the `MutationController` class.\r\n * @param {ReactiveControllerHost & HTMLElement} host The host element to which this controller will be added.\r\n * @param {MutationControllerOptions} options Options used to configure this controller.\r\n */\r\n constructor(host: ReactiveControllerHost & HTMLElement, options: MutationControllerOptions) {\r\n super(host, options);\r\n\r\n this.#host = host;\r\n this.#callback = options.callback;\r\n this.#skipInitial = options.skipInitial ?? false;\r\n this.#config = options.config;\r\n\r\n if (isServer) return;\r\n if (!window.MutationObserver) {\r\n console.warn(\"MutationController error: the browser does not support MutationObserver.\");\r\n return;\r\n }\r\n\r\n this.#observer = new MutationObserver((records, observer) => {\r\n this.#callback(records, observer);\r\n this.#host.requestUpdate();\r\n });\r\n }\r\n\r\n /** @inheritdoc */\r\n override async hostUpdated(): Promise<void> {\r\n if (this.#observer && !this.#skipInitial && this.#unobservedUpdate) {\r\n const records = this.#observer.takeRecords();\r\n if (records.length > 0) {\r\n this.#callback(records, this.#observer);\r\n }\r\n }\r\n this.#unobservedUpdate = false;\r\n }\r\n\r\n /** @inheritdoc */\r\n override hostDisconnected(): void {\r\n super.hostDisconnected();\r\n this.#observer?.disconnect();\r\n }\r\n\r\n /** @inheritdoc */\r\n protected override _observe(target: HTMLElement): void {\r\n this.#observer?.observe(target, this.#config);\r\n this.#unobservedUpdate = true;\r\n this.#host.requestUpdate();\r\n }\r\n\r\n /** @inheritdoc */\r\n protected override _unobserve(): void {\r\n this.#observer?.disconnect();\r\n for (const target of this.targets) {\r\n this.#observer?.observe(target, this.#config);\r\n }\r\n }\r\n}\r\n","import { ReactiveControllerHost } from \"lit\";\r\n\r\nimport { MonitorControllerBase, MonitorControllerOptions } from \"./MonitorControllerBase\";\r\n\r\n/** The callback function invoked when the pressed state of an element changes. */\r\nexport type PressedControllerCallback = (\r\n pressed: boolean,\r\n point: { x: number; y: number },\r\n target: HTMLElement\r\n) => void;\r\n\r\n/** Encapsulates options used to configure a `PressedController`. */\r\nexport interface PressedControllerOptions extends MonitorControllerOptions {\r\n /** The callback invoked when the pressed state of an element changes. */\r\n callback: PressedControllerCallback;\r\n\r\n /** The minimum amount of time, in milliseconds, to retain a pressed state. */\r\n minPressedDuration?: number;\r\n\r\n /** Whether events are captured. */\r\n capture?: boolean;\r\n\r\n /**\r\n * A function used to determine whether a given keyboard key toggles the pressed state.\r\n * @param key The `KeyboardEvent.key` to test.\r\n * @returns Whether `key` toggles the pressed state.\r\n */\r\n isPressedKey?: (key: string) => boolean;\r\n}\r\n\r\n/** A `ReactiveController` used to monitor the pressed state of one or more elements. */\r\nexport class PressedController extends MonitorControllerBase {\r\n /** @private */ readonly #capture?: boolean;\r\n /** @private */ readonly #callback: PressedControllerCallback;\r\n /** @private */ readonly #isPressedKey?: (key: string) => boolean;\r\n /** @private */ readonly #pressedTargets = new Map<HTMLElement, number>();\r\n /** @private */ readonly #minPressedDuration: number;\r\n\r\n /** @private */ readonly #pointerDownHandler = (e: PointerEvent) => this.#handlePointerDown(e);\r\n /** @private */ readonly #pointerUpHandler = (e: PointerEvent) => this.#handlePointerUp(e);\r\n /** @private */ readonly #keyDownHandler = (e: KeyboardEvent) => this.#handleKeyDown(e);\r\n /** @private */ readonly #keyUpHandler = (e: KeyboardEvent) => this.#handleKeyUp(e);\r\n\r\n /**\r\n * Initializes a new instance of this class.\r\n * @param {ReactiveControllerHost & HTMLElement} host The host element to which this controller will be added.\r\n * @param {PressedControllerOptions} options Options used to configure this controller.\r\n */\r\n constructor(host: ReactiveControllerHost & HTMLElement, options: PressedControllerOptions) {\r\n super(host, options);\r\n\r\n this.#capture = options.capture;\r\n this.#callback = options.callback;\r\n this.#isPressedKey = options.isPressedKey;\r\n this.#minPressedDuration = options.minPressedDuration ?? 0;\r\n }\r\n\r\n /** @inheritdoc */\r\n override hostConnected(): void {\r\n document.addEventListener(\"pointerup\", this.#pointerUpHandler, { capture: this.#capture });\r\n super.hostConnected();\r\n }\r\n\r\n /** @inheritdoc */\r\n override hostDisconnected(): void {\r\n document.removeEventListener(\"pointerup\", this.#pointerUpHandler, { capture: this.#capture });\r\n super.hostDisconnected();\r\n this.#pressedTargets.clear();\r\n }\r\n\r\n /**\r\n * Starts observing the specified element.\r\n * @param {HTMLElement} target The element to start observing.\r\n */\r\n protected override _observe(target: HTMLElement): void {\r\n target.addEventListener(\"pointerdown\", this.#pointerDownHandler, { capture: this.#capture });\r\n if (this.#isPressedKey) {\r\n target.addEventListener(\"keydown\", this.#keyDownHandler, { capture: this.#capture });\r\n target.addEventListener(\"keyup\", this.#keyUpHandler, { capture: this.#capture });\r\n }\r\n }\r\n\r\n /**\r\n * Stops observing the specified element.\r\n * @param {HTMLElement} target The element to stop observing.\r\n */\r\n protected override _unobserve(target: HTMLElement): void {\r\n target.removeEventListener(\"pointerdown\", this.#pointerDownHandler, { capture: this.#capture });\r\n\r\n if (this.#isPressedKey) {\r\n target.removeEventListener(\"keydown\", this.#keyDownHandler, { capture: this.#capture });\r\n target.removeEventListener(\"keyup\", this.#keyUpHandler, { capture: this.#capture });\r\n }\r\n }\r\n\r\n /** @private */\r\n #handlePointerDown(e: PointerEvent): void {\r\n if (e.pointerType === \"mouse\" && e.button > 1) return;\r\n\r\n for (const target of e.composedPath()) {\r\n if (target instanceof HTMLElement && this.isObserving(target)) {\r\n if (!this.#pressedTargets.has(target)) {\r\n this.#pressedTargets.set(target, performance.now());\r\n this.#callback(true, { x: e.x, y: e.y }, target);\r\n }\r\n break;\r\n }\r\n }\r\n }\r\n\r\n /** @private */\r\n #handlePointerUp(e: PointerEvent): void {\r\n if (e.pointerType === \"mouse\" && e.button > 1) return;\r\n\r\n const x = e.x;\r\n const y = e.y;\r\n\r\n for (const target of this.#pressedTargets.keys()) {\r\n const remainingTime = this.#minPressedDuration - (performance.now() - this.#pressedTargets.get(target)!);\r\n if (remainingTime > 0) {\r\n setTimeout(() => {\r\n this.#pressedTargets.delete(target);\r\n this.#callback(false, { x, y }, target);\r\n }, remainingTime);\r\n } else {\r\n this.#pressedTargets.delete(target);\r\n this.#callback(false, { x, y }, target);\r\n }\r\n }\r\n }\r\n\r\n /** @private */\r\n #handleKeyDown(e: KeyboardEvent): void {\r\n const target = e.target as HTMLElement;\r\n\r\n if (!this.#pressedTargets.has(target) && this.#isPressedKey?.(e.key)) {\r\n if (e.key === \" \") {\r\n e.preventDefault();\r\n }\r\n\r\n this.#pressedTargets.set(target, performance.now());\r\n const bounds = target.getBoundingClientRect();\r\n this.#callback(true, { x: bounds.x + bounds.width / 2, y: bounds.y + bounds.height / 2 }, target);\r\n }\r\n }\r\n\r\n /** @private */\r\n #handleKeyUp(e: KeyboardEvent): void {\r\n const target = e.target as HTMLElement;\r\n\r\n if (this.#pressedTargets.has(target) && this.#isPressedKey?.(e.key)) {\r\n const remainingTime = this.#minPressedDuration - (performance.now() - this.#pressedTargets.get(target)!);\r\n const bounds = target.getBoundingClientRect();\r\n if (remainingTime > 0) {\r\n setTimeout(() => {\r\n this.#pressedTargets.delete(target);\r\n this.#callback(false, { x: bounds.x + bounds.width / 2, y: bounds.y + bounds.height / 2 }, target);\r\n }, remainingTime);\r\n } else {\r\n this.#pressedTargets.delete(target);\r\n this.#callback(false, { x: bounds.x + bounds.width / 2, y: bounds.y + bounds.height / 2 }, target);\r\n }\r\n }\r\n }\r\n}\r\n","import { isServer, ReactiveControllerHost } from \"lit\";\r\n\r\nimport { MonitorControllerBase, MonitorControllerOptions } from \"./MonitorControllerBase\";\r\n\r\n/** The callback function for a `ResizeController`. */\r\nexport type ResizeControllerCallback = (...args: Parameters<ResizeObserverCallback>) => void;\r\n\r\n/** Encapsulates options used to configure a `ResizeController`. */\r\nexport interface ResizeControllerOptions extends MonitorControllerOptions {\r\n /** The callback used to process detected changes. */\r\n callback: ResizeControllerCallback;\r\n\r\n /**\r\n * By default, the `callback` is invoked without changes when a\r\n * target is observed in order to help maintain initial state. Use\r\n * `skipInitial` to skip this step.\r\n */\r\n skipInitial?: boolean;\r\n\r\n /** The configuration object for the underlying `ResizeObserver`. */\r\n config?: ResizeObserverOptions;\r\n}\r\n\r\n/** A `ReactiveController` used to monitor when an element is resized. */\r\nexport class ResizeController extends MonitorControllerBase {\r\n /** @private */ readonly #host: ReactiveControllerHost;\r\n /** @private */ readonly #callback: ResizeControllerCallback;\r\n /** @private */ readonly #skipInitial: boolean;\r\n /** @private */ readonly #config?: ResizeObserverOptions;\r\n /** @private */ readonly #observer?: ResizeObserver;\r\n /** @private */ #unobservedUpdate = true;\r\n\r\n /**\r\n * Initializes a new instance of the `ResizeController` class.\r\n * @param {ReactiveControllerHost & HTMLElement} host The host element to which this controller will be added.\r\n * @param {ResizeControllerOptions} options Options used to configure this controller.\r\n */\r\n constructor(host: ReactiveControllerHost & HTMLElement, options: ResizeControllerOptions) {\r\n super(host, options);\r\n\r\n this.#host = host;\r\n this.#callback = options.callback;\r\n this.#skipInitial = options.skipInitial ?? false;\r\n this.#config = options.config;\r\n\r\n if (isServer) return;\r\n if (!window.ResizeObserver) {\r\n console.warn(\"ResizeController error: the browser does not support ResizeObserver.\");\r\n return;\r\n }\r\n\r\n this.#observer = new ResizeObserver((entries, observer) => {\r\n this.#callback(entries, observer);\r\n this.#host.requestUpdate();\r\n });\r\n }\r\n\r\n /** @inheritdoc */\r\n override async hostUpdated(): Promise<void> {\r\n if (this.#observer && !this.#skipInitial && this.#unobservedUpdate) {\r\n this.#callback([], this.#observer);\r\n }\r\n this.#unobservedUpdate = false;\r\n }\r\n\r\n /**\r\n * Starts observing the specified element.\r\n * @param {HTMLElement} target The element to start observing.\r\n */\r\n protected override _observe(target: HTMLElement): void {\r\n this.#observer?.observe(target, this.#config);\r\n this.#unobservedUpdate = true;\r\n this.#host.requestUpdate();\r\n }\r\n\r\n /**\r\n * Stops observing the specified element.\r\n * @param {HTMLElement} target The element to stop observing.\r\n */\r\n protected override _unobserve(target: HTMLElement): void {\r\n this.#observer?.unobserve(target);\r\n }\r\n}\r\n","/* eslint-disable @typescript-eslint/no-explicit-any */\r\n/**\r\n * A decorator that runs a function once after a given \"cooldown\" period.\r\n * @param {number} timeout The timeout, in milliseconds, after which the function is invoked.\r\n * @returns {MethodDecorator} The decorator that runs a function once after a given \"cooldown\" period.\r\n */\r\nexport function debounce(timeout: number): MethodDecorator {\r\n const _id = Symbol(\"_id\");\r\n return (_: any, __: PropertyKey | symbol, descriptor: PropertyDescriptor) => {\r\n const orig = descriptor.value;\r\n descriptor.value = function (...args: any[]) {\r\n // eslint-disable-next-line @typescript-eslint/no-this-alias\r\n const self: any = this;\r\n clearTimeout(self[_id]);\r\n self[_id] = setTimeout(() => orig.apply(this, args), timeout);\r\n };\r\n return descriptor;\r\n };\r\n}\r\n","import { ReactiveControllerHost } from \"lit\";\r\n\r\nimport { MonitorControllerBase, MonitorControllerOptions } from \"./MonitorControllerBase\";\r\nimport { debounce } from \"../decorators\";\r\n\r\n/** The callback function invoked when a scrollable ancestor is scrolled. */\r\nexport type ScrollControllerCallback = (target: Element) => void;\r\n\r\n/** Encapsulates options used to configure a `ScrollController`. */\r\nexport interface ScrollControllerOptions extends MonitorControllerOptions {\r\n /** The callback invoked a scrollable ancestor is scrolled. */\r\n callback: ScrollControllerCallback;\r\n\r\n /** Whether to debounce scroll events. */\r\n debounce?: boolean;\r\n}\r\n\r\n/** A `ReactiveController` used to monitor when a scroll event is emitted from a scrollable ancestor. */\r\nexport class ScrollController extends MonitorControllerBase {\r\n /** @private */ readonly #debounce: boolean;\r\n /** @private */ readonly #callback: ScrollControllerCallback;\r\n /** @private */ readonly #scrollHandler = (e: Event) => this.#handleScroll(e);\r\n /** @private */ readonly #scrollContainers = new Map<HTMLElement, Element[]>();\r\n\r\n /**\r\n * Initializes a new instance of the `ScrollController` class.\r\n * @param {ReactiveControllerHost & HTMLElement} host The host element to which this controller will be added.\r\n * @param {ScrollControllerOptions} options Options used to configure this controller.\r\n */\r\n constructor(host: ReactiveControllerHost & HTMLElement, options: ScrollControllerOptions) {\r\n super(host, options);\r\n this.#debounce = options.debounce === true;\r\n this.#callback = options.callback;\r\n }\r\n\r\n /**\r\n * Returns the scrollable ancestors for a target element currently being observed by this controller.\r\n * @param target The element whose scroll containers are currently being observed.\r\n * @returns {Element[] | undefined} The scrollable ancestors, or `undefined` if `target` is not being observed.\r\n */\r\n getScrollContainers(target: HTMLElement): Element[] | undefined {\r\n return this.#scrollContainers.get(target);\r\n }\r\n\r\n /** @inheritdoc */\r\n protected override _observe(target: HTMLElement): void {\r\n const scrollableAncestors = this.#getScrollContainers(target);\r\n if (scrollableAncestors.length > 0) {\r\n this.#scrollContainers.set(target, scrollableAncestors);\r\n for (const ancestor of scrollableAncestors) {\r\n (ancestor === document.documentElement ? document : ancestor).addEventListener(\"scroll\", this.#scrollHandler, {\r\n passive: true,\r\n });\r\n }\r\n }\r\n }\r\n\r\n /** @inheritdoc */\r\n protected override _unobserve(target: HTMLElement): void {\r\n if (this.#scrollContainers.has(target)) {\r\n for (const ancestor of this.#scrollContainers.get(target)!) {\r\n (ancestor === document.documentElement ? document : ancestor).removeEventListener(\r\n \"scroll\",\r\n this.#scrollHandler\r\n );\r\n }\r\n this.#scrollContainers.delete(target);\r\n }\r\n }\r\n\r\n /** @private */\r\n #getScrollContainers(element: Element): Element[] {\r\n const ancestors = new Array<Element>();\r\n let ancestor: Element | null = element;\r\n while (ancestor) {\r\n const style = getComputedStyle(ancestor);\r\n if (/(auto|scroll)/.test(style.overflow + style.overflowY + style.overflowX)) {\r\n ancestors.push(ancestor);\r\n }\r\n ancestor = ancestor.parentElement;\r\n }\r\n return ancestors;\r\n }\r\n\r\n /** @private */\r\n #handleScroll(e: Event): void {\r\n const target = e.target === document ? document.documentElement : e.target;\r\n if (this.#debounce) {\r\n this._debounceCallback(target as Element);\r\n } else {\r\n this.#callback(target as Element);\r\n }\r\n }\r\n\r\n /** @private */\r\n @debounce(40)\r\n private _debounceCallback(target: Element): void {\r\n this.#callback(target);\r\n }\r\n}\r\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, nothing } from \"lit\";\r\nimport { AttributePart, directive, Directive, DirectiveParameters, PartInfo, PartType } from \"lit/directive.js\";\r\n\r\n/**\r\n * A key-value set of CSS properties and values.\r\n *\r\n * The key should be either a valid CSS property name string, like\r\n * `'background-color'`, or a valid JavaScript camel case property name\r\n * for CSSStyleDeclaration like `backgroundColor`.\r\n */\r\nexport interface StyleInfo {\r\n [name: string]: string | number | undefined | null;\r\n}\r\n\r\nconst important = \"important\";\r\n// The leading space is important\r\nconst importantFlag = \" !\" + important;\r\n// How many characters to remove from a value, as a negative number\r\nconst flagTrim = 0 - importantFlag.length;\r\n\r\nclass SafeStyleMapDirective extends Directive {\r\n private _previousStyleProperties?: Set<string>;\r\n\r\n constructor(partInfo: PartInfo) {\r\n super(partInfo);\r\n if (partInfo.type !== PartType.ATTRIBUTE || partInfo.name !== \"style\" || (partInfo.strings?.length as number) > 2) {\r\n throw new Error(\r\n \"The `styleMap` directive must be used in the `style` attribute \" +\r\n \"and must be the only part in the attribute.\"\r\n );\r\n }\r\n }\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n render(_: Readonly<StyleInfo>) {\r\n return nothing;\r\n }\r\n\r\n override update(part: AttributePart, [styleInfo]: DirectiveParameters<this>) {\r\n const { style } = part.element as HTMLElement;\r\n\r\n if (this._previousStyleProperties === undefined) {\r\n this._previousStyleProperties = new Set(Object.keys(styleInfo));\r\n }\r\n\r\n // Remove old properties that no longer exist in styleInfo\r\n for (const name of this._previousStyleProperties) {\r\n // If the name isn't in styleInfo or it's null/undefined\r\n if (styleInfo[name] == null) {\r\n this._previousStyleProperties!.delete(name);\r\n if (name.includes(\"-\")) {\r\n style.removeProperty(name);\r\n } else {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n (style as any)[name] = null;\r\n }\r\n }\r\n }\r\n\r\n // Add or update properties\r\n for (const name in styleInfo) {\r\n const value = styleInfo[name];\r\n if (value != null) {\r\n this._previousStyleProperties.add(name);\r\n const isImportant = typeof value === \"string\" && value.endsWith(importantFlag);\r\n if (name.includes(\"-\") || isImportant) {\r\n style.setProperty(\r\n name,\r\n isImportant ? (value as string).slice(0, flagTrim) : (value as string),\r\n isImportant ? important : \"\"\r\n );\r\n } else {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n (style as any)[name] = value;\r\n }\r\n }\r\n }\r\n return noChange;\r\n }\r\n}\r\n\r\n/**\r\n * A directive that applies CSS properties to an element.\r\n *\r\n * `safeStyleMap` can only be used in the `style` attribute and must be the only\r\n * expression in the attribute. It takes the property names in the\r\n * {@link StyleInfo styleInfo} object and adds the properties to the inline\r\n * style of the element.\r\n *\r\n * Property names with dashes (`-`) are assumed to be valid CSS\r\n * property names and set on the element's style object using `setProperty()`.\r\n * Names without dashes are assumed to be camelCased JavaScript property names\r\n * and set on the element's style object using property assignment, allowing the\r\n * style object to translate JavaScript-style names to CSS property names.\r\n *\r\n * For example `safeStyleMap({backgroundColor: 'red', 'border-top': '5px', '--size':\r\n * '0'})` sets the `background-color`, `border-top` and `--size` properties.\r\n *\r\n * @param styleInfo\r\n * @see {@link https://lit.dev/docs/templates/directives/#stylemap styleMap code samples on Lit.dev}\r\n */\r\nexport const safeStyleMap = directive(SafeStyleMapDirective);\r\n\r\n/**\r\n * The type of the class that powers this directive. Necessary for naming the\r\n * directive's return type.\r\n */\r\nexport type { SafeStyleMapDirective };\r\n","/**\r\n * Determines whether an object has keys for a given type.\r\n * @template T The type to test.\r\n * @param {unknown} value The value to test.\r\n * @param {...keys: Array<keyof T>} keys The keys of `T` to test.\r\n * @returns {boolean} Whether `value` has all `keys`.\r\n */\r\nexport function hasKeys<T extends object>(value: unknown, ...keys: Array<keyof T>): boolean {\r\n return typeof value === \"object\" && value !== null && keys.every((x) => x in value);\r\n}\r\n","import { LitElement } from \"lit\";\r\n\r\nimport { Constructor } from \"./Constructor\";\r\nimport { hasKeys } from \"./hasKeys\";\r\n\r\n/** A symbol through which to access the `ElementInternals` attached to an element. */\r\nexport const internals = Symbol(\"internals\");\r\n\r\n/** Defines functionality for an element attached to `ElementInternals`. */\r\nexport interface AttachInternalsMixin {\r\n /** The `ElementInternals` attached to the element. */\r\n readonly [internals]: ElementInternals;\r\n}\r\n\r\n/**\r\n * Determines whether a value is an `AttachInternalsMixin`.\r\n * @param {unknown} value The value to test.\r\n * @returns Whether `value` is an `AttachInternalsMixin`.\r\n */\r\nexport function isAttachInternalsMixin(value: unknown): value is AttachInternalsMixin {\r\n return hasKeys<AttachInternalsMixin>(value, internals);\r\n}\r\n\r\nconst _internals = Symbol(\"_internals\");\r\n\r\n/**\r\n * Mixin to augment an element with behavior that attaches to `ElementInternals`.\r\n * @template T The type of the base class.\r\n * @param {T} base The base class.\r\n * @param {boolean | undefined} formAssociated Whether the element is \"Form Associated\".\r\n * @returns {Constructor<AttachInternalsMixin> & T} A constructor that implements `AttachInternalsMixin`.\r\n */\r\nexport function AttachInternals<T extends Constructor<LitElement>>(\r\n base: T,\r\n formAssociated?: boolean\r\n): Constructor<AttachInternalsMixin> & T {\r\n abstract class _AttachInternals extends base implements AttachInternalsMixin {\r\n /** Indicates that this custom element participates in form submission, validation, and form state restoration. */\r\n static readonly formAssociated = formAssociated;\r\n\r\n /** @private */\r\n private [_internals]?: ElementInternals;\r\n\r\n /** @internal */\r\n get [internals](): ElementInternals {\r\n return this[_internals] ?? (this[_internals] = this.attachInternals());\r\n }\r\n }\r\n\r\n return _AttachInternals;\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","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst e=(e,t,c)=>(c.configurable=!0,c.enumerable=!0,Reflect.decorate&&\"object\"!=typeof t&&Object.defineProperty(e,t,c),c);export{e as desc};\n//# sourceMappingURL=base.js.map\n","import{desc as t}from\"./base.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */function e(e,r){return(n,s,i)=>{const o=t=>t.renderRoot?.querySelector(e)??null;if(r){const{get:e,set:r}=\"object\"==typeof s?n:i??(()=>{const t=Symbol();return{get(){return this[t]},set(e){this[t]=e}}})();return t(n,s,{get(){let t=e.call(this);return void 0===t&&(t=o(this),(null!==t||this.hasUpdated)&&r.call(this,t)),t}})}return t(n,s,{get(){return o(this)}})}}export{e as query};\n//# sourceMappingURL=query.js.map\n","import{desc as t}from\"./base.js\";\n/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */function o(o){return(e,n)=>{const{slot:r,selector:s}=o??{},c=\"slot\"+(r?`[name=${r}]`:\":not([name])\");return t(e,n,{get(){const t=this.renderRoot?.querySelector(c),e=t?.assignedElements(o)??[];return void 0===s?e:e.filter((t=>t.matches(s)))}})}}export{o as queryAssignedElements};\n//# sourceMappingURL=query-assigned-elements.js.map\n","import { LitElement, PropertyValues } from \"lit\";\r\nimport { property } from \"lit/decorators.js\";\r\n\r\nimport { Constructor } from \"./Constructor\";\r\nimport { hasKeys } from \"./hasKeys\";\r\n\r\n/** Defines functionality for an element which supports a checked state. */\r\nexport interface CheckedMixin {\r\n /**\r\n * Whether the element is checked.\r\n * @default false\r\n */\r\n checked: boolean;\r\n}\r\n\r\n/**\r\n * Determines whether a value is a `CheckedMixin`.\r\n * @param {unknown} value The value to test.\r\n * @returns Whether `value` is a `CheckedMixin`.\r\n */\r\nexport function isCheckedMixin(value: unknown): value is CheckedMixin {\r\n return hasKeys<CheckedMixin>(value, \"checked\");\r\n}\r\n\r\n/**\r\n * Mixin to augment an element with behavior that supports a checked state.\r\n * @template T The type of the base class.\r\n * @param {T} base The base class.\r\n * @returns {Constructor<CheckedMixin> & T} A constructor that implements `CheckedMixin`.\r\n */\r\nexport function Checked<T extends Constructor<LitElement>>(base: T): Constructor<CheckedMixin> & T {\r\n abstract class _CheckedMixin extends base implements CheckedMixin {\r\n /**\r\n * Whether the element is checked.\r\n * @default false\r\n */\r\n @property({ type: Boolean, reflect: true }) checked = false;\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(\"checked\")) {\r\n if (this.role === \"button\") {\r\n this.ariaPressed = `${this.checked}`;\r\n this.ariaChecked = null;\r\n } else if (this.role && this.role !== \"none\" && this.role !== \"presentation\") {\r\n this.ariaChecked = `${this.checked}`;\r\n this.ariaPressed = null;\r\n }\r\n }\r\n }\r\n }\r\n return _CheckedMixin;\r\n}\r\n","import { LitElement, PropertyValues } from \"lit\";\r\nimport { property } from \"lit/decorators.js\";\r\n\r\nimport { Checked, CheckedMixin, isCheckedMixin } from \"./Checked\";\r\nimport { Constructor } from \"./Constructor\";\r\nimport { hasKeys } from \"./hasKeys\";\r\n\r\n/** Defines functionality for an element which supports a mixed checked state. */\r\nexport interface CheckedIndeterminateMixin extends CheckedMixin {\r\n /**\r\n * Whether the element's checked state is indeterminate.\r\n * @default false\r\n */\r\n indeterminate: boolean;\r\n}\r\n\r\n/**\r\n * Determines whether a value is a `CheckedIndeterminateMixin`.\r\n * @param {unknown} value The value to test.\r\n * @returns Whether `value` is a `CheckedIndeterminateMixin`.\r\n */\r\nexport function isCheckedIndeterminateMixin(value: unknown): value is CheckedIndeterminateMixin {\r\n return hasKeys<CheckedIndeterminateMixin>(value, \"indeterminate\") && isCheckedMixin(value);\r\n}\r\n\r\n/**\r\n * Mixin to augment an element with behavior that supports a mixed checked state.\r\n * @template T The type of the base class.\r\n * @param {T} base The base class.\r\n * @returns {Constructor<CheckedIndeterminateMixin> & T} A constructor that implements `CheckedIndeterminateMixin`.\r\n */\r\nexport function CheckedIndeterminate<T extends Constructor<LitElement>>(\r\n base: T\r\n): Constructor<CheckedIndeterminateMixin> & T {\r\n abstract class _CheckedIndeterminateMixin extends Checked(base) implements CheckedIndeterminateMixin {\r\n /**\r\n * Whether the element's checked state is indeterminate.\r\n * @default false\r\n */\r\n @property({ type: Boolean, reflect: true }) indeterminate = false;\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(\"indeterminate\") && this.role && this.role !== \"none\" && this.role !== \"presentation\") {\r\n this.ariaChecked = !this.checked && this.indeterminate ? \"mixed\" : `${this.checked}`;\r\n }\r\n }\r\n }\r\n return _CheckedIndeterminateMixin;\r\n}\r\n","import { LitElement, PropertyValues } from \"lit\";\r\nimport { property } from \"lit/decorators.js\";\r\n\r\nimport { Constructor } from \"./Constructor\";\r\nimport { hasKeys } from \"./hasKeys\";\r\n\r\n/** Defines functionality for an element which supports a selected state. */\r\nexport interface SelectedMixin {\r\n /**\r\n * Whether the element is selected.\r\n * @default false\r\n */\r\n selected: boolean;\r\n}\r\n\r\n/**\r\n * Determines whether a value is a `SelectedMixin`.\r\n * @param {unknown} value The value to test.\r\n * @returns Whether `value` is a `SelectedMixin`.\r\n */\r\nexport function isSelectedMixin(value: unknown): value is SelectedMixin {\r\n return hasKeys<SelectedMixin>(value, \"selected\");\r\n}\r\n\r\n/**\r\n * Mixin to augment an element with behavior that supports a selected state.\r\n * @template T The type of the base class.\r\n * @param {T} base The base class.\r\n * @returns {Constructor<SelectedMixin> & T} A constructor that implements `SelectedMixin`.\r\n */\r\nexport function Selected<T extends Constructor<LitElement>>(base: T): Constructor<SelectedMixin> & T {\r\n abstract class _SelectedMixin extends base implements SelectedMixin {\r\n /**\r\n * Whether the element is selected.\r\n * @default false\r\n */\r\n @property({ type: Boolean, reflect: true }) selected = false;\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(\"selected\")) {\r\n if (this.role === \"button\") {\r\n this.ariaPressed = `${this.selected}`;\r\n this.ariaSelected = null;\r\n } else if (this.role && this.role !== \"none\" && this.role !== \"presentation\") {\r\n this.ariaSelected = `${this.selected}`;\r\n this.ariaPressed = null;\r\n }\r\n }\r\n }\r\n }\r\n return _SelectedMixin;\r\n}\r\n","import { CheckedMixin, isCheckedMixin } from \"./Checked\";\r\nimport { isSelectedMixin, SelectedMixin } from \"./Selected\";\r\n\r\n/** Defines functionality for an element which supports either a checked or selected state. */\r\nexport type CheckedOrSelectedMixin = CheckedMixin | SelectedMixin;\r\n\r\n/**\r\n * Determines whether a value is a `CheckedOrSelectedMixin`.\r\n * @param {unknown} value The value to test.\r\n * @returns Whether `value` is a `CheckedOrSelectedMixin`.\r\n */\r\nexport function isCheckedOrSelectedMixin(value: unknown): value is CheckedOrSelectedMixin {\r\n return isCheckedMixin(value) || isSelectedMixin(value);\r\n}\r\n\r\n/**\r\n * Determines whether the state of an element is checked or selected.\r\n * @param {CheckedOrSelectedMixin} element The element to test.\r\n * @return {boolean} Whether `element` is checked or selected.\r\n */\r\nexport function isCheckedOrSelected(element: CheckedOrSelectedMixin): boolean {\r\n return (isCheckedMixin(element) && element.checked) || (isSelectedMixin(element) && element.selected);\r\n}\r\n\r\n/**\r\n * Sets the checked or selected state of an element.\r\n * @param {CheckedOrSelectedMixin} element The element for which to set the checked or selected state.\r\n * @param {boolean} checkedOrSelected The checked or selected state.\r\n */\r\nexport function checkOrSelect(element: CheckedOrSelectedMixin, checkedOrSelected: boolean): void {\r\n if (isCheckedMixin(element)) {\r\n element.checked = checkedOrSelected;\r\n } else {\r\n element.selected = checkedOrSelected;\r\n }\r\n}\r\n","import { LitElement } from \"lit\";\r\n\r\nimport { Constructor } from \"./Constructor\";\r\nimport { hasKeys } from \"./hasKeys\";\r\n\r\n/** Defines functionality for an element that can be marked as dirty. */\r\nexport interface DirtyMixin {\r\n /** Whether the user has not modified the value of the element. */\r\n readonly pristine: boolean;\r\n\r\n /** Whether the user has modified the value of the element. */\r\n readonly dirty: boolean;\r\n\r\n /** Marks the element as pristine. */\r\n markAsPristine(): void;\r\n\r\n /** Marks the element as dirty. */\r\n markAsDirty(): void;\r\n}\r\n\r\n/**\r\n * Determines whether a value is a `DirtyMixin`.\r\n * @param {unknown} value The value to test.\r\n * @returns A value indicating whether `value` is a `DirtyMixin`.\r\n */\r\nexport function isDirtyMixin(value: unknown): value is DirtyMixin {\r\n return hasKeys<DirtyMixin>(value, \"dirty\", \"pristine\", \"markAsDirty\", \"markAsPristine\");\r\n}\r\n\r\nconst _eventHandler = Symbol(\"_eventHandler\");\r\n\r\n/**\r\n * Mixin to augment an element with functionality used to mark it as dirty.\r\n * @template T The type of the base class.\r\n * @param {T} base The base class.\r\n * @returns {Constructor<DirtyMixin> & T} A constructor that implements `DirtyMixin`.\r\n */\r\nexport function Dirty<T extends Constructor<LitElement>>(base: T): Constructor<DirtyMixin> & T {\r\n abstract class _Dirty extends base implements DirtyMixin {\r\n /** @private */\r\n private [_eventHandler] = () => this.markAsDirty();\r\n\r\n /** Whether the user has modified the value of the element. */\r\n get dirty(): boolean {\r\n return this.classList.contains(\"-dirty\");\r\n }\r\n\r\n /** Whether the user has not modified the value of the element. */\r\n get pristine(): boolean {\r\n return !this.dirty;\r\n }\r\n\r\n /** @inheritdoc */\r\n override connectedCallback(): void {\r\n this.markAsPristine();\r\n super.connectedCallback();\r\n this.addEventListener(\"change\", this[_eventHandler]);\r\n }\r\n\r\n /** @inheritdoc */\r\n override disconnectedCallback(): void {\r\n super.disconnectedCallback();\r\n this.removeEventListener(\"change\", this[_eventHandler]);\r\n }\r\n\r\n /** Marks the element as pristine. */\r\n markAsPristine(): void {\r\n this.classList.toggle(\"-dirty\", false);\r\n }\r\n\r\n /** Marks the element as dirty. */\r\n markAsDirty(): void {\r\n this.classList.toggle(\"-dirty\", true);\r\n }\r\n }\r\n\r\n return _Dirty;\r\n}\r\n","import { LitElement } from \"lit\";\r\n\r\nimport { Constructor } from \"./Constructor\";\r\nimport { hasKeys } from \"./hasKeys\";\r\n\r\n/** Defines functionality for an element that can be marked as touched. */\r\nexport interface TouchedMixin {\r\n /** Whether the user has interacted when the element. */\r\n readonly touched: boolean;\r\n\r\n /** Whether the user has not interacted when the element. */\r\n readonly untouched: boolean;\r\n\r\n /** Marks the element as touched. */\r\n markAsTouched(): void;\r\n\r\n /** Marks the element as untouched. */\r\n markAsUntouched(): void;\r\n}\r\n\r\n/**\r\n * Determines whether a value is a `TouchedMixin`.\r\n * @param {unknown} value The value to test.\r\n * @returns A value indicating whether `value` is a `TouchedMixin`.\r\n */\r\nexport function isTouchedMixin(value: unknown): value is TouchedMixin {\r\n return hasKeys<TouchedMixin>(value, \"touched\", \"untouched\", \"markAsTouched\", \"markAsUntouched\");\r\n}\r\n\r\nconst _eventHandler = Symbol(\"_eventHandler\");\r\n\r\n/**\r\n * Mixin to augment an element with functionality used to mark it as touched.\r\n * @template T The type of the base class.\r\n * @param {T} base The base class.\r\n * @returns {Constructor<TouchedMixin> & T} A constructor that implements `TouchedMixin`.\r\n */\r\nexport function Touched<T extends Constructor<LitElement>>(base: T): Constructor<TouchedMixin> & T {\r\n abstract class _Touched extends base implements TouchedMixin {\r\n /** @private */\r\n private [_eventHandler] = () => this.markAsTouched();\r\n\r\n /** Whether the user has interacted when the element. */\r\n get touched(): boolean {\r\n return this.classList.contains(\"-touched\");\r\n }\r\n\r\n /** Whether the user has not interacted when the element. */\r\n get untouched(): boolean {\r\n return !this.touched;\r\n }\r\n\r\n /** @inheritdoc */\r\n override connectedCallback(): void {\r\n this.markAsUntouched();\r\n super.connectedCallback();\r\n this.addEventListener(\"focusout\", this[_eventHandler]);\r\n }\r\n\r\n /** @inheritdoc */\r\n override disconnectedCallback(): void {\r\n super.disconnectedCallback();\r\n this.removeEventListener(\"focusout\", this[_eventHandler]);\r\n }\r\n\r\n /** Marks the element as touched. */\r\n markAsTouched(): void {\r\n this.classList.toggle(\"-touched\", true);\r\n }\r\n\r\n /** Marks the element as untouched. */\r\n markAsUntouched(): void {\r\n this.classList.toggle(\"-touched\", false);\r\n }\r\n }\r\n\r\n return _Touched;\r\n}\r\n","import { unsafeCSS } from \"lit\";\r\n\r\n/** Design tokens that control color. */\r\nexport const ColorToken = {\r\n /** High-emphasis fills, texts, and icons against surface. */\r\n primary: unsafeCSS(\"var(--md-sys-color-primary, #6750A4)\"),\r\n\r\n /** Text and icons against primary. */\r\n onPrimary: unsafeCSS(\"var(--md-sys-color-on-primary, #FFFFFF)\"),\r\n\r\n /** Standout fill color against surface, for key components. */\r\n primaryContainer: unsafeCSS(\"var(--md-sys-color-primary-container, #EADDFF)\"),\r\n\r\n /** Text and icons against primary container. */\r\n onPrimaryContainer: unsafeCSS(\"var(--md-sys-color-on-primary-container, #4F378B)\"),\r\n\r\n /** High-emphasis fills, texts, and icons that maintain the same tone in light and dark themes. */\r\n primaryFixed: unsafeCSS(\"var(--md-sys-color-primary-fixed, #EADDFF)\"),\r\n\r\n /** High-emphasis fills, texts, and icons that maintain the same stronger tone in light and dark themes. */\r\n primaryFixedDim: unsafeCSS(\"var(--md-sys-color-primary-fixed-dim, #D0BCFF)\"),\r\n\r\n /** Text and icons against fixed primary. */\r\n onPrimaryFixed: unsafeCSS(\"var(--md-sys-color-on-primary-fixed, #21005D)\"),\r\n\r\n /** Lower-emphasis text and icons against fixed primary. */\r\n onPrimaryFixedVariant: unsafeCSS(\"var(--md-sys-color-on-primary-fixed-variant, #4F378B)\"),\r\n\r\n /** Less prominent fills, text, and icons against surface. */\r\n secondary: unsafeCSS(\"var(--md-sys-color-secondary, #625B71)\"),\r\n\r\n /** Text and icons against secondary. */\r\n onSecondary: unsafeCSS(\"var(--md-sys-color-on-secondary, #FFFFFF)\"),\r\n\r\n /** Less prominent fill color against surface, for recessive components. */\r\n secondaryContainer: unsafeCSS(\"var(--md-sys-color-secondary-container, #E8DEF8)\"),\r\n\r\n /** Text and icons against secondary container. */\r\n onSecondaryContainer: unsafeCSS(\"var(--md-sys-color-on-secondary-container, #4A4458)\"),\r\n\r\n /** Less prominent fills, texts, and icons that maintain the same tone in light and dark themes. */\r\n secondaryFixed: unsafeCSS(\"var(--md-sys-color-secondary-fixed, #E8DEF8)\"),\r\n\r\n /** Less prominent fills, texts, and icons that maintain the same stronger tone in light and dark themes. */\r\n secondaryFixedDim: unsafeCSS(\"var(--md-sys-color-secondary-fixed-dim, #CCC2DC)\"),\r\n\r\n /** Text and icons against fixed secondary. */\r\n onSecondaryFixed: unsafeCSS(\"var(--md-sys-color-on-secondary-fixed, #1D192B)\"),\r\n\r\n /** Lower-emphasis text and icons against fixed secondary. */\r\n onSecondaryFixedVariant: unsafeCSS(\"var(--md-sys-color-on-secondary-fixed-variant, #4A4458)\"),\r\n\r\n /** Complementary fills, text, and icons against surface. */\r\n tertiary: unsafeCSS(\"var(--md-sys-color-tertiary, #7D5260)\"),\r\n\r\n /** Text and icons against tertiary. */\r\n onTertiary: unsafeCSS(\"var(--md-sys-color-on-tertiary, #FFFFFF)\"),\r\n\r\n /** Complementary container color against surface. */\r\n tertiaryContainer: unsafeCSS(\"var(--md-sys-color-tertiary-container, #FFD8E4)\"),\r\n\r\n /** Text and icons against tertiary container. */\r\n onTertiaryContainer: unsafeCSS(\"var(--md-sys-color-on-tertiary-container, #633B48)\"),\r\n\r\n /** Complementary fills, texts, and icons that maintain the same tone in light and dark themes. */\r\n tertiaryFixed: unsafeCSS(\"var(--md-sys-color-tertiary-fixed, #FFD8E4)\"),\r\n\r\n /** Complementary fills, texts, and icons that maintain the same stronger tone in light and dark themes. */\r\n tertiaryFixedDim: unsafeCSS(\"var(--md-sys-color-tertiary-fixed-dim, #EFB8C8)\"),\r\n\r\n /** Text and icons against fixed tertiary. */\r\n onTertiaryFixed: unsafeCSS(\"var(--md-sys-color-on-tertiary-fixed, #31111D)\"),\r\n\r\n /** Lower-emphasis text and icons against fixed tertiary. */\r\n onTertiaryFixedVariant: unsafeCSS(\"var(--md-sys-color-on-tertiary-fixed-variant, #633B48)\"),\r\n\r\n /** Attention-grabbing color against surface for fills, icons, and text, indicating urgency. */\r\n error: unsafeCSS(\"var(--md-sys-color-error, #B3261E)\"),\r\n\r\n /** Text and icons against error. */\r\n onError: unsafeCSS(\"var(--md-sys-color-on-error, #FFFFFF)\"),\r\n\r\n /** Attention-grabbing fill color against surface. */\r\n errorContainer: unsafeCSS(\"var(--md-sys-color-error-container, #F9DEDC)\"),\r\n\r\n /** Text and icons against error container. */\r\n onErrorContainer: unsafeCSS(\"var(--md-sys-color-on-error-container, #8C1D18)\"),\r\n\r\n /** Default color for backgrounds. */\r\n surface: unsafeCSS(\"var(--md-sys-color-surface, #FEF7FF)\"),\r\n\r\n /** Text and icons against any surface color. */\r\n onSurface: unsafeCSS(\"var(--md-sys-color-on-surface, #1D1B20)\"),\r\n\r\n /** Lower-emphasis color for text and icons against any surface color. */\r\n onSurfaceVariant: unsafeCSS(\"var(--md-sys-color-on-surface-variant, #49454F)\"),\r\n\r\n /** Lowest-emphasis container color. */\r\n surfaceContainerLowest: unsafeCSS(\"var(--md-sys-color-surface-container-lowest, #FFFFFF)\"),\r\n\r\n /** Low-emphasis container color. */\r\n surfaceContainerLow: unsafeCSS(\"var(--md-sys-color-surface-container-low, #F7F2FA)\"),\r\n\r\n /** Default container color. */\r\n surfaceContainer: unsafeCSS(\"var(--md-sys-color-surface-container, #F3EDF7)\"),\r\n\r\n /** High-emphasis container color. */\r\n surfaceContainerHigh: unsafeCSS(\"var(--md-sys-color-surface-container-high, #ECE6F0)\"),\r\n\r\n /** Highest-emphasis container color. */\r\n surfaceContainerHighest: unsafeCSS(\"var(--md-sys-color-surface-container-highest, #E6E0E9)\"),\r\n\r\n /** Dimmest surface color in light and dark themes. */\r\n surfaceDim: unsafeCSS(\"var(--md-sys-color-surface-dim, #DED8E1)\"),\r\n\r\n /** Brightest surface color in light and dark themes. */\r\n surfaceBright: unsafeCSS(\"var(--md-sys-color-surface-bright, #FEF7FF)\"),\r\n\r\n /** Alternate surface color, can be used for active states. */\r\n surfaceVariant: unsafeCSS(\"var(--md-sys-color-surface-variant, #E7E0EC)\"),\r\n\r\n /** Background fills for elements which contrast against surface. */\r\n inverseSurface: unsafeCSS(\"var(--md-sys-color-inverse-surface, #322F35)\"),\r\n\r\n /** Text and icons against inverse surface. */\r\n inverseOnSurface: unsafeCSS(\"var(--md-sys-color-inverse-on-surface, #F5EFF7)\"),\r\n\r\n /** Primary text and icons against inverse surface. */\r\n inversePrimary: unsafeCSS(\"var(--md-sys-color-inverse-primary, #D0BCFF)\"),\r\n\r\n /** Important boundaries, such as a text field outline. */\r\n outline: unsafeCSS(\"var(--md-sys-color-outline, #79747E)\"),\r\n\r\n /** Decorative elements, such as dividers. */\r\n outlineVariant: unsafeCSS(\"var(--md-sys-color-outline-variant, #CAC4D0)\"),\r\n\r\n /** Elevation shadow color. */\r\n shadow: unsafeCSS(\"var(--md-sys-color-shadow, #000000)\"),\r\n\r\n /** Backdrop which obscures underlying content. */\r\n scrim: unsafeCSS(\"var(--md-sys-color-scrim, #000000)\"),\r\n} as const;\r\n","import { CSSResult, unsafeCSS } from \"lit\";\r\n\r\nconst _DensityToken = {\r\n /** Base density multiplier. */\r\n scale: unsafeCSS(\"var(--md-sys-density-scale, 0)\"),\r\n\r\n /** Spatial unit used to scale component dimensions based on density. */\r\n size: unsafeCSS(\"var(--md-sys-density-size, 0.25rem)\"),\r\n} as const;\r\n\r\n/** Design tokens that control density. */\r\nexport const DensityToken = {\r\n ..._DensityToken,\r\n\r\n /**\r\n * Creates a CSS `calc` that calculates a dimension based on density.\r\n * @param {number} minScale The minimum supported scale.\r\n * @returns {CSSResult} A CSS `calc` used to calculate a dimension based on density.\r\n */\r\n calc(minScale: number): CSSResult {\r\n return unsafeCSS(`calc(max(${minScale}, ${_DensityToken.scale}) * ${_DensityToken.size})`);\r\n },\r\n} as const;\r\n","import { unsafeCSS } from \"lit\";\r\n\r\nimport { ColorToken } from \"./ColorToken\";\r\n\r\nconst UMBRA_COLOR = `color-mix(in srgb, var(--m3e-elevation-color, ${ColorToken.shadow}) 20%, transparent)`;\r\nconst UMBRA = [\r\n \"0px 0px 0px 0px\",\r\n \"0px 2px 1px -1px\",\r\n \"0px 3px 1px -2px\",\r\n \"0px 3px 3px -2px\",\r\n \"0px 2px 4px -1px\",\r\n \"0px 3px 5px -1px\",\r\n \"0px 3px 5px -1px\",\r\n \"0px 4px 5px -2px\",\r\n \"0px 5px 5px -3px\",\r\n \"0px 5px 6px -3px\",\r\n \"0px 6px 6px -3px\",\r\n \"0px 6px 7px -4px\",\r\n \"0px 7px 8px -4px\",\r\n \"0px 7px 8px -4px\",\r\n \"0px 7px 9px -4px\",\r\n \"0px 8px 9px -5px\",\r\n \"0px 8px 10px -5px\",\r\n \"0px 8px 11px -5px\",\r\n \"0px 9px 11px -5px\",\r\n \"0px 9px 12px -6px\",\r\n \"0px 10px 13px -6px\",\r\n \"0px 10px 13px -6px\",\r\n \"0px 10px 14px -6px\",\r\n \"0px 11px 14px -7px\",\r\n \"0px 11px 15px -7px\",\r\n];\r\n\r\nconst PENUMBRA_COLOR = `color-mix(in srgb, var(--m3e-elevation-color, ${ColorToken.shadow}) 14%, transparent)`;\r\nconst PENUMBRA = [\r\n \"0px 0px 0px 0px\",\r\n \"0px 1px 1px 0px\",\r\n \"0px 2px 2px 0px\",\r\n \"0px 3px 4px 0px\",\r\n \"0px 4px 5px 0px\",\r\n \"0px 5px 8px 0px\",\r\n \"0px 6px 10px 0px\",\r\n \"0px 7px 10px 1px\",\r\n \"0px 8px 10px 1px\",\r\n \"0px 9px 12px 1px\",\r\n \"0px 10px 14px 1px\",\r\n \"0px 11px 15px 1px\",\r\n \"0px 12px 17px 2px\",\r\n \"0px 13px 19px 2px\",\r\n \"0px 14px 21px 2px\",\r\n \"0px 15px 22px 2px\",\r\n \"0px 16px 24px 2px\",\r\n \"0px 17px 26px 2px\",\r\n \"0px 18px 28px 2px\",\r\n \"0px 19px 29px 2px\",\r\n \"0px 20px 31px 3px\",\r\n \"0px 21px 33px 3px\",\r\n \"0px 22px 35px 3px\",\r\n \"0px 23px 36px 3px\",\r\n \"0px 24px 38px 3px\",\r\n];\r\n\r\nconst AMBIENT_COLOR = `color-mix(in srgb, var(--m3e-elevation-color, ${ColorToken.shadow}) 12%, transparent)`;\r\nconst AMBIENT = [\r\n \"0px 0px 0px 0px\",\r\n \"0px 1px 3px 0px\",\r\n \"0px 1px 5px 0px\",\r\n \"0px 1px 8px 0px\",\r\n \"0px 1px 10px 0px\",\r\n \"0px 1px 14px 0px\",\r\n \"0px 1px 18px 0px\",\r\n \"0px 2px 16px 1px\",\r\n \"0px 3px 14px 2px\",\r\n \"0px 3px 16px 2px\",\r\n \"0px 4px 18px 3px\",\r\n \"0px 4px 20px 3px\",\r\n \"0px 5px 22px 4px\",\r\n \"0px 5px 24px 4px\",\r\n \"0px 5px 26px 4px\",\r\n \"0px 6px 28px 5px\",\r\n \"0px 6px 30px 5px\",\r\n \"0px 6px 32px 5px\",\r\n \"0px 7px 34px 6px\",\r\n \"0px 7px 36px 6px\",\r\n \"0px 8px 38px 7px\",\r\n \"0px 8px 40px 7px\",\r\n \"0px 8px 42px 7px\",\r\n \"0px 9px 44px 8px\",\r\n \"0px 9px 46px 8px\",\r\n];\r\n\r\nfunction elevation(z: number) {\r\n return `${UMBRA_COLOR} ${UMBRA[z]},${PENUMBRA_COLOR} ${PENUMBRA[z]},${AMBIENT_COLOR} ${AMBIENT[z]}`;\r\n}\r\n\r\n/** Design tokens that control elevation. */\r\nexport const ElevationToken = {\r\n /** Level 0 elevation. */\r\n level0: unsafeCSS(`var(--md-sys-elevation-level0, ${elevation(0)})`),\r\n\r\n /** Level 1 elevation. */\r\n level1: unsafeCSS(`var(--md-sys-elevation-level1, ${elevation(1)})`),\r\n\r\n /** Level 2 elevation. */\r\n level2: unsafeCSS(`var(--md-sys-elevation-level2, ${elevation(3)})`),\r\n\r\n /** Level 3 elevation. */\r\n level3: unsafeCSS(`var(--md-sys-elevation-level3, ${elevation(6)})`),\r\n\r\n /** Level 4 elevation. */\r\n level4: unsafeCSS(`var(--md-sys-elevation-level4, ${elevation(8)})`),\r\n\r\n /** Level 5 elevation. */\r\n level5: unsafeCSS(`var(--md-sys-elevation-level5, ${elevation(12)})`),\r\n} as const;\r\n","import { unsafeCSS } from \"lit\";\r\n\r\nconst EasingToken = {\r\n /** Emphasized transition. */\r\n emphasized: unsafeCSS(\"var(--md-sys-motion-easing-emphasized, cubic-bezier(0.2, 0.0, 0, 1.0))\"),\r\n\r\n /** Decelerated emphasized transition. */\r\n emphasizedDecelerate: unsafeCSS(\r\n \"var(--md-sys-motion-easing-emphasized-decelerate, cubic-bezier(0.05, 0.7, 0.1, 1.0))\"\r\n ),\r\n\r\n /** Accelerated emphasized transition. */\r\n emphasizedAccelerate: unsafeCSS(\r\n \"var(--md-sys-motion-easing-emphasized-accelerate, cubic-bezier(0.3, 0.0, 0.8, 0.15))\"\r\n ),\r\n\r\n /** Simple, small, or utility-focused transition. */\r\n standard: unsafeCSS(\"var(--md-sys-motion-easing-standard, cubic-bezier(0.2, 0.0, 0, 1.0))\"),\r\n\r\n /** Decelerated standard transition. */\r\n standardDecelerate: unsafeCSS(\"var(--md-sys-motion-easing-standard-decelerate, cubic-bezier(0, 0, 0, 1))\"),\r\n\r\n /** Accelerated standard transition. */\r\n standardAccelerate: unsafeCSS(\"var(--md-sys-motion-easing-standard-accelerate, cubic-bezier(0.3, 0, 1, 1))\"),\r\n} as const;\r\n\r\nconst SpringToken = {\r\n /** Fast spatial spring. */\r\n fastSpatial: unsafeCSS(\"var(--md-sys-motion-spring-fast-spatial, 350ms cubic-bezier(0.27, 1.06, 0.18, 1.00))\"),\r\n\r\n /** Default spatial spring. */\r\n defaultSpatial: unsafeCSS(\"var(--md-sys-motion-spring-default-spatial, 500ms cubic-bezier(0.27, 1.06, 0.18, 1.00))\"),\r\n\r\n /** Slow spatial spring. */\r\n slowSpatial: unsafeCSS(\"var(--md-sys-motion-spring-slow-spatial, 750ms cubic-bezier(0.27, 1.06, 0.18, 1.00))\"),\r\n\r\n /** Fast effects spring. */\r\n fastEffects: unsafeCSS(\"var(--md-sys-motion-spring-fast-effects, 150ms cubic-bezier(0.31, 0.94, 0.34, 1.00))\"),\r\n\r\n /** Default effects spring. */\r\n defaultEffects: unsafeCSS(\"var(--md-sys-motion-spring-default-effects, 200ms cubic-bezier(0.34, 0.80, 0.34, 1.00))\"),\r\n\r\n /** Slow effects spring. */\r\n slowEffects: unsafeCSS(\"var(--md-sys-motion-spring-slow-effects, 200ms cubic-bezier(0.34, 0.88, 0.34, 1.00))\"),\r\n} as const;\r\n\r\nconst DurationToken = {\r\n /** Small utility-focused transition duration. */\r\n short1: unsafeCSS(\"var(--md-sys-motion-duration-short-1, 50ms)\"),\r\n\r\n /** Small utility-focused transition duration. */\r\n short2: unsafeCSS(\"var(--md-sys-motion-duration-short-2, 100ms)\"),\r\n\r\n /** Small utility-focused transition duration. */\r\n short3: unsafeCSS(\"var(--md-sys-motion-duration-short-3, 150ms)\"),\r\n\r\n /** Small utility-focused transition duration. */\r\n short4: unsafeCSS(\"var(--md-sys-motion-duration-short-4, 200ms)\"),\r\n\r\n /** Duration for transitions that traverse a medium area of the screen. */\r\n medium1: unsafeCSS(\"var(--md-sys-motion-duration-medium-1, 250ms)\"),\r\n\r\n /** Duration for transitions that traverse a medium area of the screen. */\r\n medium2: unsafeCSS(\"var(--md-sys-motion-duration-medium-2, 300ms)\"),\r\n\r\n /** Duration for transitions that traverse a medium area of the screen. */\r\n medium3: unsafeCSS(\"var(--md-sys-motion-duration-medium-3, 350ms)\"),\r\n\r\n /** Duration for transitions that traverse a medium area of the screen. */\r\n medium4: unsafeCSS(\"var(--md-sys-motion-duration-medium-4, 400ms)\"),\r\n\r\n /** Duration for large expressive transitions. */\r\n long1: unsafeCSS(\"var(--md-sys-motion-duration-long-1, 450ms)\"),\r\n\r\n /** Duration for large expressive transitions. */\r\n long2: unsafeCSS(\"var(--md-sys-motion-duration-long-2, 500ms)\"),\r\n\r\n /** Duration for large expressive transitions. */\r\n long3: unsafeCSS(\"var(--md-sys-motion-duration-long-3, 550ms)\"),\r\n\r\n /** Duration for large expressive transitions. */\r\n long4: unsafeCSS(\"var(--md-sys-motion-duration-long-4, 600ms)\"),\r\n\r\n /** Extra long duration for ambient transitions. */\r\n extraLong1: unsafeCSS(\"var(--md-sys-motion-duration-extra-long-1, 700ms)\"),\r\n\r\n /** Extra long duration for ambient transitions. */\r\n extraLong2: unsafeCSS(\"var(--md-sys-motion-duration-extra-long-2, 800ms)\"),\r\n\r\n /** Extra long duration for ambient transitions. */\r\n extraLong3: unsafeCSS(\"var(--md-sys-motion-duration-extra-long-3, 900ms)\"),\r\n\r\n /** Extra long duration for ambient transitions. */\r\n extraLong4: unsafeCSS(\"var(--md-sys-motion-duration-extra-long-4, 1000ms)\"),\r\n} as const;\r\n\r\n/** Design tokens that control motion. */\r\nexport const MotionToken = {\r\n /** Design tokens that control transition effects. */\r\n easing: EasingToken,\r\n\r\n /** Design tokens that control transition duration. */\r\n duration: DurationToken,\r\n\r\n /** Design tokens that control spring effects. */\r\n spring: SpringToken,\r\n} as const;\r\n","import { unsafeCSS } from \"lit\";\r\n\r\n/** Design tokens that control scrollbars. */\r\nexport const ScrollbarToken = {\r\n /** Width of a standard scrollbar. */\r\n width: unsafeCSS(`var(--m3e-scrollbar-width, auto)`),\r\n\r\n /** Width of a thin scrollbar. */\r\n thinWidth: unsafeCSS(`var(--m3e-scrollbar-thin-width, thin)`),\r\n\r\n /** Color of a scrollbar. */\r\n color: unsafeCSS(`var(--m3e-scrollbar-thumb-color, #938f94) var(--m3e-scrollbar-track-color, transparent)`),\r\n} as const;\r\n","import { unsafeCSS } from \"lit\";\r\n\r\nconst CornerValue = {\r\n /** No rounding. */\r\n none: unsafeCSS(\"var(--md-sys-shape-corner-value-none, 0)\"),\r\n\r\n /** Extra small rounded corner. */\r\n extraSmall: unsafeCSS(\"var(--md-sys-shape-corner-value-extra-small, 0.25rem)\"),\r\n\r\n /** Small rounded corner. */\r\n small: unsafeCSS(\"var(--md-sys-shape-corner-value-small, 0.5rem)\"),\r\n\r\n /** Medium rounded corner. */\r\n medium: unsafeCSS(\"var(--md-sys-shape-corner-value-medium, 0.75rem)\"),\r\n\r\n /** Large rounded corner. */\r\n large: unsafeCSS(\"var(--md-sys-shape-corner-value-large, 1rem)\"),\r\n\r\n /** Increased large rounded corner. */\r\n largeIncreased: unsafeCSS(\"var(--md-sys-shape-corner-value-large-increased, 1.25rem)\"),\r\n\r\n /** Extra large rounded corner. */\r\n extraLarge: unsafeCSS(\"var(--md-sys-shape-corner-value-extra-large, 1.75rem)\"),\r\n\r\n /** Increased extra large rounded corner. */\r\n extraLargeIncreased: unsafeCSS(\"var(--md-sys-shape-corner-value-extra-large-increased, 2rem)\"),\r\n\r\n /** Extra extra large rounded corner. */\r\n extraExtraLarge: unsafeCSS(\"var(--md-sys-shape-corner-value-extra-extra-large, 3rem)\"),\r\n} as const;\r\n\r\n/** Design tokens that control shape. */\r\nexport const ShapeToken = {\r\n corner: {\r\n /** Fully rounded symmetric shape. */\r\n full: unsafeCSS(\"var(--md-sys-shape-corner-full, 624.9375rem)\"),\r\n\r\n /** Extra large rounded asymmetric shape directed towards the top. */\r\n extraLargeTop: unsafeCSS(\r\n `var(--md-sys-shape-corner-extra-large-top, ${CornerValue.extraLarge} ${CornerValue.extraLarge} ${CornerValue.none} ${CornerValue.none})`\r\n ),\r\n\r\n /** Extra large rounded symmetric shape. */\r\n extraLarge: unsafeCSS(`var(--md-sys-shape-corner-extra-large, ${CornerValue.extraLarge})`),\r\n\r\n /** Extra large rounded asymmetric shape directed towards the end. */\r\n extraLargeEnd: unsafeCSS(\r\n `${CornerValue.none} ${CornerValue.extraLarge} ${CornerValue.extraLarge} ${CornerValue.none}`\r\n ),\r\n\r\n /** Extra large rounded asymmetric shape directed towards the start. */\r\n extraLargeStart: unsafeCSS(\r\n `${CornerValue.extraLarge} ${CornerValue.none} ${CornerValue.none} ${CornerValue.extraLarge}`\r\n ),\r\n\r\n /** Large rounded asymmetric shape directed towards the top. */\r\n largeTop: unsafeCSS(\r\n `var(--md-sys-shape-corner-large-top, ${CornerValue.large} ${CornerValue.large} ${CornerValue.none} ${CornerValue.none})`\r\n ),\r\n\r\n /** Large rounded asymmetric shape directed towards the end. */\r\n largeEnd: unsafeCSS(\r\n `var(--md-sys-shape-corner-large-end, ${CornerValue.none} ${CornerValue.large} ${CornerValue.large} ${CornerValue.none})`\r\n ),\r\n\r\n /** Large rounded asymmetric shape directed towards the start. */\r\n largeStart: unsafeCSS(\r\n `var(--md-sys-shape-corner-large-end, ${CornerValue.large} ${CornerValue.none} ${CornerValue.none} ${CornerValue.large})`\r\n ),\r\n\r\n /** Large rounded symmetric shape. */\r\n large: unsafeCSS(`var(--md-sys-shape-corner-large, ${CornerValue.large})`),\r\n\r\n /** Medium rounded symmetric shape. */\r\n medium: unsafeCSS(`var(--md-sys-shape-corner-medium, ${CornerValue.medium})`),\r\n\r\n /** Medium rounded asymmetric shape directed towards the top. */\r\n mediumTop: unsafeCSS(`${CornerValue.medium} ${CornerValue.medium} ${CornerValue.none} ${CornerValue.none}`),\r\n\r\n /** Medium rounded asymmetric shape directed towards the end. */\r\n mediumEnd: unsafeCSS(`${CornerValue.none} ${CornerValue.medium} ${CornerValue.medium} ${CornerValue.none}`),\r\n\r\n /** Medium rounded asymmetric shape directed towards the start. */\r\n mediumStart: unsafeCSS(`${CornerValue.medium} ${CornerValue.none} ${CornerValue.none} ${CornerValue.medium}`),\r\n\r\n /** Small rounded symmetric shape. */\r\n small: unsafeCSS(`var(--md-sys-shape-corner-small, ${CornerValue.small})`),\r\n\r\n /** Small rounded asymmetric shape directed towards the top. */\r\n smallTop: unsafeCSS(`${CornerValue.small} ${CornerValue.small} ${CornerValue.none} ${CornerValue.none}`),\r\n\r\n /** Small rounded asymmetric shape directed towards the end. */\r\n smallEnd: unsafeCSS(`${CornerValue.none} ${CornerValue.small} ${CornerValue.small} ${CornerValue.none}`),\r\n\r\n /** Small rounded asymmetric shape directed towards the start. */\r\n smallStart: unsafeCSS(`${CornerValue.small} ${CornerValue.none} ${CornerValue.none} ${CornerValue.small}`),\r\n\r\n /** Extra small rounded asymmetric shape directed towards the top. */\r\n extraSmallTop: unsafeCSS(\r\n `var(--md-sys-shape-corner-extra-small-top, ${CornerValue.extraSmall} ${CornerValue.extraSmall} ${CornerValue.none} ${CornerValue.none})`\r\n ),\r\n\r\n /** Extra small rounded symmetric shape. */\r\n extraSmall: unsafeCSS(`var(--md-sys-shape-corner-extra-small, ${CornerValue.extraSmall})`),\r\n\r\n /** Extra small rounded asymmetric shape directed towards the end. */\r\n extraSmallEnd: unsafeCSS(\r\n `${CornerValue.none} ${CornerValue.extraSmall} ${CornerValue.extraSmall} ${CornerValue.none}`\r\n ),\r\n\r\n /** Extra small rounded asymmetric shape directed towards the start. */\r\n extraSmallStart: unsafeCSS(\r\n `${CornerValue.extraSmall} ${CornerValue.none} ${CornerValue.none} ${CornerValue.extraSmall}`\r\n ),\r\n\r\n /** Extra small rounded asymmetric shape directed towards the bottom. */\r\n extraSmallBottom: unsafeCSS(\r\n `${CornerValue.none} ${CornerValue.none} ${CornerValue.extraSmall} ${CornerValue.extraSmall}`\r\n ),\r\n\r\n /** No rounding. */\r\n none: unsafeCSS(`var(--md-sys-shape-corner-none, ${CornerValue.none})`),\r\n\r\n /** Increased large rounded symmetric shape. */\r\n largeIncreased: unsafeCSS(`var(--md-sys-shape-corner-large-increased, ${CornerValue.largeIncreased})`),\r\n\r\n /** Increased extra large rounded symmetric shape. */\r\n extraLargeIncreased: unsafeCSS(\r\n `var(--md-sys-shape-corner-extra-large-increased, ${CornerValue.extraLargeIncreased})`\r\n ),\r\n\r\n /** Extra extra large rounded symmetric shape. */\r\n extraExtraLarge: unsafeCSS(`var(--md-sys-shape-corner-extra-extra-large, ${CornerValue.extraExtraLarge})`),\r\n\r\n /** Design tokens that control specific corners. */\r\n value: CornerValue,\r\n },\r\n} as const;\r\n","import { unsafeCSS } from \"lit\";\r\n\r\n/** Design tokens that control state layer. */\r\nexport const StateToken = {\r\n /** Opacity of the state layer on focus. */\r\n focusStateLayerOpacity: unsafeCSS(\"var(--md-sys-state-focus-state-layer-opacity, 10%)\"),\r\n\r\n /** Opacity of the state layer on hover. */\r\n hoverStateLayerOpacity: unsafeCSS(\"var(--md-sys-state-hover-state-layer-opacity, 8%)\"),\r\n\r\n /** Opacity of the state layer on pressed. */\r\n pressedStateLayerOpacity: unsafeCSS(\"var(--md-sys-state-pressed-state-layer-opacity, 10%)\"),\r\n} as const;\r\n","import { unsafeCSS } from \"lit\";\r\n\r\n/** Design tokens that control typescale. */\r\nexport const TypescaleToken = {\r\n /** Standard typescale variant. */\r\n standard: {\r\n /** Short, important text or numerals. */\r\n display: {\r\n large: {\r\n fontSize: unsafeCSS(\"var(--md-sys-typescale-display-large-font-size, 3.5625rem)\"),\r\n fontWeight: unsafeCSS(\"var(--md-sys-typescale-display-large-font-weight, 400)\"),\r\n lineHeight: unsafeCSS(\"var(--md-sys-typescale-display-large-line-height, 4rem)\"),\r\n tracking: unsafeCSS(\"var(--md-sys-typescale-display-large-tracking, 0.015625rem)\"),\r\n },\r\n medium: {\r\n fontSize: unsafeCSS(\"var(--md-sys-typescale-display-medium-font-size, 2.8125rem)\"),\r\n fontWeight: unsafeCSS(\"var(--md-sys-typescale-display-medium-font-weight, 400)\"),\r\n lineHeight: unsafeCSS(\"var(--md-sys-typescale-display-medium-line-height, 3.25rem)\"),\r\n tracking: unsafeCSS(\"var(--md-sys-typescale-display-medium-tracking, 0)\"),\r\n },\r\n small: {\r\n fontSize: unsafeCSS(\"var(--md-sys-typescale-display-small-font-size, 2.25rem)\"),\r\n fontWeight: unsafeCSS(\"var(--md-sys-typescale-display-small-font-weight, 400)\"),\r\n lineHeight: unsafeCSS(\"var(--md-sys-typescale-display-small-line-height, 2.75rem)\"),\r\n tracking: unsafeCSS(\"var(--md-sys-typescale-display-small-tracking, 0)\"),\r\n },\r\n },\r\n\r\n /** Short, high-emphasis text on smaller screens. */\r\n headline: {\r\n large: {\r\n fontSize: unsafeCSS(\"var(--md-sys-typescale-headline-large-font-size, 2rem)\"),\r\n fontWeight: unsafeCSS(\"var(--md-sys-typescale-headline-large-font-weight, 400)\"),\r\n lineHeight: unsafeCSS(\"var(--md-sys-typescale-headline-large-line-height, 2.5rem)\"),\r\n tracking: unsafeCSS(\"var(--md-sys-typescale-headline-large-tracking, 0)\"),\r\n },\r\n medium: {\r\n fontSize: unsafeCSS(\"var(--md-sys-typescale-headline-medium-font-size, 1.75rem)\"),\r\n fontWeight: unsafeCSS(\"var(--md-sys-typescale-headline-medium-font-weight, 400)\"),\r\n lineHeight: unsafeCSS(\"var(--md-sys-typescale-headline-medium-line-height, 2.25rem)\"),\r\n tracking: unsafeCSS(\"var(--md-sys-typescale-headline-medium-tracking, 0)\"),\r\n },\r\n small: {\r\n fontSize: unsafeCSS(\"var(--md-sys-typescale-headline-small-font-size, 1.5rem)\"),\r\n fontWeight: unsafeCSS(\"var(--md-sys-typescale-headline-small-font-weight, 400)\"),\r\n lineHeight: unsafeCSS(\"var(--md-sys-typescale-headline-small-line-height, 2rem)\"),\r\n tracking: unsafeCSS(\"var(--md-sys-typescale-headline-small-tracking, 0)\"),\r\n },\r\n },\r\n\r\n /** Medium-emphasis text that remains relatively short. */\r\n title: {\r\n large: {\r\n fontSize: unsafeCSS(\"var(--md-sys-typescale-title-large-font-size, 1.375rem)\"),\r\n fontWeight: unsafeCSS(\"var(--md-sys-typescale-title-large-font-weight, 400)\"),\r\n lineHeight: unsafeCSS(\"var(--md-sys-typescale-title-large-line-height, 1.75rem)\"),\r\n tracking: unsafeCSS(\"var(--md-sys-typescale-title-large-tracking, 0)\"),\r\n },\r\n medium: {\r\n fontSize: unsafeCSS(\"var(--md-sys-typescale-title-medium-font-size, 1rem)\"),\r\n fontWeight: unsafeCSS(\"var(--md-sys-typescale-title-medium-font-weight, 500)\"),\r\n lineHeight: unsafeCSS(\"var(--md-sys-typescale-title-medium-line-height, 1.5rem)\"),\r\n tracking: unsafeCSS(\"var(--md-sys-typescale-title-medium-tracking, 0.009375rem)\"),\r\n },\r\n small: {\r\n fontSize: unsafeCSS(\"var(--md-sys-typescale-title-small-font-size, 0.875rem)\"),\r\n fontWeight: unsafeCSS(\"var(--md-sys-typescale-title-small-font-weight, 500)\"),\r\n lineHeight: unsafeCSS(\"var(--md-sys-typescale-title-small-line-height, 1.25rem)\"),\r\n tracking: unsafeCSS(\"var(--md-sys-typescale-title-small-tracking, 0.00625rem)\"),\r\n },\r\n },\r\n\r\n /** Longer passages of text. */\r\n body: {\r\n large: {\r\n fontSize: unsafeCSS(\"var(--md-sys-typescale-body-large-font-size, 1rem)\"),\r\n fontWeight: unsafeCSS(\"var(--md-sys-typescale-body-large-font-weight, 400)\"),\r\n lineHeight: unsafeCSS(\"var(--md-sys-typescale-body-large-line-height, 1.5rem)\"),\r\n tracking: unsafeCSS(\"var(--md-sys-typescale-body-large-tracking, 0.03125rem)\"),\r\n },\r\n medium: {\r\n fontSize: unsafeCSS(\"var(--md-sys-typescale-body-medium-font-size, 0.875rem)\"),\r\n fontWeight: unsafeCSS(\"var(--md-sys-typescale-body-medium-font-weight, 400)\"),\r\n lineHeight: unsafeCSS(\"var(--md-sys-typescale-body-medium-line-height, 1.25rem)\"),\r\n tracking: unsafeCSS(\"var(--md-sys-typescale-body-medium-tracking, 0.015625rem)\"),\r\n },\r\n small: {\r\n fontSize: unsafeCSS(\"var(--md-sys-typescale-body-small-font-size, 0.75rem)\"),\r\n fontWeight: unsafeCSS(\"var(--md-sys-typescale-body-small-font-weight, 400)\"),\r\n lineHeight: unsafeCSS(\"var(--md-sys-typescale-body-small-line-height, 1rem)\"),\r\n tracking: unsafeCSS(\"var(--md-sys-typescale-body-small-tracking, 0.025rem)\"),\r\n },\r\n },\r\n\r\n /** Smaller, utilitarian text. */\r\n label: {\r\n large: {\r\n fontSize: unsafeCSS(\"var(--md-sys-typescale-label-large-font-size, 0.875rem)\"),\r\n fontWeight: unsafeCSS(\"var(--md-sys-typescale-label-large-font-weight, 500)\"),\r\n lineHeight: unsafeCSS(\"var(--md-sys-typescale-label-large-line-height, 1.25rem)\"),\r\n tracking: unsafeCSS(\"var(--md-sys-typescale-label-large-tracking, 0.00625rem)\"),\r\n },\r\n medium: {\r\n fontSize: unsafeCSS(\"var(--md-sys-typescale-label-medium-font-size, 0.75rem)\"),\r\n fontWeight: unsafeCSS(\"var(--md-sys-typescale-label-medium-font-weight, 500)\"),\r\n lineHeight: unsafeCSS(\"var(--md-sys-typescale-label-medium-line-height, 1rem)\"),\r\n tracking: unsafeCSS(\"var(--md-sys-typescale-label-medium-tracking, 0.03125rem)\"),\r\n },\r\n small: {\r\n fontSize: unsafeCSS(\"var(--md-sys-typescale-label-small-font-size, 0.6875rem)\"),\r\n fontWeight: unsafeCSS(\"var(--md-sys-typescale-label-small-font-weight, 500)\"),\r\n lineHeight: unsafeCSS(\"var(--md-sys-typescale-label-small-line-height, 1rem)\"),\r\n tracking: unsafeCSS(\"var(--md-sys-typescale-label-small-tracking, 0.03125rem)\"),\r\n },\r\n },\r\n },\r\n\r\n /** Emphasized typescale variant. */\r\n emphasized: {\r\n /** Short, important text or numerals. */\r\n display: {\r\n large: {\r\n fontSize: unsafeCSS(\"var(--md-sys-typescale-emphasized-display-large-font-size, 3.5625rem)\"),\r\n fontWeight: unsafeCSS(\"var(--md-sys-typescale-emphasized-display-large-font-weight, 500)\"),\r\n lineHeight: unsafeCSS(\"var(--md-sys-typescale-emphasized-display-large-line-height, 4rem)\"),\r\n tracking: unsafeCSS(\"var(--md-sys-typescale-emphasized-display-large-tracking, 0.015625rem)\"),\r\n },\r\n medium: {\r\n fontSize: unsafeCSS(\"var(--md-sys-typescale-emphasized-display-medium-font-size, 2.8125rem)\"),\r\n fontWeight: unsafeCSS(\"var(--md-sys-typescale-emphasized-display-medium-font-weight, 500)\"),\r\n lineHeight: unsafeCSS(\"var(--md-sys-typescale-emphasized-display-medium-line-height, 3.25rem)\"),\r\n tracking: unsafeCSS(\"var(--md-sys-typescale-emphasized-display-medium-tracking, 0)\"),\r\n },\r\n small: {\r\n fontSize: unsafeCSS(\"var(--md-sys-typescale-emphasized-display-small-font-size, 2.25rem)\"),\r\n fontWeight: unsafeCSS(\"var(--md-sys-typescale-emphasized-display-small-font-weight, 500)\"),\r\n lineHeight: unsafeCSS(\"var(--md-sys-typescale-emphasized-display-small-line-height, 2.75rem)\"),\r\n tracking: unsafeCSS(\"var(--md-sys-typescale-emphasized-display-small-tracking, 0)\"),\r\n },\r\n },\r\n\r\n /** Short, high-emphasis text on smaller screens. */\r\n headline: {\r\n large: {\r\n fontSize: unsafeCSS(\"var(--md-sys-typescale-emphasized-headline-large-font-size, 2rem)\"),\r\n fontWeight: unsafeCSS(\"var(--md-sys-typescale-emphasized-headline-large-font-weight, 500)\"),\r\n lineHeight: unsafeCSS(\"var(--md-sys-typescale-emphasized-headline-large-line-height, 2.5rem)\"),\r\n tracking: unsafeCSS(\"var(--md-sys-typescale-emphasized-headline-large-tracking, 0)\"),\r\n },\r\n medium: {\r\n fontSize: unsafeCSS(\"var(--md-sys-typescale-emphasized-headline-medium-font-size, 1.75rem)\"),\r\n fontWeight: unsafeCSS(\"var(--md-sys-typescale-emphasized-headline-medium-font-weight, 500)\"),\r\n lineHeight: unsafeCSS(\"var(--md-sys-typescale-emphasized-headline-medium-line-height, 2.25rem)\"),\r\n tracking: unsafeCSS(\"var(--md-sys-typescale-emphasized-headline-medium-tracking, 0)\"),\r\n },\r\n small: {\r\n fontSize: unsafeCSS(\"var(--md-sys-typescale-emphasized-headline-small-font-size, 1.5rem)\"),\r\n fontWeight: unsafeCSS(\"var(--md-sys-typescale-emphasized-headline-small-font-weight, 500)\"),\r\n lineHeight: unsafeCSS(\"var(--md-sys-typescale-emphasized-headline-small-line-height, 2rem)\"),\r\n tracking: unsafeCSS(\"var(--md-sys-typescale-emphasized-headline-small-tracking, 0)\"),\r\n },\r\n },\r\n\r\n /** Medium-emphasis text that remains relatively short. */\r\n title: {\r\n large: {\r\n fontSize: unsafeCSS(\"var(--md-sys-typescale-emphasized-title-large-font-size, 1.375rem)\"),\r\n fontWeight: unsafeCSS(\"var(--md-sys-typescale-emphasized-title-large-font-weight, 500)\"),\r\n lineHeight: unsafeCSS(\"var(--md-sys-typescale-emphasized-title-large-line-height, 1.75rem)\"),\r\n tracking: unsafeCSS(\"var(--md-sys-typescale-emphasized-title-large-tracking, 0)\"),\r\n },\r\n medium: {\r\n fontSize: unsafeCSS(\"var(--md-sys-typescale-emphasized-title-medium-font-size, 1rem)\"),\r\n fontWeight: unsafeCSS(\"var(--md-sys-typescale-emphasized-title-medium-font-weight, 700)\"),\r\n lineHeight: unsafeCSS(\"var(--md-sys-typescale-emphasized-title-medium-line-height, 3.5rem)\"),\r\n tracking: unsafeCSS(\"var(--md-sys-typescale-emphasized-title-medium-tracking, 0.009375rem)\"),\r\n },\r\n small: {\r\n fontSize: unsafeCSS(\"var(--md-sys-typescale-emphasized-title-small-font-size, 0.875rem)\"),\r\n fontWeight: unsafeCSS(\"var(--md-sys-typescale-emphasized-title-small-font-weight, 700)\"),\r\n lineHeight: unsafeCSS(\"var(--md-sys-typescale-emphasized-title-small-line-height, 1.25rem)\"),\r\n tracking: unsafeCSS(\"var(--md-sys-typescale-emphasized-title-small-tracking, 0.00625rem)\"),\r\n },\r\n },\r\n\r\n /** Longer passages of text. */\r\n body: {\r\n large: {\r\n fontSize: unsafeCSS(\"var(--md-sys-typescale-emphasized-body-large-font-size, 1rem)\"),\r\n fontWeight: unsafeCSS(\"var(--md-sys-typescale-emphasized-body-large-font-weight, 500)\"),\r\n lineHeight: unsafeCSS(\"var(--md-sys-typescale-emphasized-body-large-line-height, 1.5rem)\"),\r\n tracking: unsafeCSS(\"var(--md-sys-typescale-emphasized-body-large-tracking, 0.03125rem)\"),\r\n },\r\n medium: {\r\n fontSize: unsafeCSS(\"var(--md-sys-typescale-emphasized-body-medium-font-size, 0.875rem)\"),\r\n fontWeight: unsafeCSS(\"var(--md-sys-typescale-emphasized-body-medium-font-weight, 500)\"),\r\n lineHeight: unsafeCSS(\"var(--md-sys-typescale-emphasized-body-medium-line-height, 1.25rem)\"),\r\n tracking: unsafeCSS(\"var(--md-sys-typescale-emphasized-body-medium-tracking, 0.015625rem)\"),\r\n },\r\n small: {\r\n fontSize: unsafeCSS(\"var(--md-sys-typescale-emphasized-body-small-font-size, 0.75rem)\"),\r\n fontWeight: unsafeCSS(\"var(--md-sys-typescale-emphasized-body-small-font-weight, 500)\"),\r\n lineHeight: unsafeCSS(\"var(--md-sys-typescale-emphasized-body-small-line-height, 1rem)\"),\r\n tracking: unsafeCSS(\"var(--md-sys-typescale-emphasized-body-small-tracking, 0.025rem)\"),\r\n },\r\n },\r\n\r\n /** Smaller, utilitarian text. */\r\n label: {\r\n large: {\r\n fontSize: unsafeCSS(\"var(--md-sys-typescale-emphasized-label-large-font-size, 0.875rem)\"),\r\n fontWeight: unsafeCSS(\"var(--md-sys-typescale-emphasized-label-large-font-weight, 700)\"),\r\n lineHeight: unsafeCSS(\"var(--md-sys-typescale-emphasized-label-large-line-height, 1.25rem)\"),\r\n tracking: unsafeCSS(\"var(--md-sys-typescale-emphasized-label-large-tracking, 0.00625rem)\"),\r\n },\r\n medium: {\r\n fontSize: unsafeCSS(\"var(--md-sys-typescale-emphasized-label-medium-font-size, 0.75rem)\"),\r\n fontWeight: unsafeCSS(\"var(--md-sys-typescale-emphasized-label-medium-font-weight, 700)\"),\r\n lineHeight: unsafeCSS(\"var(--md-sys-typescale-emphasized-label-medium-line-height, 1rem)\"),\r\n tracking: unsafeCSS(\"var(--md-sys-typescale-emphasized-label-medium-tracking, 0.03125rem)\"),\r\n },\r\n small: {\r\n fontSize: unsafeCSS(\"var(--md-sys-typescale-emphasized-label-small-font-size, 0.6875rem)\"),\r\n fontWeight: unsafeCSS(\"var(--md-sys-typescale-emphasized-label-small-font-weight, 700)\"),\r\n lineHeight: unsafeCSS(\"var(--md-sys-typescale-emphasized-label-small-line-height, 1rem)\"),\r\n tracking: unsafeCSS(\"var(--md-sys-typescale-emphasized-label-small-tracking, 0.03125rem)\"),\r\n },\r\n },\r\n },\r\n} as const;\r\n","import { ColorToken } from \"./ColorToken\";\r\nimport { DensityToken } from \"./DensityToken\";\r\nimport { ElevationToken } from \"./ElevationToken\";\r\nimport { MotionToken } from \"./MotionToken\";\r\nimport { ScrollbarToken } from \"./ScrollbarToken\";\r\nimport { ShapeToken } from \"./ShapeToken\";\r\nimport { StateToken } from \"./StateToken\";\r\nimport { TypescaleToken } from \"./TypescaleToken\";\r\n\r\n/** Design tokens used to style components. */\r\nexport const DesignToken = {\r\n /** Design tokens that control color. */\r\n color: ColorToken,\r\n\r\n /** Design tokens that control elevation. */\r\n elevation: ElevationToken,\r\n\r\n /** Design tokens that control motion. */\r\n motion: MotionToken,\r\n\r\n /** Design tokens that control shape. */\r\n shape: ShapeToken,\r\n\r\n /** Design tokens that control state layer. */\r\n state: StateToken,\r\n\r\n /** Design tokens that control typescale. */\r\n typescale: TypescaleToken,\r\n\r\n /** Design tokens that control scrollbars. */\r\n scrollbar: ScrollbarToken,\r\n\r\n /** Design tokens that control density. */\r\n density: DensityToken,\r\n} as const;\r\n","import { LitElement, PropertyValues } from \"lit\";\r\nimport { property } from \"lit/decorators.js\";\r\n\r\nimport { Constructor } from \"./Constructor\";\r\nimport { hasKeys } from \"./hasKeys\";\r\n\r\n/** Defines functionality for an element which supports a disabled state. */\r\nexport interface DisabledMixin {\r\n /**\r\n * Whether the element is disabled.\r\n * @default false\r\n */\r\n disabled: boolean;\r\n}\r\n\r\n/**\r\n * Determines whether a value is a `DisabledMixin`.\r\n * @param {unknown} value The value to test.\r\n * @returns {value is DisabledMixin} Whether `value` is a `DisabledMixin`.\r\n */\r\nexport function isDisabledMixin(value: unknown): value is DisabledMixin {\r\n return hasKeys<DisabledMixin>(value, \"disabled\");\r\n}\r\n\r\n/**\r\n * Mixin to augment an element with behavior that supports a disabled state.\r\n * @template T The type of the base class.\r\n * @param {T} base The base class.\r\n * @param {boolean} [reflect=true] Whether the disabled property is reflected as an attribute.\r\n * @returns {Constructor<DisabledMixin> & T} A constructor that implements `DisabledMixin`.\r\n */\r\nexport function Disabled<T extends Constructor<LitElement>>(\r\n base: T,\r\n reflect: boolean = true\r\n): Constructor<DisabledMixin> & T {\r\n abstract class _DisabledMixin extends base implements DisabledMixin {\r\n /**\r\n * Whether the element is disabled.\r\n * @default false\r\n */\r\n @property({ type: Boolean, reflect: reflect }) disabled = false;\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(\"disabled\") && this.role && this.role !== \"none\" && this.role !== \"presentation\") {\r\n this.ariaDisabled = this.disabled ? \"true\" : null;\r\n }\r\n }\r\n }\r\n\r\n return _DisabledMixin;\r\n}\r\n","import { LitElement, PropertyValues } from \"lit\";\r\nimport { property } from \"lit/decorators.js\";\r\n\r\nimport { Constructor } from \"./Constructor\";\r\nimport { DisabledMixin, isDisabledMixin } from \"./Disabled\";\r\nimport { hasKeys } from \"./hasKeys\";\r\n\r\n/** Defines functionality for an element which supports an interactive disabled state. */\r\nexport interface DisabledInteractiveMixin extends DisabledMixin {\r\n /**\r\n * Whether the element is disabled and interactive.\r\n * @default false\r\n */\r\n disabledInteractive: boolean;\r\n}\r\n\r\n/**\r\n * Determines whether a value is a `DisabledInteractiveMixin`.\r\n * @param {unknown} value The value to test.\r\n * @returns {value is DisabledInteractiveMixin} Whether `value` is a `DisabledInteractiveMixin`.\r\n */\r\nexport function isDisabledInteractiveMixin(value: unknown): value is DisabledInteractiveMixin {\r\n return hasKeys<DisabledInteractiveMixin>(value, \"disabledInteractive\") && isDisabledMixin(value);\r\n}\r\n\r\nconst SUPPRESSED_EVENTS = [\"click\", \"dblclick\", \"auxclick\", \"keydown\", \"keyup\"];\r\nconst INTERACTIVE_KEYS = [\"Tab\", \"ArrowLeft\", \"ArrowUp\", \"ArrowRight\", \"ArrowDown\", \"Left\", \"Up\", \"Right\", \"Down\"];\r\nconst _suppressedEventHandler = Symbol(\"_suppressedEventHandler\");\r\n\r\n/**\r\n * Mixin to augment an element with behavior that supports an interactive disabled state.\r\n * @template T The type of the base class.\r\n * @param {T} base The base class.\r\n * @returns {Constructor<DisabledInteractiveMixin>} A constructor that implements `DisabledInteractiveMixin`.\r\n */\r\nexport function DisabledInteractive<T extends Constructor<LitElement & DisabledMixin>>(\r\n base: T\r\n): Constructor<DisabledInteractiveMixin> & T {\r\n abstract class _DisabledInteractiveMixin extends base implements DisabledInteractiveMixin {\r\n /** @private */\r\n private readonly [_suppressedEventHandler] = (e: Event) => {\r\n if (this.disabledInteractive) {\r\n // Only allow specific keys when disabled and interactive.\r\n if (e instanceof KeyboardEvent && INTERACTIVE_KEYS.includes(e.key)) {\r\n return;\r\n }\r\n e.stopImmediatePropagation();\r\n e.preventDefault();\r\n }\r\n };\r\n\r\n /**\r\n * Whether the element is disabled and interactive.\r\n * @default false\r\n */\r\n @property({ attribute: \"disabled-interactive\", type: Boolean, reflect: true }) disabledInteractive = false;\r\n\r\n /** @inheritdoc */\r\n override connectedCallback(): void {\r\n SUPPRESSED_EVENTS.forEach((x) => this.addEventListener(x, this[_suppressedEventHandler], true));\r\n super.connectedCallback();\r\n }\r\n\r\n /** @inheritdoc */\r\n override disconnectedCallback(): void {\r\n SUPPRESSED_EVENTS.forEach((x) => this.removeEventListener(x, this[_suppressedEventHandler], true));\r\n super.disconnectedCallback();\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 (\r\n (changedProperties.has(\"disabled\") || changedProperties.has(\"disabledInteractive\")) &&\r\n this.role &&\r\n this.role !== \"none\" &&\r\n this.role !== \"presentation\" &&\r\n this.role !== \"none\"\r\n ) {\r\n this.ariaDisabled = this.disabled || this.disabledInteractive ? \"true\" : null;\r\n }\r\n }\r\n }\r\n\r\n return _DisabledInteractiveMixin;\r\n}\r\n","import { LitElement, PropertyValues } from \"lit\";\r\n\r\nimport { DesignToken } from \"../tokens\";\r\n\r\nimport { AttachInternalsMixin, internals, isAttachInternalsMixin } from \"./AttachInternals\";\r\nimport { Constructor } from \"./Constructor\";\r\nimport { isDisabledMixin } from \"./Disabled\";\r\nimport { isDisabledInteractiveMixin } from \"./DisabledInteractive\";\r\nimport { isTouchedMixin } from \"./Touched\";\r\nimport { hasKeys } from \"./hasKeys\";\r\n\r\n/** Defines functionality for a labelled custom element. */\r\nexport interface LabelledMixin extends AttachInternalsMixin {\r\n /** The label elements that the element is associated with. */\r\n readonly labels: NodeListOf<HTMLLabelElement>;\r\n}\r\n\r\n/**\r\n * Determines whether a value is a `LabelledMixin`.\r\n * @param {unknown} value The value to test.\r\n * @returns A value indicating whether `value` is a `LabelledMixin`.\r\n */\r\nexport function isLabelledMixin(value: unknown): value is LabelledMixin {\r\n return hasKeys<LabelledMixin>(value, \"labels\") && isAttachInternalsMixin(value);\r\n}\r\n\r\nconst _updateLabels = Symbol(\"_updateLabels\");\r\nconst _eventHandler = Symbol(\"_eventHandler\");\r\n\r\n/**\r\n * Mixin to augment an element with support for labelling.\r\n * @template T The type of the base class.\r\n * @param {T} base The base class.\r\n * @returns {Constructor<FormAssociatedMixin> & T} A constructor that implements `FormAssociatedMixin`.\r\n */\r\nexport function Labelled<T extends Constructor<LitElement & AttachInternalsMixin>>(\r\n base: T\r\n): Constructor<LabelledMixin> & T {\r\n abstract class _Labelled extends base implements LabelledMixin {\r\n /** Indicates that this custom element participates in form submission, validation, and form state restoration. */\r\n static readonly formAssociated = true;\r\n\r\n /** @private */\r\n private readonly [_eventHandler] = (e: Event) => {\r\n if (!e.defaultPrevented) {\r\n this[_updateLabels]();\r\n }\r\n };\r\n\r\n /** The label elements that the element is associated with. */\r\n get labels(): NodeListOf<HTMLLabelElement> {\r\n return this[internals].labels as NodeListOf<HTMLLabelElement>;\r\n }\r\n\r\n /** @inheritdoc */\r\n override connectedCallback(): void {\r\n super.connectedCallback();\r\n this.addEventListener(\"focusout\", this[_eventHandler]);\r\n this.addEventListener(\"change\", this[_eventHandler]);\r\n }\r\n\r\n /** @inheritdoc */\r\n override disconnectedCallback(): void {\r\n super.disconnectedCallback();\r\n this.removeEventListener(\"focusout\", this[_eventHandler]);\r\n this.removeEventListener(\"change\", this[_eventHandler]);\r\n }\r\n\r\n /** @inheritdoc */\r\n protected override update(changedProperties: PropertyValues): void {\r\n super.update(changedProperties);\r\n this[_updateLabels]();\r\n }\r\n\r\n /** @private */\r\n private [_updateLabels](): void {\r\n const focusable = this.hasAttribute(\"tabindex\");\r\n const disabled =\r\n (isDisabledMixin(this) && this.disabled) || (isDisabledInteractiveMixin(this) && this.disabledInteractive);\r\n\r\n for (const label of this.labels) {\r\n label.style.userSelect = focusable ? \"none\" : \"\";\r\n label.style.cursor = !disabled ? \"pointer\" : \"\";\r\n\r\n label.style.color = disabled\r\n ? `color-mix(in srgb, ${DesignToken.color.onSurface} 38%, transparent)`\r\n : isTouchedMixin(this) && this.touched && this.ariaInvalid\r\n ? `${DesignToken.color.error}`\r\n : \"\";\r\n }\r\n }\r\n }\r\n\r\n return _Labelled;\r\n}\r\n","import { LitElement, PropertyDeclaration } from \"lit\";\r\nimport { property } from \"lit/decorators.js\";\r\n\r\nimport { AttachInternalsMixin, internals, isAttachInternalsMixin } from \"./AttachInternals\";\r\nimport { Constructor } from \"./Constructor\";\r\nimport { DisabledMixin } from \"./Disabled\";\r\nimport { isCheckedMixin } from \"./Checked\";\r\nimport { isCheckedIndeterminateMixin } from \"./CheckedIndeterminate\";\r\nimport { isDirtyMixin } from \"./Dirty\";\r\nimport { isTouchedMixin } from \"./Touched\";\r\nimport { isLabelledMixin, LabelledMixin } from \"./Labelled\";\r\nimport { hasKeys } from \"./hasKeys\";\r\n\r\n/** A symbol through which a \"Form Associated\" custom element provides a value for a form. */\r\nexport const formValue = Symbol(\"formValue\");\r\n\r\n/** A symbol through which a \"Form Associated\" custom element provides a default value for resetting a form. */\r\nexport const defaultValue = Symbol(\"defaultValue\");\r\n\r\n/** Defines functionality for a \"Form Associated\" custom element. */\r\nexport interface FormAssociatedMixin extends LabelledMixin, DisabledMixin, AttachInternalsMixin {\r\n /** The `HTMLFormElement` associated with this element. */\r\n readonly form: HTMLFormElement | null;\r\n\r\n /** The form value of the element. */\r\n readonly [formValue]: string | File | FormData | null;\r\n\r\n /** The default value (value or checked state) of the element. */\r\n readonly [defaultValue]: unknown;\r\n\r\n /** The name that identifies the element when submitting the associated form. */\r\n name: string;\r\n}\r\n\r\n/**\r\n * Determines whether a value is a `FormAssociatedMixin`.\r\n * @param {unknown} value The value to test.\r\n * @returns A value indicating whether `value` is a `FormAssociatedMixin`.\r\n */\r\nexport function isFormAssociatedMixin(value: unknown): value is FormAssociatedMixin {\r\n return (\r\n hasKeys<FormAssociatedMixin>(value, \"disabled\", \"form\", \"name\") &&\r\n isLabelledMixin(value) &&\r\n isAttachInternalsMixin(value)\r\n );\r\n}\r\n\r\nconst _defaultValue = Symbol(\"_defaultValue\");\r\nconst _defaultIndeterminate = Symbol(\"_defaultIndeterminate\");\r\nconst _formDisabled = Symbol(\"_formDisabled\");\r\n\r\n/**\r\n * Mixin to augment an element with \"Form Associated\" behavior.\r\n * @template T The type of the base class.\r\n * @param {T} base The base class.\r\n * @returns {Constructor<FormAssociatedMixin> & T} A constructor that implements `FormAssociatedMixin`.\r\n */\r\nexport function FormAssociated<T extends Constructor<LitElement & DisabledMixin & AttachInternalsMixin>>(\r\n base: T\r\n): Constructor<FormAssociatedMixin> & T {\r\n abstract class _FormAssociatedMixin extends base implements FormAssociatedMixin {\r\n /** Indicates that this custom element participates in form submission, validation, and form state restoration. */\r\n static readonly formAssociated = true;\r\n\r\n /** @private */ private [_defaultValue]: unknown;\r\n /** @private */ private [_defaultIndeterminate] = false;\r\n /** @private */ private [_formDisabled] = false;\r\n\r\n /** The `HTMLFormElement` associated with this element. */\r\n get form(): HTMLFormElement | null {\r\n return this[internals].form;\r\n }\r\n\r\n /** @inheritdoc */\r\n get labels(): NodeListOf<HTMLLabelElement> {\r\n return this[internals].labels as NodeListOf<HTMLLabelElement>;\r\n }\r\n\r\n /** @internal */\r\n get [formValue](): string | File | FormData | null {\r\n return null;\r\n }\r\n\r\n /** @internal */\r\n get [defaultValue](): unknown {\r\n return this[_defaultValue];\r\n }\r\n\r\n /** The name that identifies the element when submitting the associated form. */\r\n @property({ noAccessor: true }) get name() {\r\n return this.getAttribute(\"name\") ?? \"\";\r\n }\r\n set name(value: string) {\r\n if (value) {\r\n this.setAttribute(\"name\", value);\r\n } else {\r\n this.removeAttribute(\"name\");\r\n }\r\n }\r\n\r\n // Disabled attributes should not be reflected for form associated elements due to\r\n // how the formDisabledCallback overrides an element's disabled state.\r\n // See https://github.com/whatwg/html/issues/8365\r\n\r\n /**\r\n * Whether the element is disabled.\r\n * @default false\r\n */\r\n @property({ type: Boolean })\r\n override get disabled(): boolean {\r\n return super.disabled || this[_formDisabled];\r\n }\r\n override set disabled(value: boolean) {\r\n super.disabled = value;\r\n }\r\n\r\n /** @inheritdoc */\r\n override connectedCallback(): void {\r\n super.connectedCallback();\r\n\r\n if (isCheckedMixin(this)) {\r\n this[_defaultValue] = this.checked;\r\n if (isCheckedIndeterminateMixin(this)) {\r\n this[_defaultIndeterminate] = this.indeterminate;\r\n }\r\n } else if (\"value\" in this) {\r\n this[_defaultValue] = this.value;\r\n }\r\n }\r\n\r\n /** @inheritdoc */\r\n override requestUpdate(name?: PropertyKey, oldValue?: unknown, options?: PropertyDeclaration): void {\r\n super.requestUpdate(name, oldValue, options);\r\n this[internals].setFormValue(this[formValue]);\r\n }\r\n\r\n /** Called when the element is disabled or enabled via its form association. */\r\n formDisabledCallback(disabled: boolean): void {\r\n const wasDisabled = this.disabled;\r\n this[_formDisabled] = disabled;\r\n if (this.disabled != wasDisabled) {\r\n this.requestUpdate(\"disabled\", wasDisabled);\r\n }\r\n }\r\n\r\n /** Called when the associated form is reset. */\r\n formResetCallback(): void {\r\n if (isCheckedMixin(this)) {\r\n this.checked = this[_defaultValue] === true;\r\n if (isCheckedIndeterminateMixin(this)) {\r\n this.indeterminate = this[_defaultIndeterminate];\r\n }\r\n } else if (\"value\" in this) {\r\n this.value = this[defaultValue];\r\n }\r\n\r\n if (isDirtyMixin(this)) {\r\n this.markAsPristine();\r\n }\r\n if (isTouchedMixin(this)) {\r\n this.markAsUntouched();\r\n }\r\n }\r\n }\r\n\r\n return _FormAssociatedMixin;\r\n}\r\n","import { LitElement, PropertyDeclaration, PropertyValues, isServer } from \"lit\";\r\n\r\nimport { internals } from \"./AttachInternals\";\r\nimport { Constructor } from \"./Constructor\";\r\nimport { FormAssociatedMixin, isFormAssociatedMixin } from \"./FormAssociated\";\r\nimport { hasKeys } from \"./hasKeys\";\r\nimport { isTouchedMixin } from \"./Touched\";\r\n\r\n/** A symbol through which a \"Form Associated\" custom element validates its current state. */\r\nexport const validate = Symbol(\"validate\");\r\n\r\n/** Defines functionality for a \"Form Associated\" custom element that supports constraint validation. */\r\nexport interface ConstraintValidationMixin extends FormAssociatedMixin {\r\n /** Whether the element is a submittable element that is a candidate for constraint validation. */\r\n readonly willValidate: boolean;\r\n\r\n /** The validity state of the element. */\r\n readonly validity: ValidityState;\r\n\r\n /** The error message that would be displayed if the user submits the form, or an empty string if no error message. */\r\n readonly validationMessage: string;\r\n\r\n /**\r\n * Validates the current state of the control.\r\n * @returns {ValidityStateFlags | undefined} The current validity state.\r\n */\r\n [validate](): ValidityStateFlags | undefined;\r\n\r\n /**\r\n * Returns `true` if the element has no validity problems; otherwise, returns `false`, fires\r\n * an invalid event, and (if the event isn't canceled) reports the problem to the user.\r\n */\r\n reportValidity(): boolean;\r\n\r\n /**\r\n * Returns `true` if the element has no validity problems; otherwise,\r\n * returns `false`, fires an invalid event.\r\n */\r\n checkValidity(): boolean;\r\n\r\n /**\r\n * Sets a custom validity message for the element.\r\n * @param error The message to use for validity errors.\r\n */\r\n setCustomValidity(error: string): void;\r\n}\r\n\r\n/**\r\n * Determines whether a value is a `ConstraintValidationMixin`.\r\n * @param {unknown} value The value to test.\r\n * @returns Whether `value` is a `ConstraintValidationMixin`.\r\n */\r\nexport function isConstraintValidationMixin(value: unknown): value is ConstraintValidationMixin {\r\n return (\r\n hasKeys<ConstraintValidationMixin>(\r\n value,\r\n \"willValidate\",\r\n \"validity\",\r\n \"validationMessage\",\r\n \"reportValidity\",\r\n \"checkValidity\",\r\n \"setCustomValidity\"\r\n ) && isFormAssociatedMixin(value)\r\n );\r\n}\r\n\r\nconst _updateValidity = Symbol(\"_updateValidity\");\r\nconst _validityMessage = Symbol(\"_validityMessage\");\r\n\r\n/**\r\n * Mixin to augment an element with \"Form Associated\" behavior that supports constraint validation.\r\n * @template T The type of the base class.\r\n * @param {T} base The base class.\r\n * @returns {Constructor<ConstraintValidationMixin> & T} A constructor that implements `ConstraintValidationMixin`.\r\n */\r\nexport function ConstraintValidation<T extends Constructor<LitElement & FormAssociatedMixin>>(\r\n base: T\r\n): Constructor<ConstraintValidationMixin> & T {\r\n abstract class _ConstraintValidation extends base implements ConstraintValidationMixin {\r\n private [_validityMessage]?: string;\r\n\r\n /** Whether the element is a submittable element that is a candidate for constraint validation. */\r\n get willValidate(): boolean {\r\n return this[internals].willValidate;\r\n }\r\n\r\n /** The validity state of the element. */\r\n get validity(): ValidityState {\r\n this[_updateValidity]();\r\n return this[internals].validity;\r\n }\r\n\r\n /** The error message that would be displayed if the user submits the form, or an empty string if no error message. */\r\n get validationMessage(): string {\r\n this[_updateValidity]();\r\n return this[internals].validationMessage;\r\n }\r\n\r\n /** @internal */\r\n [validate](): ValidityStateFlags | undefined {\r\n return this[_validityMessage] ? { customError: true } : undefined;\r\n }\r\n\r\n /**\r\n * Returns `true` if the element has no validity problems; otherwise, returns `false`, fires\r\n * an invalid event, and (if the event isn't canceled) reports the problem to the user.\r\n */\r\n reportValidity(): boolean {\r\n if (isTouchedMixin(this)) {\r\n this.markAsTouched();\r\n }\r\n\r\n this[_updateValidity]();\r\n return this[internals].reportValidity();\r\n }\r\n\r\n /**\r\n * Returns `true` if the element has no validity problems; otherwise,\r\n * returns `false`, fires an invalid event.\r\n */\r\n checkValidity(): boolean {\r\n this[_updateValidity]();\r\n return this[internals].checkValidity();\r\n }\r\n\r\n /**\r\n * Sets a custom validity message for the element.\r\n * @param error The message to use for validity errors.\r\n */\r\n setCustomValidity(error: string): void {\r\n if (error) {\r\n this[_validityMessage] = error;\r\n } else {\r\n this[_validityMessage] = undefined;\r\n }\r\n\r\n this[_updateValidity]();\r\n }\r\n\r\n /** @inheritdoc */\r\n override requestUpdate(name?: PropertyKey, oldValue?: unknown, options?: PropertyDeclaration): void {\r\n super.requestUpdate(name, oldValue, options);\r\n this[_updateValidity]();\r\n }\r\n\r\n /** @inheritdoc */\r\n protected override firstUpdated(_changedProperties: PropertyValues): void {\r\n super.firstUpdated(_changedProperties);\r\n this[_updateValidity]();\r\n }\r\n\r\n /** @private */\r\n private [_updateValidity](): void {\r\n if (isServer || !this.isConnected) return;\r\n\r\n const validity = this[validate]();\r\n const invalid = validity && Object.keys(validity).some((x) => validity[<keyof ValidityStateFlags>x] === true);\r\n\r\n let validityMessage = validity?.customError ? this[_validityMessage] : \"\";\r\n if (validity && !validityMessage) {\r\n validityMessage = this.#getNativeMessage(validity);\r\n }\r\n\r\n this[internals].setValidity(validity, validityMessage);\r\n this.ariaInvalid = invalid ? \"true\" : null;\r\n this.classList.toggle(\"-invalid\", invalid === true);\r\n }\r\n\r\n /** @private */\r\n #getNativeMessage(flags: ValidityStateFlags): string {\r\n const input = document.createElement(\"input\");\r\n\r\n // Default to text input unless overridden\r\n input.type = \"text\";\r\n\r\n // Simulate constraints and values based on flags\r\n if (flags.valueMissing) {\r\n input.required = true;\r\n input.value = \"\"; // triggers valueMissing\r\n }\r\n\r\n if (flags.typeMismatch) {\r\n input.type = \"email\";\r\n input.value = \"not-an-email\"; // triggers typeMismatch\r\n }\r\n\r\n if (flags.patternMismatch) {\r\n input.pattern = \"[0-9]{4}\";\r\n input.value = \"abcd\"; // triggers patternMismatch\r\n }\r\n\r\n if (flags.tooShort) {\r\n input.minLength = 5;\r\n input.value = \"abc\"; // triggers tooShort\r\n }\r\n\r\n if (flags.tooLong) {\r\n input.maxLength = 2;\r\n input.value = \"abcdef\"; // triggers tooLong\r\n }\r\n\r\n if (flags.rangeUnderflow) {\r\n input.type = \"number\";\r\n input.min = \"10\";\r\n input.value = \"5\"; // triggers rangeUnderflow\r\n }\r\n\r\n if (flags.rangeOverflow) {\r\n input.type = \"number\";\r\n input.max = \"5\";\r\n input.value = \"10\"; // triggers rangeOverflow\r\n }\r\n\r\n if (flags.stepMismatch) {\r\n input.type = \"number\";\r\n input.step = \"2\";\r\n input.value = \"3\"; // triggers stepMismatch\r\n }\r\n\r\n if (flags.badInput) {\r\n input.type = \"number\";\r\n input.value = \"abc\"; // triggers badInput\r\n }\r\n\r\n input.setCustomValidity(\"\");\r\n input.checkValidity();\r\n\r\n return input.validationMessage;\r\n }\r\n }\r\n\r\n return _ConstraintValidation;\r\n}\r\n","import { LitElement } from \"lit\";\r\n\r\nimport { Constructor } from \"./Constructor\";\r\n\r\n/**\r\n * Mixin that adds support for custom event attributes.\r\n * @template T The type of base class from which to inherit.\r\n * @param {T} base The base class from which to inherit.\r\n * @param {string[]} types The types of event attributes.\r\n * @returns {T} A class extending `base` that supports custom event attributes.\r\n */\r\nexport function EventAttribute<T extends Constructor<LitElement>>(base: T, ...types: string[]): T {\r\n abstract class _EventAttribute extends base {\r\n /** @inheritdoc */\r\n override dispatchEvent(event: Event): boolean {\r\n if (types.includes(event.type)) {\r\n const eventAttribute = this.getAttribute(`on${event.type}`);\r\n if (eventAttribute) {\r\n new Function(\"e\", `${eventAttribute};`).call(this, event);\r\n }\r\n }\r\n return super.dispatchEvent(event);\r\n }\r\n }\r\n return _EventAttribute;\r\n}\r\n","import { LitElement, PropertyValues } from \"lit\";\r\n\r\nimport { Constructor } from \"./Constructor\";\r\nimport { DisabledMixin } from \"./Disabled\";\r\n\r\nconst _tabindex = Symbol(\"_tabindex\");\r\n\r\n/**\r\n * Mixin to augment an element with behavior that supports a focused state.\r\n * @template T The type of the base class.\r\n * @param {T} base The base class.\r\n * @returns {Constructor & T} A constructor that implements focusable behavior.\r\n */\r\nexport function Focusable<T extends Constructor<LitElement & DisabledMixin>>(base: T): Constructor & T {\r\n abstract class _FocusableMixin extends base {\r\n /** @private */\r\n private [_tabindex] = 0;\r\n\r\n /** @inheritdoc */\r\n override connectedCallback(): void {\r\n this[_tabindex] = Number.parseInt(this.getAttribute(\"tabindex\") ?? \"0\");\r\n super.connectedCallback();\r\n }\r\n\r\n /** @inheritdoc */\r\n protected override firstUpdated(_changedProperties: PropertyValues<this>): void {\r\n super.firstUpdated(_changedProperties);\r\n\r\n if (!this.hasAttribute(\"tabindex\") && !_changedProperties.has(\"disabled\")) {\r\n this.setAttribute(\"tabindex\", `${this[_tabindex]}`);\r\n }\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(\"disabled\")) {\r\n if (!this.disabled && this.role !== \"none\") {\r\n if (!this.hasAttribute(\"tabindex\")) {\r\n this.setAttribute(\"tabindex\", `${this[_tabindex]}`);\r\n }\r\n } else {\r\n const tabIndex = this.getAttribute(\"tabindex\");\r\n if (tabIndex) {\r\n this[_tabindex] = Number.parseInt(tabIndex);\r\n }\r\n this.removeAttribute(\"tabindex\");\r\n }\r\n }\r\n }\r\n }\r\n\r\n return _FocusableMixin;\r\n}\r\n","import { LitElement } from \"lit\";\r\nimport { property } from \"lit/decorators.js\";\r\n\r\nimport { AttachInternalsMixin, internals, isAttachInternalsMixin } from \"./AttachInternals\";\r\nimport { Constructor } from \"./Constructor\";\r\nimport { hasKeys } from \"./hasKeys\";\r\nimport { isDisabledMixin } from \"./Disabled\";\r\nimport { isDisabledInteractiveMixin } from \"./DisabledInteractive\";\r\n\r\n/** Specifies the form submission behaviors. */\r\nexport type FormSubmitterType = \"button\" | \"submit\" | \"reset\";\r\n\r\n/** Defines functionality for an element which can be used to submit a form. */\r\nexport interface FormSubmitterMixin extends AttachInternalsMixin {\r\n /**\r\n * The name of the element, submitted as a pair with the element's `value`\r\n * as part of form data, when the element is used to submit a form.\r\n */\r\n name: string;\r\n\r\n /** The value associated with the element's name when it's submitted with form data. */\r\n value: string | null;\r\n\r\n /**\r\n * The type of the element.\r\n * @default \"button\"\r\n */\r\n type: FormSubmitterType;\r\n}\r\n\r\n/**\r\n * Determines whether a value is a `FormSubmitterMixin`.\r\n * @param {unknown} value The value to test.\r\n * @returns {value is FormSubmitterMixin} Whether `value` is a `FormSubmitterMixin`.\r\n */\r\nexport function isFormSubmitterMixin(value: unknown): value is FormSubmitterMixin {\r\n return hasKeys<FormSubmitterMixin>(value, \"name\", \"type\", \"value\") && isAttachInternalsMixin(value);\r\n}\r\n\r\nconst _clickHandler = Symbol(\"_clickHandler\");\r\n\r\n/**\r\n * Mixin to augment an element with behavior used to submit a form.\r\n * @template T The type of the base class.\r\n * @param {T} base The base class.\r\n * @returns {Constructor<FormSubmitterMixin>} A constructor that implements `FormSubmitterMixin`.\r\n */\r\nexport function FormSubmitter<T extends Constructor<LitElement & AttachInternalsMixin>>(\r\n base: T\r\n): Constructor<FormSubmitterMixin> & T {\r\n abstract class _FormSubmitterMixin extends base implements FormSubmitterMixin {\r\n /**\r\n * The name of the element, submitted as a pair with the element's `value`\r\n * as part of form data, when the element is used to submit a form.\r\n */\r\n @property() get name() {\r\n return this.getAttribute(\"name\") ?? \"\";\r\n }\r\n set name(value: string) {\r\n if (value) {\r\n this.setAttribute(\"name\", value);\r\n } else {\r\n this.removeAttribute(\"name\");\r\n }\r\n }\r\n\r\n /** The value associated with the element's name when it's submitted with form data. */\r\n @property() get value() {\r\n return this.getAttribute(\"value\");\r\n }\r\n set value(value: string | null) {\r\n if (value !== null && value !== undefined) {\r\n this.setAttribute(\"value\", value);\r\n } else {\r\n this.removeAttribute(\"value\");\r\n }\r\n }\r\n\r\n /**\r\n * The type of the element.\r\n * @default \"button\"\r\n */\r\n @property() type: FormSubmitterType = \"button\";\r\n\r\n /** @inheritdoc */\r\n override connectedCallback(): void {\r\n super.connectedCallback();\r\n this.addEventListener(\"click\", this[_clickHandler]);\r\n }\r\n\r\n /** @inheritdoc */\r\n override disconnectedCallback(): void {\r\n super.disconnectedCallback();\r\n this.removeEventListener(\"click\", this[_clickHandler]);\r\n }\r\n\r\n /** @private */\r\n private [_clickHandler] = async (e: Event) => {\r\n if ((isDisabledMixin(this) && this.disabled) || (isDisabledInteractiveMixin(this) && this.disabledInteractive)) {\r\n return;\r\n }\r\n\r\n const form = this[internals].form;\r\n if (!form || this.type === \"button\") {\r\n return;\r\n }\r\n\r\n await new Promise<void>((resolve) => setTimeout(resolve));\r\n\r\n if (e.defaultPrevented) {\r\n return;\r\n }\r\n\r\n switch (this.type) {\r\n case \"reset\":\r\n form.reset();\r\n break;\r\n\r\n case \"submit\":\r\n form.addEventListener(\r\n \"submit\",\r\n (e) =>\r\n Object.defineProperty(e, \"submitter\", {\r\n configurable: true,\r\n enumerable: true,\r\n get: () => this,\r\n }),\r\n { capture: true, once: true }\r\n );\r\n\r\n this[internals].setFormValue(this.value);\r\n form.requestSubmit();\r\n break;\r\n }\r\n };\r\n }\r\n\r\n return _FormSubmitterMixin;\r\n}\r\n","import { LitElement, PropertyValues } from \"lit\";\r\nimport { property } from \"lit/decorators.js\";\r\n\r\nimport { Constructor } from \"./Constructor\";\r\nimport { hasKeys } from \"./hasKeys\";\r\n\r\n/** Defines functionality for an attached element associated with an interactive control. */\r\nexport interface HtmlForMixin {\r\n /** The identifier of the interactive control to which this element is attached. */\r\n htmlFor: string | null;\r\n\r\n /** The interactive element to which this element is attached. */\r\n readonly control: HTMLElement | null;\r\n\r\n /**\r\n * Attaches the element to an interactive control.\r\n * @param {HTMLElement} control The element that controls the attachable element.\r\n */\r\n attach(control: HTMLElement): void;\r\n\r\n /** Detaches the element from its current interactive control. */\r\n detach(): void;\r\n}\r\n\r\n/**\r\n * Determines whether a value is a `HtmlForMixin`.\r\n * @param {unknown} value The value to test.\r\n * @returns {value is HtmlForMixin} Whether `value` is a `HtmlForMixin`.\r\n */\r\nexport function isHtmlForMixin(value: unknown): value is HtmlForMixin {\r\n return hasKeys<HtmlForMixin>(value, \"htmlFor\", \"control\", \"attach\", \"detach\");\r\n}\r\n\r\nconst _control = Symbol(\"_control\");\r\nconst _firstUpdated = Symbol(\"_firstUpdated\");\r\n\r\n/**\r\n * Mixin that creates an attached element associated with an interactive control.\r\n * @template T The type of the base class.\r\n * @param {T} base The base class.\r\n * @returns {Constructor<HtmlForMixin> & T} A constructor extends `base` and implements `HtmlForMixin`.\r\n */\r\nexport function HtmlFor<T extends Constructor<LitElement>>(base: T): Constructor<HtmlForMixin> & T {\r\n abstract class _HtmlForMixin extends base implements HtmlForMixin {\r\n /** @private */ private [_control]: HTMLElement | null = null;\r\n /** @private */ private [_firstUpdated] = false;\r\n\r\n /** The identifier of the interactive control to which this element is attached. */\r\n @property({ attribute: \"for\" }) htmlFor: string | null = null;\r\n\r\n /** The interactive element to which this element is attached. */\r\n get control() {\r\n return this[_control];\r\n }\r\n\r\n /** @inheritdoc */\r\n protected override firstUpdated(_changedProperties: PropertyValues): void {\r\n super.firstUpdated(_changedProperties);\r\n this[_firstUpdated] = true;\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(\"htmlFor\")) {\r\n if (this.htmlFor) {\r\n const control = (this.getRootNode() as ParentNode)?.querySelector(`#${this.htmlFor}`);\r\n if (control !== this.control) {\r\n if (this.control) {\r\n this.detach();\r\n }\r\n if (control instanceof HTMLElement) {\r\n this.attach(control);\r\n }\r\n }\r\n } else if (this.control && this[_firstUpdated]) {\r\n this.detach();\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Attaches the element to an interactive control.\r\n * @param {HTMLElement} control The element that controls the attachable element.\r\n */\r\n attach(control: HTMLElement): void {\r\n this[_control] = control;\r\n }\r\n\r\n /** Detaches the element from its current interactive control. */\r\n detach(): void {\r\n this[_control] = null;\r\n }\r\n }\r\n\r\n return _HtmlForMixin;\r\n}\r\n","import { LitElement } from \"lit\";\r\n\r\nimport { Constructor } from \"./Constructor\";\r\nimport { isDisabledMixin } from \"./Disabled\";\r\nimport { isDisabledInteractiveMixin } from \"./DisabledInteractive\";\r\n\r\n/**\r\n * Mixin to augment an element with behavior emits a click event on keyboard events.\r\n * @template T The type of the base class.\r\n * @param {T} base The base class.\r\n * @param {boolean} [allowEnter=true] Whether the `ENTER` key emits a click event.\r\n * @returns {T} A class that extends `base` with keyboard click behavior.\r\n */\r\nexport function KeyboardClick<T extends Constructor<LitElement>>(base: T, allowEnter: boolean = true): T {\r\n abstract class _KeyboardClickMixin extends base {\r\n /** @private */\r\n readonly #keyUpHandler = (e: KeyboardEvent) => this.#handleKeyUp(e);\r\n\r\n /** @inheritdoc */\r\n override connectedCallback(): void {\r\n super.connectedCallback();\r\n this.addEventListener(\"keyup\", this.#keyUpHandler);\r\n }\r\n\r\n /** @inheritdoc */\r\n override disconnectedCallback(): void {\r\n super.disconnectedCallback();\r\n this.removeEventListener(\"keyup\", this.#keyUpHandler);\r\n }\r\n\r\n /** @private */\r\n #handleKeyUp(e: KeyboardEvent): void {\r\n if ((isDisabledMixin(this) && this.disabled) || (isDisabledInteractiveMixin(this) && this.disabledInteractive)) {\r\n return;\r\n }\r\n\r\n if (e.key === \" \" || (allowEnter && e.key === \"Enter\")) {\r\n // NOTE: the dispatched click event will not be trusted since it is synthetic.\r\n this.dispatchEvent(\r\n new MouseEvent(\"click\", {\r\n cancelable: true,\r\n bubbles: true,\r\n composed: true,\r\n })\r\n );\r\n }\r\n }\r\n }\r\n\r\n return _KeyboardClickMixin;\r\n}\r\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","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","import { html, LitElement, nothing } from \"lit\";\r\nimport { property } from \"lit/decorators.js\";\r\nimport { ifDefined } from \"lit/directives/if-defined.js\";\r\n\r\nimport { Constructor } from \"./Constructor\";\r\nimport { isDisabledInteractiveMixin } from \"./DisabledInteractive\";\r\nimport { isDisabledMixin } from \"./Disabled\";\r\nimport { hasKeys } from \"./hasKeys\";\r\n\r\n/** A symbol through which to access a function used to render a pseudo link. */\r\nexport const renderPseudoLink = Symbol(\"renderPseudoLink\");\r\n\r\n/** Specifies the possible targets for a link. */\r\nexport type LinkTarget = \"_self\" | \"_blank\" | \"_parent\" | \"_top\" | (string & {});\r\n\r\n/** Defines functionality for an interactive element that functions as a link. */\r\nexport interface LinkButtonMixin {\r\n /**\r\n * The URL to which the link button points.\r\n * @default \"\"\r\n */\r\n href: string;\r\n\r\n /**\r\n * The target of the link button.\r\n * @default \"\"\r\n */\r\n target: LinkTarget;\r\n\r\n /**\r\n * The relationship between the `target` of the link button and the document.\r\n * @default \"\"\r\n */\r\n rel: string;\r\n\r\n /**\r\n * A value indicating whether the `target` of the link button will be downloaded,\r\n * optionally specifying the new name of the file.\r\n * @default null\r\n */\r\n download: string | null;\r\n\r\n /** Function used to render a pseudo link. */\r\n [renderPseudoLink](): unknown;\r\n}\r\n\r\n/**\r\n * Determines whether a value is a `LinkButtonMixin`.\r\n * @param {unknown} value The value to test.\r\n * @returns {value is LinkButtonMixin} Whether `value` is a `LinkButtonMixin`.\r\n */\r\nexport function isLinkButtonMixin(value: unknown): value is LinkButtonMixin {\r\n return hasKeys<LinkButtonMixin>(value, \"download\", \"href\", \"rel\", \"target\");\r\n}\r\n\r\nconst _clickHandler = Symbol(\"_clickHandler\");\r\n\r\n/**\r\n * Mixin to augment an element with behavior that supports functioning as a link.\r\n * @template T The type of the base class.\r\n * @param {T} base The base class.\r\n * @returns {Constructor<LinkButtonMixin>} A constructor that implements `LinkButtonMixin`.\r\n */\r\nexport function LinkButton<T extends Constructor<LitElement>>(base: T): Constructor<LinkButtonMixin> & T {\r\n abstract class _LinkButtonMixin extends base implements LinkButtonMixin {\r\n private [_clickHandler] = async (e: Event) => {\r\n if (isDisabledInteractiveMixin(this) && this.disabledInteractive) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n }\r\n\r\n await new Promise<void>((resolve) => resolve());\r\n if (e.defaultPrevented) {\r\n return;\r\n }\r\n\r\n if (this.href) {\r\n e.preventDefault();\r\n e.stopImmediatePropagation();\r\n\r\n const link = document.createElement(\"a\");\r\n link.href = this.href;\r\n link.rel = this.rel;\r\n link.target = this.target;\r\n if (this.download != null) {\r\n link.download = this.download;\r\n }\r\n\r\n link.addEventListener(\"click\", async () => {\r\n await new Promise<void>((resolve) => resolve());\r\n link.remove();\r\n });\r\n\r\n document.body.appendChild(link);\r\n link.click();\r\n }\r\n };\r\n\r\n /**\r\n * The URL to which the link button points.\r\n * @default \"\"\r\n */\r\n @property() href = \"\";\r\n\r\n /**\r\n * The target of the link button.\r\n * @default \"\"\r\n */\r\n @property() target: LinkTarget = \"\";\r\n\r\n /**\r\n * The relationship between the `target` of the link button and the document.\r\n * @default \"\"\r\n */\r\n @property() rel = \"\";\r\n\r\n /**\r\n * A value indicating whether the `target` of the link button will be downloaded,\r\n * optionally specifying the new name of the file.\r\n * @default null\r\n */\r\n @property({ reflect: false }) get download(): string | null {\r\n return this.getAttribute(\"download\");\r\n }\r\n set download(value: string | null) {\r\n const old = this.download;\r\n if (old !== value) {\r\n if (value) {\r\n this.setAttribute(\"download\", value);\r\n } else {\r\n this.removeAttribute(\"download\");\r\n }\r\n this.requestUpdate(\"download\", old);\r\n }\r\n }\r\n\r\n /** @inheritdoc */\r\n override connectedCallback(): void {\r\n super.connectedCallback();\r\n this.addEventListener(\"click\", this[_clickHandler]);\r\n\r\n if (this.hasAttribute(\"href\") && this.role === \"button\") {\r\n this.role = \"link\";\r\n }\r\n }\r\n\r\n /** @inheritdoc */\r\n override disconnectedCallback(): void {\r\n super.disconnectedCallback();\r\n this.removeEventListener(\"click\", this[_clickHandler]);\r\n }\r\n\r\n /** @internal */\r\n [renderPseudoLink](): unknown {\r\n const disabled = isDisabledMixin(this) && this.disabled;\r\n const disabledInteractive = isDisabledInteractiveMixin(this) && this.disabledInteractive;\r\n\r\n return !disabled && !disabledInteractive && this.href\r\n ? html`<a\r\n href=\"${this.href}\"\r\n target=\"${ifDefined(this.target || undefined)}\"\r\n rel=\"${ifDefined(this.rel || undefined)}\"\r\n download=\"${ifDefined(this.download || undefined)}\"\r\n tabindex=\"-1\"\r\n aria-hidden=\"true\"\r\n @pointerdown=\"${this.#handleLinkPointerDown}\"\r\n @focus=\"${this.#handleLinkFocus}\"\r\n @blur=\"${this.#handleLinkBlur}\"\r\n ></a>`\r\n : nothing;\r\n }\r\n\r\n /** @private */\r\n #handleLinkPointerDown(e: PointerEvent): void {\r\n if (e.button !== 2) {\r\n e.preventDefault();\r\n e.stopImmediatePropagation();\r\n\r\n this.dispatchEvent(\r\n new MouseEvent(\"click\", {\r\n bubbles: true,\r\n cancelable: true,\r\n view: window,\r\n })\r\n );\r\n } else {\r\n (e.target as HTMLLinkElement).removeAttribute(\"aria-hidden\");\r\n }\r\n }\r\n\r\n /** @private */\r\n #handleLinkFocus(e: Event): void {\r\n (e.target as HTMLLinkElement).blur();\r\n this.focus();\r\n }\r\n\r\n /** @private */\r\n #handleLinkBlur(e: Event): void {\r\n (e.target as HTMLLinkElement).setAttribute(\"aria-hidden\", \"true\");\r\n }\r\n }\r\n\r\n return _LinkButtonMixin;\r\n}\r\n","import { LitElement, PropertyValues } from \"lit\";\r\nimport { property } from \"lit/decorators.js\";\r\n\r\nimport { Constructor } from \"./Constructor\";\r\nimport { hasKeys } from \"./hasKeys\";\r\n\r\n/** Defines functionality for an element which supports a read-only state. */\r\nexport interface ReadOnlyMixin {\r\n /**\r\n * A value indicating whether the element is read-only.\r\n * @default false\r\n */\r\n readOnly: boolean;\r\n}\r\n\r\n/**\r\n * Determines whether a value is a `ReadOnlyMixin`.\r\n * @param {unknown} value The value to test.\r\n * @returns A value indicating whether `value` is a `ReadOnlyMixin`.\r\n */\r\nexport function isReadOnlyMixin(value: unknown): value is ReadOnlyMixin {\r\n return hasKeys<ReadOnlyMixin>(value, \"readOnly\");\r\n}\r\n\r\n/**\r\n * Mixin to augment an element with behavior that supports a read-only state.\r\n * @template T The type of the base class.\r\n * @param {T} base The base class.\r\n * @param {boolean} reflect A value indicating whether the read-only state is reflected as an attribute. The default value is `true`.\r\n * @returns {Constructor<ReadOnlyMixin> & T} A constructor that implements `ReadOnlyMixin`.\r\n */\r\nexport function ReadOnly<T extends Constructor<LitElement>>(\r\n base: T,\r\n reflect: boolean = true\r\n): Constructor<ReadOnlyMixin> & T {\r\n abstract class _ReadOnlyMixin extends base implements ReadOnlyMixin {\r\n /**\r\n * A value indicating whether the element is read-only.\r\n * @default false\r\n */\r\n @property({ attribute: \"readonly\", type: Boolean, reflect: reflect }) readOnly = false;\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(\"readOnly\")) {\r\n this.ariaReadOnly = this.readOnly ? \"true\" : null;\r\n }\r\n }\r\n }\r\n return _ReadOnlyMixin;\r\n}\r\n","import { LitElement, PropertyValues } from \"lit\";\r\nimport { property } from \"lit/decorators.js\";\r\n\r\nimport { Constructor } from \"./Constructor\";\r\nimport { hasKeys } from \"./hasKeys\";\r\n\r\n/** Defines functionality for an element which supports a required state. */\r\nexport interface RequiredMixin {\r\n /**\r\n * Whether a value is required for the element.\r\n * @default false\r\n */\r\n required: boolean;\r\n\r\n /** Whether a value is not required for the element. */\r\n readonly optional: boolean;\r\n}\r\n\r\n/**\r\n * Determines whether a value is a `RequiredMixin`.\r\n * @param {unknown} value The value to test.\r\n * @returns A value indicating whether `value` is a `RequiredMixin`.\r\n */\r\nexport function isRequiredMixin(value: unknown): value is RequiredMixin {\r\n return hasKeys<RequiredMixin>(value, \"required\", \"optional\");\r\n}\r\n\r\n/**\r\n * Mixin to augment an element with behavior that supports a required state.\r\n * @template T The type of the base class.\r\n * @param {T} base The base class.\r\n * @returns {Constructor<RequiredMixin> & T} A constructor that implements `RequiredMixin`.\r\n */\r\nexport function Required<T extends Constructor<LitElement>>(base: T): Constructor<RequiredMixin> & T {\r\n abstract class _RequiredMixin extends base implements RequiredMixin {\r\n /**\r\n * Whether a value is required for the element.\r\n * @default false\r\n */\r\n @property({ type: Boolean, reflect: true }) required = false;\r\n\r\n /** Whether a value is not required for the element. */\r\n get optional() {\r\n return !this.required;\r\n }\r\n\r\n /** @inheritdoc */\r\n protected override update(changedProperties: PropertyValues<this>): void {\r\n super.update(changedProperties);\r\n if (changedProperties.has(\"required\")) {\r\n this.ariaRequired = `${this.required}`;\r\n }\r\n }\r\n }\r\n return _RequiredMixin;\r\n}\r\n","import { LitElement } from \"lit\";\r\n\r\nimport { Constructor } from \"./Constructor\";\r\nimport { ConstraintValidationMixin, isConstraintValidationMixin, validate } from \"./ConstraintValidation\";\r\nimport { isCheckedMixin } from \"./Checked\";\r\nimport { isRequiredMixin, RequiredMixin } from \"./Required\";\r\n\r\n/** Defines functionality for an element which supports validating a required state. */\r\nexport interface RequiredConstraintValidationMixin extends RequiredMixin, ConstraintValidationMixin {}\r\n\r\n/**\r\n * Determines whether a value is a `RequiredConstraintValidationMixin`.\r\n * @param {unknown} value The value to test.\r\n * @returns A value indicating whether `value` is a `RequiredConstraintValidationMixin`.\r\n */\r\nexport function isRequiredConstraintValidationMixin(value: unknown): value is RequiredConstraintValidationMixin {\r\n return isRequiredMixin(value) && isConstraintValidationMixin(value);\r\n}\r\n\r\n/**\r\n * Mixin to augment an element with behavior that supports a required state.\r\n * @template T The type of the base class.\r\n * @param {T} base The base class.\r\n * @returns {Constructor<RequiredConstraintValidationMixin> & T} A constructor that implements `RequiredConstraintValidationMixin`.\r\n */\r\nexport function RequiredConstraintValidation<\r\n T extends Constructor<LitElement & RequiredMixin & ConstraintValidationMixin>,\r\n>(base: T): Constructor<RequiredConstraintValidationMixin> & T {\r\n abstract class _RequiredConstraintValidation extends base implements RequiredConstraintValidationMixin {\r\n /** @internal */\r\n override [validate](): ValidityStateFlags | undefined {\r\n const validity = super[validate]();\r\n if (!validity && this.required) {\r\n if (isCheckedMixin(this) && !this.checked) {\r\n return { valueMissing: true };\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n if (!(<any>this).value) {\r\n return { valueMissing: true };\r\n }\r\n }\r\n return validity;\r\n }\r\n }\r\n return _RequiredConstraintValidation;\r\n}\r\n","import { LitElement } from \"lit\";\r\n\r\nimport { Constructor } from \"./Constructor\";\r\n\r\n/** Specifies valid values for the ARIA `role` attribute. */\r\nexport type ARIARole =\r\n | \"alert\"\r\n | \"alertdialog\"\r\n | \"button\"\r\n | \"checkbox\"\r\n | \"dialog\"\r\n | \"gridcell\"\r\n | \"link\"\r\n | \"log\"\r\n | \"marquee\"\r\n | \"menuitem\"\r\n | \"menuitemcheckbox\"\r\n | \"menuitemradio\"\r\n | \"option\"\r\n | \"progressbar\"\r\n | \"radio\"\r\n | \"scrollbar\"\r\n | \"searchbox\"\r\n | \"slider\"\r\n | \"spinbutton\"\r\n | \"status\"\r\n | \"switch\"\r\n | \"tab\"\r\n | \"tabpanel\"\r\n | \"textbox\"\r\n | \"timer\"\r\n | \"tooltip\"\r\n | \"treeitem\"\r\n | \"combobox\"\r\n | \"grid\"\r\n | \"listbox\"\r\n | \"menu\"\r\n | \"menubar\"\r\n | \"radiogroup\"\r\n | \"tablist\"\r\n | \"tree\"\r\n | \"treegrid\"\r\n | \"application\"\r\n | \"article\"\r\n | \"cell\"\r\n | \"columnheader\"\r\n | \"definition\"\r\n | \"directory\"\r\n | \"document\"\r\n | \"feed\"\r\n | \"figure\"\r\n | \"group\"\r\n | \"heading\"\r\n | \"img\"\r\n | \"list\"\r\n | \"listitem\"\r\n | \"math\"\r\n | \"none\"\r\n | \"note\"\r\n | \"presentation\"\r\n | \"region\"\r\n | \"row\"\r\n | \"rowgroup\"\r\n | \"rowheader\"\r\n | \"separator\"\r\n | \"table\"\r\n | \"term\"\r\n | \"text\"\r\n | \"toolbar\"\r\n | \"banner\"\r\n | \"complementary\"\r\n | \"contentinfo\"\r\n | \"form\"\r\n | \"main\"\r\n | \"navigation\"\r\n | \"region\"\r\n | \"search\"\r\n | \"doc-abstract\"\r\n | \"doc-acknowledgments\"\r\n | \"doc-afterword\"\r\n | \"doc-appendix\"\r\n | \"doc-backlink\"\r\n | \"doc-biblioentry\"\r\n | \"doc-bibliography\"\r\n | \"doc-biblioref\"\r\n | \"doc-chapter\"\r\n | \"doc-colophon\"\r\n | \"doc-conclusion\"\r\n | \"doc-cover\"\r\n | \"doc-credit\"\r\n | \"doc-credits\"\r\n | \"doc-dedication\"\r\n | \"doc-endnote\"\r\n | \"doc-endnotes\"\r\n | \"doc-epigraph\"\r\n | \"doc-epilogue\"\r\n | \"doc-errata\"\r\n | \"doc-example\"\r\n | \"doc-footnote\"\r\n | \"doc-foreword\"\r\n | \"doc-glossary\"\r\n | \"doc-glossref\"\r\n | \"doc-index\"\r\n | \"doc-introduction\"\r\n | \"doc-noteref\"\r\n | \"doc-notice\"\r\n | \"doc-pagebreak\"\r\n | \"doc-pagelist\"\r\n | \"doc-part\"\r\n | \"doc-preface\"\r\n | \"doc-prologue\"\r\n | \"doc-pullquote\"\r\n | \"doc-qna\"\r\n | \"doc-subtitle\"\r\n | \"doc-tip\"\r\n | \"doc-toc\";\r\n\r\n/**\r\n * Mixin to augment an element with an ARIA role.\r\n * @template T The type of the base class.\r\n * @param {T} base The base class.\r\n * @param {ARIARole} role The ARIA role.\r\n * @returns {Constructor & T} A constructor that implements focusable behavior.\r\n */\r\nexport function Role<T extends Constructor<LitElement>>(base: T, role: ARIARole): Constructor & T {\r\n abstract class _RoleMixin extends base {\r\n /** @inheritdoc */\r\n override connectedCallback(): void {\r\n this.role = this.role || role;\r\n super.connectedCallback();\r\n }\r\n }\r\n\r\n return _RoleMixin;\r\n}\r\n","import { LitElement, PropertyValues } from \"lit\";\r\nimport { property } from \"lit/decorators.js\";\r\n\r\nimport { Constructor } from \"./Constructor\";\r\nimport { hasKeys } from \"./hasKeys\";\r\n\r\n/** Defines functionality for an element which supports a vertical orientation. */\r\nexport interface VerticalMixin {\r\n /**\r\n * Whether the element is oriented vertically.\r\n * @default false\r\n */\r\n vertical: boolean;\r\n}\r\n\r\n/**\r\n * Determines whether a value is a `VerticalMixin`.\r\n * @param {unknown} value The value to test.\r\n * @returns A value indicating whether `value` is a `VerticalMixin`.\r\n */\r\nexport function isVerticalMixin(value: unknown): value is VerticalMixin {\r\n return hasKeys<VerticalMixin>(value, \"vertical\");\r\n}\r\n\r\n/**\r\n * Mixin to augment an element with behavior that supports a vertical orientation.\r\n * @template T The type of the base class.\r\n * @param {T} base The base class.\r\n * @returns {Constructor<VerticalMixin> & T} A constructor that implements `VerticalMixin`.\r\n */\r\nexport function Vertical<T extends Constructor<LitElement>>(base: T): Constructor<VerticalMixin> & T {\r\n abstract class _VerticalMixin extends base implements VerticalMixin {\r\n /**\r\n * Whether the element is oriented vertically.\r\n * @default false\r\n */\r\n @property({ type: Boolean, reflect: true }) vertical = false;\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(\"vertical\")) {\r\n this.ariaOrientation = this.vertical ? \"vertical\" : \"horizontal\";\r\n }\r\n }\r\n }\r\n return _VerticalMixin;\r\n}\r\n","/**\r\n * Gets the text content of a given node, including slotted content.\r\n * @param {Node} node The node for which to get text content.\r\n * @param {boolean} [trim = false] A value indicating whether to trim content.\r\n * @returns {string} The text content of `node`.\r\n */\r\nexport function getTextContent(node: Node, trim: boolean = false): string {\r\n let textContent = \"\";\r\n\r\n switch (node.nodeType) {\r\n case Node.TEXT_NODE:\r\n textContent = node.nodeValue ?? \"\";\r\n break;\r\n case Node.ELEMENT_NODE:\r\n if (node instanceof HTMLSlotElement) {\r\n for (const assignedNode of node.assignedNodes({ flatten: true })) {\r\n textContent += getTextContent(assignedNode, trim);\r\n }\r\n } else {\r\n for (const child of node.childNodes) {\r\n textContent += getTextContent(child, trim);\r\n }\r\n }\r\n break;\r\n }\r\n\r\n if (trim) {\r\n textContent = textContent.trim();\r\n }\r\n return textContent;\r\n}\r\n","/**\r\n * Generates a new globally unique identifier (GUID).\r\n * @returns {string} A new globally unique identifier.\r\n */\r\nexport function guid(): string {\r\n return \"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx\".replace(/[xy]/g, (c) => {\r\n const r = (Math.random() * 16) | 0;\r\n const v = c === \"x\" ? r : (r & 0x3) | 0x8;\r\n return v.toString(16);\r\n });\r\n}\r\n","/**\r\n * Determines whether a slot has any assigned nodes.\r\n * @param {HTMLSlotElement} slot The slot to test.\r\n * @returns {boolean} Whether `slot` has any assigned nodes.\r\n */\r\nexport function hasAssignedNodes(slot: HTMLSlotElement): boolean {\r\n return slot.assignedNodes({ flatten: true }).length > 0;\r\n}\r\n","import { isServer } from \"lit\";\r\n\r\n/**\r\n * Determines whether reduced motion is preferred.\r\n * @returns {boolean} Whether reduced motion is preferred.\r\n */\r\nexport function prefersReducedMotion(): boolean {\r\n return isServer || matchMedia(\"(prefers-reduced-motion)\").matches;\r\n}\r\n","/**\r\n * If needed, scrolls an element into view within a given scroll container.\r\n * @param {HTMLElement} element The element to scroll into view.\r\n * @param {HTMLElement} scrollContainer The scrollable container.\r\n * @param {ScrollIntoViewOptions} [options=undefined] Options used to scroll into view.\r\n */\r\nexport function scrollIntoViewIfNeeded(\r\n element: HTMLElement,\r\n scrollContainer: HTMLElement,\r\n options?: ScrollIntoViewOptions\r\n): void {\r\n const containerBounds = scrollContainer.getBoundingClientRect();\r\n const elementBounds = element.getBoundingClientRect();\r\n\r\n if (elementBounds.top < containerBounds.top || elementBounds.bottom > containerBounds.bottom) {\r\n element.scrollIntoView(options);\r\n }\r\n}\r\n","/* eslint-disable @typescript-eslint/no-unsafe-declaration-merging */\r\n\r\nimport { css, CSSResultGroup, html, LitElement, PropertyValues, unsafeCSS } from \"lit\";\r\nimport { customElement, property } from \"lit/decorators.js\";\r\n\r\nimport { EventAttribute } from \"../mixins\";\r\nimport { DesignToken } from \"../tokens\";\r\nimport { prefersReducedMotion } from \"../utils\";\r\n\r\n/**\r\n * A container used to expand and collapse content.\r\n *\r\n * @example\r\n * ```html\r\n * <m3e-collapsible>\r\n * <!-- Collapsible content -->\r\n * </m3e-collapsible>\r\n * ```\r\n *\r\n * @tag m3e-collapsible\r\n *\r\n * @slot - Renders the collapsible content.\r\n *\r\n * @attr open - Whether content is visible.\r\n *\r\n * @fires opening - Emitted when the collapsible begins to open.\r\n * @fires opened - Emitted when the collapsible has opened.\r\n * @fires closing - Emitted when the collapsible begins to close.\r\n * @fires closed - Emitted when the collapsible has closed.\r\n *\r\n * @cssprop --m3e-collapsible-animation-duration - The duration of the expand / collapse animation.\r\n */\r\n@customElement(\"m3e-collapsible\")\r\nexport class M3eCollapsibleElement extends EventAttribute(LitElement, \"opening\", \"opened\", \"closing\", \"closed\") {\r\n /** The styles of the element. */\r\n static override styles: CSSResultGroup = css`\r\n :host {\r\n display: block;\r\n height: 0px;\r\n overflow: hidden;\r\n transition: ${unsafeCSS(`visibility var(--m3e-collapsible-animation-duration, ${DesignToken.motion.duration.medium1})\r\n ${DesignToken.motion.easing.standard},\r\n height var(--m3e-collapsible-animation-duration, ${DesignToken.motion.duration.medium1})\r\n ${DesignToken.motion.easing.standard},\r\n padding-top var(--m3e-collapsible-animation-duration, ${DesignToken.motion.duration.medium1})\r\n ${DesignToken.motion.easing.standard},\r\n padding-bottom var(--m3e-collapsible-animation-duration, ${DesignToken.motion.duration.medium1})\r\n ${DesignToken.motion.easing.standard}`)};\r\n }\r\n :host(:not(.-closing):not([open])) {\r\n visibility: hidden;\r\n }\r\n :host([open]) {\r\n visibility: visible;\r\n }\r\n :host(:not([open])) {\r\n min-height: unset !important;\r\n padding-top: 0px !important;\r\n padding-bottom: 0px !important;\r\n }\r\n :host(.-no-animate) {\r\n transition-duration: 0ms;\r\n }\r\n ::slotted(*) {\r\n --m3e-collapsible-animation-duration: initial;\r\n }\r\n @media (prefers-reduced-motion) {\r\n :host {\r\n transition: none;\r\n }\r\n }\r\n `;\r\n\r\n /** @private */ #slotChanged = false;\r\n /** @private */ #hasOpened = false;\r\n\r\n /**\r\n * Whether content is visible.\r\n * @default false\r\n */\r\n @property({ type: Boolean, reflect: true }) open = false;\r\n\r\n /** @inheritdoc */\r\n protected override update(changedProperties: PropertyValues): void {\r\n super.update(changedProperties);\r\n\r\n this.classList.toggle(\"-no-animate\", true);\r\n\r\n if (!this.#slotChanged) {\r\n if (this.open) {\r\n this.#hasOpened = true;\r\n this.#autoSize();\r\n }\r\n this.#slotChanged = true;\r\n return;\r\n }\r\n\r\n this.toggleAttribute(\"inert\", !this.open);\r\n\r\n if (this.open) {\r\n this.#hasOpened = true;\r\n this.classList.toggle(\"-closing\", false);\r\n this.classList.toggle(\"-opening\", true);\r\n this.dispatchEvent(new Event(\"opening\"));\r\n\r\n this.#clearSize();\r\n this.classList.toggle(\"-no-animate\", false);\r\n this.#actualSize();\r\n\r\n if (prefersReducedMotion()) {\r\n this.classList.toggle(\"-opening\", false);\r\n this.dispatchEvent(new Event(\"opened\"));\r\n } else {\r\n this.addEventListener(\r\n \"transitionend\",\r\n () => {\r\n if (this.open) {\r\n this.#autoSize();\r\n this.classList.toggle(\"-opening\", false);\r\n this.dispatchEvent(new Event(\"opened\"));\r\n }\r\n },\r\n { once: true }\r\n );\r\n }\r\n } else {\r\n this.classList.toggle(\"-opening\", false);\r\n this.classList.toggle(\"-closing\", true);\r\n this.dispatchEvent(new Event(\"closing\"));\r\n\r\n this.#actualSize();\r\n if (this.#hasOpened) {\r\n this.classList.toggle(\"-no-animate\", false);\r\n }\r\n\r\n if (prefersReducedMotion()) {\r\n this.#clearSize();\r\n this.classList.toggle(\"-closing\", false);\r\n this.dispatchEvent(new Event(\"closed\"));\r\n } else {\r\n requestAnimationFrame(() => {\r\n this.#clearSize();\r\n this.addEventListener(\r\n \"transitionend\",\r\n () => {\r\n if (!this.open) {\r\n this.classList.toggle(\"-closing\", false);\r\n this.dispatchEvent(new Event(\"closed\"));\r\n }\r\n },\r\n { once: true }\r\n );\r\n });\r\n }\r\n }\r\n }\r\n\r\n /** @inheritdoc */\r\n protected override render(): unknown {\r\n return html`<slot @slotchange=\"${this.#handleSlotChange}\"></slot>`;\r\n }\r\n\r\n /** @private */\r\n #handleSlotChange() {\r\n this.#slotChanged = true;\r\n }\r\n\r\n /** @private */\r\n #autoSize(): void {\r\n this.style.height = \"auto\";\r\n }\r\n\r\n /** @private */\r\n #clearSize(): void {\r\n this.style.height = \"\";\r\n }\r\n\r\n /** @private */\r\n #actualSize(): void {\r\n this.style.height = `${this.scrollHeight}px`;\r\n }\r\n}\r\n\r\ninterface M3eCollapsibleElementEventMap extends HTMLElementEventMap {\r\n opening: Event;\r\n opened: Event;\r\n closing: Event;\r\n closed: Event;\r\n}\r\n\r\nexport interface M3eCollapsibleElement {\r\n addEventListener<K extends keyof M3eCollapsibleElementEventMap>(\r\n type: K,\r\n listener: (this: M3eCollapsibleElement, ev: M3eCollapsibleElementEventMap[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 M3eCollapsibleElementEventMap>(\r\n type: K,\r\n listener: (this: M3eCollapsibleElement, ev: M3eCollapsibleElementEventMap[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\ndeclare global {\r\n interface HTMLElementTagNameMap {\r\n \"m3e-collapsible\": M3eCollapsibleElement;\r\n }\r\n}\r\n","import { unsafeCSS } from \"lit\";\r\n\r\nimport { DesignToken } from \"../tokens\";\r\n\r\n/**\r\n * Component design tokens that control the `M3eElevationElement`.\r\n * @internal\r\n */\r\nexport const ElevationToken = {\r\n liftDuration: unsafeCSS(`var(--m3e-elevation-lift-duration, ${DesignToken.motion.duration.short4})`),\r\n liftEasing: unsafeCSS(`var(--m3e-elevation-lift-easing, ${DesignToken.motion.easing.standard})`),\r\n settleDuration: unsafeCSS(`var(--m3e-elevation-settle-duration, ${DesignToken.motion.duration.short3})`),\r\n settleEasing: unsafeCSS(`var(--m3e-elevation-settle-easing, ${DesignToken.motion.easing.standardAccelerate})`),\r\n level: unsafeCSS(`var(--m3e-elevation-level, ${DesignToken.elevation.level0})`),\r\n hoverLevel: unsafeCSS(`var(--m3e-elevation-hover-level, ${DesignToken.elevation.level0})`),\r\n focusLevel: unsafeCSS(`var(--m3e-elevation-focus-level, ${DesignToken.elevation.level0})`),\r\n pressedLevel: unsafeCSS(`var(--m3e-elevation-pressed-level, ${DesignToken.elevation.level0})`),\r\n} as const;\r\n","import { css, CSSResultGroup, html, LitElement, PropertyValues, unsafeCSS } from \"lit\";\r\nimport { customElement, property, query } from \"lit/decorators.js\";\r\n\r\nimport { FocusController, HoverController, PressedController } from \"../controllers\";\r\nimport { HtmlFor, Role } from \"../mixins\";\r\n\r\nimport { ElevationLevel } from \"./ElevationLevel\";\r\nimport { ElevationToken } from \"./ElevationToken\";\r\nimport { DesignToken } from \"../tokens\";\r\n\r\n/**\r\n * Visually depicts elevation using a shadow.\r\n *\r\n * @description\r\n * The `m3e-elevation` component is an absolute positioned element used to depict elevation using a shadow.\r\n * The parenting element must be a relative positioned element and allow for overflow. Use the `level` attribute\r\n * to specify the elevation level.\r\n *\r\n * The component can also be attached to another element using the `for` attribute. When attached, elevation will\r\n * be lifted by 1 level on hover. This can be disabled using the `disabled` attribute.\r\n *\r\n * Alternately, use the `attach` and `detach` methods to programmatically attach and detach this element to another.\r\n *\r\n * @example\r\n * The following example illustrates basic markup. Note how the parenting element's position is `relative`. A parenting\r\n * element's position must be `relative` and overflow must be visible.\r\n *\r\n * ```html\r\n * <div style=\"position: relative;\">\r\n * <m3e-elevation level=\"1\"></m3e-elevation>\r\n * <div>\r\n * ```\r\n * @example\r\n * The following example illustrates attaching elevation to an interactive element. In this example, the parenting div\r\n * is given an `id` referenced by `m3e-elevation` using the `for` attribute. Note that `#myDiv` is not used when\r\n * specifying the attached element's identifier. The `#` is inferred.\r\n *\r\n * ```html\r\n * <div id=\"myDiv\" style=\"position: relative;\">\r\n * <m3e-elevation for=\"myDiv\" level=\"1\"></m3e-elevation>\r\n * <div>\r\n * ```\r\n *\r\n * @tag m3e-elevation\r\n *\r\n * @attr disabled - Whether hover and press events will not trigger changes in elevation, when attached to an interactive element.\r\n * @attr for - The identifier of the interactive control to which this element is attached.\r\n * @attr level - The level at which to visually depict elevation.\r\n *\r\n * @cssprop --m3e-elevation-color - Color used to depict elevation.\r\n * @cssprop --m3e-elevation-lift-duration - Duration when lifting.\r\n * @cssprop --m3e-elevation-lift-easing - Easing curve when lifting.\r\n * @cssprop --m3e-elevation-settle-duration - Duration when settling.\r\n * @cssprop --m3e-elevation-settle-easing - Easing curve when settling.\r\n * @cssprop --m3e-elevation-level - Elevation when resting (box-shadow).\r\n * @cssprop --m3e-elevation-hover-level - Elevation on hover (box-shadow).\r\n * @cssprop --m3e-elevation-focus-level - Elevation on focus (box-shadow).\r\n * @cssprop --m3e-elevation-pressed-level - Elevation on pressed (box-shadow).\r\n */\r\n@customElement(\"m3e-elevation\")\r\nexport class M3eElevationElement extends HtmlFor(Role(LitElement, \"none\")) {\r\n /** The styles of the element. */\r\n static override styles: CSSResultGroup = css`\r\n :host {\r\n display: block;\r\n }\r\n :host,\r\n .shadow {\r\n position: absolute;\r\n left: 0;\r\n top: 0;\r\n right: 0;\r\n bottom: 0;\r\n pointer-events: none;\r\n border-radius: inherit;\r\n }\r\n .shadow.resting,\r\n .shadow.focus,\r\n .shadow.pressed {\r\n will-change: box-shadow;\r\n transition: ${unsafeCSS(`box-shadow ${ElevationToken.settleDuration} ${ElevationToken.settleEasing};`)};\r\n }\r\n .shadow.hover {\r\n will-change: box-shadow;\r\n transition: ${unsafeCSS(`box-shadow ${ElevationToken.liftDuration} ${ElevationToken.liftEasing};`)};\r\n }\r\n .shadow {\r\n box-shadow: ${ElevationToken.level};\r\n }\r\n .shadow.focus {\r\n box-shadow: ${ElevationToken.focusLevel};\r\n }\r\n .shadow.hover {\r\n box-shadow: ${ElevationToken.hoverLevel};\r\n }\r\n .shadow.pressed {\r\n box-shadow: ${ElevationToken.pressedLevel};\r\n }\r\n :host([level=\"0\"]) .shadow {\r\n --m3e-elevation-level: ${DesignToken.elevation.level0};\r\n --m3e-elevation-hover-level: ${DesignToken.elevation.level1};\r\n }\r\n :host([level=\"1\"]) .shadow {\r\n --m3e-elevation-level: ${DesignToken.elevation.level1};\r\n --m3e-elevation-hover-level: ${DesignToken.elevation.level2};\r\n }\r\n :host([level=\"2\"]) .shadow {\r\n --m3e-elevation-level: ${DesignToken.elevation.level2};\r\n --m3e-elevation-hover-level: ${DesignToken.elevation.level3};\r\n }\r\n :host([level=\"3\"]) .shadow {\r\n --m3e-elevation-level: ${DesignToken.elevation.level3};\r\n --m3e-elevation-hover-level: ${DesignToken.elevation.level4};\r\n }\r\n :host([level=\"4\"]) .shadow {\r\n --m3e-elevation-level: ${DesignToken.elevation.level4};\r\n --m3e-elevation-hover-level: ${DesignToken.elevation.level5};\r\n }\r\n :host([level=\"5\"]) .shadow {\r\n --m3e-elevation-level: ${DesignToken.elevation.level5};\r\n --m3e-elevation-hover-level: ${ElevationToken.level};\r\n }\r\n :host([level]) .shadow {\r\n --m3e-elevation-focus-level: ${ElevationToken.level};\r\n --m3e-elevation-pressed-level: ${ElevationToken.level};\r\n }\r\n @media (prefers-reduced-motion) {\r\n .shadow.resting,\r\n .shadow.pressed,\r\n .shadow.focus,\r\n .shadow.hover {\r\n transition: none;\r\n }\r\n }\r\n @media (forced-colors: active) {\r\n .shadow {\r\n display: none;\r\n }\r\n }\r\n `;\r\n\r\n /** @private */\r\n readonly #hoverController = new HoverController(this, {\r\n target: null,\r\n callback: (hovering) => this.#handleHoverChange(hovering),\r\n });\r\n\r\n /** @private */\r\n readonly #focusController = new FocusController(this, {\r\n target: null,\r\n callback: (focused) => this.#handleFocusChange(focused),\r\n });\r\n\r\n /** @private */\r\n readonly #pressedController = new PressedController(this, {\r\n target: null,\r\n callback: (pressed) => this.#handlePressedChange(pressed),\r\n });\r\n\r\n @query(\".shadow\") private readonly _shadow?: HTMLElement;\r\n\r\n /**\r\n * Whether hover and press events will not trigger changes in elevation, when attached to an interactive element.\r\n * @default false\r\n */\r\n @property({ type: Boolean, reflect: true }) disabled = false;\r\n\r\n /**\r\n * The level at which to visually depict elevation.\r\n * @default null\r\n */\r\n @property({ type: Number, reflect: true }) level: ElevationLevel | null = null;\r\n\r\n /** @inheritdoc */\r\n override attach(control: HTMLElement): void {\r\n super.attach(control);\r\n\r\n this.#hoverController.observe(control);\r\n this.#focusController.observe(control);\r\n this.#pressedController.observe(control);\r\n }\r\n\r\n /** @inheritdoc */\r\n override detach(): void {\r\n if (this.control) {\r\n this.#hoverController.unobserve(this.control);\r\n this.#focusController.unobserve(this.control);\r\n this.#pressedController.unobserve(this.control);\r\n }\r\n super.detach();\r\n }\r\n\r\n /** @inheritdoc */\r\n override connectedCallback(): void {\r\n this.ariaHidden = \"true\";\r\n super.connectedCallback();\r\n }\r\n\r\n /** @inheritdoc */\r\n override disconnectedCallback(): void {\r\n super.disconnectedCallback();\r\n\r\n this._shadow?.classList.toggle(\"hover\", false);\r\n this._shadow?.classList.toggle(\"focus\", false);\r\n this._shadow?.classList.toggle(\"pressed\", false);\r\n this._shadow?.classList.toggle(\"resting\", false);\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(\"disabled\") && this.disabled) {\r\n this._shadow?.classList.toggle(\"hover\", false);\r\n this._shadow?.classList.toggle(\"focus\", false);\r\n this._shadow?.classList.toggle(\"pressed\", false);\r\n this._shadow?.classList.toggle(\"resting\", true);\r\n }\r\n }\r\n\r\n /** @inheritdoc */\r\n protected override render(): unknown {\r\n return html`<div class=\"shadow\"></div>`;\r\n }\r\n\r\n /** @private */\r\n #handleHoverChange(hovering: boolean): void {\r\n if (!this.disabled) {\r\n this._shadow?.classList.toggle(\"hover\", hovering);\r\n this._shadow?.classList.toggle(\"resting\", !hovering);\r\n }\r\n }\r\n\r\n /** @private */\r\n #handleFocusChange(focused: boolean): void {\r\n if (!this.disabled) {\r\n this._shadow?.classList.toggle(\"focus\", focused);\r\n }\r\n }\r\n\r\n /** @private */\r\n #handlePressedChange(pressed: boolean): void {\r\n if (!this.disabled) {\r\n this._shadow?.classList.toggle(\"pressed\", pressed);\r\n }\r\n }\r\n}\r\n\r\ndeclare global {\r\n interface HTMLElementTagNameMap {\r\n \"m3e-elevation\": M3eElevationElement;\r\n }\r\n}\r\n","import { unsafeCSS } from \"lit\";\r\n\r\nimport { DesignToken } from \"../tokens\";\r\n\r\n/**\r\n * Component design tokens that control the `M3eFocusRingElement`.\r\n * @internal\r\n */\r\nexport const FocusRingToken = {\r\n /** The color of the focus ring. */\r\n color: unsafeCSS(`var(--m3e-focus-ring-color, ${DesignToken.color.secondary})`),\r\n\r\n /** The duration of the focus ring animation. */\r\n duration: unsafeCSS(`var(--m3e-focus-ring-duration, ${DesignToken.motion.duration.long2})`),\r\n\r\n /** The thickness of the focus ring. */\r\n thickness: unsafeCSS(`var(--m3e-focus-ring-thickness, 0.1875rem)`),\r\n\r\n /** The visibility of the focus ring. */\r\n visibility: unsafeCSS(`var(--m3e-focus-ring-visibility, visible)`),\r\n\r\n /** The factor by which the focus ring grows. */\r\n growthFactor: unsafeCSS(`var(--m3e-focus-ring-growth-factor, 2)`),\r\n} as const;\r\n","import { css, CSSResultGroup, html, LitElement, PropertyValues } from \"lit\";\r\nimport { customElement, property, query } from \"lit/decorators.js\";\r\n\r\nimport { FocusController } from \"../controllers\";\r\nimport { HtmlFor, Role } from \"../mixins\";\r\n\r\nimport { FocusRingToken } from \"./FocusRingToken\";\r\n\r\n/**\r\n * A focus ring used to depict a strong focus indicator.\r\n *\r\n * @description\r\n * The `m3e-focus-ring` component is an absolute positioned element used to provide a strong focus indicator.\r\n * The parenting element must be a relative positioned focusable element and allow for overflow.\r\n *\r\n * The component can be attached to an interactive element using the `for` attribute or programmatically using the `attach` method.\r\n * The focus ring is displayed when the interactive element receives visible focus and hidden when focus is lost.\r\n * This can be disabled using the `disabled` attribute.\r\n *\r\n * Alternately, you can use the `show` and `hide` methods to programmatically control the focus ring.\r\n *\r\n * @example\r\n * The following example illustrates attaching a focus ring to an interactive element. In this example, the parenting div\r\n * has relative positioning and is given an `id` referenced by `m3e-focus-ring` using the `for` attribute. Note that `#myDiv`\r\n * is not used when specifying the attached element's identifier. The `#` is inferred.\r\n *\r\n * ```html\r\n * <div id=\"myDiv\" tabindex=\"0\" style=\"position: relative;\">\r\n * <m3e-focus-ring for=\"myDiv\"></m3e-focus-ring>\r\n * <div>\r\n * ```\r\n *\r\n * @tag m3e-focus-ring\r\n *\r\n * @attr disabled - Whether the focus events will not trigger the focus ring. Focus rings can be still controlled manually by using the `show` and `hide` methods.\r\n * @attr inward - Whether the focus ring animates inward instead of outward.\r\n *\r\n * @cssprop --m3e-focus-ring-color - The color of the focus ring.\r\n * @cssprop --m3e-focus-ring-duration - The duration of the focus ring animation.\r\n * @cssprop --m3e-focus-ring-growth-factor - The factor by which the focus ring grows.\r\n * @cssprop --m3e-focus-ring-thickness - The thickness of the focus ring.\r\n * @cssprop --m3e-focus-ring-visibility - The visibility of the focus ring.\r\n */\r\n@customElement(\"m3e-focus-ring\")\r\nexport class M3eFocusRingElement extends HtmlFor(Role(LitElement, \"none\")) {\r\n /** The styles of the element. */\r\n static override styles: CSSResultGroup = css`\r\n :host {\r\n display: block;\r\n position: absolute;\r\n left: 0;\r\n top: 0;\r\n right: 0;\r\n bottom: 0;\r\n pointer-events: none;\r\n border-radius: inherit;\r\n outline: none;\r\n }\r\n .outline {\r\n position: absolute;\r\n left: 0;\r\n top: 0;\r\n right: 0;\r\n bottom: 0;\r\n pointer-events: none;\r\n border-radius: inherit;\r\n z-index: 1;\r\n outline-color: ${FocusRingToken.color};\r\n outline-width: ${FocusRingToken.thickness};\r\n visibility: ${FocusRingToken.visibility};\r\n }\r\n .outline.visible {\r\n outline-style: solid;\r\n }\r\n :host(:not([inward])) .outline {\r\n outline-offset: calc(${FocusRingToken.thickness} / ${FocusRingToken.growthFactor});\r\n }\r\n :host([inward]) .outline {\r\n outline-offset: calc(0px - ${FocusRingToken.thickness});\r\n }\r\n :host(:not([inward])) .outline.visible {\r\n animation: grow-shrink ${FocusRingToken.duration};\r\n }\r\n :host([inward]) .outline.visible {\r\n animation: shrink-grow ${FocusRingToken.duration};\r\n }\r\n @keyframes grow-shrink {\r\n 50% {\r\n outline-width: calc(${FocusRingToken.thickness} * ${FocusRingToken.growthFactor});\r\n }\r\n }\r\n @keyframes shrink-grow {\r\n 50% {\r\n outline-offset: calc(0px - calc(${FocusRingToken.thickness} * ${FocusRingToken.growthFactor}));\r\n outline-width: calc(${FocusRingToken.thickness} * ${FocusRingToken.growthFactor});\r\n }\r\n }\r\n @media (prefers-reduced-motion) {\r\n :host(:not([inward])) .outline.visible,\r\n :host([inward]) .outline.visible {\r\n animation: none;\r\n }\r\n }\r\n @media (forced-colors: active) {\r\n .outline {\r\n outline-color: Highlight;\r\n }\r\n }\r\n `;\r\n\r\n /** @private */\r\n readonly #focusController = new FocusController(this, {\r\n target: null,\r\n callback: (_, focusVisible) => this.#handleFocusChange(focusVisible),\r\n });\r\n\r\n /** @private */ @query(\".outline\") private readonly _outline?: HTMLElement;\r\n\r\n /**\r\n * Whether the focus ring animates inward instead of outward.\r\n * @default false\r\n */\r\n @property({ type: Boolean, reflect: true }) inward = false;\r\n\r\n /**\r\n * Whether the focus events will not trigger the focus ring.\r\n * Focus rings can be still controlled manually by using the `show` and `hide` methods.\r\n * @default false\r\n */\r\n @property({ type: Boolean, reflect: true }) disabled = false;\r\n\r\n /** Launches a manual focus ring. */\r\n show(): void {\r\n this._outline?.classList.toggle(\"visible\", true);\r\n }\r\n\r\n /** Hides the focus ring. */\r\n hide(): void {\r\n this._outline?.classList.toggle(\"visible\", false);\r\n }\r\n\r\n /** @inheritdoc */\r\n override attach(control: HTMLElement): void {\r\n super.attach(control);\r\n this.#focusController.observe(control);\r\n }\r\n\r\n /** @inheritdoc */\r\n override detach(): void {\r\n if (this.control) {\r\n this.#focusController.unobserve(this.control);\r\n }\r\n super.detach();\r\n }\r\n\r\n /** @inheritdoc */\r\n override connectedCallback(): void {\r\n this.ariaHidden = \"true\";\r\n super.connectedCallback();\r\n }\r\n\r\n /** @inheritdoc */\r\n override disconnectedCallback(): void {\r\n super.disconnectedCallback();\r\n this.hide();\r\n }\r\n\r\n /** @inheritdoc */\r\n protected override render(): unknown {\r\n return html`<div class=\"outline\"></div>`;\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(\"disabled\") && this.disabled) {\r\n this.hide();\r\n }\r\n }\r\n\r\n /** @private */\r\n #handleFocusChange(focusVisible: boolean): void {\r\n if (!this.disabled) {\r\n if (focusVisible) {\r\n this.show();\r\n } else {\r\n this.hide();\r\n }\r\n }\r\n }\r\n}\r\n\r\ndeclare global {\r\n interface HTMLElementTagNameMap {\r\n \"m3e-focus-ring\": M3eFocusRingElement;\r\n }\r\n}\r\n","import { css, CSSResultGroup, html, LitElement, nothing } from \"lit\";\r\nimport { customElement } from \"lit/decorators.js\";\r\n\r\nimport { CheckedIndeterminate, Disabled, Role } from \"../mixins\";\r\nimport { DesignToken } from \"../tokens\";\r\n\r\n/**\r\n * An element which looks like a checkbox.\r\n *\r\n * @description\r\n * The `m3e-pseudo-checkbox` component is a pseudo-checkbox supporting checked, indeterminate, and disabled\r\n * states. It is customizable via CSS properties for expressive, accessible UI design.\r\n *\r\n * @example\r\n * The following example illustrates how to render a checked pseudo-checkbox.\r\n * ```html\r\n * <m3e-pseudo-checkbox checked></m3e-pseudo-checkbox>\r\n * ```\r\n *\r\n * @tag m3e-pseudo-checkbox\r\n *\r\n * @attr checked - A value indicating whether the element is checked.\r\n * @attr disabled - A value indicating whether the element is disabled.\r\n * @attr indeterminate - A value indicating whether the element's checked state is indeterminate.\r\n *\r\n * @cssprop --m3e-checkbox-icon-size - Size of the checkbox icon.\r\n * @cssprop --m3e-checkbox-container-shape - Border radius of the checkbox container.\r\n * @cssprop --m3e-checkbox-unselected-outline-thickness - Outline thickness for unselected state.\r\n * @cssprop --m3e-checkbox-unselected-outline-color - Outline color for unselected state.\r\n * @cssprop --m3e-checkbox-selected-container-color - Background color for selected state.\r\n * @cssprop --m3e-checkbox-selected-icon-color - Icon color for selected state.\r\n * @cssprop --m3e-checkbox-unselected-disabled-outline-color - Outline color for unselected disabled state.\r\n * @cssprop --m3e-checkbox-unselected-disabled-outline-opacity - Outline opacity for unselected disabled state.\r\n * @cssprop --m3e-checkbox-selected-disabled-container-color - Background color for selected disabled state.\r\n * @cssprop --m3e-checkbox-selected-disabled-container-opacity - Background opacity for selected disabled state.\r\n * @cssprop --m3e-checkbox-selected-disabled-icon-color - Icon color for selected disabled state.\r\n * @cssprop --m3e-checkbox-selected-disabled-icon-opacity - Icon opacity for selected disabled state.\r\n */\r\n@customElement(\"m3e-pseudo-checkbox\")\r\nexport class M3ePseudoCheckboxElement extends CheckedIndeterminate(Disabled(Role(LitElement, \"none\"))) {\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: middle;\r\n width: var(--m3e-checkbox-icon-size, 1.125rem);\r\n height: var(--m3e-checkbox-icon-size, 1.125rem);\r\n border-radius: var(--m3e-checkbox-container-shape, 0.125rem);\r\n box-sizing: border-box;\r\n flex: none;\r\n }\r\n :host(:not([checked]):not([indeterminate])) {\r\n border-width: var(--m3e-checkbox-unselected-outline-thickness, 0.125rem);\r\n border-style: solid;\r\n }\r\n :host(:not([disabled])[checked]),\r\n :host(:not([disabled])[indeterminate]) {\r\n background-color: var(--m3e-checkbox-selected-container-color, ${DesignToken.color.primary});\r\n color: var(--m3e-checkbox-selected-icon-color, ${DesignToken.color.onPrimary});\r\n }\r\n :host(:not([disabled]):not([checked]):not([indeterminate])) {\r\n border-color: var(--m3e-checkbox-unselected-outline-color, ${DesignToken.color.onSurfaceVariant});\r\n }\r\n :host([disabled]:not([checked]):not([indeterminate])) {\r\n border-color: color-mix(\r\n in srgb,\r\n var(--m3e-checkbox-unselected-disabled-outline-color, ${DesignToken.color.onSurface})\r\n var(--m3e-checkbox-unselected-disabled-outline-opacity, 38%),\r\n transparent\r\n );\r\n }\r\n :host([disabled][checked]),\r\n :host([disabled][indeterminate]) {\r\n background-color: color-mix(\r\n in srgb,\r\n var(--m3e-checkbox-selected-disabled-container-color, ${DesignToken.color.onSurface})\r\n var(--m3e-checkbox-selected-disabled-container-opacity, 38%),\r\n transparent\r\n );\r\n color: color-mix(\r\n in srgb,\r\n var(--m3e-checkbox-selected-disabled-icon-color, ${DesignToken.color.surface})\r\n var(--m3e-checkbox-selected-disabled-icon-opacity, 100%),\r\n transparent\r\n );\r\n }\r\n `;\r\n\r\n /** @inheritdoc */\r\n override connectedCallback(): void {\r\n super.connectedCallback();\r\n this.ariaHidden = \"true\";\r\n }\r\n\r\n /** @inheritdoc */\r\n protected override render(): unknown {\r\n if (this.indeterminate) {\r\n return html`<svg viewBox=\"0 -960 960 960\" fill=\"currentColor\">\r\n <path Required d=\"M240-440v-80h480v80H240Z\" />\r\n </svg>`;\r\n }\r\n if (this.checked) {\r\n return html`<svg viewBox=\"0 -960 960 960\" fill=\"currentColor\">\r\n <path d=\"M382-240 154-468l57-57 171 171 367-367 57 57-424 424Z\" />\r\n </svg>`;\r\n }\r\n return nothing;\r\n }\r\n}\r\n\r\ndeclare global {\r\n interface HTMLElementTagNameMap {\r\n \"m3e-pseudo-checkbox\": M3ePseudoCheckboxElement;\r\n }\r\n}\r\n","import { css, CSSResultGroup, html, LitElement } from \"lit\";\r\nimport { customElement } from \"lit/decorators.js\";\r\n\r\nimport { Checked, Disabled, Role } from \"../mixins\";\r\nimport { DesignToken } from \"../tokens\";\r\n\r\n/**\r\n * An element which looks like a radio button.\r\n *\r\n * @description\r\n * The `m3e-pseudo-radio` component is a pseudo-radio supporting checked and disabled\r\n * states. It is customizable via CSS properties for expressive, accessible UI design.\r\n *\r\n * @example\r\n * The following example illustrates how to render a checked pseudo-radio.\r\n * ```html\r\n * <m3e-pseudo-radio checked></m3e-pseudo-radio>\r\n * ```\r\n *\r\n * @tag m3e-pseudo-radio\r\n *\r\n * @attr checked - A value indicating whether the element is checked.\r\n * @attr disabled - A value indicating whether the element is disabled.\r\n *\r\n * @cssprop --m3e-radio-icon-size - Size of the radio icon.\r\n * @cssprop --m3e-radio-unselected-icon-color - Color of the unselected radio icon.\r\n * @cssprop --m3e-radio-selected-icon-color - Color of the selected radio icon.\r\n * @cssprop --m3e-radio-disabled-icon-color - Color of the disabled radio icon.\r\n */\r\n@customElement(\"m3e-pseudo-radio\")\r\nexport class M3ePseudoRadioElement extends Checked(Disabled(Role(LitElement, \"none\"))) {\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: middle;\r\n box-sizing: border-box;\r\n width: var(--m3e-radio-icon-size, 1.25rem);\r\n height: var(--m3e-radio-icon-size, 1.25rem);\r\n flex: none;\r\n }\r\n .circle {\r\n fill: currentColor;\r\n }\r\n :host(:not([checked])) .circle.inner {\r\n opacity: 0;\r\n }\r\n :host(:not([checked])) {\r\n color: var(--m3e-radio-unselected-icon-color, ${DesignToken.color.onSurfaceVariant});\r\n }\r\n :host([checked]) {\r\n color: var(--m3e-radio-selected-icon-color, ${DesignToken.color.primary});\r\n }\r\n :host([disabled]) {\r\n color: color-mix(in srgb, var(--m3e-radio-disabled-icon-color, ${DesignToken.color.onSurface}) 38%, transparent);\r\n }\r\n `;\r\n\r\n /** @inheritdoc */\r\n override connectedCallback(): void {\r\n super.connectedCallback();\r\n this.ariaHidden = \"true\";\r\n }\r\n\r\n /** @inheritdoc */\r\n protected override render(): unknown {\r\n return html`<svg class=\"icon\" viewBox=\"0 0 20 20\">\r\n <mask id=\"cutout2\">\r\n <rect width=\"100%\" height=\"100%\" fill=\"white\"></rect>\r\n <circle cx=\"10\" cy=\"10\" r=\"8\" fill=\"black\"></circle>\r\n </mask>\r\n <circle class=\"outer circle\" cx=\"10\" cy=\"10\" r=\"10\" mask=\"url(#cutout2)\"></circle>\r\n <circle class=\"inner circle\" cx=\"10\" cy=\"10\" r=\"5\"></circle>\r\n </svg>`;\r\n }\r\n}\r\n\r\ndeclare global {\r\n interface HTMLElementTagNameMap {\r\n \"m3e-pseudo-radio\": M3ePseudoRadioElement;\r\n }\r\n}\r\n","import { unsafeCSS } from \"lit\";\r\n\r\nimport { DesignToken } from \"../tokens\";\r\n\r\n/**\r\n * Component design tokens that control the `M3eRippleElement`.\r\n * @internal\r\n */\r\nexport const RippleToken = {\r\n color: unsafeCSS(`var(--m3e-ripple-color, ${DesignToken.color.onSurface})`),\r\n opacity: unsafeCSS(`var(--m3e-ripple-opacity, ${DesignToken.state.pressedStateLayerOpacity})`),\r\n enterDuration: unsafeCSS(`var(--m3e-ripple-enter-duration, ${DesignToken.motion.duration.long4})`),\r\n exitDuration: unsafeCSS(`var(--m3e-ripple-exit-duration, ${DesignToken.motion.duration.short2})`),\r\n scaleFactor: unsafeCSS(`var(--m3e-ripple-scale-factor, 2.5)`),\r\n} as const;\r\n","import { css, CSSResultGroup, LitElement, PropertyValues } from \"lit\";\r\nimport { customElement, property } from \"lit/decorators.js\";\r\n\r\nimport { PressedController } from \"../controllers\";\r\nimport { HtmlFor, Role } from \"../mixins\";\r\n\r\nimport { RippleToken } from \"./RippleToken\";\r\nimport { DesignToken } from \"../tokens\";\r\n\r\n/**\r\n * Connects user input to screen reactions using ripples.\r\n *\r\n * @description\r\n * The `m3e-ripple` component is an absolute positioned element used to depict a ripple.\r\n * The parenting element must be a relative positioned element.\r\n *\r\n * The component can be attached to an interactive element using the `for` attribute or programmatically using the `attach` method.\r\n * The ripple is displayed when the interactive element is pressed and hidden when released. This can be disabled using the `disabled` attribute.\r\n *\r\n * The pressed state actives either using both pointer and keyboard events. For keyboard events, `SPACE` and `ENTER` activate a ripple.\r\n * You can disabled whether the `ENTER` key actives a ripple using the `disable-enter` attribute.\r\n *\r\n * Alternately, you can use the `show` and `hide` methods to programmatically control the ripple.\r\n *\r\n * @example\r\n * The following example illustrates attaching a ripple to an interactive element. In this example, the parenting div\r\n * has relative positioning and is given an `id` referenced by `m3e-ripple` using the `for` attribute. Note that `#myDiv`\r\n * is not used when specifying the attached element's identifier. The `#` is inferred.\r\n *\r\n * ```html\r\n * <div id=\"myDiv\" tabindex=\"0\" style=\"position: relative;\">\r\n * <m3e-ripple for=\"myDiv\"></m3e-ripple>\r\n * <div>\r\n * ```\r\n *\r\n * @tag m3e-ripple\r\n *\r\n * @attr centered - Whether the ripple always originates from the center of the element's bounds, rather than originating from the location of the click event.\r\n * @attr disable-enter - Whether the ripple is disabled when the enter key is pressed.\r\n * @attr disabled - Whether click events will not trigger the ripple. Ripples can be still controlled manually by using the `show` and 'hide' methods.\r\n * @attr for - The identifier of the interactive control to which this element is attached.\r\n * @attr radius - The radius, in pixels, of the ripple.\r\n * @attr unbounded - Whether the ripple is visible outside the element's bounds.\r\n *\r\n * @cssprop --m3e-ripple-color - The color of the ripple.\r\n * @cssprop --m3e-ripple-enter-duration - The duration for the enter animation (expansion from point of contact).\r\n * @cssprop --m3e-ripple-exit-duration - The duration for the exit animation (fade-out).\r\n * @cssprop --m3e-ripple-opacity - The opacity of the ripple.\r\n * @cssprop --m3e-ripple-scale-factor - The factor by which to scale the ripple.\r\n * @cssprop --m3e-ripple-shape - The shape of the ripple.\r\n */\r\n@customElement(\"m3e-ripple\")\r\nexport class M3eRippleElement extends HtmlFor(Role(LitElement, \"none\")) {\r\n /** The styles of the element. */\r\n static override styles: CSSResultGroup = css`\r\n :host {\r\n display: block;\r\n position: absolute;\r\n left: 0;\r\n top: 0;\r\n right: 0;\r\n bottom: 0;\r\n pointer-events: none;\r\n border-radius: inherit;\r\n }\r\n :host(:not([unbounded])) {\r\n overflow: hidden;\r\n }\r\n .ripple {\r\n display: block;\r\n position: absolute;\r\n left: 0;\r\n top: 0;\r\n right: 0;\r\n bottom: 0;\r\n pointer-events: none;\r\n transform: scale(0);\r\n border-radius: ${DesignToken.shape.corner.full};\r\n background-color: color-mix(in srgb, ${RippleToken.color} ${RippleToken.opacity}, transparent);\r\n will-change: background-color, opacity;\r\n }\r\n .ripple:not(.persistent) {\r\n animation: ripple ${RippleToken.enterDuration} linear;\r\n }\r\n .ripple.persistent {\r\n animation: persistent-ripple ${RippleToken.enterDuration} linear;\r\n }\r\n .ripple.persistent.pressed {\r\n transform: scale(${RippleToken.scaleFactor});\r\n }\r\n .ripple.exit {\r\n transition: opacity ${RippleToken.exitDuration} cubic-bezier(0, 0, 0.2, 0.1);\r\n opacity: 0;\r\n }\r\n @keyframes persistent-ripple {\r\n to {\r\n transform: scale(${RippleToken.scaleFactor});\r\n }\r\n }\r\n @keyframes ripple {\r\n to {\r\n transform: scale(${RippleToken.scaleFactor});\r\n }\r\n }\r\n @media (prefers-reduced-motion) {\r\n .ripple {\r\n transform: scale(${RippleToken.scaleFactor});\r\n }\r\n .ripple:not(.persistent),\r\n .ripple.persistent {\r\n animation-duration: 90ms;\r\n }\r\n .ripple.exit {\r\n transition-duration: 10ms;\r\n }\r\n }\r\n @media (forced-colors: active) {\r\n .ripple {\r\n display: none;\r\n }\r\n }\r\n `;\r\n\r\n /** @private */ #ripple: HTMLElement | null = null;\r\n /** @private */ readonly #pressedController = new PressedController(this, {\r\n target: null,\r\n minPressedDuration: 150,\r\n isPressedKey: (key) => key === \" \" || (!this.disableEnter && key === \"Enter\"),\r\n callback: (pressed, { x, y }) => this.#handlePressedChange(pressed, x, y),\r\n });\r\n\r\n /**\r\n * Whether click events will not trigger the ripple.\r\n * Ripples can be still controlled manually by using the `show` and 'hide' methods.\r\n * @default false\r\n */\r\n @property({ type: Boolean, reflect: true }) disabled = false;\r\n\r\n /**\r\n * Whether the ripple is disabled when the enter key is pressed.\r\n * @default false\r\n */\r\n @property({ attribute: \"disable-enter\", type: Boolean, reflect: true }) disableEnter = false;\r\n\r\n /**\r\n * Whether the ripple always originates from the center of the element's bounds, rather\r\n * than originating from the location of the click event.\r\n * @default false\r\n */\r\n @property({ type: Boolean, reflect: true }) centered = false;\r\n\r\n /**\r\n * Whether the ripple is visible outside the element's bounds.\r\n * @default false\r\n */\r\n @property({ type: Boolean, reflect: true }) unbounded = false;\r\n\r\n /**\r\n * The radius, in pixels, of the ripple.\r\n * @default null\r\n */\r\n @property({ type: Number }) radius: number | null = null;\r\n\r\n /**\r\n * The element that triggers the ripple when click events are received.\r\n * @default null\r\n */\r\n @property() trigger: string | HTMLElement | null = null;\r\n\r\n /** Whether the ripple is currently visible to the user. */\r\n get visible() {\r\n return this.#ripple !== null;\r\n }\r\n\r\n /**\r\n * Launches a manual ripple.\r\n * @param {number} x The x-coordinate, relative to the viewport, at which to present the ripple.\r\n * @param {number} y The y-coordinate, relative to the viewport, at which to present the ripple.\r\n * @param {boolean} [persistent=false] Whether the ripple will persist until hidden.\r\n */\r\n show(x: number, y: number, persistent: boolean = false): void {\r\n this.#destroyRipple();\r\n\r\n const bounds = this.getBoundingClientRect();\r\n if (this.centered) {\r\n x = bounds.left + bounds.width / 2;\r\n y = bounds.top + bounds.height / 2;\r\n }\r\n\r\n let radius = this.radius;\r\n\r\n if (!radius || isNaN(radius)) {\r\n const distX = Math.max(Math.abs(x - bounds.left), Math.abs(x - bounds.right));\r\n const distY = Math.max(Math.abs(y - bounds.top), Math.abs(y - bounds.bottom));\r\n radius = Math.sqrt(distX * distX + distY * distY);\r\n }\r\n\r\n const offsetX = x - bounds.left;\r\n const offsetY = y - bounds.top;\r\n\r\n this.#ripple = document.createElement(\"div\");\r\n this.#ripple.classList.add(\"ripple\");\r\n if (persistent) {\r\n this.#ripple.classList.add(\"persistent\");\r\n }\r\n\r\n this.#ripple.style.left = `${offsetX - radius}px`;\r\n this.#ripple.style.top = `${offsetY - radius}px`;\r\n this.#ripple.style.width = `${radius * 2}px`;\r\n this.#ripple.style.height = `${radius * 2}px`;\r\n\r\n this.#ripple.addEventListener(\"animationend\", () => this.#handleAnimationEnd(persistent), { once: true });\r\n this.#ripple.addEventListener(\"transitionend\", () => this.#destroyRipple(), { once: true });\r\n\r\n this.shadowRoot?.appendChild(this.#ripple);\r\n }\r\n\r\n /** Manually hides the ripple. */\r\n hide(): void {\r\n this.#ripple?.classList.add(\"exit\");\r\n }\r\n\r\n /** @inheritdoc */\r\n override attach(control: HTMLElement): void {\r\n super.attach(control);\r\n this.#pressedController.observe(control);\r\n }\r\n\r\n /** @inheritdoc */\r\n override detach(): void {\r\n if (this.control) {\r\n this.#pressedController.unobserve(this.control);\r\n }\r\n super.detach();\r\n }\r\n\r\n /** @inheritdoc */\r\n override connectedCallback(): void {\r\n this.ariaHidden = \"true\";\r\n super.connectedCallback();\r\n }\r\n\r\n /** @inheritdoc */\r\n override disconnectedCallback(): void {\r\n super.disconnectedCallback();\r\n this.#destroyRipple();\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(\"disabled\") && this.disabled) {\r\n this.hide();\r\n }\r\n }\r\n\r\n /** @private */\r\n #destroyRipple(): void {\r\n this.#ripple?.remove();\r\n this.#ripple = null;\r\n }\r\n\r\n /** @private */\r\n #handleAnimationEnd(persistent: boolean): void {\r\n if (persistent) {\r\n this.#ripple?.classList.add(\"pressed\");\r\n } else {\r\n this.hide();\r\n }\r\n }\r\n\r\n /** @private */\r\n #handlePressedChange(pressed: boolean, x: number, y: number): void {\r\n if (!this.disabled) {\r\n if (pressed) {\r\n this.show(x, y, true);\r\n } else {\r\n this.hide();\r\n }\r\n }\r\n }\r\n}\r\n\r\ndeclare global {\r\n interface HTMLElementTagNameMap {\r\n \"m3e-ripple\": M3eRippleElement;\r\n }\r\n}\r\n","import { css, CSSResultGroup, html, LitElement, PropertyValues } from \"lit\";\r\nimport { customElement, property } from \"lit/decorators.js\";\r\n\r\nimport { debounce } from \"../decorators\";\r\nimport { DesignToken } from \"../tokens\";\r\n\r\nimport { ScrollDividers } from \"./ScrollDividers\";\r\n\r\n/**\r\n * A vertically oriented content container which presents dividers above and below content when scrolled.\r\n *\r\n * @description\r\n * The `m3e-scroll-container` component provides a vertically oriented scrollable container with dynamic\r\n * dividers above and below content. Designed according to Material 3 principles, it supports custom scrollbar\r\n * thickness, divider styling, and focus ring theming via CSS custom properties.\r\n *\r\n * @example\r\n * This example shows a scrollable container with dividers above and below the content, and thin scrollbars enabled.\r\n * ```html\r\n * <m3e-scroll-container dividers=\"above-below\" thin>\r\n * <div>Scrollable content goes here</div>\r\n * </m3e-scroll-container>\r\n * ```\r\n *\r\n * @tag m3e-scroll-container\r\n *\r\n * @slot - Renders the scrollable content.\r\n *\r\n * @attr dividers - The dividers used to separate scrollable content.\r\n * @attr thin - Whether to present thin scrollbars.\r\n *\r\n * @cssprop --m3e-divider-thickness - Thickness of the divider lines above and below content.\r\n * @cssprop --m3e-divider-color - Color of the divider lines when visible.\r\n * @cssprop --m3e-focus-ring-color - Color of the focus ring outline.\r\n * @cssprop --m3e-focus-ring-thickness - Thickness of the focus ring outline.\r\n * @cssprop --m3e-focus-ring-factor - Animation factor for focus ring thickness.\r\n * @cssprop --m3e-focus-ring-duration - Duration of the focus ring animation.\r\n */\r\n@customElement(\"m3e-scroll-container\")\r\nexport class M3eScrollContainerElement extends LitElement {\r\n /** The styles of the element. */\r\n static override styles: CSSResultGroup = css`\r\n :host {\r\n display: block;\r\n overflow-y: auto;\r\n position: relative;\r\n box-sizing: border-box;\r\n scrollbar-color: ${DesignToken.scrollbar.color};\r\n border-top: var(--m3e-divider-thickness, 1px) solid transparent;\r\n border-bottom: var(--m3e-divider-thickness, 1px) solid transparent;\r\n outline: var(--m3e-focus-ring-color, ${DesignToken.color.secondary});\r\n outline-width: var(--m3e-focus-ring-thickness, 0.25rem);\r\n outline-offset: calc(var(--m3e-focus-ring-thickness, 0.25rem) / 2);\r\n }\r\n :host([thin]) {\r\n scrollbar-width: ${DesignToken.scrollbar.thinWidth};\r\n }\r\n :host(:not([thin])) {\r\n scrollbar-width: ${DesignToken.scrollbar.width};\r\n }\r\n :host(:not(:focus-visible).-above) {\r\n border-top-color: var(--m3e-divider-color, ${DesignToken.color.outlineVariant});\r\n }\r\n :host(:not(:focus-visible).-below) {\r\n border-bottom-color: var(--m3e-divider-color, ${DesignToken.color.outlineVariant});\r\n }\r\n :host(:focus-visible) {\r\n outline-style: solid;\r\n animation: grow-shrink var(--m3e-focus-ring-duration, ${DesignToken.motion.duration.long2});\r\n }\r\n @keyframes grow-shrink {\r\n 50% {\r\n outline-width: calc(var(--m3e-focus-ring-thickness, 0.25rem) * var(--m3e-focus-ring-factor, 2));\r\n }\r\n }\r\n @media (forced-colors: active) {\r\n :host {\r\n border-top: var(--m3e-divider-thickness, 1px) solid Canvas;\r\n border-bottom: var(--m3e-divider-thickness, 1px) solid Canvas;\r\n }\r\n :host(:not(:focus-visible).-above) {\r\n border-top-color: GrayText;\r\n }\r\n :host(:not(:focus-visible).-below) {\r\n border-bottom-color: GrayText;\r\n }\r\n }\r\n @media (prefers-reduced-motion) {\r\n :host(:focus-visible) {\r\n animation: none;\r\n }\r\n }\r\n `;\r\n\r\n /** @private */ readonly #scrollHandler = () => this._updateScroll();\r\n\r\n /**\r\n * The dividers used to separate scrollable content.\r\n * @default \"above-below\"\r\n */\r\n @property() dividers: ScrollDividers = \"above-below\";\r\n\r\n /**\r\n * Whether to present thin scrollbars.\r\n * @default false\r\n */\r\n @property({ type: Boolean, reflect: true }) thin = false;\r\n\r\n /** @inheritdoc */\r\n override disconnectedCallback(): void {\r\n super.disconnectedCallback();\r\n this.removeEventListener(\"scroll\", this.#scrollHandler);\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(\"dividers\")) {\r\n this.removeEventListener(\"scroll\", this.#scrollHandler);\r\n if (this.dividers !== \"none\") {\r\n this.addEventListener(\"scroll\", this.#scrollHandler);\r\n }\r\n }\r\n }\r\n\r\n /** @inheritdoc */\r\n protected override render(): unknown {\r\n return html`<slot @slotchange=\"${this._updateScroll}\"></slot>`;\r\n }\r\n\r\n /** @private */\r\n @debounce(40)\r\n private _updateScroll(): void {\r\n const before = (this.dividers === \"above\" || this.dividers === \"above-below\") && this.scrollTop > 0;\r\n const after =\r\n (this.dividers === \"below\" || this.dividers === \"above-below\") &&\r\n this.scrollHeight - this.scrollTop - this.clientHeight > 1;\r\n\r\n this.classList.toggle(\"-above\", before);\r\n this.classList.toggle(\"-below\", after);\r\n }\r\n}\r\n\r\ndeclare global {\r\n interface HTMLElementTagNameMap {\r\n \"m3e-scroll-container\": M3eScrollContainerElement;\r\n }\r\n}\r\n","import { css, CSSResultGroup, html, LitElement, PropertyValues, unsafeCSS } from \"lit\";\r\nimport { customElement, property, queryAssignedElements } from \"lit/decorators.js\";\r\n\r\nimport { DesignToken } from \"../tokens\";\r\n\r\n/**\r\n * A carousel-like container used to horizontally cycle through slotted items.\r\n *\r\n * @example\r\n * The following example illustrates the use of `m3e-slide` to cycle through content.\r\n * In this example, `selected-index` is set to `1` so that \"Content at index 1\" is presented\r\n * by the component.\r\n * ```html\r\n * <m3e-slide selected-index=\"1\">\r\n * <div>Content at index 0</div>\r\n * <div>Content at index 1</div>\r\n * <div>Content at index 2</div>\r\n * <div>Content at index 3</div>\r\n * </m3e-slide>\r\n * ```\r\n *\r\n * @tag m3e-slide\r\n *\r\n * @attr selected-index - The zero-based index of the visible item.\r\n *\r\n * @cssprop --m3e-slide-animation-duration - The duration of transitions between slotted items.\r\n */\r\n@customElement(\"m3e-slide\")\r\nexport class M3eSlide extends LitElement {\r\n /** The styles of the element. */\r\n static override styles: CSSResultGroup = css`\r\n :host {\r\n display: flex;\r\n position: relative;\r\n overflow: hidden;\r\n }\r\n ::slotted(*) {\r\n width: 100%;\r\n top: 0;\r\n transition: ${unsafeCSS(\r\n `left var(--m3e-slide-animation-duration, ${DesignToken.motion.duration.long2}) ${DesignToken.motion.easing.standard},\r\n visibility var(--m3e-slide-animation-duration, ${DesignToken.motion.duration.long2}) ${DesignToken.motion.easing.standard} allow-discrete`\r\n )};\r\n }\r\n ::slotted(.-before),\r\n ::slotted(.-after) {\r\n visibility: hidden;\r\n position: absolute;\r\n }\r\n ::slotted(.-before) {\r\n left: -100%;\r\n }\r\n ::slotted(.-after) {\r\n left: 100%;\r\n }\r\n ::slotted(:not(.-before):not(.-after)) {\r\n visibility: visible;\r\n position: relative;\r\n left: 0;\r\n }\r\n :host(.-no-animate) ::slotted(*) {\r\n transition: none;\r\n }\r\n @media (prefers-reduced-motion) {\r\n ::slotted(*) {\r\n transition: none;\r\n }\r\n }\r\n `;\r\n\r\n /** @private */ @queryAssignedElements({ flatten: true }) private readonly _items!: Element[];\r\n\r\n /**\r\n * The zero-based index of the visible item.\r\n * @default null\r\n */\r\n @property({ attribute: \"selected-index\", type: Number, reflect: true }) selectedIndex: number | null = null;\r\n\r\n /** @inheritdoc */\r\n override connectedCallback(): void {\r\n super.connectedCallback();\r\n this.classList.toggle(\"-no-animate\", true);\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(\"selectedIndex\")) {\r\n if (this.selectedIndex === null) {\r\n this.classList.toggle(\"-no-animate\", true);\r\n }\r\n\r\n this.#updateItems();\r\n\r\n if (this.selectedIndex !== null && this.classList.contains(\"-no-animate\")) {\r\n requestAnimationFrame(() => {\r\n if (this.selectedIndex !== null) {\r\n this.classList.toggle(\"-no-animate\", false);\r\n }\r\n });\r\n }\r\n }\r\n }\r\n\r\n /** @inheritdoc */\r\n protected override render(): unknown {\r\n return html`<slot @slotchange=\"${this.#updateItems}\"></slot>`;\r\n }\r\n\r\n /** @private */\r\n #updateItems(): void {\r\n const selectedIndex = this.selectedIndex ?? this._items.length;\r\n for (let i = 0; i < this._items.length; i++) {\r\n const item = this._items[i];\r\n item.classList.toggle(\"-before\", i < selectedIndex);\r\n item.classList.toggle(\"-after\", i > selectedIndex);\r\n item.toggleAttribute(\"inert\", i !== selectedIndex);\r\n }\r\n }\r\n}\r\n\r\ndeclare global {\r\n interface HTMLElementTagNameMap {\r\n \"m3e-slide\": M3eSlide;\r\n }\r\n}\r\n","import { unsafeCSS } from \"lit\";\r\n\r\nimport { DesignToken } from \"../tokens\";\r\n\r\n/**\r\n * Component design tokens that control the `M3eStateLayerElement`.\r\n * @internal\r\n */\r\nexport const StateLayerToken = {\r\n hoverColor: unsafeCSS(`var(--m3e-state-layer-hover-color, ${DesignToken.color.onSurface})`),\r\n hoverOpacity: unsafeCSS(`var(--m3e-state-layer-hover-opacity, ${DesignToken.state.hoverStateLayerOpacity})`),\r\n focusColor: unsafeCSS(`var(--m3e-state-layer-focus-color, ${DesignToken.color.onSurface})`),\r\n focusOpacity: unsafeCSS(`var(--m3e-state-layer-focus-opacity, ${DesignToken.state.focusStateLayerOpacity})`),\r\n duration: unsafeCSS(`var(--m3e-state-layer-duration, ${DesignToken.motion.duration.medium1})`),\r\n easing: unsafeCSS(`var(--m3e-state-layer-easing, ${DesignToken.motion.easing.standard})`),\r\n} as const;\r\n","import { css, CSSResultGroup, html, LitElement, PropertyValues, unsafeCSS } from \"lit\";\r\nimport { customElement, property, query } from \"lit/decorators.js\";\r\n\r\nimport { FocusController, HoverController } from \"../controllers\";\r\nimport { HtmlFor, Role } from \"../mixins\";\r\n\r\nimport { StateLayerToken } from \"./StateLayerToken\";\r\n\r\n/**\r\n * Provides focus and hover state layer treatment for an interactive element.\r\n *\r\n * @description\r\n * The `m3e-state-layer` component is an absolute positioned element used to depict hover and focus overlays.\r\n * The parenting element must be a relative positioned element.\r\n *\r\n * This element can be attached to an interactive element using the `for` attribute or programmatically using the `attach` method.\r\n * The state layer is displayed when the interactive element is either hovered or focused. This can be disabled using\r\n * the `disabled` attribute.\r\n *\r\n * @example\r\n * The following example illustrates attaching a state layer to an interactive element. In this example, the parenting div\r\n * has relative positioning and is given an `id` referenced by `m3e-state-layer` using the `for` attribute. Note that `#myDiv`\r\n * is not used when specifying the attached element's identifier. The `#` is inferred.\r\n *\r\n * ```html\r\n * <div id=\"myDiv\" tabindex=\"0\" style=\"position: relative;\">\r\n * <m3e-state-layer for=\"myDiv\"></m3e-state-layer>\r\n * <div>\r\n * ```\r\n *\r\n * @tag m3e-state-layer\r\n *\r\n * @attr disabled - Whether hover and focus event will not trigger the state layer.Whether hover and focus event will not trigger the state layer. State layers can still be controlled manually using the `show` and `hide` methods.\r\n *\r\n * @cssprop --m3e-state-layer-duration - Duration of state layer changes.\r\n * @cssprop --m3e-state-layer-easing - Easing curve of state layer changes.\r\n * @cssprop --m3e-state-layer-focus-color - Color on hover.\r\n * @cssprop --m3e-state-layer-focus-opacity - Opacity on focus.\r\n * @cssprop --m3e-state-layer-hover-color - Color on hover.\r\n * @cssprop --m3e-state-layer-hover-opacity - Opacity on hover.\r\n */\r\n@customElement(\"m3e-state-layer\")\r\nexport class M3eStateLayerElement extends HtmlFor(Role(LitElement, \"none\")) {\r\n /** The styles of the element. */\r\n static override styles: CSSResultGroup = css`\r\n :host {\r\n display: block;\r\n }\r\n :host,\r\n .layer {\r\n position: absolute;\r\n left: 0;\r\n top: 0;\r\n right: 0;\r\n bottom: 0;\r\n pointer-events: none;\r\n border-radius: inherit;\r\n }\r\n .layer {\r\n will-change: background-color;\r\n transition: ${unsafeCSS(`background-color ${StateLayerToken.duration} ${StateLayerToken.easing}`)};\r\n }\r\n .layer.focused {\r\n background-color: color-mix(in srgb, ${StateLayerToken.focusColor} ${StateLayerToken.focusOpacity}, transparent);\r\n }\r\n .layer.hover {\r\n background-color: color-mix(in srgb, ${StateLayerToken.hoverColor} ${StateLayerToken.hoverOpacity}, transparent);\r\n }\r\n @media (prefers-reduced-motion) {\r\n .layer {\r\n transition: none;\r\n }\r\n }\r\n @media (forced-colors: active) {\r\n .layer {\r\n display: none;\r\n }\r\n }\r\n `;\r\n\r\n /** @private */\r\n readonly #hoverController = new HoverController(this, {\r\n target: null,\r\n callback: (hovering) => this.#handleHoverChange(hovering),\r\n });\r\n\r\n /** @private */\r\n readonly #focusController = new FocusController(this, {\r\n target: null,\r\n callback: (focused) => this.#handleFocusChange(focused),\r\n });\r\n\r\n /** @private */ @query(\".layer\") private readonly _layer?: HTMLElement;\r\n\r\n /**\r\n * Whether hover and focus event will not trigger the state layer. State layers can still\r\n * be controlled manually using the `show` and `hide` methods.\r\n * @default false\r\n */\r\n @property({ type: Boolean, reflect: true }) disabled = false;\r\n\r\n /**\r\n * Launches a manual state layer.\r\n * @param {\"hover\" | \"focused\"} state The state of the layer to show.\r\n */\r\n show(state: \"hover\" | \"focused\"): void {\r\n this._layer?.classList.toggle(state, true);\r\n }\r\n\r\n /**\r\n * Hides the state layer.\r\n * @param {\"hover\" | \"focused\"} state The state of the layer to hide.\r\n */\r\n hide(state: \"hover\" | \"focused\"): void {\r\n this._layer?.classList.toggle(state, false);\r\n }\r\n\r\n /** @inheritdoc */\r\n override attach(control: HTMLElement): void {\r\n super.attach(control);\r\n this.#hoverController.observe(control);\r\n this.#focusController.observe(control);\r\n }\r\n\r\n /** @inheritdoc */\r\n override detach(): void {\r\n if (this.control) {\r\n this.#hoverController.unobserve(this.control);\r\n this.#focusController.unobserve(this.control);\r\n }\r\n super.detach();\r\n }\r\n\r\n /** @inheritdoc */\r\n override connectedCallback(): void {\r\n this.ariaHidden = \"true\";\r\n super.connectedCallback();\r\n }\r\n\r\n /** @inheritdoc */\r\n override disconnectedCallback(): void {\r\n super.disconnectedCallback();\r\n\r\n this.hide(\"hover\");\r\n this.hide(\"focused\");\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(\"disabled\") && this.disabled) {\r\n this.hide(\"hover\");\r\n this.hide(\"focused\");\r\n }\r\n }\r\n\r\n /** @inheritdoc */\r\n protected override render(): unknown {\r\n return html`<div class=\"layer\"></div>`;\r\n }\r\n\r\n /** @private */\r\n #handleHoverChange(hovering: boolean): void {\r\n if (!this.disabled) {\r\n if (hovering) {\r\n this.show(\"hover\");\r\n } else {\r\n this.hide(\"hover\");\r\n }\r\n }\r\n }\r\n\r\n /** @private */\r\n #handleFocusChange(focused: boolean): void {\r\n if (!this.disabled) {\r\n if (focused) {\r\n this.show(\"focused\");\r\n } else {\r\n this.hide(\"focused\");\r\n }\r\n }\r\n }\r\n}\r\n\r\ndeclare global {\r\n interface HTMLElementTagNameMap {\r\n \"m3e-state-layer\": M3eStateLayerElement;\r\n }\r\n}\r\n","import { css, CSSResultGroup, html, LitElement } from \"lit\";\r\nimport { customElement } from \"lit/decorators.js\";\r\n\r\n/**\r\n * An inline container which presents an ellipsis when content overflows.\r\n *\r\n * @description\r\n * The `m3e-text-overflow` component truncates inline content with an ellipsis when it\r\n * exceeds the available width. It's intended for use inside flex or otherwise\r\n * constrained containers to preserve layout while providing predictable, single-line\r\n * truncation behavior for long text.\r\n *\r\n * @example\r\n * A typical usage inside a flex container where the heading and trailing actions are\r\n * constrained, allowing the center text to truncate with an ellipsis.\r\n *\r\n * ```html\r\n * <div style=\"display:flex;align-items:center;gap:12px;\">\r\n * <m3e-icon name=\"menu\"></m3e-icon>\r\n * <m3e-text-overflow>Very long title or breadcrumb that should truncate gracefully</m3e-text-overflow>\r\n * <m3e-icon name=\"more_vert\"></m3e-icon>\r\n * </div>\r\n * ```\r\n *\r\n * @tag m3e-text-overflow\r\n *\r\n * @slot - Renders the content to truncate with an ellipsis.\r\n */\r\n@customElement(\"m3e-text-overflow\")\r\nexport class M3eTextOverflowElement extends LitElement {\r\n /** The styles of the element. */\r\n static override styles: CSSResultGroup = css`\r\n :host {\r\n flex: 1 1 auto;\r\n display: inline-flex;\r\n align-items: center;\r\n flex-wrap: nowrap;\r\n min-width: 0;\r\n }\r\n .base {\r\n flex: 1 1 auto;\r\n display: inline;\r\n overflow: hidden;\r\n text-overflow: ellipsis;\r\n white-space: nowrap;\r\n }\r\n `;\r\n\r\n /** @inheritdoc */\r\n protected override render(): unknown {\r\n return html`<span class=\"base\"><slot></slot></span>`;\r\n }\r\n}\r\n\r\ndeclare global {\r\n interface HTMLElementTagNameMap {\r\n \"m3e-text-overflow\": M3eTextOverflowElement;\r\n }\r\n}\r\n"],"names":["t","e","Directive","PartType","directive","s","o","r","n","S","c","i","h","a","l","p","d","u","f","property","_eventHandler","ElevationToken","_clickHandler","ifDefined","customElement","query","queryAssignedElements"],"mappings":"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C,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAA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","x_google_ignoreList":[0,11,15,16,17,18,19,20,21,47,48]}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../node_modules/tslib/tslib.es6.js","../../src/shared/controllers/MonitorControllerBase.ts","../../src/shared/controllers/FocusController.ts","../../src/shared/controllers/HoverController.ts","../../src/shared/controllers/IntersectionController.ts","../../src/shared/controllers/LongPressController.ts","../../src/shared/controllers/MutationController.ts","../../src/shared/controllers/PressedController.ts","../../src/shared/controllers/ResizeController.ts","../../src/shared/decorators/debounce.ts","../../src/shared/controllers/ScrollController.ts","../../../node_modules/lit-html/directive.js","../../src/shared/directives/safeStyleMap.ts","../../src/shared/mixins/hasKeys.ts","../../src/shared/mixins/AttachInternals.ts","../../../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/base.js","../../../node_modules/@lit/reactive-element/decorators/query.js","../../../node_modules/@lit/reactive-element/decorators/query-assigned-elements.js","../../src/shared/mixins/Checked.ts","../../src/shared/mixins/CheckedIndeterminate.ts","../../src/shared/mixins/Selected.ts","../../src/shared/mixins/CheckedOrSelected.ts","../../src/shared/mixins/Dirty.ts","../../src/shared/mixins/Touched.ts","../../src/shared/tokens/ColorToken.ts","../../src/shared/tokens/DensityToken.ts","../../src/shared/tokens/ElevationToken.ts","../../src/shared/tokens/MotionToken.ts","../../src/shared/tokens/ScrollbarToken.ts","../../src/shared/tokens/ShapeToken.ts","../../src/shared/tokens/StateToken.ts","../../src/shared/tokens/TypescaleToken.ts","../../src/shared/tokens/DesignToken.ts","../../src/shared/mixins/Disabled.ts","../../src/shared/mixins/DisabledInteractive.ts","../../src/shared/mixins/Labelled.ts","../../src/shared/mixins/FormAssociated.ts","../../src/shared/mixins/ConstraintValidation.ts","../../src/shared/mixins/EventAttribute.ts","../../src/shared/mixins/Focusable.ts","../../src/shared/mixins/FormSubmitter.ts","../../src/shared/mixins/HtmlFor.ts","../../src/shared/mixins/KeyboardClick.ts","../../../node_modules/lit-html/lit-html.js","../../../node_modules/lit-html/directives/if-defined.js","../../src/shared/mixins/LinkButton.ts","../../src/shared/mixins/ReadOnly.ts","../../src/shared/mixins/Required.ts","../../src/shared/mixins/RequiredConstraintValidation.ts","../../src/shared/mixins/Role.ts","../../src/shared/mixins/Vertical.ts","../../src/shared/utils/getTextContent.ts","../../src/shared/utils/guid.ts","../../src/shared/utils/hasAssignedNodes.ts","../../src/shared/utils/prefersReducedMotion.ts","../../src/shared/utils/scrollIntoViewIfNeeded.ts","../../src/shared/primitives/CollapsibleElement.ts","../../src/shared/primitives/ElevationToken.ts","../../src/shared/primitives/ElevationElement.ts","../../src/shared/primitives/FocusRingToken.ts","../../src/shared/primitives/FocusRingElement.ts","../../src/shared/primitives/PseudoCheckboxElement.ts","../../src/shared/primitives/PseudoRadioElement.ts","../../src/shared/primitives/RippleToken.ts","../../src/shared/primitives/RippleElement.ts","../../src/shared/primitives/ScrollContainerElement.ts","../../src/shared/primitives/SlideElement.ts","../../src/shared/primitives/StateLayerToken.ts","../../src/shared/primitives/StateLayerElement.ts","../../src/shared/primitives/TextOverflowElement.ts","../../src/shared/primitives/TextHighlightElement.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","import { ReactiveController, ReactiveControllerHost } from \"lit\";\r\n\r\n/** Encapsulates options used to monitor the state of one or more elements. */\r\nexport interface MonitorControllerOptions {\r\n /**\r\n * The element to observe. In addition to configuring the target here,\r\n * the `observe` method can be called to observe additional targets. When\r\n * not specified, the target defaults to the `host`. If set to `null`, no\r\n * target is automatically observed. Only the configured target will be\r\n * re-observed if the host connects again after unobserving via disconnection.\r\n */\r\n target?: HTMLElement | null;\r\n}\r\n\r\n/**\r\n * A base implementation for a `ReactiveController` used to monitor the state of one\r\n * or more elements. This class must be inherited.\r\n */\r\nexport abstract class MonitorControllerBase implements ReactiveController {\r\n /** @private */ readonly #host: ReactiveControllerHost & HTMLElement;\r\n /** @private */ readonly #target?: HTMLElement | null;\r\n /** @private */ readonly #targets = new Set<HTMLElement>();\r\n\r\n /**\r\n * Initializes the `MonitorControllerBase` base class values when called by a derived class.\r\n * @param {ReactiveControllerHost & HTMLElement} host The host element to which this controller will be added.\r\n * @param {MonitorControllerOptions} options Options used to configure this controller.\r\n */\r\n constructor(host: ReactiveControllerHost & HTMLElement, options: MonitorControllerOptions) {\r\n this.#host = host;\r\n this.#target = options.target;\r\n this.#host.addController(this);\r\n }\r\n\r\n /** The targets being observed. */\r\n get targets(): Iterable<HTMLElement> {\r\n return this.#targets.values();\r\n }\r\n\r\n /** @inheritdoc */\r\n hostConnected(): void {\r\n // Target defaults to host unless explicitly null.\r\n if (this.#target !== null) {\r\n this.observe(this.#target ?? this.#host);\r\n }\r\n }\r\n\r\n /** @inheritdoc */\r\n hostDisconnected(): void {\r\n this.#targets.forEach((x) => this.unobserve(x));\r\n this.#targets.clear();\r\n }\r\n\r\n /** @inheritdoc */\r\n hostUpdate?(): void;\r\n\r\n /** @inheritdoc */\r\n hostUpdated?(): void;\r\n\r\n /**\r\n * Starts observing the specified element.\r\n * @param {HTMLElement} target The element to start observing.\r\n */\r\n observe(target: HTMLElement): void {\r\n if (this.#targets.has(target)) return;\r\n this.#targets.add(target);\r\n this._observe(target);\r\n }\r\n\r\n /**\r\n * Determines whether the specified element is being observed.\r\n * @param {HTMLElement} target The element to test.\r\n * @returns {boolean} Whether `target` is being observed.\r\n */\r\n isObserving(target: HTMLElement): boolean {\r\n return this.#targets.has(target);\r\n }\r\n\r\n /**\r\n * Stops observing the specified element.\r\n * @param {HTMLElement} target The element to stop observing.\r\n */\r\n unobserve(target: HTMLElement): void {\r\n if (!this.#targets.delete(target)) return;\r\n this._unobserve(target);\r\n }\r\n\r\n /**\r\n * When implemented by a derived class, starts observing the specified element.\r\n * @param {HTMLElement} target The element to start observing.\r\n */\r\n protected abstract _observe(target: HTMLElement): void;\r\n\r\n /**\r\n * When implemented by a derived class, stops observing the specified element.\r\n * @param {HTMLElement} target The element to stop observing.\r\n */\r\n protected abstract _unobserve(target: HTMLElement): void;\r\n}\r\n","import { ReactiveControllerHost } from \"lit\";\r\n\r\nimport { MonitorControllerBase, MonitorControllerOptions } from \"./MonitorControllerBase\";\r\n\r\n/** The callback function invoked when the focused state of an element changes. */\r\nexport type FocusControllerCallback = (focused: boolean, focusVisible: boolean, target: HTMLElement) => void;\r\n\r\n/** Encapsulates options used to configure a `FocusController`. */\r\nexport interface FocusControllerOptions extends MonitorControllerOptions {\r\n /** The callback invoked when the focused state of an element changes. */\r\n callback: FocusControllerCallback;\r\n}\r\n\r\n/** A `ReactiveController` used to monitor the focused state of one or more elements. */\r\nexport class FocusController extends MonitorControllerBase {\r\n /** @private */ readonly #callback: FocusControllerCallback;\r\n /** @private */ readonly #focusInHandler = (e: Event) => this.#handleFocusIn(e);\r\n /** @private */ readonly #focusOutHandler = (e: Event) => this.#handleFocusOut(e);\r\n\r\n /**\r\n * Initializes a new instance of this class.\r\n * @param {ReactiveControllerHost & HTMLElement} host The host element to which this controller will be added.\r\n * @param {FocusControllerOptions} options Options used to configure this controller.\r\n */\r\n constructor(host: ReactiveControllerHost & HTMLElement, options: FocusControllerOptions) {\r\n super(host, options);\r\n this.#callback = options.callback;\r\n }\r\n\r\n /**\r\n * Starts observing the specified element.\r\n * @param {HTMLElement} target The element to start observing.\r\n */\r\n protected override _observe(target: HTMLElement): void {\r\n target.addEventListener(\"keydown\", this.#focusInHandler);\r\n target.addEventListener(\"focusin\", this.#focusInHandler);\r\n target.addEventListener(\"focusout\", this.#focusOutHandler);\r\n }\r\n\r\n /**\r\n * Stops observing the specified element.\r\n * @param {HTMLElement} target The element to stop observing.\r\n */\r\n protected override _unobserve(target: HTMLElement): void {\r\n target.removeEventListener(\"keydown\", this.#focusInHandler);\r\n target.removeEventListener(\"focusin\", this.#focusInHandler);\r\n target.removeEventListener(\"focusout\", this.#focusOutHandler);\r\n }\r\n\r\n /** @private */\r\n #handleFocusIn(e: Event): void {\r\n const target = e.target as HTMLElement;\r\n this.#callback(true, target.matches(\":focus-visible\") || matchMedia(\"(forced-colors: active)\").matches, target);\r\n }\r\n\r\n /** @private */\r\n #handleFocusOut(e: Event): void {\r\n this.#callback(false, false, e.target as HTMLElement);\r\n }\r\n}\r\n","import { ReactiveControllerHost } from \"lit\";\r\n\r\nimport { MonitorControllerBase, MonitorControllerOptions } from \"./MonitorControllerBase\";\r\n\r\n/** The callback function invoked when the hover state of an element changes. */\r\nexport type HoverControllerCallback = (hovering: boolean, target: HTMLElement) => void;\r\n\r\n/** Encapsulates options used to configure a `HoverController`. */\r\nexport interface HoverControllerOptions extends MonitorControllerOptions {\r\n /** The callback invoked when the hover state of an element changes. */\r\n callback: HoverControllerCallback;\r\n\r\n /** The delay, in milliseconds, before reporting hover start. */\r\n startDelay?: number;\r\n\r\n /** The delay, in milliseconds, before reporting hover end. */\r\n endDelay?: number;\r\n}\r\n\r\n/** A `ReactiveController` used to monitor the hover state of one or more elements. */\r\nexport class HoverController extends MonitorControllerBase {\r\n /** @private */ readonly #callback: HoverControllerCallback;\r\n /** @private */ readonly #startDelays = new Map<HTMLElement, number>();\r\n /** @private */ readonly #endDelays = new Map<HTMLElement, number>();\r\n /** @private */ readonly #pointerInHandler = (e: Event) => this.#handlePointerEnter(e);\r\n /** @private */ readonly #pointerLeaveHandler = (e: Event) => this.#handlePointerLeave(e);\r\n\r\n /** The delay, in milliseconds, before reporting hover start. */\r\n startDelay: number;\r\n\r\n /** The delay, in milliseconds, before reporting hover end. */\r\n endDelay: number;\r\n\r\n /**\r\n * Initializes a new instance of this class.\r\n * @param {ReactiveControllerHost & HTMLElement} host The host element to which this controller will be added.\r\n * @param {HoverControllerOptions} options Options used to configure this controller.\r\n */\r\n constructor(host: ReactiveControllerHost & HTMLElement, options: HoverControllerOptions) {\r\n super(host, options);\r\n this.#callback = options.callback;\r\n this.startDelay = options.startDelay ?? 0;\r\n this.endDelay = options.endDelay ?? 0;\r\n }\r\n\r\n /** Clears any hover delays for all targets. */\r\n clearDelays(): void {\r\n for (const target of this.targets) {\r\n this.#clearDelays(target);\r\n }\r\n }\r\n\r\n /**\r\n * Starts observing the specified element.\r\n * @param {HTMLElement} target The element to start observing.\r\n */\r\n protected override _observe(target: HTMLElement): void {\r\n target.addEventListener(\"pointerenter\", this.#pointerInHandler);\r\n target.addEventListener(\"pointerleave\", this.#pointerLeaveHandler);\r\n }\r\n\r\n /**\r\n * Stops observing the specified element.\r\n * @param {HTMLElement} target The element to stop observing.\r\n */\r\n protected override _unobserve(target: HTMLElement): void {\r\n target.removeEventListener(\"pointerenter\", this.#pointerInHandler);\r\n target.removeEventListener(\"pointerleave\", this.#pointerLeaveHandler);\r\n }\r\n\r\n /** @private */\r\n #clearDelays(target: HTMLElement): void {\r\n this.#clearStartDelay(target);\r\n this.#clearEndDelay(target);\r\n }\r\n\r\n /** @private */\r\n #clearStartDelay(target: HTMLElement): boolean {\r\n if (this.#startDelays.has(target)) {\r\n clearTimeout(this.#startDelays.get(target));\r\n return this.#startDelays.delete(target);\r\n }\r\n return false;\r\n }\r\n\r\n /** @private */\r\n #clearEndDelay(target: HTMLElement): boolean {\r\n if (this.#endDelays.has(target)) {\r\n clearTimeout(this.#endDelays.get(target));\r\n return this.#endDelays.delete(target);\r\n }\r\n return false;\r\n }\r\n\r\n /** @private */\r\n #handlePointerEnter(e: Event): void {\r\n const target = e.target as HTMLElement;\r\n\r\n // If there is a pending end delay, cancel it.\r\n this.#clearEndDelay(target);\r\n\r\n // Otherwise, if there is a pending start delay, cancel it and start a new one.\r\n if (this.startDelay > 0) {\r\n this.#clearStartDelay(target);\r\n this.#startDelays.set(\r\n target,\r\n setTimeout(() => {\r\n this.#startDelays.delete(target);\r\n this.#callback(true, target);\r\n }, this.startDelay)\r\n );\r\n } else {\r\n // Otherwise, report the start.\r\n this.#callback(true, target);\r\n }\r\n }\r\n\r\n /** @private */\r\n #handlePointerLeave(e: Event): void {\r\n const target = e.target as HTMLElement;\r\n\r\n // If there is a pending start delay, cancel it and do not report the end.\r\n if (this.#clearStartDelay(target)) return;\r\n\r\n // Otherwise, if there is a pending end delay, cancel it and start a new one.\r\n if (this.endDelay > 0) {\r\n this.#clearEndDelay(target);\r\n this.#endDelays.set(\r\n target,\r\n setTimeout(() => {\r\n this.#endDelays.delete(target);\r\n this.#callback(false, target);\r\n }, this.endDelay)\r\n );\r\n } else {\r\n // Otherwise, report the end.\r\n this.#callback(false, target);\r\n }\r\n }\r\n}\r\n","import { isServer, ReactiveControllerHost } from \"lit\";\r\n\r\nimport { MonitorControllerBase, MonitorControllerOptions } from \"./MonitorControllerBase\";\r\n\r\n/** The callback function for a `IntersectionController`. */\r\nexport type IntersectionControllerCallback = (...args: Parameters<IntersectionObserverCallback>) => void;\r\n\r\n/** Encapsulates options used to configure a `IntersectionController`. */\r\nexport interface IntersectionControllerOptions extends MonitorControllerOptions {\r\n /** The callback used to process detected changes. */\r\n callback: IntersectionControllerCallback;\r\n\r\n /**\r\n * By default, the `callback` is invoked without changes when a\r\n * target is observed in order to help maintain initial state. Use\r\n * `skipInitial` to skip this step.\r\n */\r\n skipInitial?: boolean;\r\n\r\n /** The configuration object for the underlying `IntersectionObserver`. */\r\n init?: IntersectionObserverInit;\r\n}\r\n\r\n/** A `ReactiveController` used to monitor changes in the intersection of a target element with an ancestor element. */\r\nexport class IntersectionController extends MonitorControllerBase {\r\n /** @private */ #host: ReactiveControllerHost;\r\n /** @private */ #callback: IntersectionControllerCallback;\r\n /** @private */ #skipInitial = false;\r\n /** @private */ #observer?: IntersectionObserver;\r\n /** @private */ #unobservedUpdate = true;\r\n\r\n /**\r\n * Initializes a new instance of the `IntersectionController` class.\r\n * @param {ReactiveControllerHost & HTMLElement} host The host element to which this controller will be added.\r\n * @param {IntersectionControllerOptions} options Options used to configure this controller.\r\n */\r\n constructor(host: ReactiveControllerHost & HTMLElement, options: IntersectionControllerOptions) {\r\n super(host, options);\r\n\r\n this.#host = host;\r\n this.#callback = options.callback;\r\n this.#skipInitial = options.skipInitial ?? false;\r\n\r\n if (isServer) return;\r\n if (!window.IntersectionObserver) {\r\n console.warn(\"IntersectionController error: the browser does not support IntersectionObserver.\");\r\n return;\r\n }\r\n\r\n this.#observer = new IntersectionObserver((entries, observer) => {\r\n this.#callback(entries, observer);\r\n this.#host.requestUpdate();\r\n }, options.init);\r\n }\r\n\r\n /** @inheritdoc */\r\n override async hostUpdated(): Promise<void> {\r\n if (this.#observer && !this.#skipInitial && this.#unobservedUpdate) {\r\n this.#callback([], this.#observer);\r\n }\r\n this.#unobservedUpdate = false;\r\n }\r\n\r\n /**\r\n * Starts observing the specified element.\r\n * @param {HTMLElement} target The element to start observing.\r\n */\r\n protected override _observe(target: HTMLElement): void {\r\n this.#observer?.observe(target);\r\n this.#unobservedUpdate = true;\r\n this.#host.requestUpdate();\r\n }\r\n\r\n /**\r\n * Stops observing the specified element.\r\n * @param {HTMLElement} target The element to stop observing.\r\n */\r\n protected override _unobserve(target: HTMLElement): void {\r\n this.#observer?.unobserve(target);\r\n }\r\n}\r\n","import { ReactiveControllerHost } from \"lit\";\r\n\r\nimport { MonitorControllerBase, MonitorControllerOptions } from \"./MonitorControllerBase\";\r\n\r\n/** The callback function invoked when a long press gesture is detected. */\r\nexport type LongPressControllerCallback = (pressed: boolean, target: HTMLElement) => void;\r\n\r\n/** Encapsulates options used to configure a `LongPressController`. */\r\nexport interface LongPressControllerOptions extends MonitorControllerOptions {\r\n /** The callback invoked when the pressed state of an element changes. */\r\n callback: LongPressControllerCallback;\r\n\r\n /** The amount of time, in milliseconds, a touch gesture must be held. */\r\n threshold?: number;\r\n}\r\n\r\n/** A `ReactiveController` used to detect a long press gesture. */\r\nexport class LongPressController extends MonitorControllerBase {\r\n /** @private */ readonly #callback: LongPressControllerCallback;\r\n /** @private */ readonly #threshold: number;\r\n /** @private */ readonly #pressedTargets = new Set<HTMLElement>();\r\n /** @private */ readonly #pressedTimeouts = new Map<HTMLElement, number>();\r\n\r\n /** @private */ readonly #touchStartHandler = (e: TouchEvent) => this.#handleTouchStart(e);\r\n /** @private */ readonly #touchEndOrCancelHandler = (e: TouchEvent) => this.#handleTouchEndOrCancel(e);\r\n\r\n /**\r\n * Initializes a new instance of this class.\r\n * @param {ReactiveControllerHost & HTMLElement} host The host element to which this controller will be added.\r\n * @param {LongPressControllerOptions} options Options used to configure this controller.\r\n */\r\n constructor(host: ReactiveControllerHost & HTMLElement, options: LongPressControllerOptions) {\r\n super(host, options);\r\n this.#callback = options.callback;\r\n this.#threshold = options.threshold ?? 500;\r\n }\r\n\r\n /**\r\n * Starts observing the specified element.\r\n * @param {HTMLElement} target The element to start observing.\r\n */\r\n protected override _observe(target: HTMLElement): void {\r\n target.addEventListener(\"touchstart\", this.#touchStartHandler);\r\n target.addEventListener(\"touchend\", this.#touchEndOrCancelHandler);\r\n target.addEventListener(\"touchcancel\", this.#touchEndOrCancelHandler);\r\n }\r\n\r\n /**\r\n * Stops observing the specified element.\r\n * @param {HTMLElement} target The element to stop observing.\r\n */\r\n protected override _unobserve(target: HTMLElement): void {\r\n target.removeEventListener(\"touchstart\", this.#touchStartHandler);\r\n target.removeEventListener(\"touchend\", this.#touchEndOrCancelHandler);\r\n target.removeEventListener(\"touchcancel\", this.#touchEndOrCancelHandler);\r\n }\r\n\r\n /** @private */\r\n #handleTouchStart(e: TouchEvent): void {\r\n if (e.currentTarget instanceof HTMLElement && this.isObserving(e.currentTarget)) {\r\n const target = e.currentTarget;\r\n this.#pressedTimeouts.set(\r\n target,\r\n setTimeout(() => {\r\n this.#pressedTargets.add(target);\r\n this.#pressedTimeouts.delete(target);\r\n this.#callback(true, target);\r\n }, this.#threshold)\r\n );\r\n }\r\n }\r\n\r\n /** @private */\r\n #handleTouchEndOrCancel(e: TouchEvent): void {\r\n if (e.currentTarget instanceof HTMLElement && this.isObserving(e.currentTarget)) {\r\n const target = e.currentTarget;\r\n if (this.#pressedTargets.has(target)) {\r\n this.#callback(false, target);\r\n this.#pressedTargets.delete(target);\r\n }\r\n if (this.#pressedTimeouts.has(target)) {\r\n clearTimeout(this.#pressedTimeouts.get(target));\r\n this.#pressedTimeouts.delete(target);\r\n }\r\n }\r\n }\r\n}\r\n","import { isServer, ReactiveControllerHost } from \"lit\";\r\n\r\nimport { MonitorControllerBase, MonitorControllerOptions } from \"./MonitorControllerBase\";\r\n\r\n/** Encapsulates options used to configure a `MutationController`. */\r\nexport interface MutationControllerOptions extends MonitorControllerOptions {\r\n /** The callback used to process detected changes. */\r\n callback: MutationCallback;\r\n\r\n /**\r\n * By default, the `callback` is invoked without changes when a\r\n * target is observed in order to help maintain initial state. Use\r\n * `skipInitial` to skip this step.\r\n */\r\n skipInitial?: boolean;\r\n\r\n /** The configuration object for the underlying `MutationObserver`. */\r\n config?: MutationObserverInit;\r\n}\r\n\r\n/**\r\n * A `ReactiveController` that integrates a `MutationObserver` with an element's reactive update lifecycle\r\n * to detect arbitrary changes to DOM, including nodes being added or removed and attributes changing.\r\n */\r\nexport class MutationController extends MonitorControllerBase {\r\n /** @private */ #host: ReactiveControllerHost;\r\n /** @private */ #callback: MutationCallback;\r\n /** @private */ #skipInitial = false;\r\n /** @private */ #config?: MutationObserverInit;\r\n /** @private */ #observer?: MutationObserver;\r\n /** @private */ #unobservedUpdate = true;\r\n\r\n /**\r\n * Initializes a new instance of the `MutationController` class.\r\n * @param {ReactiveControllerHost & HTMLElement} host The host element to which this controller will be added.\r\n * @param {MutationControllerOptions} options Options used to configure this controller.\r\n */\r\n constructor(host: ReactiveControllerHost & HTMLElement, options: MutationControllerOptions) {\r\n super(host, options);\r\n\r\n this.#host = host;\r\n this.#callback = options.callback;\r\n this.#skipInitial = options.skipInitial ?? false;\r\n this.#config = options.config;\r\n\r\n if (isServer) return;\r\n if (!window.MutationObserver) {\r\n console.warn(\"MutationController error: the browser does not support MutationObserver.\");\r\n return;\r\n }\r\n\r\n this.#observer = new MutationObserver((records, observer) => {\r\n this.#callback(records, observer);\r\n this.#host.requestUpdate();\r\n });\r\n }\r\n\r\n /** @inheritdoc */\r\n override async hostUpdated(): Promise<void> {\r\n if (this.#observer && !this.#skipInitial && this.#unobservedUpdate) {\r\n const records = this.#observer.takeRecords();\r\n if (records.length > 0) {\r\n this.#callback(records, this.#observer);\r\n }\r\n }\r\n this.#unobservedUpdate = false;\r\n }\r\n\r\n /** @inheritdoc */\r\n override hostDisconnected(): void {\r\n super.hostDisconnected();\r\n this.#observer?.disconnect();\r\n }\r\n\r\n /** @inheritdoc */\r\n protected override _observe(target: HTMLElement): void {\r\n this.#observer?.observe(target, this.#config);\r\n this.#unobservedUpdate = true;\r\n this.#host.requestUpdate();\r\n }\r\n\r\n /** @inheritdoc */\r\n protected override _unobserve(): void {\r\n this.#observer?.disconnect();\r\n for (const target of this.targets) {\r\n this.#observer?.observe(target, this.#config);\r\n }\r\n }\r\n}\r\n","import { ReactiveControllerHost } from \"lit\";\r\n\r\nimport { MonitorControllerBase, MonitorControllerOptions } from \"./MonitorControllerBase\";\r\n\r\n/** The callback function invoked when the pressed state of an element changes. */\r\nexport type PressedControllerCallback = (\r\n pressed: boolean,\r\n point: { x: number; y: number },\r\n target: HTMLElement\r\n) => void;\r\n\r\n/** Encapsulates options used to configure a `PressedController`. */\r\nexport interface PressedControllerOptions extends MonitorControllerOptions {\r\n /** The callback invoked when the pressed state of an element changes. */\r\n callback: PressedControllerCallback;\r\n\r\n /** The minimum amount of time, in milliseconds, to retain a pressed state. */\r\n minPressedDuration?: number;\r\n\r\n /** Whether events are captured. */\r\n capture?: boolean;\r\n\r\n /**\r\n * A function used to determine whether a given keyboard key toggles the pressed state.\r\n * @param key The `KeyboardEvent.key` to test.\r\n * @returns Whether `key` toggles the pressed state.\r\n */\r\n isPressedKey?: (key: string) => boolean;\r\n}\r\n\r\n/** A `ReactiveController` used to monitor the pressed state of one or more elements. */\r\nexport class PressedController extends MonitorControllerBase {\r\n /** @private */ readonly #capture?: boolean;\r\n /** @private */ readonly #callback: PressedControllerCallback;\r\n /** @private */ readonly #isPressedKey?: (key: string) => boolean;\r\n /** @private */ readonly #pressedTargets = new Map<HTMLElement, number>();\r\n /** @private */ readonly #minPressedDuration: number;\r\n\r\n /** @private */ readonly #pointerDownHandler = (e: PointerEvent) => this.#handlePointerDown(e);\r\n /** @private */ readonly #pointerUpHandler = (e: PointerEvent) => this.#handlePointerUp(e);\r\n /** @private */ readonly #keyDownHandler = (e: KeyboardEvent) => this.#handleKeyDown(e);\r\n /** @private */ readonly #keyUpHandler = (e: KeyboardEvent) => this.#handleKeyUp(e);\r\n\r\n /**\r\n * Initializes a new instance of this class.\r\n * @param {ReactiveControllerHost & HTMLElement} host The host element to which this controller will be added.\r\n * @param {PressedControllerOptions} options Options used to configure this controller.\r\n */\r\n constructor(host: ReactiveControllerHost & HTMLElement, options: PressedControllerOptions) {\r\n super(host, options);\r\n\r\n this.#capture = options.capture;\r\n this.#callback = options.callback;\r\n this.#isPressedKey = options.isPressedKey;\r\n this.#minPressedDuration = options.minPressedDuration ?? 0;\r\n }\r\n\r\n /** @inheritdoc */\r\n override hostConnected(): void {\r\n document.addEventListener(\"pointerup\", this.#pointerUpHandler, { capture: this.#capture });\r\n super.hostConnected();\r\n }\r\n\r\n /** @inheritdoc */\r\n override hostDisconnected(): void {\r\n document.removeEventListener(\"pointerup\", this.#pointerUpHandler, { capture: this.#capture });\r\n super.hostDisconnected();\r\n this.#pressedTargets.clear();\r\n }\r\n\r\n /**\r\n * Starts observing the specified element.\r\n * @param {HTMLElement} target The element to start observing.\r\n */\r\n protected override _observe(target: HTMLElement): void {\r\n target.addEventListener(\"pointerdown\", this.#pointerDownHandler, { capture: this.#capture });\r\n if (this.#isPressedKey) {\r\n target.addEventListener(\"keydown\", this.#keyDownHandler, { capture: this.#capture });\r\n target.addEventListener(\"keyup\", this.#keyUpHandler, { capture: this.#capture });\r\n }\r\n }\r\n\r\n /**\r\n * Stops observing the specified element.\r\n * @param {HTMLElement} target The element to stop observing.\r\n */\r\n protected override _unobserve(target: HTMLElement): void {\r\n target.removeEventListener(\"pointerdown\", this.#pointerDownHandler, { capture: this.#capture });\r\n\r\n if (this.#isPressedKey) {\r\n target.removeEventListener(\"keydown\", this.#keyDownHandler, { capture: this.#capture });\r\n target.removeEventListener(\"keyup\", this.#keyUpHandler, { capture: this.#capture });\r\n }\r\n }\r\n\r\n /** @private */\r\n #handlePointerDown(e: PointerEvent): void {\r\n if (e.pointerType === \"mouse\" && e.button > 1) return;\r\n\r\n for (const target of e.composedPath()) {\r\n if (target instanceof HTMLElement && this.isObserving(target)) {\r\n if (!this.#pressedTargets.has(target)) {\r\n this.#pressedTargets.set(target, performance.now());\r\n this.#callback(true, { x: e.x, y: e.y }, target);\r\n }\r\n break;\r\n }\r\n }\r\n }\r\n\r\n /** @private */\r\n #handlePointerUp(e: PointerEvent): void {\r\n if (e.pointerType === \"mouse\" && e.button > 1) return;\r\n\r\n const x = e.x;\r\n const y = e.y;\r\n\r\n for (const target of this.#pressedTargets.keys()) {\r\n const remainingTime = this.#minPressedDuration - (performance.now() - this.#pressedTargets.get(target)!);\r\n if (remainingTime > 0) {\r\n setTimeout(() => {\r\n this.#pressedTargets.delete(target);\r\n this.#callback(false, { x, y }, target);\r\n }, remainingTime);\r\n } else {\r\n this.#pressedTargets.delete(target);\r\n this.#callback(false, { x, y }, target);\r\n }\r\n }\r\n }\r\n\r\n /** @private */\r\n #handleKeyDown(e: KeyboardEvent): void {\r\n if (e.target !== e.currentTarget) return;\r\n const target = e.currentTarget as HTMLElement;\r\n\r\n if (!this.#pressedTargets.has(target) && this.#isPressedKey?.(e.key)) {\r\n if (e.key === \" \") {\r\n e.preventDefault();\r\n }\r\n\r\n this.#pressedTargets.set(target, performance.now());\r\n const bounds = target.getBoundingClientRect();\r\n this.#callback(true, { x: bounds.x + bounds.width / 2, y: bounds.y + bounds.height / 2 }, target);\r\n }\r\n }\r\n\r\n /** @private */\r\n #handleKeyUp(e: KeyboardEvent): void {\r\n const target = e.target as HTMLElement;\r\n\r\n if (this.#pressedTargets.has(target) && this.#isPressedKey?.(e.key)) {\r\n const remainingTime = this.#minPressedDuration - (performance.now() - this.#pressedTargets.get(target)!);\r\n const bounds = target.getBoundingClientRect();\r\n if (remainingTime > 0) {\r\n setTimeout(() => {\r\n this.#pressedTargets.delete(target);\r\n this.#callback(false, { x: bounds.x + bounds.width / 2, y: bounds.y + bounds.height / 2 }, target);\r\n }, remainingTime);\r\n } else {\r\n this.#pressedTargets.delete(target);\r\n this.#callback(false, { x: bounds.x + bounds.width / 2, y: bounds.y + bounds.height / 2 }, target);\r\n }\r\n }\r\n }\r\n}\r\n","import { isServer, ReactiveControllerHost } from \"lit\";\r\n\r\nimport { MonitorControllerBase, MonitorControllerOptions } from \"./MonitorControllerBase\";\r\n\r\n/** The callback function for a `ResizeController`. */\r\nexport type ResizeControllerCallback = (...args: Parameters<ResizeObserverCallback>) => void;\r\n\r\n/** Encapsulates options used to configure a `ResizeController`. */\r\nexport interface ResizeControllerOptions extends MonitorControllerOptions {\r\n /** The callback used to process detected changes. */\r\n callback: ResizeControllerCallback;\r\n\r\n /**\r\n * By default, the `callback` is invoked without changes when a\r\n * target is observed in order to help maintain initial state. Use\r\n * `skipInitial` to skip this step.\r\n */\r\n skipInitial?: boolean;\r\n\r\n /** The configuration object for the underlying `ResizeObserver`. */\r\n config?: ResizeObserverOptions;\r\n}\r\n\r\n/** A `ReactiveController` used to monitor when an element is resized. */\r\nexport class ResizeController extends MonitorControllerBase {\r\n /** @private */ readonly #host: ReactiveControllerHost;\r\n /** @private */ readonly #callback: ResizeControllerCallback;\r\n /** @private */ readonly #skipInitial: boolean;\r\n /** @private */ readonly #config?: ResizeObserverOptions;\r\n /** @private */ readonly #observer?: ResizeObserver;\r\n /** @private */ #unobservedUpdate = true;\r\n\r\n /**\r\n * Initializes a new instance of the `ResizeController` class.\r\n * @param {ReactiveControllerHost & HTMLElement} host The host element to which this controller will be added.\r\n * @param {ResizeControllerOptions} options Options used to configure this controller.\r\n */\r\n constructor(host: ReactiveControllerHost & HTMLElement, options: ResizeControllerOptions) {\r\n super(host, options);\r\n\r\n this.#host = host;\r\n this.#callback = options.callback;\r\n this.#skipInitial = options.skipInitial ?? false;\r\n this.#config = options.config;\r\n\r\n if (isServer) return;\r\n if (!window.ResizeObserver) {\r\n console.warn(\"ResizeController error: the browser does not support ResizeObserver.\");\r\n return;\r\n }\r\n\r\n this.#observer = new ResizeObserver((entries, observer) => {\r\n this.#callback(entries, observer);\r\n this.#host.requestUpdate();\r\n });\r\n }\r\n\r\n /** @inheritdoc */\r\n override async hostUpdated(): Promise<void> {\r\n if (this.#observer && !this.#skipInitial && this.#unobservedUpdate) {\r\n this.#callback([], this.#observer);\r\n }\r\n this.#unobservedUpdate = false;\r\n }\r\n\r\n /**\r\n * Starts observing the specified element.\r\n * @param {HTMLElement} target The element to start observing.\r\n */\r\n protected override _observe(target: HTMLElement): void {\r\n this.#observer?.observe(target, this.#config);\r\n this.#unobservedUpdate = true;\r\n this.#host.requestUpdate();\r\n }\r\n\r\n /**\r\n * Stops observing the specified element.\r\n * @param {HTMLElement} target The element to stop observing.\r\n */\r\n protected override _unobserve(target: HTMLElement): void {\r\n this.#observer?.unobserve(target);\r\n }\r\n}\r\n","/* eslint-disable @typescript-eslint/no-explicit-any */\r\n/**\r\n * A decorator that runs a function once after a given \"cooldown\" period.\r\n * @param {number} timeout The timeout, in milliseconds, after which the function is invoked.\r\n * @returns {MethodDecorator} The decorator that runs a function once after a given \"cooldown\" period.\r\n */\r\nexport function debounce(timeout: number): MethodDecorator {\r\n const _id = Symbol(\"_id\");\r\n return (_: any, __: PropertyKey | symbol, descriptor: PropertyDescriptor) => {\r\n const orig = descriptor.value;\r\n descriptor.value = function (...args: any[]) {\r\n // eslint-disable-next-line @typescript-eslint/no-this-alias\r\n const self: any = this;\r\n clearTimeout(self[_id]);\r\n self[_id] = setTimeout(() => orig.apply(this, args), timeout);\r\n };\r\n return descriptor;\r\n };\r\n}\r\n","import { ReactiveControllerHost } from \"lit\";\r\n\r\nimport { MonitorControllerBase, MonitorControllerOptions } from \"./MonitorControllerBase\";\r\nimport { debounce } from \"../decorators\";\r\n\r\n/** The callback function invoked when a scrollable ancestor is scrolled. */\r\nexport type ScrollControllerCallback = (target: Element) => void;\r\n\r\n/** Encapsulates options used to configure a `ScrollController`. */\r\nexport interface ScrollControllerOptions extends MonitorControllerOptions {\r\n /** The callback invoked a scrollable ancestor is scrolled. */\r\n callback: ScrollControllerCallback;\r\n\r\n /** Whether to debounce scroll events. */\r\n debounce?: boolean;\r\n}\r\n\r\n/** A `ReactiveController` used to monitor when a scroll event is emitted from a scrollable ancestor. */\r\nexport class ScrollController extends MonitorControllerBase {\r\n /** @private */ readonly #debounce: boolean;\r\n /** @private */ readonly #callback: ScrollControllerCallback;\r\n /** @private */ readonly #scrollHandler = (e: Event) => this.#handleScroll(e);\r\n /** @private */ readonly #scrollContainers = new Map<HTMLElement, Element[]>();\r\n\r\n /**\r\n * Initializes a new instance of the `ScrollController` class.\r\n * @param {ReactiveControllerHost & HTMLElement} host The host element to which this controller will be added.\r\n * @param {ScrollControllerOptions} options Options used to configure this controller.\r\n */\r\n constructor(host: ReactiveControllerHost & HTMLElement, options: ScrollControllerOptions) {\r\n super(host, options);\r\n this.#debounce = options.debounce === true;\r\n this.#callback = options.callback;\r\n }\r\n\r\n /**\r\n * Returns the scrollable ancestors for a target element currently being observed by this controller.\r\n * @param target The element whose scroll containers are currently being observed.\r\n * @returns {Element[] | undefined} The scrollable ancestors, or `undefined` if `target` is not being observed.\r\n */\r\n getScrollContainers(target: HTMLElement): Element[] | undefined {\r\n return this.#scrollContainers.get(target);\r\n }\r\n\r\n /** @inheritdoc */\r\n protected override _observe(target: HTMLElement): void {\r\n const scrollableAncestors = this.#getScrollContainers(target);\r\n if (scrollableAncestors.length > 0) {\r\n this.#scrollContainers.set(target, scrollableAncestors);\r\n for (const ancestor of scrollableAncestors) {\r\n (ancestor === document.documentElement ? document : ancestor).addEventListener(\"scroll\", this.#scrollHandler, {\r\n passive: true,\r\n });\r\n }\r\n }\r\n }\r\n\r\n /** @inheritdoc */\r\n protected override _unobserve(target: HTMLElement): void {\r\n if (this.#scrollContainers.has(target)) {\r\n for (const ancestor of this.#scrollContainers.get(target)!) {\r\n (ancestor === document.documentElement ? document : ancestor).removeEventListener(\r\n \"scroll\",\r\n this.#scrollHandler\r\n );\r\n }\r\n this.#scrollContainers.delete(target);\r\n }\r\n }\r\n\r\n /** @private */\r\n #getScrollContainers(element: Element): Element[] {\r\n const ancestors = new Array<Element>();\r\n let ancestor: Element | null = element;\r\n while (ancestor) {\r\n const style = getComputedStyle(ancestor);\r\n if (/(auto|scroll)/.test(style.overflow + style.overflowY + style.overflowX)) {\r\n ancestors.push(ancestor);\r\n }\r\n ancestor = ancestor.parentElement;\r\n }\r\n return ancestors;\r\n }\r\n\r\n /** @private */\r\n #handleScroll(e: Event): void {\r\n const target = e.target === document ? document.documentElement : e.target;\r\n if (this.#debounce) {\r\n this._debounceCallback(target as Element);\r\n } else {\r\n this.#callback(target as Element);\r\n }\r\n }\r\n\r\n /** @private */\r\n @debounce(40)\r\n private _debounceCallback(target: Element): void {\r\n this.#callback(target);\r\n }\r\n}\r\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, nothing } from \"lit\";\r\nimport { AttributePart, directive, Directive, DirectiveParameters, PartInfo, PartType } from \"lit/directive.js\";\r\n\r\n/**\r\n * A key-value set of CSS properties and values.\r\n *\r\n * The key should be either a valid CSS property name string, like\r\n * `'background-color'`, or a valid JavaScript camel case property name\r\n * for CSSStyleDeclaration like `backgroundColor`.\r\n */\r\nexport interface StyleInfo {\r\n [name: string]: string | number | undefined | null;\r\n}\r\n\r\nconst important = \"important\";\r\n// The leading space is important\r\nconst importantFlag = \" !\" + important;\r\n// How many characters to remove from a value, as a negative number\r\nconst flagTrim = 0 - importantFlag.length;\r\n\r\nclass SafeStyleMapDirective extends Directive {\r\n private _previousStyleProperties?: Set<string>;\r\n\r\n constructor(partInfo: PartInfo) {\r\n super(partInfo);\r\n if (partInfo.type !== PartType.ATTRIBUTE || partInfo.name !== \"style\" || (partInfo.strings?.length as number) > 2) {\r\n throw new Error(\r\n \"The `styleMap` directive must be used in the `style` attribute \" +\r\n \"and must be the only part in the attribute.\"\r\n );\r\n }\r\n }\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n render(_: Readonly<StyleInfo>) {\r\n return nothing;\r\n }\r\n\r\n override update(part: AttributePart, [styleInfo]: DirectiveParameters<this>) {\r\n const { style } = part.element as HTMLElement;\r\n\r\n if (this._previousStyleProperties === undefined) {\r\n this._previousStyleProperties = new Set(Object.keys(styleInfo));\r\n }\r\n\r\n // Remove old properties that no longer exist in styleInfo\r\n for (const name of this._previousStyleProperties) {\r\n // If the name isn't in styleInfo or it's null/undefined\r\n if (styleInfo[name] == null) {\r\n this._previousStyleProperties!.delete(name);\r\n if (name.includes(\"-\")) {\r\n style.removeProperty(name);\r\n } else {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n (style as any)[name] = null;\r\n }\r\n }\r\n }\r\n\r\n // Add or update properties\r\n for (const name in styleInfo) {\r\n const value = styleInfo[name];\r\n if (value != null) {\r\n this._previousStyleProperties.add(name);\r\n const isImportant = typeof value === \"string\" && value.endsWith(importantFlag);\r\n if (name.includes(\"-\") || isImportant) {\r\n style.setProperty(\r\n name,\r\n isImportant ? (value as string).slice(0, flagTrim) : (value as string),\r\n isImportant ? important : \"\"\r\n );\r\n } else {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n (style as any)[name] = value;\r\n }\r\n }\r\n }\r\n return noChange;\r\n }\r\n}\r\n\r\n/**\r\n * A directive that applies CSS properties to an element.\r\n *\r\n * `safeStyleMap` can only be used in the `style` attribute and must be the only\r\n * expression in the attribute. It takes the property names in the\r\n * {@link StyleInfo styleInfo} object and adds the properties to the inline\r\n * style of the element.\r\n *\r\n * Property names with dashes (`-`) are assumed to be valid CSS\r\n * property names and set on the element's style object using `setProperty()`.\r\n * Names without dashes are assumed to be camelCased JavaScript property names\r\n * and set on the element's style object using property assignment, allowing the\r\n * style object to translate JavaScript-style names to CSS property names.\r\n *\r\n * For example `safeStyleMap({backgroundColor: 'red', 'border-top': '5px', '--size':\r\n * '0'})` sets the `background-color`, `border-top` and `--size` properties.\r\n *\r\n * @param styleInfo\r\n * @see {@link https://lit.dev/docs/templates/directives/#stylemap styleMap code samples on Lit.dev}\r\n */\r\nexport const safeStyleMap = directive(SafeStyleMapDirective);\r\n\r\n/**\r\n * The type of the class that powers this directive. Necessary for naming the\r\n * directive's return type.\r\n */\r\nexport type { SafeStyleMapDirective };\r\n","/**\r\n * Determines whether an object has keys for a given type.\r\n * @template T The type to test.\r\n * @param {unknown} value The value to test.\r\n * @param {...keys: Array<keyof T>} keys The keys of `T` to test.\r\n * @returns {boolean} Whether `value` has all `keys`.\r\n */\r\nexport function hasKeys<T extends object>(value: unknown, ...keys: Array<keyof T>): boolean {\r\n return typeof value === \"object\" && value !== null && keys.every((x) => x in value);\r\n}\r\n","import { LitElement } from \"lit\";\r\n\r\nimport { Constructor } from \"./Constructor\";\r\nimport { hasKeys } from \"./hasKeys\";\r\n\r\n/** A symbol through which to access the `ElementInternals` attached to an element. */\r\nexport const internals = Symbol(\"internals\");\r\n\r\n/** Defines functionality for an element attached to `ElementInternals`. */\r\nexport interface AttachInternalsMixin {\r\n /** The `ElementInternals` attached to the element. */\r\n readonly [internals]: ElementInternals;\r\n}\r\n\r\n/**\r\n * Determines whether a value is an `AttachInternalsMixin`.\r\n * @param {unknown} value The value to test.\r\n * @returns Whether `value` is an `AttachInternalsMixin`.\r\n */\r\nexport function isAttachInternalsMixin(value: unknown): value is AttachInternalsMixin {\r\n return hasKeys<AttachInternalsMixin>(value, internals);\r\n}\r\n\r\nconst _internals = Symbol(\"_internals\");\r\n\r\n/**\r\n * Mixin to augment an element with behavior that attaches to `ElementInternals`.\r\n * @template T The type of the base class.\r\n * @param {T} base The base class.\r\n * @param {boolean | undefined} formAssociated Whether the element is \"Form Associated\".\r\n * @returns {Constructor<AttachInternalsMixin> & T} A constructor that implements `AttachInternalsMixin`.\r\n */\r\nexport function AttachInternals<T extends Constructor<LitElement>>(\r\n base: T,\r\n formAssociated?: boolean\r\n): Constructor<AttachInternalsMixin> & T {\r\n abstract class _AttachInternals extends base implements AttachInternalsMixin {\r\n /** Indicates that this custom element participates in form submission, validation, and form state restoration. */\r\n static readonly formAssociated = formAssociated;\r\n\r\n /** @private */\r\n private [_internals]?: ElementInternals;\r\n\r\n /** @internal */\r\n get [internals](): ElementInternals {\r\n return this[_internals] ?? (this[_internals] = this.attachInternals());\r\n }\r\n }\r\n\r\n return _AttachInternals;\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","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst e=(e,t,c)=>(c.configurable=!0,c.enumerable=!0,Reflect.decorate&&\"object\"!=typeof t&&Object.defineProperty(e,t,c),c);export{e as desc};\n//# sourceMappingURL=base.js.map\n","import{desc as t}from\"./base.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */function e(e,r){return(n,s,i)=>{const o=t=>t.renderRoot?.querySelector(e)??null;if(r){const{get:e,set:r}=\"object\"==typeof s?n:i??(()=>{const t=Symbol();return{get(){return this[t]},set(e){this[t]=e}}})();return t(n,s,{get(){let t=e.call(this);return void 0===t&&(t=o(this),(null!==t||this.hasUpdated)&&r.call(this,t)),t}})}return t(n,s,{get(){return o(this)}})}}export{e as query};\n//# sourceMappingURL=query.js.map\n","import{desc as t}from\"./base.js\";\n/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */function o(o){return(e,n)=>{const{slot:r,selector:s}=o??{},c=\"slot\"+(r?`[name=${r}]`:\":not([name])\");return t(e,n,{get(){const t=this.renderRoot?.querySelector(c),e=t?.assignedElements(o)??[];return void 0===s?e:e.filter((t=>t.matches(s)))}})}}export{o as queryAssignedElements};\n//# sourceMappingURL=query-assigned-elements.js.map\n","import { LitElement, PropertyValues } from \"lit\";\r\nimport { property } from \"lit/decorators.js\";\r\n\r\nimport { Constructor } from \"./Constructor\";\r\nimport { hasKeys } from \"./hasKeys\";\r\n\r\n/** Defines functionality for an element which supports a checked state. */\r\nexport interface CheckedMixin {\r\n /**\r\n * Whether the element is checked.\r\n * @default false\r\n */\r\n checked: boolean;\r\n}\r\n\r\n/**\r\n * Determines whether a value is a `CheckedMixin`.\r\n * @param {unknown} value The value to test.\r\n * @returns Whether `value` is a `CheckedMixin`.\r\n */\r\nexport function isCheckedMixin(value: unknown): value is CheckedMixin {\r\n return hasKeys<CheckedMixin>(value, \"checked\");\r\n}\r\n\r\n/**\r\n * Mixin to augment an element with behavior that supports a checked state.\r\n * @template T The type of the base class.\r\n * @param {T} base The base class.\r\n * @returns {Constructor<CheckedMixin> & T} A constructor that implements `CheckedMixin`.\r\n */\r\nexport function Checked<T extends Constructor<LitElement>>(base: T): Constructor<CheckedMixin> & T {\r\n abstract class _CheckedMixin extends base implements CheckedMixin {\r\n /**\r\n * Whether the element is checked.\r\n * @default false\r\n */\r\n @property({ type: Boolean, reflect: true }) checked = false;\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(\"checked\")) {\r\n if (this.role === \"button\") {\r\n this.ariaPressed = `${this.checked}`;\r\n this.ariaChecked = null;\r\n } else if (this.role && this.role !== \"none\" && this.role !== \"presentation\") {\r\n this.ariaChecked = `${this.checked}`;\r\n this.ariaPressed = null;\r\n }\r\n }\r\n }\r\n }\r\n return _CheckedMixin;\r\n}\r\n","import { LitElement, PropertyValues } from \"lit\";\r\nimport { property } from \"lit/decorators.js\";\r\n\r\nimport { Checked, CheckedMixin, isCheckedMixin } from \"./Checked\";\r\nimport { Constructor } from \"./Constructor\";\r\nimport { hasKeys } from \"./hasKeys\";\r\n\r\n/** Defines functionality for an element which supports a mixed checked state. */\r\nexport interface CheckedIndeterminateMixin extends CheckedMixin {\r\n /**\r\n * Whether the element's checked state is indeterminate.\r\n * @default false\r\n */\r\n indeterminate: boolean;\r\n}\r\n\r\n/**\r\n * Determines whether a value is a `CheckedIndeterminateMixin`.\r\n * @param {unknown} value The value to test.\r\n * @returns Whether `value` is a `CheckedIndeterminateMixin`.\r\n */\r\nexport function isCheckedIndeterminateMixin(value: unknown): value is CheckedIndeterminateMixin {\r\n return hasKeys<CheckedIndeterminateMixin>(value, \"indeterminate\") && isCheckedMixin(value);\r\n}\r\n\r\n/**\r\n * Mixin to augment an element with behavior that supports a mixed checked state.\r\n * @template T The type of the base class.\r\n * @param {T} base The base class.\r\n * @returns {Constructor<CheckedIndeterminateMixin> & T} A constructor that implements `CheckedIndeterminateMixin`.\r\n */\r\nexport function CheckedIndeterminate<T extends Constructor<LitElement>>(\r\n base: T\r\n): Constructor<CheckedIndeterminateMixin> & T {\r\n abstract class _CheckedIndeterminateMixin extends Checked(base) implements CheckedIndeterminateMixin {\r\n /**\r\n * Whether the element's checked state is indeterminate.\r\n * @default false\r\n */\r\n @property({ type: Boolean, reflect: true }) indeterminate = false;\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(\"indeterminate\") && this.role && this.role !== \"none\" && this.role !== \"presentation\") {\r\n this.ariaChecked = !this.checked && this.indeterminate ? \"mixed\" : `${this.checked}`;\r\n }\r\n }\r\n }\r\n return _CheckedIndeterminateMixin;\r\n}\r\n","import { LitElement, PropertyValues } from \"lit\";\r\nimport { property } from \"lit/decorators.js\";\r\n\r\nimport { Constructor } from \"./Constructor\";\r\nimport { hasKeys } from \"./hasKeys\";\r\n\r\n/** Defines functionality for an element which supports a selected state. */\r\nexport interface SelectedMixin {\r\n /**\r\n * Whether the element is selected.\r\n * @default false\r\n */\r\n selected: boolean;\r\n}\r\n\r\n/**\r\n * Determines whether a value is a `SelectedMixin`.\r\n * @param {unknown} value The value to test.\r\n * @returns Whether `value` is a `SelectedMixin`.\r\n */\r\nexport function isSelectedMixin(value: unknown): value is SelectedMixin {\r\n return hasKeys<SelectedMixin>(value, \"selected\");\r\n}\r\n\r\n/**\r\n * Mixin to augment an element with behavior that supports a selected state.\r\n * @template T The type of the base class.\r\n * @param {T} base The base class.\r\n * @returns {Constructor<SelectedMixin> & T} A constructor that implements `SelectedMixin`.\r\n */\r\nexport function Selected<T extends Constructor<LitElement>>(base: T): Constructor<SelectedMixin> & T {\r\n abstract class _SelectedMixin extends base implements SelectedMixin {\r\n /**\r\n * Whether the element is selected.\r\n * @default false\r\n */\r\n @property({ type: Boolean, reflect: true }) selected = false;\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(\"selected\")) {\r\n if (this.role === \"button\") {\r\n this.ariaPressed = `${this.selected}`;\r\n this.ariaSelected = null;\r\n this.ariaChecked = null;\r\n } else if (this.role === \"radio\") {\r\n this.ariaChecked = `${this.selected}`;\r\n this.ariaSelected = null;\r\n this.ariaPressed = null;\r\n } else if (this.role && this.role !== \"none\" && this.role !== \"presentation\") {\r\n this.ariaSelected = `${this.selected}`;\r\n this.ariaPressed = null;\r\n this.ariaChecked = null;\r\n }\r\n }\r\n }\r\n }\r\n return _SelectedMixin;\r\n}\r\n","import { CheckedMixin, isCheckedMixin } from \"./Checked\";\r\nimport { isSelectedMixin, SelectedMixin } from \"./Selected\";\r\n\r\n/** Defines functionality for an element which supports either a checked or selected state. */\r\nexport type CheckedOrSelectedMixin = CheckedMixin | SelectedMixin;\r\n\r\n/**\r\n * Determines whether a value is a `CheckedOrSelectedMixin`.\r\n * @param {unknown} value The value to test.\r\n * @returns Whether `value` is a `CheckedOrSelectedMixin`.\r\n */\r\nexport function isCheckedOrSelectedMixin(value: unknown): value is CheckedOrSelectedMixin {\r\n return isCheckedMixin(value) || isSelectedMixin(value);\r\n}\r\n\r\n/**\r\n * Determines whether the state of an element is checked or selected.\r\n * @param {CheckedOrSelectedMixin} element The element to test.\r\n * @return {boolean} Whether `element` is checked or selected.\r\n */\r\nexport function isCheckedOrSelected(element: CheckedOrSelectedMixin): boolean {\r\n return (isCheckedMixin(element) && element.checked) || (isSelectedMixin(element) && element.selected);\r\n}\r\n\r\n/**\r\n * Sets the checked or selected state of an element.\r\n * @param {CheckedOrSelectedMixin} element The element for which to set the checked or selected state.\r\n * @param {boolean} checkedOrSelected The checked or selected state.\r\n */\r\nexport function checkOrSelect(element: CheckedOrSelectedMixin, checkedOrSelected: boolean): void {\r\n if (isCheckedMixin(element)) {\r\n element.checked = checkedOrSelected;\r\n } else {\r\n element.selected = checkedOrSelected;\r\n }\r\n}\r\n","import { LitElement } from \"lit\";\r\n\r\nimport { Constructor } from \"./Constructor\";\r\nimport { hasKeys } from \"./hasKeys\";\r\n\r\n/** Defines functionality for an element that can be marked as dirty. */\r\nexport interface DirtyMixin {\r\n /** Whether the user has not modified the value of the element. */\r\n readonly pristine: boolean;\r\n\r\n /** Whether the user has modified the value of the element. */\r\n readonly dirty: boolean;\r\n\r\n /** Marks the element as pristine. */\r\n markAsPristine(): void;\r\n\r\n /** Marks the element as dirty. */\r\n markAsDirty(): void;\r\n}\r\n\r\n/**\r\n * Determines whether a value is a `DirtyMixin`.\r\n * @param {unknown} value The value to test.\r\n * @returns A value indicating whether `value` is a `DirtyMixin`.\r\n */\r\nexport function isDirtyMixin(value: unknown): value is DirtyMixin {\r\n return hasKeys<DirtyMixin>(value, \"dirty\", \"pristine\", \"markAsDirty\", \"markAsPristine\");\r\n}\r\n\r\nconst _eventHandler = Symbol(\"_eventHandler\");\r\n\r\n/**\r\n * Mixin to augment an element with functionality used to mark it as dirty.\r\n * @template T The type of the base class.\r\n * @param {T} base The base class.\r\n * @returns {Constructor<DirtyMixin> & T} A constructor that implements `DirtyMixin`.\r\n */\r\nexport function Dirty<T extends Constructor<LitElement>>(base: T): Constructor<DirtyMixin> & T {\r\n abstract class _Dirty extends base implements DirtyMixin {\r\n /** @private */\r\n private [_eventHandler] = () => this.markAsDirty();\r\n\r\n /** Whether the user has modified the value of the element. */\r\n get dirty(): boolean {\r\n return this.classList.contains(\"-dirty\");\r\n }\r\n\r\n /** Whether the user has not modified the value of the element. */\r\n get pristine(): boolean {\r\n return !this.dirty;\r\n }\r\n\r\n /** @inheritdoc */\r\n override connectedCallback(): void {\r\n this.markAsPristine();\r\n super.connectedCallback();\r\n this.addEventListener(\"change\", this[_eventHandler]);\r\n }\r\n\r\n /** @inheritdoc */\r\n override disconnectedCallback(): void {\r\n super.disconnectedCallback();\r\n this.removeEventListener(\"change\", this[_eventHandler]);\r\n }\r\n\r\n /** Marks the element as pristine. */\r\n markAsPristine(): void {\r\n this.classList.toggle(\"-dirty\", false);\r\n }\r\n\r\n /** Marks the element as dirty. */\r\n markAsDirty(): void {\r\n this.classList.toggle(\"-dirty\", true);\r\n }\r\n }\r\n\r\n return _Dirty;\r\n}\r\n","import { LitElement } from \"lit\";\r\n\r\nimport { Constructor } from \"./Constructor\";\r\nimport { hasKeys } from \"./hasKeys\";\r\n\r\n/** Defines functionality for an element that can be marked as touched. */\r\nexport interface TouchedMixin {\r\n /** Whether the user has interacted when the element. */\r\n readonly touched: boolean;\r\n\r\n /** Whether the user has not interacted when the element. */\r\n readonly untouched: boolean;\r\n\r\n /** Marks the element as touched. */\r\n markAsTouched(): void;\r\n\r\n /** Marks the element as untouched. */\r\n markAsUntouched(): void;\r\n}\r\n\r\n/**\r\n * Determines whether a value is a `TouchedMixin`.\r\n * @param {unknown} value The value to test.\r\n * @returns A value indicating whether `value` is a `TouchedMixin`.\r\n */\r\nexport function isTouchedMixin(value: unknown): value is TouchedMixin {\r\n return hasKeys<TouchedMixin>(value, \"touched\", \"untouched\", \"markAsTouched\", \"markAsUntouched\");\r\n}\r\n\r\nconst _eventHandler = Symbol(\"_eventHandler\");\r\n\r\n/**\r\n * Mixin to augment an element with functionality used to mark it as touched.\r\n * @template T The type of the base class.\r\n * @param {T} base The base class.\r\n * @returns {Constructor<TouchedMixin> & T} A constructor that implements `TouchedMixin`.\r\n */\r\nexport function Touched<T extends Constructor<LitElement>>(base: T): Constructor<TouchedMixin> & T {\r\n abstract class _Touched extends base implements TouchedMixin {\r\n /** @private */\r\n private [_eventHandler] = () => this.markAsTouched();\r\n\r\n /** Whether the user has interacted when the element. */\r\n get touched(): boolean {\r\n return this.classList.contains(\"-touched\");\r\n }\r\n\r\n /** Whether the user has not interacted when the element. */\r\n get untouched(): boolean {\r\n return !this.touched;\r\n }\r\n\r\n /** @inheritdoc */\r\n override connectedCallback(): void {\r\n this.markAsUntouched();\r\n super.connectedCallback();\r\n this.addEventListener(\"focusout\", this[_eventHandler], { capture: true });\r\n }\r\n\r\n /** @inheritdoc */\r\n override disconnectedCallback(): void {\r\n super.disconnectedCallback();\r\n this.removeEventListener(\"focusout\", this[_eventHandler], { capture: true });\r\n }\r\n\r\n /** Marks the element as touched. */\r\n markAsTouched(): void {\r\n this.classList.toggle(\"-touched\", true);\r\n }\r\n\r\n /** Marks the element as untouched. */\r\n markAsUntouched(): void {\r\n this.classList.toggle(\"-touched\", false);\r\n }\r\n }\r\n\r\n return _Touched;\r\n}\r\n","import { unsafeCSS } from \"lit\";\r\n\r\n/** Design tokens that control color. */\r\nexport const ColorToken = {\r\n /** High-emphasis fills, texts, and icons against surface. */\r\n primary: unsafeCSS(\"var(--md-sys-color-primary, #6750A4)\"),\r\n\r\n /** Text and icons against primary. */\r\n onPrimary: unsafeCSS(\"var(--md-sys-color-on-primary, #FFFFFF)\"),\r\n\r\n /** Standout fill color against surface, for key components. */\r\n primaryContainer: unsafeCSS(\"var(--md-sys-color-primary-container, #EADDFF)\"),\r\n\r\n /** Text and icons against primary container. */\r\n onPrimaryContainer: unsafeCSS(\"var(--md-sys-color-on-primary-container, #4F378B)\"),\r\n\r\n /** High-emphasis fills, texts, and icons that maintain the same tone in light and dark themes. */\r\n primaryFixed: unsafeCSS(\"var(--md-sys-color-primary-fixed, #EADDFF)\"),\r\n\r\n /** High-emphasis fills, texts, and icons that maintain the same stronger tone in light and dark themes. */\r\n primaryFixedDim: unsafeCSS(\"var(--md-sys-color-primary-fixed-dim, #D0BCFF)\"),\r\n\r\n /** Text and icons against fixed primary. */\r\n onPrimaryFixed: unsafeCSS(\"var(--md-sys-color-on-primary-fixed, #21005D)\"),\r\n\r\n /** Lower-emphasis text and icons against fixed primary. */\r\n onPrimaryFixedVariant: unsafeCSS(\"var(--md-sys-color-on-primary-fixed-variant, #4F378B)\"),\r\n\r\n /** Less prominent fills, text, and icons against surface. */\r\n secondary: unsafeCSS(\"var(--md-sys-color-secondary, #625B71)\"),\r\n\r\n /** Text and icons against secondary. */\r\n onSecondary: unsafeCSS(\"var(--md-sys-color-on-secondary, #FFFFFF)\"),\r\n\r\n /** Less prominent fill color against surface, for recessive components. */\r\n secondaryContainer: unsafeCSS(\"var(--md-sys-color-secondary-container, #E8DEF8)\"),\r\n\r\n /** Text and icons against secondary container. */\r\n onSecondaryContainer: unsafeCSS(\"var(--md-sys-color-on-secondary-container, #4A4458)\"),\r\n\r\n /** Less prominent fills, texts, and icons that maintain the same tone in light and dark themes. */\r\n secondaryFixed: unsafeCSS(\"var(--md-sys-color-secondary-fixed, #E8DEF8)\"),\r\n\r\n /** Less prominent fills, texts, and icons that maintain the same stronger tone in light and dark themes. */\r\n secondaryFixedDim: unsafeCSS(\"var(--md-sys-color-secondary-fixed-dim, #CCC2DC)\"),\r\n\r\n /** Text and icons against fixed secondary. */\r\n onSecondaryFixed: unsafeCSS(\"var(--md-sys-color-on-secondary-fixed, #1D192B)\"),\r\n\r\n /** Lower-emphasis text and icons against fixed secondary. */\r\n onSecondaryFixedVariant: unsafeCSS(\"var(--md-sys-color-on-secondary-fixed-variant, #4A4458)\"),\r\n\r\n /** Complementary fills, text, and icons against surface. */\r\n tertiary: unsafeCSS(\"var(--md-sys-color-tertiary, #7D5260)\"),\r\n\r\n /** Text and icons against tertiary. */\r\n onTertiary: unsafeCSS(\"var(--md-sys-color-on-tertiary, #FFFFFF)\"),\r\n\r\n /** Complementary container color against surface. */\r\n tertiaryContainer: unsafeCSS(\"var(--md-sys-color-tertiary-container, #FFD8E4)\"),\r\n\r\n /** Text and icons against tertiary container. */\r\n onTertiaryContainer: unsafeCSS(\"var(--md-sys-color-on-tertiary-container, #633B48)\"),\r\n\r\n /** Complementary fills, texts, and icons that maintain the same tone in light and dark themes. */\r\n tertiaryFixed: unsafeCSS(\"var(--md-sys-color-tertiary-fixed, #FFD8E4)\"),\r\n\r\n /** Complementary fills, texts, and icons that maintain the same stronger tone in light and dark themes. */\r\n tertiaryFixedDim: unsafeCSS(\"var(--md-sys-color-tertiary-fixed-dim, #EFB8C8)\"),\r\n\r\n /** Text and icons against fixed tertiary. */\r\n onTertiaryFixed: unsafeCSS(\"var(--md-sys-color-on-tertiary-fixed, #31111D)\"),\r\n\r\n /** Lower-emphasis text and icons against fixed tertiary. */\r\n onTertiaryFixedVariant: unsafeCSS(\"var(--md-sys-color-on-tertiary-fixed-variant, #633B48)\"),\r\n\r\n /** Attention-grabbing color against surface for fills, icons, and text, indicating urgency. */\r\n error: unsafeCSS(\"var(--md-sys-color-error, #B3261E)\"),\r\n\r\n /** Text and icons against error. */\r\n onError: unsafeCSS(\"var(--md-sys-color-on-error, #FFFFFF)\"),\r\n\r\n /** Attention-grabbing fill color against surface. */\r\n errorContainer: unsafeCSS(\"var(--md-sys-color-error-container, #F9DEDC)\"),\r\n\r\n /** Text and icons against error container. */\r\n onErrorContainer: unsafeCSS(\"var(--md-sys-color-on-error-container, #8C1D18)\"),\r\n\r\n /** Default color for backgrounds. */\r\n surface: unsafeCSS(\"var(--md-sys-color-surface, #FEF7FF)\"),\r\n\r\n /** Text and icons against any surface color. */\r\n onSurface: unsafeCSS(\"var(--md-sys-color-on-surface, #1D1B20)\"),\r\n\r\n /** Lower-emphasis color for text and icons against any surface color. */\r\n onSurfaceVariant: unsafeCSS(\"var(--md-sys-color-on-surface-variant, #49454F)\"),\r\n\r\n /** Lowest-emphasis container color. */\r\n surfaceContainerLowest: unsafeCSS(\"var(--md-sys-color-surface-container-lowest, #FFFFFF)\"),\r\n\r\n /** Low-emphasis container color. */\r\n surfaceContainerLow: unsafeCSS(\"var(--md-sys-color-surface-container-low, #F7F2FA)\"),\r\n\r\n /** Default container color. */\r\n surfaceContainer: unsafeCSS(\"var(--md-sys-color-surface-container, #F3EDF7)\"),\r\n\r\n /** High-emphasis container color. */\r\n surfaceContainerHigh: unsafeCSS(\"var(--md-sys-color-surface-container-high, #ECE6F0)\"),\r\n\r\n /** Highest-emphasis container color. */\r\n surfaceContainerHighest: unsafeCSS(\"var(--md-sys-color-surface-container-highest, #E6E0E9)\"),\r\n\r\n /** Dimmest surface color in light and dark themes. */\r\n surfaceDim: unsafeCSS(\"var(--md-sys-color-surface-dim, #DED8E1)\"),\r\n\r\n /** Brightest surface color in light and dark themes. */\r\n surfaceBright: unsafeCSS(\"var(--md-sys-color-surface-bright, #FEF7FF)\"),\r\n\r\n /** Alternate surface color, can be used for active states. */\r\n surfaceVariant: unsafeCSS(\"var(--md-sys-color-surface-variant, #E7E0EC)\"),\r\n\r\n /** Background fills for elements which contrast against surface. */\r\n inverseSurface: unsafeCSS(\"var(--md-sys-color-inverse-surface, #322F35)\"),\r\n\r\n /** Text and icons against inverse surface. */\r\n inverseOnSurface: unsafeCSS(\"var(--md-sys-color-inverse-on-surface, #F5EFF7)\"),\r\n\r\n /** Primary text and icons against inverse surface. */\r\n inversePrimary: unsafeCSS(\"var(--md-sys-color-inverse-primary, #D0BCFF)\"),\r\n\r\n /** Important boundaries, such as a text field outline. */\r\n outline: unsafeCSS(\"var(--md-sys-color-outline, #79747E)\"),\r\n\r\n /** Decorative elements, such as dividers. */\r\n outlineVariant: unsafeCSS(\"var(--md-sys-color-outline-variant, #CAC4D0)\"),\r\n\r\n /** Elevation shadow color. */\r\n shadow: unsafeCSS(\"var(--md-sys-color-shadow, #000000)\"),\r\n\r\n /** Backdrop which obscures underlying content. */\r\n scrim: unsafeCSS(\"var(--md-sys-color-scrim, #000000)\"),\r\n} as const;\r\n","import { CSSResult, unsafeCSS } from \"lit\";\r\n\r\nconst _DensityToken = {\r\n /** Base density multiplier. */\r\n scale: unsafeCSS(\"var(--md-sys-density-scale, 0)\"),\r\n\r\n /** Spatial unit used to scale component dimensions based on density. */\r\n size: unsafeCSS(\"var(--md-sys-density-size, 0.25rem)\"),\r\n} as const;\r\n\r\n/** Design tokens that control density. */\r\nexport const DensityToken = {\r\n ..._DensityToken,\r\n\r\n /**\r\n * Creates a CSS `calc` that calculates a dimension based on density.\r\n * @param {number} minScale The minimum supported scale.\r\n * @returns {CSSResult} A CSS `calc` used to calculate a dimension based on density.\r\n */\r\n calc(minScale: number): CSSResult {\r\n return unsafeCSS(`calc(max(${minScale}, ${_DensityToken.scale}) * ${_DensityToken.size})`);\r\n },\r\n} as const;\r\n","import { unsafeCSS } from \"lit\";\r\n\r\nimport { ColorToken } from \"./ColorToken\";\r\n\r\nconst UMBRA_COLOR = `color-mix(in srgb, var(--m3e-elevation-color, ${ColorToken.shadow}) 20%, transparent)`;\r\nconst UMBRA = [\r\n \"0px 0px 0px 0px\",\r\n \"0px 2px 1px -1px\",\r\n \"0px 3px 1px -2px\",\r\n \"0px 3px 3px -2px\",\r\n \"0px 2px 4px -1px\",\r\n \"0px 3px 5px -1px\",\r\n \"0px 3px 5px -1px\",\r\n \"0px 4px 5px -2px\",\r\n \"0px 5px 5px -3px\",\r\n \"0px 5px 6px -3px\",\r\n \"0px 6px 6px -3px\",\r\n \"0px 6px 7px -4px\",\r\n \"0px 7px 8px -4px\",\r\n \"0px 7px 8px -4px\",\r\n \"0px 7px 9px -4px\",\r\n \"0px 8px 9px -5px\",\r\n \"0px 8px 10px -5px\",\r\n \"0px 8px 11px -5px\",\r\n \"0px 9px 11px -5px\",\r\n \"0px 9px 12px -6px\",\r\n \"0px 10px 13px -6px\",\r\n \"0px 10px 13px -6px\",\r\n \"0px 10px 14px -6px\",\r\n \"0px 11px 14px -7px\",\r\n \"0px 11px 15px -7px\",\r\n];\r\n\r\nconst PENUMBRA_COLOR = `color-mix(in srgb, var(--m3e-elevation-color, ${ColorToken.shadow}) 14%, transparent)`;\r\nconst PENUMBRA = [\r\n \"0px 0px 0px 0px\",\r\n \"0px 1px 1px 0px\",\r\n \"0px 2px 2px 0px\",\r\n \"0px 3px 4px 0px\",\r\n \"0px 4px 5px 0px\",\r\n \"0px 5px 8px 0px\",\r\n \"0px 6px 10px 0px\",\r\n \"0px 7px 10px 1px\",\r\n \"0px 8px 10px 1px\",\r\n \"0px 9px 12px 1px\",\r\n \"0px 10px 14px 1px\",\r\n \"0px 11px 15px 1px\",\r\n \"0px 12px 17px 2px\",\r\n \"0px 13px 19px 2px\",\r\n \"0px 14px 21px 2px\",\r\n \"0px 15px 22px 2px\",\r\n \"0px 16px 24px 2px\",\r\n \"0px 17px 26px 2px\",\r\n \"0px 18px 28px 2px\",\r\n \"0px 19px 29px 2px\",\r\n \"0px 20px 31px 3px\",\r\n \"0px 21px 33px 3px\",\r\n \"0px 22px 35px 3px\",\r\n \"0px 23px 36px 3px\",\r\n \"0px 24px 38px 3px\",\r\n];\r\n\r\nconst AMBIENT_COLOR = `color-mix(in srgb, var(--m3e-elevation-color, ${ColorToken.shadow}) 12%, transparent)`;\r\nconst AMBIENT = [\r\n \"0px 0px 0px 0px\",\r\n \"0px 1px 3px 0px\",\r\n \"0px 1px 5px 0px\",\r\n \"0px 1px 8px 0px\",\r\n \"0px 1px 10px 0px\",\r\n \"0px 1px 14px 0px\",\r\n \"0px 1px 18px 0px\",\r\n \"0px 2px 16px 1px\",\r\n \"0px 3px 14px 2px\",\r\n \"0px 3px 16px 2px\",\r\n \"0px 4px 18px 3px\",\r\n \"0px 4px 20px 3px\",\r\n \"0px 5px 22px 4px\",\r\n \"0px 5px 24px 4px\",\r\n \"0px 5px 26px 4px\",\r\n \"0px 6px 28px 5px\",\r\n \"0px 6px 30px 5px\",\r\n \"0px 6px 32px 5px\",\r\n \"0px 7px 34px 6px\",\r\n \"0px 7px 36px 6px\",\r\n \"0px 8px 38px 7px\",\r\n \"0px 8px 40px 7px\",\r\n \"0px 8px 42px 7px\",\r\n \"0px 9px 44px 8px\",\r\n \"0px 9px 46px 8px\",\r\n];\r\n\r\nfunction elevation(z: number) {\r\n return `${UMBRA_COLOR} ${UMBRA[z]},${PENUMBRA_COLOR} ${PENUMBRA[z]},${AMBIENT_COLOR} ${AMBIENT[z]}`;\r\n}\r\n\r\n/** Design tokens that control elevation. */\r\nexport const ElevationToken = {\r\n /** Level 0 elevation. */\r\n level0: unsafeCSS(`var(--md-sys-elevation-level0, ${elevation(0)})`),\r\n\r\n /** Level 1 elevation. */\r\n level1: unsafeCSS(`var(--md-sys-elevation-level1, ${elevation(1)})`),\r\n\r\n /** Level 2 elevation. */\r\n level2: unsafeCSS(`var(--md-sys-elevation-level2, ${elevation(3)})`),\r\n\r\n /** Level 3 elevation. */\r\n level3: unsafeCSS(`var(--md-sys-elevation-level3, ${elevation(6)})`),\r\n\r\n /** Level 4 elevation. */\r\n level4: unsafeCSS(`var(--md-sys-elevation-level4, ${elevation(8)})`),\r\n\r\n /** Level 5 elevation. */\r\n level5: unsafeCSS(`var(--md-sys-elevation-level5, ${elevation(12)})`),\r\n} as const;\r\n","import { unsafeCSS } from \"lit\";\r\n\r\nconst EasingToken = {\r\n /** Emphasized transition. */\r\n emphasized: unsafeCSS(\"var(--md-sys-motion-easing-emphasized, cubic-bezier(0.2, 0.0, 0, 1.0))\"),\r\n\r\n /** Decelerated emphasized transition. */\r\n emphasizedDecelerate: unsafeCSS(\r\n \"var(--md-sys-motion-easing-emphasized-decelerate, cubic-bezier(0.05, 0.7, 0.1, 1.0))\"\r\n ),\r\n\r\n /** Accelerated emphasized transition. */\r\n emphasizedAccelerate: unsafeCSS(\r\n \"var(--md-sys-motion-easing-emphasized-accelerate, cubic-bezier(0.3, 0.0, 0.8, 0.15))\"\r\n ),\r\n\r\n /** Simple, small, or utility-focused transition. */\r\n standard: unsafeCSS(\"var(--md-sys-motion-easing-standard, cubic-bezier(0.2, 0.0, 0, 1.0))\"),\r\n\r\n /** Decelerated standard transition. */\r\n standardDecelerate: unsafeCSS(\"var(--md-sys-motion-easing-standard-decelerate, cubic-bezier(0, 0, 0, 1))\"),\r\n\r\n /** Accelerated standard transition. */\r\n standardAccelerate: unsafeCSS(\"var(--md-sys-motion-easing-standard-accelerate, cubic-bezier(0.3, 0, 1, 1))\"),\r\n} as const;\r\n\r\nconst SpringToken = {\r\n /** Fast spatial spring. */\r\n fastSpatial: unsafeCSS(\"var(--md-sys-motion-spring-fast-spatial, 350ms cubic-bezier(0.27, 1.06, 0.18, 1.00))\"),\r\n\r\n /** Default spatial spring. */\r\n defaultSpatial: unsafeCSS(\"var(--md-sys-motion-spring-default-spatial, 500ms cubic-bezier(0.27, 1.06, 0.18, 1.00))\"),\r\n\r\n /** Slow spatial spring. */\r\n slowSpatial: unsafeCSS(\"var(--md-sys-motion-spring-slow-spatial, 750ms cubic-bezier(0.27, 1.06, 0.18, 1.00))\"),\r\n\r\n /** Fast effects spring. */\r\n fastEffects: unsafeCSS(\"var(--md-sys-motion-spring-fast-effects, 150ms cubic-bezier(0.31, 0.94, 0.34, 1.00))\"),\r\n\r\n /** Default effects spring. */\r\n defaultEffects: unsafeCSS(\"var(--md-sys-motion-spring-default-effects, 200ms cubic-bezier(0.34, 0.80, 0.34, 1.00))\"),\r\n\r\n /** Slow effects spring. */\r\n slowEffects: unsafeCSS(\"var(--md-sys-motion-spring-slow-effects, 200ms cubic-bezier(0.34, 0.88, 0.34, 1.00))\"),\r\n} as const;\r\n\r\nconst DurationToken = {\r\n /** Small utility-focused transition duration. */\r\n short1: unsafeCSS(\"var(--md-sys-motion-duration-short-1, 50ms)\"),\r\n\r\n /** Small utility-focused transition duration. */\r\n short2: unsafeCSS(\"var(--md-sys-motion-duration-short-2, 100ms)\"),\r\n\r\n /** Small utility-focused transition duration. */\r\n short3: unsafeCSS(\"var(--md-sys-motion-duration-short-3, 150ms)\"),\r\n\r\n /** Small utility-focused transition duration. */\r\n short4: unsafeCSS(\"var(--md-sys-motion-duration-short-4, 200ms)\"),\r\n\r\n /** Duration for transitions that traverse a medium area of the screen. */\r\n medium1: unsafeCSS(\"var(--md-sys-motion-duration-medium-1, 250ms)\"),\r\n\r\n /** Duration for transitions that traverse a medium area of the screen. */\r\n medium2: unsafeCSS(\"var(--md-sys-motion-duration-medium-2, 300ms)\"),\r\n\r\n /** Duration for transitions that traverse a medium area of the screen. */\r\n medium3: unsafeCSS(\"var(--md-sys-motion-duration-medium-3, 350ms)\"),\r\n\r\n /** Duration for transitions that traverse a medium area of the screen. */\r\n medium4: unsafeCSS(\"var(--md-sys-motion-duration-medium-4, 400ms)\"),\r\n\r\n /** Duration for large expressive transitions. */\r\n long1: unsafeCSS(\"var(--md-sys-motion-duration-long-1, 450ms)\"),\r\n\r\n /** Duration for large expressive transitions. */\r\n long2: unsafeCSS(\"var(--md-sys-motion-duration-long-2, 500ms)\"),\r\n\r\n /** Duration for large expressive transitions. */\r\n long3: unsafeCSS(\"var(--md-sys-motion-duration-long-3, 550ms)\"),\r\n\r\n /** Duration for large expressive transitions. */\r\n long4: unsafeCSS(\"var(--md-sys-motion-duration-long-4, 600ms)\"),\r\n\r\n /** Extra long duration for ambient transitions. */\r\n extraLong1: unsafeCSS(\"var(--md-sys-motion-duration-extra-long-1, 700ms)\"),\r\n\r\n /** Extra long duration for ambient transitions. */\r\n extraLong2: unsafeCSS(\"var(--md-sys-motion-duration-extra-long-2, 800ms)\"),\r\n\r\n /** Extra long duration for ambient transitions. */\r\n extraLong3: unsafeCSS(\"var(--md-sys-motion-duration-extra-long-3, 900ms)\"),\r\n\r\n /** Extra long duration for ambient transitions. */\r\n extraLong4: unsafeCSS(\"var(--md-sys-motion-duration-extra-long-4, 1000ms)\"),\r\n} as const;\r\n\r\n/** Design tokens that control motion. */\r\nexport const MotionToken = {\r\n /** Design tokens that control transition effects. */\r\n easing: EasingToken,\r\n\r\n /** Design tokens that control transition duration. */\r\n duration: DurationToken,\r\n\r\n /** Design tokens that control spring effects. */\r\n spring: SpringToken,\r\n} as const;\r\n","import { unsafeCSS } from \"lit\";\r\n\r\n/** Design tokens that control scrollbars. */\r\nexport const ScrollbarToken = {\r\n /** Width of a standard scrollbar. */\r\n width: unsafeCSS(`var(--m3e-scrollbar-width, auto)`),\r\n\r\n /** Width of a thin scrollbar. */\r\n thinWidth: unsafeCSS(`var(--m3e-scrollbar-thin-width, thin)`),\r\n\r\n /** Color of a scrollbar. */\r\n color: unsafeCSS(`var(--m3e-scrollbar-thumb-color, #938f94) var(--m3e-scrollbar-track-color, transparent)`),\r\n} as const;\r\n","import { unsafeCSS } from \"lit\";\r\n\r\nconst CornerValue = {\r\n /** No rounding. */\r\n none: unsafeCSS(\"var(--md-sys-shape-corner-value-none, 0)\"),\r\n\r\n /** Extra small rounded corner. */\r\n extraSmall: unsafeCSS(\"var(--md-sys-shape-corner-value-extra-small, 0.25rem)\"),\r\n\r\n /** Small rounded corner. */\r\n small: unsafeCSS(\"var(--md-sys-shape-corner-value-small, 0.5rem)\"),\r\n\r\n /** Medium rounded corner. */\r\n medium: unsafeCSS(\"var(--md-sys-shape-corner-value-medium, 0.75rem)\"),\r\n\r\n /** Large rounded corner. */\r\n large: unsafeCSS(\"var(--md-sys-shape-corner-value-large, 1rem)\"),\r\n\r\n /** Increased large rounded corner. */\r\n largeIncreased: unsafeCSS(\"var(--md-sys-shape-corner-value-large-increased, 1.25rem)\"),\r\n\r\n /** Extra large rounded corner. */\r\n extraLarge: unsafeCSS(\"var(--md-sys-shape-corner-value-extra-large, 1.75rem)\"),\r\n\r\n /** Increased extra large rounded corner. */\r\n extraLargeIncreased: unsafeCSS(\"var(--md-sys-shape-corner-value-extra-large-increased, 2rem)\"),\r\n\r\n /** Extra extra large rounded corner. */\r\n extraExtraLarge: unsafeCSS(\"var(--md-sys-shape-corner-value-extra-extra-large, 3rem)\"),\r\n} as const;\r\n\r\n/** Design tokens that control shape. */\r\nexport const ShapeToken = {\r\n corner: {\r\n /** Fully rounded symmetric shape. */\r\n full: unsafeCSS(\"var(--md-sys-shape-corner-full, 624.9375rem)\"),\r\n\r\n /** Extra large rounded asymmetric shape directed towards the top. */\r\n extraLargeTop: unsafeCSS(\r\n `var(--md-sys-shape-corner-extra-large-top, ${CornerValue.extraLarge} ${CornerValue.extraLarge} ${CornerValue.none} ${CornerValue.none})`\r\n ),\r\n\r\n /** Extra large rounded symmetric shape. */\r\n extraLarge: unsafeCSS(`var(--md-sys-shape-corner-extra-large, ${CornerValue.extraLarge})`),\r\n\r\n /** Extra large rounded asymmetric shape directed towards the end. */\r\n extraLargeEnd: unsafeCSS(\r\n `${CornerValue.none} ${CornerValue.extraLarge} ${CornerValue.extraLarge} ${CornerValue.none}`\r\n ),\r\n\r\n /** Extra large rounded asymmetric shape directed towards the start. */\r\n extraLargeStart: unsafeCSS(\r\n `${CornerValue.extraLarge} ${CornerValue.none} ${CornerValue.none} ${CornerValue.extraLarge}`\r\n ),\r\n\r\n /** Large rounded asymmetric shape directed towards the top. */\r\n largeTop: unsafeCSS(\r\n `var(--md-sys-shape-corner-large-top, ${CornerValue.large} ${CornerValue.large} ${CornerValue.none} ${CornerValue.none})`\r\n ),\r\n\r\n /** Large rounded asymmetric shape directed towards the end. */\r\n largeEnd: unsafeCSS(\r\n `var(--md-sys-shape-corner-large-end, ${CornerValue.none} ${CornerValue.large} ${CornerValue.large} ${CornerValue.none})`\r\n ),\r\n\r\n /** Large rounded asymmetric shape directed towards the start. */\r\n largeStart: unsafeCSS(\r\n `var(--md-sys-shape-corner-large-end, ${CornerValue.large} ${CornerValue.none} ${CornerValue.none} ${CornerValue.large})`\r\n ),\r\n\r\n /** Large rounded symmetric shape. */\r\n large: unsafeCSS(`var(--md-sys-shape-corner-large, ${CornerValue.large})`),\r\n\r\n /** Medium rounded symmetric shape. */\r\n medium: unsafeCSS(`var(--md-sys-shape-corner-medium, ${CornerValue.medium})`),\r\n\r\n /** Medium rounded asymmetric shape directed towards the top. */\r\n mediumTop: unsafeCSS(`${CornerValue.medium} ${CornerValue.medium} ${CornerValue.none} ${CornerValue.none}`),\r\n\r\n /** Medium rounded asymmetric shape directed towards the end. */\r\n mediumEnd: unsafeCSS(`${CornerValue.none} ${CornerValue.medium} ${CornerValue.medium} ${CornerValue.none}`),\r\n\r\n /** Medium rounded asymmetric shape directed towards the start. */\r\n mediumStart: unsafeCSS(`${CornerValue.medium} ${CornerValue.none} ${CornerValue.none} ${CornerValue.medium}`),\r\n\r\n /** Small rounded symmetric shape. */\r\n small: unsafeCSS(`var(--md-sys-shape-corner-small, ${CornerValue.small})`),\r\n\r\n /** Small rounded asymmetric shape directed towards the top. */\r\n smallTop: unsafeCSS(`${CornerValue.small} ${CornerValue.small} ${CornerValue.none} ${CornerValue.none}`),\r\n\r\n /** Small rounded asymmetric shape directed towards the end. */\r\n smallEnd: unsafeCSS(`${CornerValue.none} ${CornerValue.small} ${CornerValue.small} ${CornerValue.none}`),\r\n\r\n /** Small rounded asymmetric shape directed towards the start. */\r\n smallStart: unsafeCSS(`${CornerValue.small} ${CornerValue.none} ${CornerValue.none} ${CornerValue.small}`),\r\n\r\n /** Extra small rounded asymmetric shape directed towards the top. */\r\n extraSmallTop: unsafeCSS(\r\n `var(--md-sys-shape-corner-extra-small-top, ${CornerValue.extraSmall} ${CornerValue.extraSmall} ${CornerValue.none} ${CornerValue.none})`\r\n ),\r\n\r\n /** Extra small rounded symmetric shape. */\r\n extraSmall: unsafeCSS(`var(--md-sys-shape-corner-extra-small, ${CornerValue.extraSmall})`),\r\n\r\n /** Extra small rounded asymmetric shape directed towards the end. */\r\n extraSmallEnd: unsafeCSS(\r\n `${CornerValue.none} ${CornerValue.extraSmall} ${CornerValue.extraSmall} ${CornerValue.none}`\r\n ),\r\n\r\n /** Extra small rounded asymmetric shape directed towards the start. */\r\n extraSmallStart: unsafeCSS(\r\n `${CornerValue.extraSmall} ${CornerValue.none} ${CornerValue.none} ${CornerValue.extraSmall}`\r\n ),\r\n\r\n /** Extra small rounded asymmetric shape directed towards the bottom. */\r\n extraSmallBottom: unsafeCSS(\r\n `${CornerValue.none} ${CornerValue.none} ${CornerValue.extraSmall} ${CornerValue.extraSmall}`\r\n ),\r\n\r\n /** No rounding. */\r\n none: unsafeCSS(`var(--md-sys-shape-corner-none, ${CornerValue.none})`),\r\n\r\n /** Increased large rounded symmetric shape. */\r\n largeIncreased: unsafeCSS(`var(--md-sys-shape-corner-large-increased, ${CornerValue.largeIncreased})`),\r\n\r\n /** Increased extra large rounded symmetric shape. */\r\n extraLargeIncreased: unsafeCSS(\r\n `var(--md-sys-shape-corner-extra-large-increased, ${CornerValue.extraLargeIncreased})`\r\n ),\r\n\r\n /** Extra extra large rounded symmetric shape. */\r\n extraExtraLarge: unsafeCSS(`var(--md-sys-shape-corner-extra-extra-large, ${CornerValue.extraExtraLarge})`),\r\n\r\n /** Design tokens that control specific corners. */\r\n value: CornerValue,\r\n },\r\n} as const;\r\n","import { unsafeCSS } from \"lit\";\r\n\r\n/** Design tokens that control state layer. */\r\nexport const StateToken = {\r\n /** Opacity of the state layer on focus. */\r\n focusStateLayerOpacity: unsafeCSS(\"var(--md-sys-state-focus-state-layer-opacity, 10%)\"),\r\n\r\n /** Opacity of the state layer on hover. */\r\n hoverStateLayerOpacity: unsafeCSS(\"var(--md-sys-state-hover-state-layer-opacity, 8%)\"),\r\n\r\n /** Opacity of the state layer on pressed. */\r\n pressedStateLayerOpacity: unsafeCSS(\"var(--md-sys-state-pressed-state-layer-opacity, 10%)\"),\r\n} as const;\r\n","import { unsafeCSS } from \"lit\";\r\n\r\n/** Design tokens that control typescale. */\r\nexport const TypescaleToken = {\r\n /** Standard typescale variant. */\r\n standard: {\r\n /** Short, important text or numerals. */\r\n display: {\r\n large: {\r\n fontSize: unsafeCSS(\"var(--md-sys-typescale-display-large-font-size, 3.5625rem)\"),\r\n fontWeight: unsafeCSS(\"var(--md-sys-typescale-display-large-font-weight, 400)\"),\r\n lineHeight: unsafeCSS(\"var(--md-sys-typescale-display-large-line-height, 4rem)\"),\r\n tracking: unsafeCSS(\"var(--md-sys-typescale-display-large-tracking, 0.015625rem)\"),\r\n },\r\n medium: {\r\n fontSize: unsafeCSS(\"var(--md-sys-typescale-display-medium-font-size, 2.8125rem)\"),\r\n fontWeight: unsafeCSS(\"var(--md-sys-typescale-display-medium-font-weight, 400)\"),\r\n lineHeight: unsafeCSS(\"var(--md-sys-typescale-display-medium-line-height, 3.25rem)\"),\r\n tracking: unsafeCSS(\"var(--md-sys-typescale-display-medium-tracking, 0)\"),\r\n },\r\n small: {\r\n fontSize: unsafeCSS(\"var(--md-sys-typescale-display-small-font-size, 2.25rem)\"),\r\n fontWeight: unsafeCSS(\"var(--md-sys-typescale-display-small-font-weight, 400)\"),\r\n lineHeight: unsafeCSS(\"var(--md-sys-typescale-display-small-line-height, 2.75rem)\"),\r\n tracking: unsafeCSS(\"var(--md-sys-typescale-display-small-tracking, 0)\"),\r\n },\r\n },\r\n\r\n /** Short, high-emphasis text on smaller screens. */\r\n headline: {\r\n large: {\r\n fontSize: unsafeCSS(\"var(--md-sys-typescale-headline-large-font-size, 2rem)\"),\r\n fontWeight: unsafeCSS(\"var(--md-sys-typescale-headline-large-font-weight, 400)\"),\r\n lineHeight: unsafeCSS(\"var(--md-sys-typescale-headline-large-line-height, 2.5rem)\"),\r\n tracking: unsafeCSS(\"var(--md-sys-typescale-headline-large-tracking, 0)\"),\r\n },\r\n medium: {\r\n fontSize: unsafeCSS(\"var(--md-sys-typescale-headline-medium-font-size, 1.75rem)\"),\r\n fontWeight: unsafeCSS(\"var(--md-sys-typescale-headline-medium-font-weight, 400)\"),\r\n lineHeight: unsafeCSS(\"var(--md-sys-typescale-headline-medium-line-height, 2.25rem)\"),\r\n tracking: unsafeCSS(\"var(--md-sys-typescale-headline-medium-tracking, 0)\"),\r\n },\r\n small: {\r\n fontSize: unsafeCSS(\"var(--md-sys-typescale-headline-small-font-size, 1.5rem)\"),\r\n fontWeight: unsafeCSS(\"var(--md-sys-typescale-headline-small-font-weight, 400)\"),\r\n lineHeight: unsafeCSS(\"var(--md-sys-typescale-headline-small-line-height, 2rem)\"),\r\n tracking: unsafeCSS(\"var(--md-sys-typescale-headline-small-tracking, 0)\"),\r\n },\r\n },\r\n\r\n /** Medium-emphasis text that remains relatively short. */\r\n title: {\r\n large: {\r\n fontSize: unsafeCSS(\"var(--md-sys-typescale-title-large-font-size, 1.375rem)\"),\r\n fontWeight: unsafeCSS(\"var(--md-sys-typescale-title-large-font-weight, 400)\"),\r\n lineHeight: unsafeCSS(\"var(--md-sys-typescale-title-large-line-height, 1.75rem)\"),\r\n tracking: unsafeCSS(\"var(--md-sys-typescale-title-large-tracking, 0)\"),\r\n },\r\n medium: {\r\n fontSize: unsafeCSS(\"var(--md-sys-typescale-title-medium-font-size, 1rem)\"),\r\n fontWeight: unsafeCSS(\"var(--md-sys-typescale-title-medium-font-weight, 500)\"),\r\n lineHeight: unsafeCSS(\"var(--md-sys-typescale-title-medium-line-height, 1.5rem)\"),\r\n tracking: unsafeCSS(\"var(--md-sys-typescale-title-medium-tracking, 0.009375rem)\"),\r\n },\r\n small: {\r\n fontSize: unsafeCSS(\"var(--md-sys-typescale-title-small-font-size, 0.875rem)\"),\r\n fontWeight: unsafeCSS(\"var(--md-sys-typescale-title-small-font-weight, 500)\"),\r\n lineHeight: unsafeCSS(\"var(--md-sys-typescale-title-small-line-height, 1.25rem)\"),\r\n tracking: unsafeCSS(\"var(--md-sys-typescale-title-small-tracking, 0.00625rem)\"),\r\n },\r\n },\r\n\r\n /** Longer passages of text. */\r\n body: {\r\n large: {\r\n fontSize: unsafeCSS(\"var(--md-sys-typescale-body-large-font-size, 1rem)\"),\r\n fontWeight: unsafeCSS(\"var(--md-sys-typescale-body-large-font-weight, 400)\"),\r\n lineHeight: unsafeCSS(\"var(--md-sys-typescale-body-large-line-height, 1.5rem)\"),\r\n tracking: unsafeCSS(\"var(--md-sys-typescale-body-large-tracking, 0.03125rem)\"),\r\n },\r\n medium: {\r\n fontSize: unsafeCSS(\"var(--md-sys-typescale-body-medium-font-size, 0.875rem)\"),\r\n fontWeight: unsafeCSS(\"var(--md-sys-typescale-body-medium-font-weight, 400)\"),\r\n lineHeight: unsafeCSS(\"var(--md-sys-typescale-body-medium-line-height, 1.25rem)\"),\r\n tracking: unsafeCSS(\"var(--md-sys-typescale-body-medium-tracking, 0.015625rem)\"),\r\n },\r\n small: {\r\n fontSize: unsafeCSS(\"var(--md-sys-typescale-body-small-font-size, 0.75rem)\"),\r\n fontWeight: unsafeCSS(\"var(--md-sys-typescale-body-small-font-weight, 400)\"),\r\n lineHeight: unsafeCSS(\"var(--md-sys-typescale-body-small-line-height, 1rem)\"),\r\n tracking: unsafeCSS(\"var(--md-sys-typescale-body-small-tracking, 0.025rem)\"),\r\n },\r\n },\r\n\r\n /** Smaller, utilitarian text. */\r\n label: {\r\n large: {\r\n fontSize: unsafeCSS(\"var(--md-sys-typescale-label-large-font-size, 0.875rem)\"),\r\n fontWeight: unsafeCSS(\"var(--md-sys-typescale-label-large-font-weight, 500)\"),\r\n lineHeight: unsafeCSS(\"var(--md-sys-typescale-label-large-line-height, 1.25rem)\"),\r\n tracking: unsafeCSS(\"var(--md-sys-typescale-label-large-tracking, 0.00625rem)\"),\r\n },\r\n medium: {\r\n fontSize: unsafeCSS(\"var(--md-sys-typescale-label-medium-font-size, 0.75rem)\"),\r\n fontWeight: unsafeCSS(\"var(--md-sys-typescale-label-medium-font-weight, 500)\"),\r\n lineHeight: unsafeCSS(\"var(--md-sys-typescale-label-medium-line-height, 1rem)\"),\r\n tracking: unsafeCSS(\"var(--md-sys-typescale-label-medium-tracking, 0.03125rem)\"),\r\n },\r\n small: {\r\n fontSize: unsafeCSS(\"var(--md-sys-typescale-label-small-font-size, 0.6875rem)\"),\r\n fontWeight: unsafeCSS(\"var(--md-sys-typescale-label-small-font-weight, 500)\"),\r\n lineHeight: unsafeCSS(\"var(--md-sys-typescale-label-small-line-height, 1rem)\"),\r\n tracking: unsafeCSS(\"var(--md-sys-typescale-label-small-tracking, 0.03125rem)\"),\r\n },\r\n },\r\n },\r\n\r\n /** Emphasized typescale variant. */\r\n emphasized: {\r\n /** Short, important text or numerals. */\r\n display: {\r\n large: {\r\n fontSize: unsafeCSS(\"var(--md-sys-typescale-emphasized-display-large-font-size, 3.5625rem)\"),\r\n fontWeight: unsafeCSS(\"var(--md-sys-typescale-emphasized-display-large-font-weight, 500)\"),\r\n lineHeight: unsafeCSS(\"var(--md-sys-typescale-emphasized-display-large-line-height, 4rem)\"),\r\n tracking: unsafeCSS(\"var(--md-sys-typescale-emphasized-display-large-tracking, 0.015625rem)\"),\r\n },\r\n medium: {\r\n fontSize: unsafeCSS(\"var(--md-sys-typescale-emphasized-display-medium-font-size, 2.8125rem)\"),\r\n fontWeight: unsafeCSS(\"var(--md-sys-typescale-emphasized-display-medium-font-weight, 500)\"),\r\n lineHeight: unsafeCSS(\"var(--md-sys-typescale-emphasized-display-medium-line-height, 3.25rem)\"),\r\n tracking: unsafeCSS(\"var(--md-sys-typescale-emphasized-display-medium-tracking, 0)\"),\r\n },\r\n small: {\r\n fontSize: unsafeCSS(\"var(--md-sys-typescale-emphasized-display-small-font-size, 2.25rem)\"),\r\n fontWeight: unsafeCSS(\"var(--md-sys-typescale-emphasized-display-small-font-weight, 500)\"),\r\n lineHeight: unsafeCSS(\"var(--md-sys-typescale-emphasized-display-small-line-height, 2.75rem)\"),\r\n tracking: unsafeCSS(\"var(--md-sys-typescale-emphasized-display-small-tracking, 0)\"),\r\n },\r\n },\r\n\r\n /** Short, high-emphasis text on smaller screens. */\r\n headline: {\r\n large: {\r\n fontSize: unsafeCSS(\"var(--md-sys-typescale-emphasized-headline-large-font-size, 2rem)\"),\r\n fontWeight: unsafeCSS(\"var(--md-sys-typescale-emphasized-headline-large-font-weight, 500)\"),\r\n lineHeight: unsafeCSS(\"var(--md-sys-typescale-emphasized-headline-large-line-height, 2.5rem)\"),\r\n tracking: unsafeCSS(\"var(--md-sys-typescale-emphasized-headline-large-tracking, 0)\"),\r\n },\r\n medium: {\r\n fontSize: unsafeCSS(\"var(--md-sys-typescale-emphasized-headline-medium-font-size, 1.75rem)\"),\r\n fontWeight: unsafeCSS(\"var(--md-sys-typescale-emphasized-headline-medium-font-weight, 500)\"),\r\n lineHeight: unsafeCSS(\"var(--md-sys-typescale-emphasized-headline-medium-line-height, 2.25rem)\"),\r\n tracking: unsafeCSS(\"var(--md-sys-typescale-emphasized-headline-medium-tracking, 0)\"),\r\n },\r\n small: {\r\n fontSize: unsafeCSS(\"var(--md-sys-typescale-emphasized-headline-small-font-size, 1.5rem)\"),\r\n fontWeight: unsafeCSS(\"var(--md-sys-typescale-emphasized-headline-small-font-weight, 500)\"),\r\n lineHeight: unsafeCSS(\"var(--md-sys-typescale-emphasized-headline-small-line-height, 2rem)\"),\r\n tracking: unsafeCSS(\"var(--md-sys-typescale-emphasized-headline-small-tracking, 0)\"),\r\n },\r\n },\r\n\r\n /** Medium-emphasis text that remains relatively short. */\r\n title: {\r\n large: {\r\n fontSize: unsafeCSS(\"var(--md-sys-typescale-emphasized-title-large-font-size, 1.375rem)\"),\r\n fontWeight: unsafeCSS(\"var(--md-sys-typescale-emphasized-title-large-font-weight, 500)\"),\r\n lineHeight: unsafeCSS(\"var(--md-sys-typescale-emphasized-title-large-line-height, 1.75rem)\"),\r\n tracking: unsafeCSS(\"var(--md-sys-typescale-emphasized-title-large-tracking, 0)\"),\r\n },\r\n medium: {\r\n fontSize: unsafeCSS(\"var(--md-sys-typescale-emphasized-title-medium-font-size, 1rem)\"),\r\n fontWeight: unsafeCSS(\"var(--md-sys-typescale-emphasized-title-medium-font-weight, 700)\"),\r\n lineHeight: unsafeCSS(\"var(--md-sys-typescale-emphasized-title-medium-line-height, 3.5rem)\"),\r\n tracking: unsafeCSS(\"var(--md-sys-typescale-emphasized-title-medium-tracking, 0.009375rem)\"),\r\n },\r\n small: {\r\n fontSize: unsafeCSS(\"var(--md-sys-typescale-emphasized-title-small-font-size, 0.875rem)\"),\r\n fontWeight: unsafeCSS(\"var(--md-sys-typescale-emphasized-title-small-font-weight, 700)\"),\r\n lineHeight: unsafeCSS(\"var(--md-sys-typescale-emphasized-title-small-line-height, 1.25rem)\"),\r\n tracking: unsafeCSS(\"var(--md-sys-typescale-emphasized-title-small-tracking, 0.00625rem)\"),\r\n },\r\n },\r\n\r\n /** Longer passages of text. */\r\n body: {\r\n large: {\r\n fontSize: unsafeCSS(\"var(--md-sys-typescale-emphasized-body-large-font-size, 1rem)\"),\r\n fontWeight: unsafeCSS(\"var(--md-sys-typescale-emphasized-body-large-font-weight, 500)\"),\r\n lineHeight: unsafeCSS(\"var(--md-sys-typescale-emphasized-body-large-line-height, 1.5rem)\"),\r\n tracking: unsafeCSS(\"var(--md-sys-typescale-emphasized-body-large-tracking, 0.03125rem)\"),\r\n },\r\n medium: {\r\n fontSize: unsafeCSS(\"var(--md-sys-typescale-emphasized-body-medium-font-size, 0.875rem)\"),\r\n fontWeight: unsafeCSS(\"var(--md-sys-typescale-emphasized-body-medium-font-weight, 500)\"),\r\n lineHeight: unsafeCSS(\"var(--md-sys-typescale-emphasized-body-medium-line-height, 1.25rem)\"),\r\n tracking: unsafeCSS(\"var(--md-sys-typescale-emphasized-body-medium-tracking, 0.015625rem)\"),\r\n },\r\n small: {\r\n fontSize: unsafeCSS(\"var(--md-sys-typescale-emphasized-body-small-font-size, 0.75rem)\"),\r\n fontWeight: unsafeCSS(\"var(--md-sys-typescale-emphasized-body-small-font-weight, 500)\"),\r\n lineHeight: unsafeCSS(\"var(--md-sys-typescale-emphasized-body-small-line-height, 1rem)\"),\r\n tracking: unsafeCSS(\"var(--md-sys-typescale-emphasized-body-small-tracking, 0.025rem)\"),\r\n },\r\n },\r\n\r\n /** Smaller, utilitarian text. */\r\n label: {\r\n large: {\r\n fontSize: unsafeCSS(\"var(--md-sys-typescale-emphasized-label-large-font-size, 0.875rem)\"),\r\n fontWeight: unsafeCSS(\"var(--md-sys-typescale-emphasized-label-large-font-weight, 700)\"),\r\n lineHeight: unsafeCSS(\"var(--md-sys-typescale-emphasized-label-large-line-height, 1.25rem)\"),\r\n tracking: unsafeCSS(\"var(--md-sys-typescale-emphasized-label-large-tracking, 0.00625rem)\"),\r\n },\r\n medium: {\r\n fontSize: unsafeCSS(\"var(--md-sys-typescale-emphasized-label-medium-font-size, 0.75rem)\"),\r\n fontWeight: unsafeCSS(\"var(--md-sys-typescale-emphasized-label-medium-font-weight, 700)\"),\r\n lineHeight: unsafeCSS(\"var(--md-sys-typescale-emphasized-label-medium-line-height, 1rem)\"),\r\n tracking: unsafeCSS(\"var(--md-sys-typescale-emphasized-label-medium-tracking, 0.03125rem)\"),\r\n },\r\n small: {\r\n fontSize: unsafeCSS(\"var(--md-sys-typescale-emphasized-label-small-font-size, 0.6875rem)\"),\r\n fontWeight: unsafeCSS(\"var(--md-sys-typescale-emphasized-label-small-font-weight, 700)\"),\r\n lineHeight: unsafeCSS(\"var(--md-sys-typescale-emphasized-label-small-line-height, 1rem)\"),\r\n tracking: unsafeCSS(\"var(--md-sys-typescale-emphasized-label-small-tracking, 0.03125rem)\"),\r\n },\r\n },\r\n },\r\n} as const;\r\n","import { ColorToken } from \"./ColorToken\";\r\nimport { DensityToken } from \"./DensityToken\";\r\nimport { ElevationToken } from \"./ElevationToken\";\r\nimport { MotionToken } from \"./MotionToken\";\r\nimport { ScrollbarToken } from \"./ScrollbarToken\";\r\nimport { ShapeToken } from \"./ShapeToken\";\r\nimport { StateToken } from \"./StateToken\";\r\nimport { TypescaleToken } from \"./TypescaleToken\";\r\n\r\n/** Design tokens used to style components. */\r\nexport const DesignToken = {\r\n /** Design tokens that control color. */\r\n color: ColorToken,\r\n\r\n /** Design tokens that control elevation. */\r\n elevation: ElevationToken,\r\n\r\n /** Design tokens that control motion. */\r\n motion: MotionToken,\r\n\r\n /** Design tokens that control shape. */\r\n shape: ShapeToken,\r\n\r\n /** Design tokens that control state layer. */\r\n state: StateToken,\r\n\r\n /** Design tokens that control typescale. */\r\n typescale: TypescaleToken,\r\n\r\n /** Design tokens that control scrollbars. */\r\n scrollbar: ScrollbarToken,\r\n\r\n /** Design tokens that control density. */\r\n density: DensityToken,\r\n} as const;\r\n","import { LitElement, PropertyValues } from \"lit\";\r\nimport { property } from \"lit/decorators.js\";\r\n\r\nimport { Constructor } from \"./Constructor\";\r\nimport { hasKeys } from \"./hasKeys\";\r\n\r\n/** Defines functionality for an element which supports a disabled state. */\r\nexport interface DisabledMixin {\r\n /**\r\n * Whether the element is disabled.\r\n * @default false\r\n */\r\n disabled: boolean;\r\n}\r\n\r\n/**\r\n * Determines whether a value is a `DisabledMixin`.\r\n * @param {unknown} value The value to test.\r\n * @returns {value is DisabledMixin} Whether `value` is a `DisabledMixin`.\r\n */\r\nexport function isDisabledMixin(value: unknown): value is DisabledMixin {\r\n return hasKeys<DisabledMixin>(value, \"disabled\");\r\n}\r\n\r\n/**\r\n * Mixin to augment an element with behavior that supports a disabled state.\r\n * @template T The type of the base class.\r\n * @param {T} base The base class.\r\n * @param {boolean} [reflect=true] Whether the disabled property is reflected as an attribute.\r\n * @returns {Constructor<DisabledMixin> & T} A constructor that implements `DisabledMixin`.\r\n */\r\nexport function Disabled<T extends Constructor<LitElement>>(\r\n base: T,\r\n reflect: boolean = true\r\n): Constructor<DisabledMixin> & T {\r\n abstract class _DisabledMixin extends base implements DisabledMixin {\r\n /**\r\n * Whether the element is disabled.\r\n * @default false\r\n */\r\n @property({ type: Boolean, reflect: reflect }) disabled = false;\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(\"disabled\") && this.role && this.role !== \"none\" && this.role !== \"presentation\") {\r\n this.ariaDisabled = this.disabled ? \"true\" : null;\r\n }\r\n }\r\n }\r\n\r\n return _DisabledMixin;\r\n}\r\n","import { LitElement, PropertyValues } from \"lit\";\r\nimport { property } from \"lit/decorators.js\";\r\n\r\nimport { Constructor } from \"./Constructor\";\r\nimport { DisabledMixin, isDisabledMixin } from \"./Disabled\";\r\nimport { hasKeys } from \"./hasKeys\";\r\n\r\n/** Defines functionality for an element which supports an interactive disabled state. */\r\nexport interface DisabledInteractiveMixin extends DisabledMixin {\r\n /**\r\n * Whether the element is disabled and interactive.\r\n * @default false\r\n */\r\n disabledInteractive: boolean;\r\n}\r\n\r\n/**\r\n * Determines whether a value is a `DisabledInteractiveMixin`.\r\n * @param {unknown} value The value to test.\r\n * @returns {value is DisabledInteractiveMixin} Whether `value` is a `DisabledInteractiveMixin`.\r\n */\r\nexport function isDisabledInteractiveMixin(value: unknown): value is DisabledInteractiveMixin {\r\n return hasKeys<DisabledInteractiveMixin>(value, \"disabledInteractive\") && isDisabledMixin(value);\r\n}\r\n\r\nconst SUPPRESSED_EVENTS = [\"click\", \"dblclick\", \"auxclick\", \"keydown\", \"keyup\"];\r\nconst INTERACTIVE_KEYS = [\"Tab\", \"ArrowLeft\", \"ArrowUp\", \"ArrowRight\", \"ArrowDown\", \"Left\", \"Up\", \"Right\", \"Down\"];\r\nconst _suppressedEventHandler = Symbol(\"_suppressedEventHandler\");\r\n\r\n/**\r\n * Mixin to augment an element with behavior that supports an interactive disabled state.\r\n * @template T The type of the base class.\r\n * @param {T} base The base class.\r\n * @returns {Constructor<DisabledInteractiveMixin>} A constructor that implements `DisabledInteractiveMixin`.\r\n */\r\nexport function DisabledInteractive<T extends Constructor<LitElement & DisabledMixin>>(\r\n base: T\r\n): Constructor<DisabledInteractiveMixin> & T {\r\n abstract class _DisabledInteractiveMixin extends base implements DisabledInteractiveMixin {\r\n /** @private */\r\n private readonly [_suppressedEventHandler] = (e: Event) => {\r\n if (this.disabledInteractive) {\r\n // Only allow specific keys when disabled and interactive.\r\n if (e instanceof KeyboardEvent && INTERACTIVE_KEYS.includes(e.key)) {\r\n return;\r\n }\r\n e.stopImmediatePropagation();\r\n e.preventDefault();\r\n }\r\n };\r\n\r\n /**\r\n * Whether the element is disabled and interactive.\r\n * @default false\r\n */\r\n @property({ attribute: \"disabled-interactive\", type: Boolean, reflect: true }) disabledInteractive = false;\r\n\r\n /** @inheritdoc */\r\n override connectedCallback(): void {\r\n SUPPRESSED_EVENTS.forEach((x) => this.addEventListener(x, this[_suppressedEventHandler], true));\r\n super.connectedCallback();\r\n }\r\n\r\n /** @inheritdoc */\r\n override disconnectedCallback(): void {\r\n SUPPRESSED_EVENTS.forEach((x) => this.removeEventListener(x, this[_suppressedEventHandler], true));\r\n super.disconnectedCallback();\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 (\r\n (changedProperties.has(\"disabled\") || changedProperties.has(\"disabledInteractive\")) &&\r\n this.role &&\r\n this.role !== \"none\" &&\r\n this.role !== \"presentation\" &&\r\n this.role !== \"none\"\r\n ) {\r\n this.ariaDisabled = this.disabled || this.disabledInteractive ? \"true\" : null;\r\n }\r\n }\r\n }\r\n\r\n return _DisabledInteractiveMixin;\r\n}\r\n","import { LitElement, PropertyValues } from \"lit\";\r\n\r\nimport { DesignToken } from \"../tokens\";\r\n\r\nimport { AttachInternalsMixin, internals, isAttachInternalsMixin } from \"./AttachInternals\";\r\nimport { Constructor } from \"./Constructor\";\r\nimport { isDisabledMixin } from \"./Disabled\";\r\nimport { isDisabledInteractiveMixin } from \"./DisabledInteractive\";\r\nimport { isTouchedMixin } from \"./Touched\";\r\nimport { hasKeys } from \"./hasKeys\";\r\n\r\n/** A symbol through which to update labels to reflect a control's current state. */\r\nexport const updateLabels = Symbol(\"updateLabels\");\r\n\r\n/** Defines functionality for a labelled custom element. */\r\nexport interface LabelledMixin extends AttachInternalsMixin {\r\n /** The label elements that the element is associated with. */\r\n readonly labels: NodeListOf<HTMLLabelElement>;\r\n\r\n /** Updates labels to reflect the current state of the control. */\r\n [updateLabels]?(): void;\r\n}\r\n\r\n/**\r\n * Determines whether a value is a `LabelledMixin`.\r\n * @param {unknown} value The value to test.\r\n * @returns A value indicating whether `value` is a `LabelledMixin`.\r\n */\r\nexport function isLabelledMixin(value: unknown): value is LabelledMixin {\r\n return hasKeys<LabelledMixin>(value, \"labels\") && isAttachInternalsMixin(value);\r\n}\r\n\r\nconst _eventHandler = Symbol(\"_eventHandler\");\r\n\r\n/**\r\n * Mixin to augment an element with support for labelling.\r\n * @template T The type of the base class.\r\n * @param {T} base The base class.\r\n * @returns {Constructor<FormAssociatedMixin> & T} A constructor that implements `FormAssociatedMixin`.\r\n */\r\nexport function Labelled<T extends Constructor<LitElement & AttachInternalsMixin>>(\r\n base: T\r\n): Constructor<LabelledMixin> & T {\r\n abstract class _Labelled extends base implements LabelledMixin {\r\n /** Indicates that this custom element participates in form submission, validation, and form state restoration. */\r\n static readonly formAssociated = true;\r\n\r\n /** @private */\r\n private readonly [_eventHandler] = (e: Event) => {\r\n if (!e.defaultPrevented) {\r\n this[updateLabels]();\r\n }\r\n };\r\n\r\n /** The label elements that the element is associated with. */\r\n get labels(): NodeListOf<HTMLLabelElement> {\r\n return this[internals].labels as NodeListOf<HTMLLabelElement>;\r\n }\r\n\r\n /** @inheritdoc */\r\n override connectedCallback(): void {\r\n super.connectedCallback();\r\n this.addEventListener(\"focusout\", this[_eventHandler]);\r\n this.addEventListener(\"change\", this[_eventHandler]);\r\n }\r\n\r\n /** @inheritdoc */\r\n override disconnectedCallback(): void {\r\n super.disconnectedCallback();\r\n this.removeEventListener(\"focusout\", this[_eventHandler]);\r\n this.removeEventListener(\"change\", this[_eventHandler]);\r\n }\r\n\r\n /** @inheritdoc */\r\n protected override update(changedProperties: PropertyValues): void {\r\n super.update(changedProperties);\r\n this[updateLabels]();\r\n }\r\n\r\n /** @internal */\r\n [updateLabels](): void {\r\n const focusable = this.hasAttribute(\"tabindex\");\r\n const disabled =\r\n (isDisabledMixin(this) && this.disabled) || (isDisabledInteractiveMixin(this) && this.disabledInteractive);\r\n const invalid = isTouchedMixin(this) && this.touched && (this.ariaInvalid || this.classList.contains(\"-invalid\"));\r\n\r\n for (const label of this.labels ?? []) {\r\n label.style.userSelect = focusable ? \"none\" : \"\";\r\n label.style.cursor = !disabled && focusable ? \"pointer\" : \"\";\r\n\r\n label.style.color = disabled\r\n ? `color-mix(in srgb, ${DesignToken.color.onSurface} 38%, transparent)`\r\n : invalid\r\n ? `${DesignToken.color.error}`\r\n : \"\";\r\n }\r\n }\r\n }\r\n\r\n return _Labelled;\r\n}\r\n","import { LitElement, PropertyDeclaration } from \"lit\";\r\nimport { property } from \"lit/decorators.js\";\r\n\r\nimport { AttachInternalsMixin, internals, isAttachInternalsMixin } from \"./AttachInternals\";\r\nimport { Constructor } from \"./Constructor\";\r\nimport { DisabledMixin } from \"./Disabled\";\r\nimport { isCheckedMixin } from \"./Checked\";\r\nimport { isCheckedIndeterminateMixin } from \"./CheckedIndeterminate\";\r\nimport { isDirtyMixin } from \"./Dirty\";\r\nimport { isTouchedMixin } from \"./Touched\";\r\nimport { isLabelledMixin, LabelledMixin } from \"./Labelled\";\r\nimport { hasKeys } from \"./hasKeys\";\r\n\r\n/** A symbol through which a \"Form Associated\" custom element provides a value for a form. */\r\nexport const formValue = Symbol(\"formValue\");\r\n\r\n/** A symbol through which a \"Form Associated\" custom element provides a default value for resetting a form. */\r\nexport const defaultValue = Symbol(\"defaultValue\");\r\n\r\n/** Defines functionality for a \"Form Associated\" custom element. */\r\nexport interface FormAssociatedMixin extends LabelledMixin, DisabledMixin, AttachInternalsMixin {\r\n /** The `HTMLFormElement` associated with this element. */\r\n readonly form: HTMLFormElement | null;\r\n\r\n /** The form value of the element. */\r\n readonly [formValue]: string | File | FormData | null;\r\n\r\n /** The default value (value or checked state) of the element. */\r\n readonly [defaultValue]: unknown;\r\n\r\n /** The name that identifies the element when submitting the associated form. */\r\n name: string;\r\n}\r\n\r\n/**\r\n * Determines whether a value is a `FormAssociatedMixin`.\r\n * @param {unknown} value The value to test.\r\n * @returns A value indicating whether `value` is a `FormAssociatedMixin`.\r\n */\r\nexport function isFormAssociatedMixin(value: unknown): value is FormAssociatedMixin {\r\n return (\r\n hasKeys<FormAssociatedMixin>(value, \"disabled\", \"form\", \"name\") &&\r\n isLabelledMixin(value) &&\r\n isAttachInternalsMixin(value)\r\n );\r\n}\r\n\r\nconst _defaultValue = Symbol(\"_defaultValue\");\r\nconst _defaultIndeterminate = Symbol(\"_defaultIndeterminate\");\r\nconst _formDisabled = Symbol(\"_formDisabled\");\r\n\r\n/**\r\n * Mixin to augment an element with \"Form Associated\" behavior.\r\n * @template T The type of the base class.\r\n * @param {T} base The base class.\r\n * @returns {Constructor<FormAssociatedMixin> & T} A constructor that implements `FormAssociatedMixin`.\r\n */\r\nexport function FormAssociated<T extends Constructor<LitElement & DisabledMixin & AttachInternalsMixin>>(\r\n base: T\r\n): Constructor<FormAssociatedMixin> & T {\r\n abstract class _FormAssociatedMixin extends base implements FormAssociatedMixin {\r\n /** Indicates that this custom element participates in form submission, validation, and form state restoration. */\r\n static readonly formAssociated = true;\r\n\r\n /** @private */ private [_defaultValue]: unknown;\r\n /** @private */ private [_defaultIndeterminate] = false;\r\n /** @private */ private [_formDisabled] = false;\r\n\r\n /** The `HTMLFormElement` associated with this element. */\r\n get form(): HTMLFormElement | null {\r\n return this[internals].form;\r\n }\r\n\r\n /** @inheritdoc */\r\n get labels(): NodeListOf<HTMLLabelElement> {\r\n return this[internals].labels as NodeListOf<HTMLLabelElement>;\r\n }\r\n\r\n /** @internal */\r\n get [formValue](): string | File | FormData | null {\r\n return null;\r\n }\r\n\r\n /** @internal */\r\n get [defaultValue](): unknown {\r\n return this[_defaultValue];\r\n }\r\n\r\n /** The name that identifies the element when submitting the associated form. */\r\n @property({ noAccessor: true }) get name() {\r\n return this.getAttribute(\"name\") ?? \"\";\r\n }\r\n set name(value: string) {\r\n if (value) {\r\n this.setAttribute(\"name\", value);\r\n } else {\r\n this.removeAttribute(\"name\");\r\n }\r\n }\r\n\r\n // Disabled attributes should not be reflected for form associated elements due to\r\n // how the formDisabledCallback overrides an element's disabled state.\r\n // See https://github.com/whatwg/html/issues/8365\r\n\r\n /**\r\n * Whether the element is disabled.\r\n * @default false\r\n */\r\n @property({ type: Boolean })\r\n override get disabled(): boolean {\r\n return super.disabled || this[_formDisabled];\r\n }\r\n override set disabled(value: boolean) {\r\n super.disabled = value;\r\n }\r\n\r\n /** @inheritdoc */\r\n override connectedCallback(): void {\r\n super.connectedCallback();\r\n\r\n if (isCheckedMixin(this)) {\r\n this[_defaultValue] = this.checked;\r\n if (isCheckedIndeterminateMixin(this)) {\r\n this[_defaultIndeterminate] = this.indeterminate;\r\n }\r\n } else if (\"value\" in this) {\r\n this[_defaultValue] = this.value;\r\n }\r\n }\r\n\r\n /** @inheritdoc */\r\n override requestUpdate(name?: PropertyKey, oldValue?: unknown, options?: PropertyDeclaration): void {\r\n super.requestUpdate(name, oldValue, options);\r\n this[internals].setFormValue(this[formValue]);\r\n }\r\n\r\n /** Called when the element is disabled or enabled via its form association. */\r\n formDisabledCallback(disabled: boolean): void {\r\n const wasDisabled = this.disabled;\r\n this[_formDisabled] = disabled;\r\n if (this.disabled != wasDisabled) {\r\n this.requestUpdate(\"disabled\", wasDisabled);\r\n }\r\n }\r\n\r\n /** Called when the associated form is reset. */\r\n formResetCallback(): void {\r\n if (isCheckedMixin(this)) {\r\n this.checked = this[_defaultValue] === true;\r\n if (isCheckedIndeterminateMixin(this)) {\r\n this.indeterminate = this[_defaultIndeterminate];\r\n }\r\n } else if (\"value\" in this) {\r\n this.value = this[defaultValue];\r\n }\r\n\r\n if (isDirtyMixin(this)) {\r\n this.markAsPristine();\r\n }\r\n if (isTouchedMixin(this)) {\r\n this.markAsUntouched();\r\n }\r\n }\r\n }\r\n\r\n return _FormAssociatedMixin;\r\n}\r\n","import { LitElement, PropertyDeclaration, PropertyValues, isServer } from \"lit\";\r\n\r\nimport { internals } from \"./AttachInternals\";\r\nimport { Constructor } from \"./Constructor\";\r\nimport { FormAssociatedMixin, isFormAssociatedMixin } from \"./FormAssociated\";\r\nimport { hasKeys } from \"./hasKeys\";\r\nimport { isTouchedMixin } from \"./Touched\";\r\nimport { isLabelledMixin, updateLabels } from \"./Labelled\";\r\n\r\n/** A symbol through which a \"Form Associated\" custom element validates its current state. */\r\nexport const validate = Symbol(\"validate\");\r\n\r\n/** Defines functionality for a \"Form Associated\" custom element that supports constraint validation. */\r\nexport interface ConstraintValidationMixin extends FormAssociatedMixin {\r\n /** Whether the element is a submittable element that is a candidate for constraint validation. */\r\n readonly willValidate: boolean;\r\n\r\n /** The validity state of the element. */\r\n readonly validity: ValidityState;\r\n\r\n /** The error message that would be displayed if the user submits the form, or an empty string if no error message. */\r\n readonly validationMessage: string;\r\n\r\n /**\r\n * Validates the current state of the control.\r\n * @returns {ValidityStateFlags | undefined} The current validity state.\r\n */\r\n [validate](): ValidityStateFlags | undefined;\r\n\r\n /**\r\n * Returns `true` if the element has no validity problems; otherwise, returns `false`, fires\r\n * an invalid event, and (if the event isn't canceled) reports the problem to the user.\r\n */\r\n reportValidity(): boolean;\r\n\r\n /**\r\n * Returns `true` if the element has no validity problems; otherwise,\r\n * returns `false`, fires an invalid event.\r\n */\r\n checkValidity(): boolean;\r\n\r\n /**\r\n * Sets a custom validity message for the element.\r\n * @param error The message to use for validity errors.\r\n */\r\n setCustomValidity(error: string): void;\r\n}\r\n\r\n/**\r\n * Determines whether a value is a `ConstraintValidationMixin`.\r\n * @param {unknown} value The value to test.\r\n * @returns Whether `value` is a `ConstraintValidationMixin`.\r\n */\r\nexport function isConstraintValidationMixin(value: unknown): value is ConstraintValidationMixin {\r\n return (\r\n hasKeys<ConstraintValidationMixin>(\r\n value,\r\n \"willValidate\",\r\n \"validity\",\r\n \"validationMessage\",\r\n \"reportValidity\",\r\n \"checkValidity\",\r\n \"setCustomValidity\"\r\n ) && isFormAssociatedMixin(value)\r\n );\r\n}\r\n\r\nconst _updateValidity = Symbol(\"_updateValidity\");\r\nconst _validityMessage = Symbol(\"_validityMessage\");\r\n\r\n/**\r\n * Mixin to augment an element with \"Form Associated\" behavior that supports constraint validation.\r\n * @template T The type of the base class.\r\n * @param {T} base The base class.\r\n * @returns {Constructor<ConstraintValidationMixin> & T} A constructor that implements `ConstraintValidationMixin`.\r\n */\r\nexport function ConstraintValidation<T extends Constructor<LitElement & FormAssociatedMixin>>(\r\n base: T\r\n): Constructor<ConstraintValidationMixin> & T {\r\n abstract class _ConstraintValidation extends base implements ConstraintValidationMixin {\r\n private [_validityMessage]?: string;\r\n\r\n /** Whether the element is a submittable element that is a candidate for constraint validation. */\r\n get willValidate(): boolean {\r\n return this[internals].willValidate;\r\n }\r\n\r\n /** The validity state of the element. */\r\n get validity(): ValidityState {\r\n this[_updateValidity]();\r\n return this[internals].validity;\r\n }\r\n\r\n /** The error message that would be displayed if the user submits the form, or an empty string if no error message. */\r\n get validationMessage(): string {\r\n this[_updateValidity]();\r\n return this[internals].validationMessage;\r\n }\r\n\r\n /** @internal */\r\n [validate](): ValidityStateFlags | undefined {\r\n return this[_validityMessage] ? { customError: true } : undefined;\r\n }\r\n\r\n /**\r\n * Returns `true` if the element has no validity problems; otherwise, returns `false`, fires\r\n * an invalid event, and (if the event isn't canceled) reports the problem to the user.\r\n */\r\n reportValidity(): boolean {\r\n if (isTouchedMixin(this)) {\r\n this.markAsTouched();\r\n }\r\n\r\n this[_updateValidity]();\r\n return this[internals].reportValidity();\r\n }\r\n\r\n /**\r\n * Returns `true` if the element has no validity problems; otherwise,\r\n * returns `false`, fires an invalid event.\r\n */\r\n checkValidity(): boolean {\r\n this[_updateValidity]();\r\n return this[internals].checkValidity();\r\n }\r\n\r\n /**\r\n * Sets a custom validity message for the element.\r\n * @param error The message to use for validity errors.\r\n */\r\n setCustomValidity(error: string): void {\r\n if (error) {\r\n this[_validityMessage] = error;\r\n } else {\r\n this[_validityMessage] = undefined;\r\n }\r\n\r\n this[_updateValidity]();\r\n }\r\n\r\n /** @inheritdoc */\r\n override requestUpdate(name?: PropertyKey, oldValue?: unknown, options?: PropertyDeclaration): void {\r\n super.requestUpdate(name, oldValue, options);\r\n this[_updateValidity]();\r\n }\r\n\r\n /** @inheritdoc */\r\n protected override firstUpdated(_changedProperties: PropertyValues): void {\r\n super.firstUpdated(_changedProperties);\r\n this[_updateValidity]();\r\n }\r\n\r\n /** @private */\r\n private [_updateValidity](): void {\r\n if (isServer || !this.isConnected) return;\r\n\r\n const validity = this[validate]();\r\n const invalid = validity && Object.keys(validity).some((x) => validity[<keyof ValidityStateFlags>x] === true);\r\n\r\n let validityMessage = validity?.customError ? this[_validityMessage] : \"\";\r\n if (validity && !validityMessage) {\r\n validityMessage = this.#getNativeMessage(validity);\r\n }\r\n\r\n this[internals].setValidity(validity, validityMessage);\r\n this.ariaInvalid = invalid ? \"true\" : null;\r\n this.classList.toggle(\"-invalid\", invalid === true);\r\n\r\n if (isLabelledMixin(this)) {\r\n this[updateLabels]?.();\r\n }\r\n }\r\n\r\n /** @private */\r\n #getNativeMessage(flags: ValidityStateFlags): string {\r\n const input = document.createElement(\"input\");\r\n\r\n // Default to text input unless overridden\r\n input.type = \"text\";\r\n\r\n // Simulate constraints and values based on flags\r\n if (flags.valueMissing) {\r\n input.required = true;\r\n input.value = \"\"; // triggers valueMissing\r\n }\r\n\r\n if (flags.typeMismatch) {\r\n input.type = \"email\";\r\n input.value = \"not-an-email\"; // triggers typeMismatch\r\n }\r\n\r\n if (flags.patternMismatch) {\r\n input.pattern = \"[0-9]{4}\";\r\n input.value = \"abcd\"; // triggers patternMismatch\r\n }\r\n\r\n if (flags.tooShort) {\r\n input.minLength = 5;\r\n input.value = \"abc\"; // triggers tooShort\r\n }\r\n\r\n if (flags.tooLong) {\r\n input.maxLength = 2;\r\n input.value = \"abcdef\"; // triggers tooLong\r\n }\r\n\r\n if (flags.rangeUnderflow) {\r\n input.type = \"number\";\r\n input.min = \"10\";\r\n input.value = \"5\"; // triggers rangeUnderflow\r\n }\r\n\r\n if (flags.rangeOverflow) {\r\n input.type = \"number\";\r\n input.max = \"5\";\r\n input.value = \"10\"; // triggers rangeOverflow\r\n }\r\n\r\n if (flags.stepMismatch) {\r\n input.type = \"number\";\r\n input.step = \"2\";\r\n input.value = \"3\"; // triggers stepMismatch\r\n }\r\n\r\n if (flags.badInput) {\r\n input.type = \"number\";\r\n input.value = \"abc\"; // triggers badInput\r\n }\r\n\r\n input.setCustomValidity(\"\");\r\n input.checkValidity();\r\n\r\n return input.validationMessage;\r\n }\r\n }\r\n\r\n return _ConstraintValidation;\r\n}\r\n","import { LitElement } from \"lit\";\r\n\r\nimport { Constructor } from \"./Constructor\";\r\n\r\n/**\r\n * Mixin that adds support for custom event attributes.\r\n * @template T The type of base class from which to inherit.\r\n * @param {T} base The base class from which to inherit.\r\n * @param {string[]} types The types of event attributes.\r\n * @returns {T} A class extending `base` that supports custom event attributes.\r\n */\r\nexport function EventAttribute<T extends Constructor<LitElement>>(base: T, ...types: string[]): T {\r\n abstract class _EventAttribute extends base {\r\n /** @internal */\r\n override dispatchEvent(event: Event): boolean {\r\n if (types.includes(event.type)) {\r\n const eventAttribute = this.getAttribute(`on${event.type}`);\r\n if (eventAttribute) {\r\n new Function(\"e\", `${eventAttribute};`).call(this, event);\r\n }\r\n }\r\n return super.dispatchEvent(event);\r\n }\r\n }\r\n return _EventAttribute;\r\n}\r\n","import { LitElement, PropertyValues } from \"lit\";\r\n\r\nimport { Constructor } from \"./Constructor\";\r\nimport { DisabledMixin } from \"./Disabled\";\r\n\r\nconst _tabindex = Symbol(\"_tabindex\");\r\n\r\n/**\r\n * Mixin to augment an element with behavior that supports a focused state.\r\n * @template T The type of the base class.\r\n * @param {T} base The base class.\r\n * @returns {Constructor & T} A constructor that implements focusable behavior.\r\n */\r\nexport function Focusable<T extends Constructor<LitElement & DisabledMixin>>(base: T): Constructor & T {\r\n abstract class _FocusableMixin extends base {\r\n /** @private */\r\n private [_tabindex] = 0;\r\n\r\n /** @inheritdoc */\r\n override connectedCallback(): void {\r\n this[_tabindex] = Number.parseInt(this.getAttribute(\"tabindex\") ?? \"0\");\r\n super.connectedCallback();\r\n }\r\n\r\n /** @inheritdoc */\r\n protected override firstUpdated(_changedProperties: PropertyValues<this>): void {\r\n super.firstUpdated(_changedProperties);\r\n\r\n if (!this.hasAttribute(\"tabindex\") && !_changedProperties.has(\"disabled\")) {\r\n this.setAttribute(\"tabindex\", `${this[_tabindex]}`);\r\n }\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(\"disabled\")) {\r\n if (!this.disabled && this.role !== \"none\") {\r\n if (!this.hasAttribute(\"tabindex\")) {\r\n this.setAttribute(\"tabindex\", `${this[_tabindex]}`);\r\n }\r\n } else {\r\n const tabIndex = this.getAttribute(\"tabindex\");\r\n if (tabIndex) {\r\n this[_tabindex] = Number.parseInt(tabIndex);\r\n }\r\n this.removeAttribute(\"tabindex\");\r\n }\r\n }\r\n }\r\n }\r\n\r\n return _FocusableMixin;\r\n}\r\n","import { LitElement } from \"lit\";\r\nimport { property } from \"lit/decorators.js\";\r\n\r\nimport { AttachInternalsMixin, internals, isAttachInternalsMixin } from \"./AttachInternals\";\r\nimport { Constructor } from \"./Constructor\";\r\nimport { hasKeys } from \"./hasKeys\";\r\nimport { isDisabledMixin } from \"./Disabled\";\r\nimport { isDisabledInteractiveMixin } from \"./DisabledInteractive\";\r\n\r\n/** Specifies the form submission behaviors. */\r\nexport type FormSubmitterType = \"button\" | \"submit\" | \"reset\";\r\n\r\n/** Defines functionality for an element which can be used to submit a form. */\r\nexport interface FormSubmitterMixin extends AttachInternalsMixin {\r\n /**\r\n * The name of the element, submitted as a pair with the element's `value`\r\n * as part of form data, when the element is used to submit a form.\r\n */\r\n name: string;\r\n\r\n /** The value associated with the element's name when it's submitted with form data. */\r\n value: string | null;\r\n\r\n /**\r\n * The type of the element.\r\n * @default \"button\"\r\n */\r\n type: FormSubmitterType;\r\n}\r\n\r\n/**\r\n * Determines whether a value is a `FormSubmitterMixin`.\r\n * @param {unknown} value The value to test.\r\n * @returns {value is FormSubmitterMixin} Whether `value` is a `FormSubmitterMixin`.\r\n */\r\nexport function isFormSubmitterMixin(value: unknown): value is FormSubmitterMixin {\r\n return hasKeys<FormSubmitterMixin>(value, \"name\", \"type\", \"value\") && isAttachInternalsMixin(value);\r\n}\r\n\r\nconst _clickHandler = Symbol(\"_clickHandler\");\r\n\r\n/**\r\n * Mixin to augment an element with behavior used to submit a form.\r\n * @template T The type of the base class.\r\n * @param {T} base The base class.\r\n * @returns {Constructor<FormSubmitterMixin>} A constructor that implements `FormSubmitterMixin`.\r\n */\r\nexport function FormSubmitter<T extends Constructor<LitElement & AttachInternalsMixin>>(\r\n base: T\r\n): Constructor<FormSubmitterMixin> & T {\r\n abstract class _FormSubmitterMixin extends base implements FormSubmitterMixin {\r\n /** Indicates that this custom element participates in form submission, validation, and form state restoration. */\r\n static readonly formAssociated = true;\r\n\r\n /**\r\n * The name of the element, submitted as a pair with the element's `value`\r\n * as part of form data, when the element is used to submit a form.\r\n */\r\n @property() get name() {\r\n return this.getAttribute(\"name\") ?? \"\";\r\n }\r\n set name(value: string) {\r\n if (value) {\r\n this.setAttribute(\"name\", value);\r\n } else {\r\n this.removeAttribute(\"name\");\r\n }\r\n }\r\n\r\n /** The value associated with the element's name when it's submitted with form data. */\r\n @property() get value() {\r\n return this.getAttribute(\"value\");\r\n }\r\n set value(value: string | null) {\r\n if (value !== null && value !== undefined) {\r\n this.setAttribute(\"value\", value);\r\n } else {\r\n this.removeAttribute(\"value\");\r\n }\r\n }\r\n\r\n /**\r\n * The type of the element.\r\n * @default \"button\"\r\n */\r\n @property() type: FormSubmitterType = \"button\";\r\n\r\n /** @inheritdoc */\r\n override connectedCallback(): void {\r\n super.connectedCallback();\r\n this.addEventListener(\"click\", this[_clickHandler]);\r\n }\r\n\r\n /** @inheritdoc */\r\n override disconnectedCallback(): void {\r\n super.disconnectedCallback();\r\n this.removeEventListener(\"click\", this[_clickHandler]);\r\n }\r\n\r\n /** @private */\r\n private [_clickHandler] = async (e: Event) => {\r\n if (\r\n e.defaultPrevented ||\r\n (isDisabledMixin(this) && this.disabled) ||\r\n (isDisabledInteractiveMixin(this) && this.disabledInteractive)\r\n ) {\r\n return;\r\n }\r\n\r\n const form = this[internals].form;\r\n if (!form || this.type === \"button\") {\r\n return;\r\n }\r\n\r\n await new Promise<void>((resolve) => setTimeout(resolve));\r\n\r\n if (e.defaultPrevented) {\r\n return;\r\n }\r\n\r\n switch (this.type) {\r\n case \"reset\":\r\n form.reset();\r\n break;\r\n\r\n case \"submit\":\r\n form.addEventListener(\r\n \"submit\",\r\n (e) =>\r\n Object.defineProperty(e, \"submitter\", {\r\n configurable: true,\r\n enumerable: true,\r\n get: () => this,\r\n }),\r\n { capture: true, once: true }\r\n );\r\n\r\n this[internals].setFormValue(this.value);\r\n form.requestSubmit();\r\n break;\r\n }\r\n };\r\n }\r\n\r\n return _FormSubmitterMixin;\r\n}\r\n","import { LitElement, PropertyValues } from \"lit\";\r\nimport { property } from \"lit/decorators.js\";\r\n\r\nimport { Constructor } from \"./Constructor\";\r\nimport { hasKeys } from \"./hasKeys\";\r\n\r\n/** Defines functionality for an attached element associated with an interactive control. */\r\nexport interface HtmlForMixin {\r\n /** The identifier of the interactive control to which this element is attached. */\r\n htmlFor: string | null;\r\n\r\n /** The interactive element to which this element is attached. */\r\n readonly control: HTMLElement | null;\r\n\r\n /**\r\n * Attaches the element to an interactive control.\r\n * @param {HTMLElement} control The element that controls the attachable element.\r\n */\r\n attach(control: HTMLElement): void;\r\n\r\n /** Detaches the element from its current interactive control. */\r\n detach(): void;\r\n}\r\n\r\n/**\r\n * Determines whether a value is a `HtmlForMixin`.\r\n * @param {unknown} value The value to test.\r\n * @returns {value is HtmlForMixin} Whether `value` is a `HtmlForMixin`.\r\n */\r\nexport function isHtmlForMixin(value: unknown): value is HtmlForMixin {\r\n return hasKeys<HtmlForMixin>(value, \"htmlFor\", \"control\", \"attach\", \"detach\");\r\n}\r\n\r\nconst _control = Symbol(\"_control\");\r\nconst _firstUpdated = Symbol(\"_firstUpdated\");\r\n\r\n/**\r\n * Mixin that creates an attached element associated with an interactive control.\r\n * @template T The type of the base class.\r\n * @param {T} base The base class.\r\n * @returns {Constructor<HtmlForMixin> & T} A constructor extends `base` and implements `HtmlForMixin`.\r\n */\r\nexport function HtmlFor<T extends Constructor<LitElement>>(base: T): Constructor<HtmlForMixin> & T {\r\n abstract class _HtmlForMixin extends base implements HtmlForMixin {\r\n /** @private */ private [_control]: HTMLElement | null = null;\r\n /** @private */ private [_firstUpdated] = false;\r\n\r\n /** The identifier of the interactive control to which this element is attached. */\r\n @property({ attribute: \"for\" }) htmlFor: string | null = null;\r\n\r\n /** The interactive element to which this element is attached. */\r\n get control() {\r\n return this[_control];\r\n }\r\n\r\n /** @inheritdoc */\r\n protected override firstUpdated(_changedProperties: PropertyValues): void {\r\n super.firstUpdated(_changedProperties);\r\n this[_firstUpdated] = true;\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(\"htmlFor\")) {\r\n if (this.htmlFor) {\r\n const control = (this.getRootNode() as ParentNode)?.querySelector(`#${this.htmlFor}`);\r\n if (control !== this.control) {\r\n if (this.control) {\r\n this.detach();\r\n }\r\n if (control instanceof HTMLElement) {\r\n this.attach(control);\r\n }\r\n }\r\n } else if (this.control && this[_firstUpdated]) {\r\n this.detach();\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Attaches the element to an interactive control.\r\n * @param {HTMLElement} control The element that controls the attachable element.\r\n */\r\n attach(control: HTMLElement): void {\r\n this[_control] = control;\r\n }\r\n\r\n /** Detaches the element from its current interactive control. */\r\n detach(): void {\r\n this[_control] = null;\r\n }\r\n }\r\n\r\n return _HtmlForMixin;\r\n}\r\n","import { LitElement } from \"lit\";\r\n\r\nimport { Constructor } from \"./Constructor\";\r\nimport { isDisabledMixin } from \"./Disabled\";\r\nimport { isDisabledInteractiveMixin } from \"./DisabledInteractive\";\r\n\r\n/**\r\n * Mixin to augment an element with behavior emits a click event on keyboard events.\r\n * @template T The type of the base class.\r\n * @param {T} base The base class.\r\n * @param {boolean} [allowEnter=true] Whether the `ENTER` key emits a click event.\r\n * @returns {T} A class that extends `base` with keyboard click behavior.\r\n */\r\nexport function KeyboardClick<T extends Constructor<LitElement>>(base: T, allowEnter: boolean = true): T {\r\n abstract class _KeyboardClickMixin extends base {\r\n /** @private */\r\n readonly #keyUpHandler = (e: KeyboardEvent) => this.#handleKeyUp(e);\r\n\r\n /** @inheritdoc */\r\n override connectedCallback(): void {\r\n super.connectedCallback();\r\n this.addEventListener(\"keyup\", this.#keyUpHandler);\r\n }\r\n\r\n /** @inheritdoc */\r\n override disconnectedCallback(): void {\r\n super.disconnectedCallback();\r\n this.removeEventListener(\"keyup\", this.#keyUpHandler);\r\n }\r\n\r\n /** @private */\r\n #handleKeyUp(e: KeyboardEvent): void {\r\n if (\r\n e.defaultPrevented ||\r\n e.target !== e.currentTarget ||\r\n (isDisabledMixin(this) && this.disabled) ||\r\n (isDisabledInteractiveMixin(this) && this.disabledInteractive)\r\n ) {\r\n return;\r\n }\r\n\r\n if (e.key === \" \" || (allowEnter && e.key === \"Enter\")) {\r\n // NOTE: the dispatched click event will not be trusted since it is synthetic.\r\n this.dispatchEvent(\r\n new MouseEvent(\"click\", {\r\n cancelable: true,\r\n bubbles: true,\r\n composed: true,\r\n })\r\n );\r\n }\r\n }\r\n }\r\n\r\n return _KeyboardClickMixin;\r\n}\r\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","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","import { html, LitElement, nothing } from \"lit\";\r\nimport { property } from \"lit/decorators.js\";\r\nimport { ifDefined } from \"lit/directives/if-defined.js\";\r\n\r\nimport { Constructor } from \"./Constructor\";\r\nimport { isDisabledInteractiveMixin } from \"./DisabledInteractive\";\r\nimport { isDisabledMixin } from \"./Disabled\";\r\nimport { hasKeys } from \"./hasKeys\";\r\n\r\n/** A symbol through which to access a function used to render a pseudo link. */\r\nexport const renderPseudoLink = Symbol(\"renderPseudoLink\");\r\n\r\n/** Specifies the possible targets for a link. */\r\nexport type LinkTarget = \"_self\" | \"_blank\" | \"_parent\" | \"_top\" | (string & {});\r\n\r\n/** Defines functionality for an interactive element that functions as a link. */\r\nexport interface LinkButtonMixin {\r\n /**\r\n * The URL to which the link button points.\r\n * @default \"\"\r\n */\r\n href: string;\r\n\r\n /**\r\n * The target of the link button.\r\n * @default \"\"\r\n */\r\n target: LinkTarget;\r\n\r\n /**\r\n * The relationship between the `target` of the link button and the document.\r\n * @default \"\"\r\n */\r\n rel: string;\r\n\r\n /**\r\n * A value indicating whether the `target` of the link button will be downloaded,\r\n * optionally specifying the new name of the file.\r\n * @default null\r\n */\r\n download: string | null;\r\n\r\n /** Function used to render a pseudo link. */\r\n [renderPseudoLink](): unknown;\r\n}\r\n\r\n/**\r\n * Determines whether a value is a `LinkButtonMixin`.\r\n * @param {unknown} value The value to test.\r\n * @returns {value is LinkButtonMixin} Whether `value` is a `LinkButtonMixin`.\r\n */\r\nexport function isLinkButtonMixin(value: unknown): value is LinkButtonMixin {\r\n return hasKeys<LinkButtonMixin>(value, \"download\", \"href\", \"rel\", \"target\");\r\n}\r\n\r\nconst _clickHandler = Symbol(\"_clickHandler\");\r\n\r\n/**\r\n * Mixin to augment an element with behavior that supports functioning as a link.\r\n * @template T The type of the base class.\r\n * @param {T} base The base class.\r\n * @returns {Constructor<LinkButtonMixin>} A constructor that implements `LinkButtonMixin`.\r\n */\r\nexport function LinkButton<T extends Constructor<LitElement>>(base: T): Constructor<LinkButtonMixin> & T {\r\n abstract class _LinkButtonMixin extends base implements LinkButtonMixin {\r\n private [_clickHandler] = async (e: Event) => {\r\n if (isDisabledInteractiveMixin(this) && this.disabledInteractive) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n }\r\n\r\n await new Promise<void>((resolve) => resolve());\r\n if (e.defaultPrevented) {\r\n return;\r\n }\r\n\r\n if (this.href) {\r\n e.preventDefault();\r\n e.stopImmediatePropagation();\r\n\r\n const link = document.createElement(\"a\");\r\n link.href = this.href;\r\n link.rel = this.rel;\r\n link.target = this.target;\r\n if (this.download != null) {\r\n link.download = this.download;\r\n }\r\n\r\n link.addEventListener(\"click\", async () => {\r\n await new Promise<void>((resolve) => resolve());\r\n link.remove();\r\n });\r\n\r\n document.body.appendChild(link);\r\n link.click();\r\n }\r\n };\r\n\r\n /**\r\n * The URL to which the link button points.\r\n * @default \"\"\r\n */\r\n @property() href = \"\";\r\n\r\n /**\r\n * The target of the link button.\r\n * @default \"\"\r\n */\r\n @property() target: LinkTarget = \"\";\r\n\r\n /**\r\n * The relationship between the `target` of the link button and the document.\r\n * @default \"\"\r\n */\r\n @property() rel = \"\";\r\n\r\n /**\r\n * A value indicating whether the `target` of the link button will be downloaded,\r\n * optionally specifying the new name of the file.\r\n * @default null\r\n */\r\n @property({ reflect: false }) get download(): string | null {\r\n return this.getAttribute(\"download\");\r\n }\r\n set download(value: string | null) {\r\n const old = this.download;\r\n if (old !== value) {\r\n if (value) {\r\n this.setAttribute(\"download\", value);\r\n } else {\r\n this.removeAttribute(\"download\");\r\n }\r\n this.requestUpdate(\"download\", old);\r\n }\r\n }\r\n\r\n /** @inheritdoc */\r\n override connectedCallback(): void {\r\n super.connectedCallback();\r\n this.addEventListener(\"click\", this[_clickHandler]);\r\n\r\n if (this.hasAttribute(\"href\") && this.role === \"button\") {\r\n this.role = \"link\";\r\n }\r\n }\r\n\r\n /** @inheritdoc */\r\n override disconnectedCallback(): void {\r\n super.disconnectedCallback();\r\n this.removeEventListener(\"click\", this[_clickHandler]);\r\n }\r\n\r\n /** @internal */\r\n [renderPseudoLink](): unknown {\r\n const disabled = isDisabledMixin(this) && this.disabled;\r\n const disabledInteractive = isDisabledInteractiveMixin(this) && this.disabledInteractive;\r\n\r\n return !disabled && !disabledInteractive && this.href\r\n ? html`<a\r\n href=\"${this.href}\"\r\n target=\"${ifDefined(this.target || undefined)}\"\r\n rel=\"${ifDefined(this.rel || undefined)}\"\r\n download=\"${ifDefined(this.download || undefined)}\"\r\n tabindex=\"-1\"\r\n aria-hidden=\"true\"\r\n @pointerdown=\"${this.#handleLinkPointerDown}\"\r\n @focus=\"${this.#handleLinkFocus}\"\r\n @blur=\"${this.#handleLinkBlur}\"\r\n ></a>`\r\n : nothing;\r\n }\r\n\r\n /** @private */\r\n #handleLinkPointerDown(e: PointerEvent): void {\r\n if (e.button !== 2) {\r\n e.preventDefault();\r\n e.stopImmediatePropagation();\r\n\r\n this.dispatchEvent(\r\n new MouseEvent(\"click\", {\r\n bubbles: true,\r\n cancelable: true,\r\n view: window,\r\n })\r\n );\r\n } else {\r\n (e.target as HTMLLinkElement).removeAttribute(\"aria-hidden\");\r\n }\r\n }\r\n\r\n /** @private */\r\n #handleLinkFocus(e: Event): void {\r\n (e.target as HTMLLinkElement).blur();\r\n this.focus();\r\n }\r\n\r\n /** @private */\r\n #handleLinkBlur(e: Event): void {\r\n (e.target as HTMLLinkElement).setAttribute(\"aria-hidden\", \"true\");\r\n }\r\n }\r\n\r\n return _LinkButtonMixin;\r\n}\r\n","import { LitElement, PropertyValues } from \"lit\";\r\nimport { property } from \"lit/decorators.js\";\r\n\r\nimport { Constructor } from \"./Constructor\";\r\nimport { hasKeys } from \"./hasKeys\";\r\n\r\n/** Defines functionality for an element which supports a read-only state. */\r\nexport interface ReadOnlyMixin {\r\n /**\r\n * A value indicating whether the element is read-only.\r\n * @default false\r\n */\r\n readOnly: boolean;\r\n}\r\n\r\n/**\r\n * Determines whether a value is a `ReadOnlyMixin`.\r\n * @param {unknown} value The value to test.\r\n * @returns A value indicating whether `value` is a `ReadOnlyMixin`.\r\n */\r\nexport function isReadOnlyMixin(value: unknown): value is ReadOnlyMixin {\r\n return hasKeys<ReadOnlyMixin>(value, \"readOnly\");\r\n}\r\n\r\n/**\r\n * Mixin to augment an element with behavior that supports a read-only state.\r\n * @template T The type of the base class.\r\n * @param {T} base The base class.\r\n * @param {boolean} reflect A value indicating whether the read-only state is reflected as an attribute. The default value is `true`.\r\n * @returns {Constructor<ReadOnlyMixin> & T} A constructor that implements `ReadOnlyMixin`.\r\n */\r\nexport function ReadOnly<T extends Constructor<LitElement>>(\r\n base: T,\r\n reflect: boolean = true\r\n): Constructor<ReadOnlyMixin> & T {\r\n abstract class _ReadOnlyMixin extends base implements ReadOnlyMixin {\r\n /**\r\n * A value indicating whether the element is read-only.\r\n * @default false\r\n */\r\n @property({ attribute: \"readonly\", type: Boolean, reflect: reflect }) readOnly = false;\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(\"readOnly\")) {\r\n this.ariaReadOnly = this.readOnly ? \"true\" : null;\r\n }\r\n }\r\n }\r\n return _ReadOnlyMixin;\r\n}\r\n","import { LitElement, PropertyValues } from \"lit\";\r\nimport { property } from \"lit/decorators.js\";\r\n\r\nimport { Constructor } from \"./Constructor\";\r\nimport { hasKeys } from \"./hasKeys\";\r\n\r\n/** Defines functionality for an element which supports a required state. */\r\nexport interface RequiredMixin {\r\n /**\r\n * Whether a value is required for the element.\r\n * @default false\r\n */\r\n required: boolean;\r\n\r\n /** Whether a value is not required for the element. */\r\n readonly optional: boolean;\r\n}\r\n\r\n/**\r\n * Determines whether a value is a `RequiredMixin`.\r\n * @param {unknown} value The value to test.\r\n * @returns A value indicating whether `value` is a `RequiredMixin`.\r\n */\r\nexport function isRequiredMixin(value: unknown): value is RequiredMixin {\r\n return hasKeys<RequiredMixin>(value, \"required\", \"optional\");\r\n}\r\n\r\n/**\r\n * Mixin to augment an element with behavior that supports a required state.\r\n * @template T The type of the base class.\r\n * @param {T} base The base class.\r\n * @returns {Constructor<RequiredMixin> & T} A constructor that implements `RequiredMixin`.\r\n */\r\nexport function Required<T extends Constructor<LitElement>>(base: T): Constructor<RequiredMixin> & T {\r\n abstract class _RequiredMixin extends base implements RequiredMixin {\r\n /**\r\n * Whether a value is required for the element.\r\n * @default false\r\n */\r\n @property({ type: Boolean, reflect: true }) required = false;\r\n\r\n /** Whether a value is not required for the element. */\r\n get optional() {\r\n return !this.required;\r\n }\r\n\r\n /** @inheritdoc */\r\n protected override update(changedProperties: PropertyValues<this>): void {\r\n super.update(changedProperties);\r\n if (changedProperties.has(\"required\")) {\r\n this.ariaRequired = `${this.required}`;\r\n }\r\n }\r\n }\r\n return _RequiredMixin;\r\n}\r\n","import { LitElement } from \"lit\";\r\n\r\nimport { Constructor } from \"./Constructor\";\r\nimport { ConstraintValidationMixin, isConstraintValidationMixin, validate } from \"./ConstraintValidation\";\r\nimport { isCheckedMixin } from \"./Checked\";\r\nimport { isRequiredMixin, RequiredMixin } from \"./Required\";\r\n\r\n/** Defines functionality for an element which supports validating a required state. */\r\nexport interface RequiredConstraintValidationMixin extends RequiredMixin, ConstraintValidationMixin {}\r\n\r\n/**\r\n * Determines whether a value is a `RequiredConstraintValidationMixin`.\r\n * @param {unknown} value The value to test.\r\n * @returns A value indicating whether `value` is a `RequiredConstraintValidationMixin`.\r\n */\r\nexport function isRequiredConstraintValidationMixin(value: unknown): value is RequiredConstraintValidationMixin {\r\n return isRequiredMixin(value) && isConstraintValidationMixin(value);\r\n}\r\n\r\n/**\r\n * Mixin to augment an element with behavior that supports a required state.\r\n * @template T The type of the base class.\r\n * @param {T} base The base class.\r\n * @returns {Constructor<RequiredConstraintValidationMixin> & T} A constructor that implements `RequiredConstraintValidationMixin`.\r\n */\r\nexport function RequiredConstraintValidation<\r\n T extends Constructor<LitElement & RequiredMixin & ConstraintValidationMixin>,\r\n>(base: T): Constructor<RequiredConstraintValidationMixin> & T {\r\n abstract class _RequiredConstraintValidation extends base implements RequiredConstraintValidationMixin {\r\n /** @internal */\r\n override [validate](): ValidityStateFlags | undefined {\r\n const validity = super[validate]();\r\n if (!validity && this.required) {\r\n if (isCheckedMixin(this) && !this.checked) {\r\n return { valueMissing: true };\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n if (!(<any>this).value) {\r\n return { valueMissing: true };\r\n }\r\n }\r\n return validity;\r\n }\r\n }\r\n return _RequiredConstraintValidation;\r\n}\r\n","import { LitElement } from \"lit\";\r\n\r\nimport { Constructor } from \"./Constructor\";\r\n\r\n/** Specifies valid values for the ARIA `role` attribute. */\r\nexport type ARIARole =\r\n | \"alert\"\r\n | \"alertdialog\"\r\n | \"button\"\r\n | \"checkbox\"\r\n | \"dialog\"\r\n | \"gridcell\"\r\n | \"link\"\r\n | \"log\"\r\n | \"marquee\"\r\n | \"menuitem\"\r\n | \"menuitemcheckbox\"\r\n | \"menuitemradio\"\r\n | \"option\"\r\n | \"progressbar\"\r\n | \"radio\"\r\n | \"scrollbar\"\r\n | \"searchbox\"\r\n | \"slider\"\r\n | \"spinbutton\"\r\n | \"status\"\r\n | \"switch\"\r\n | \"tab\"\r\n | \"tabpanel\"\r\n | \"textbox\"\r\n | \"timer\"\r\n | \"tooltip\"\r\n | \"treeitem\"\r\n | \"combobox\"\r\n | \"grid\"\r\n | \"listbox\"\r\n | \"menu\"\r\n | \"menubar\"\r\n | \"radiogroup\"\r\n | \"tablist\"\r\n | \"tree\"\r\n | \"treegrid\"\r\n | \"application\"\r\n | \"article\"\r\n | \"cell\"\r\n | \"columnheader\"\r\n | \"definition\"\r\n | \"directory\"\r\n | \"document\"\r\n | \"feed\"\r\n | \"figure\"\r\n | \"group\"\r\n | \"heading\"\r\n | \"img\"\r\n | \"list\"\r\n | \"listitem\"\r\n | \"math\"\r\n | \"none\"\r\n | \"note\"\r\n | \"presentation\"\r\n | \"region\"\r\n | \"row\"\r\n | \"rowgroup\"\r\n | \"rowheader\"\r\n | \"separator\"\r\n | \"table\"\r\n | \"term\"\r\n | \"text\"\r\n | \"toolbar\"\r\n | \"banner\"\r\n | \"complementary\"\r\n | \"contentinfo\"\r\n | \"form\"\r\n | \"main\"\r\n | \"navigation\"\r\n | \"region\"\r\n | \"search\"\r\n | \"doc-abstract\"\r\n | \"doc-acknowledgments\"\r\n | \"doc-afterword\"\r\n | \"doc-appendix\"\r\n | \"doc-backlink\"\r\n | \"doc-biblioentry\"\r\n | \"doc-bibliography\"\r\n | \"doc-biblioref\"\r\n | \"doc-chapter\"\r\n | \"doc-colophon\"\r\n | \"doc-conclusion\"\r\n | \"doc-cover\"\r\n | \"doc-credit\"\r\n | \"doc-credits\"\r\n | \"doc-dedication\"\r\n | \"doc-endnote\"\r\n | \"doc-endnotes\"\r\n | \"doc-epigraph\"\r\n | \"doc-epilogue\"\r\n | \"doc-errata\"\r\n | \"doc-example\"\r\n | \"doc-footnote\"\r\n | \"doc-foreword\"\r\n | \"doc-glossary\"\r\n | \"doc-glossref\"\r\n | \"doc-index\"\r\n | \"doc-introduction\"\r\n | \"doc-noteref\"\r\n | \"doc-notice\"\r\n | \"doc-pagebreak\"\r\n | \"doc-pagelist\"\r\n | \"doc-part\"\r\n | \"doc-preface\"\r\n | \"doc-prologue\"\r\n | \"doc-pullquote\"\r\n | \"doc-qna\"\r\n | \"doc-subtitle\"\r\n | \"doc-tip\"\r\n | \"doc-toc\";\r\n\r\n/**\r\n * Mixin to augment an element with an ARIA role.\r\n * @template T The type of the base class.\r\n * @param {T} base The base class.\r\n * @param {ARIARole} role The ARIA role.\r\n * @returns {Constructor & T} A constructor that implements focusable behavior.\r\n */\r\nexport function Role<T extends Constructor<LitElement>>(base: T, role: ARIARole): Constructor & T {\r\n abstract class _RoleMixin extends base {\r\n /** @inheritdoc */\r\n override connectedCallback(): void {\r\n this.role = this.role || role;\r\n super.connectedCallback();\r\n }\r\n }\r\n\r\n return _RoleMixin;\r\n}\r\n","import { LitElement, PropertyValues } from \"lit\";\r\nimport { property } from \"lit/decorators.js\";\r\n\r\nimport { Constructor } from \"./Constructor\";\r\nimport { hasKeys } from \"./hasKeys\";\r\n\r\n/** Defines functionality for an element which supports a vertical orientation. */\r\nexport interface VerticalMixin {\r\n /**\r\n * Whether the element is oriented vertically.\r\n * @default false\r\n */\r\n vertical: boolean;\r\n}\r\n\r\n/**\r\n * Determines whether a value is a `VerticalMixin`.\r\n * @param {unknown} value The value to test.\r\n * @returns A value indicating whether `value` is a `VerticalMixin`.\r\n */\r\nexport function isVerticalMixin(value: unknown): value is VerticalMixin {\r\n return hasKeys<VerticalMixin>(value, \"vertical\");\r\n}\r\n\r\n/**\r\n * Mixin to augment an element with behavior that supports a vertical orientation.\r\n * @template T The type of the base class.\r\n * @param {T} base The base class.\r\n * @returns {Constructor<VerticalMixin> & T} A constructor that implements `VerticalMixin`.\r\n */\r\nexport function Vertical<T extends Constructor<LitElement>>(base: T): Constructor<VerticalMixin> & T {\r\n abstract class _VerticalMixin extends base implements VerticalMixin {\r\n /**\r\n * Whether the element is oriented vertically.\r\n * @default false\r\n */\r\n @property({ type: Boolean, reflect: true }) vertical = false;\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(\"vertical\")) {\r\n this.ariaOrientation = this.vertical ? \"vertical\" : \"horizontal\";\r\n }\r\n }\r\n }\r\n return _VerticalMixin;\r\n}\r\n","/**\r\n * Gets the text content of a given node, including slotted content.\r\n * @param {Node} node The node for which to get text content.\r\n * @param {boolean} [trim = false] A value indicating whether to trim content.\r\n * @returns {string} The text content of `node`.\r\n */\r\nexport function getTextContent(node: Node, trim: boolean = false): string {\r\n let textContent = \"\";\r\n\r\n switch (node.nodeType) {\r\n case Node.TEXT_NODE:\r\n textContent = node.nodeValue ?? \"\";\r\n break;\r\n case Node.ELEMENT_NODE:\r\n if (node instanceof HTMLSlotElement) {\r\n for (const assignedNode of node.assignedNodes({ flatten: true })) {\r\n textContent += getTextContent(assignedNode, trim);\r\n }\r\n } else {\r\n for (const child of node.childNodes) {\r\n textContent += getTextContent(child, trim);\r\n }\r\n }\r\n break;\r\n }\r\n\r\n if (trim) {\r\n textContent = textContent.trim();\r\n }\r\n return textContent;\r\n}\r\n","/**\r\n * Generates a new globally unique identifier (GUID).\r\n * @returns {string} A new globally unique identifier.\r\n */\r\nexport function guid(): string {\r\n return \"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx\".replace(/[xy]/g, (c) => {\r\n const r = (Math.random() * 16) | 0;\r\n const v = c === \"x\" ? r : (r & 0x3) | 0x8;\r\n return v.toString(16);\r\n });\r\n}\r\n","/**\r\n * Determines whether a slot has any assigned nodes.\r\n * @param {HTMLSlotElement} slot The slot to test.\r\n * @returns {boolean} Whether `slot` has any assigned nodes.\r\n */\r\nexport function hasAssignedNodes(slot: HTMLSlotElement): boolean {\r\n return slot.assignedNodes({ flatten: true }).length > 0;\r\n}\r\n","import { isServer } from \"lit\";\r\n\r\n/**\r\n * Determines whether reduced motion is preferred.\r\n * @returns {boolean} Whether reduced motion is preferred.\r\n */\r\nexport function prefersReducedMotion(): boolean {\r\n return isServer || matchMedia(\"(prefers-reduced-motion)\").matches;\r\n}\r\n","/**\r\n * If needed, scrolls an element into view within a given scroll container.\r\n * @param {HTMLElement} element The element to scroll into view.\r\n * @param {HTMLElement} scrollContainer The scrollable container.\r\n * @param {ScrollIntoViewOptions} [options=undefined] Options used to scroll into view.\r\n */\r\nexport function scrollIntoViewIfNeeded(\r\n element: HTMLElement,\r\n scrollContainer: HTMLElement,\r\n options?: ScrollIntoViewOptions\r\n): void {\r\n const containerBounds = scrollContainer.getBoundingClientRect();\r\n const elementBounds = element.getBoundingClientRect();\r\n\r\n if (elementBounds.top < containerBounds.top || elementBounds.bottom > containerBounds.bottom) {\r\n element.scrollIntoView(options);\r\n }\r\n}\r\n","/* eslint-disable @typescript-eslint/no-unsafe-declaration-merging */\r\n\r\nimport { css, CSSResultGroup, html, LitElement, PropertyValues, unsafeCSS } from \"lit\";\r\nimport { customElement, property } from \"lit/decorators.js\";\r\n\r\nimport { EventAttribute } from \"../mixins\";\r\nimport { DesignToken } from \"../tokens\";\r\nimport { prefersReducedMotion } from \"../utils\";\r\n\r\n/**\r\n * A container used to expand and collapse content.\r\n *\r\n * @example\r\n * ```html\r\n * <m3e-collapsible>\r\n * <!-- Collapsible content -->\r\n * </m3e-collapsible>\r\n * ```\r\n *\r\n * @tag m3e-collapsible\r\n *\r\n * @slot - Renders the collapsible content.\r\n *\r\n * @attr open - Whether content is visible.\r\n *\r\n * @fires opening - Emitted when the collapsible begins to open.\r\n * @fires opened - Emitted when the collapsible has opened.\r\n * @fires closing - Emitted when the collapsible begins to close.\r\n * @fires closed - Emitted when the collapsible has closed.\r\n *\r\n * @cssprop --m3e-collapsible-animation-duration - The duration of the expand / collapse animation.\r\n */\r\n@customElement(\"m3e-collapsible\")\r\nexport class M3eCollapsibleElement extends EventAttribute(LitElement, \"opening\", \"opened\", \"closing\", \"closed\") {\r\n /** The styles of the element. */\r\n static override styles: CSSResultGroup = css`\r\n :host {\r\n display: block;\r\n height: 0px;\r\n overflow: hidden;\r\n transition: ${unsafeCSS(`visibility var(--m3e-collapsible-animation-duration, ${DesignToken.motion.duration.medium1})\r\n ${DesignToken.motion.easing.standard},\r\n height var(--m3e-collapsible-animation-duration, ${DesignToken.motion.duration.medium1})\r\n ${DesignToken.motion.easing.standard},\r\n padding-top var(--m3e-collapsible-animation-duration, ${DesignToken.motion.duration.medium1})\r\n ${DesignToken.motion.easing.standard},\r\n padding-bottom var(--m3e-collapsible-animation-duration, ${DesignToken.motion.duration.medium1})\r\n ${DesignToken.motion.easing.standard}`)};\r\n }\r\n :host(:not(.-closing):not([open])) {\r\n visibility: hidden;\r\n }\r\n :host([open]) {\r\n visibility: visible;\r\n }\r\n :host(:not([open])) {\r\n min-height: unset !important;\r\n padding-top: 0px !important;\r\n padding-bottom: 0px !important;\r\n }\r\n :host(.-no-animate) {\r\n transition-duration: 0ms;\r\n }\r\n ::slotted(*) {\r\n --m3e-collapsible-animation-duration: initial;\r\n }\r\n @media (prefers-reduced-motion) {\r\n :host {\r\n transition: none;\r\n }\r\n }\r\n `;\r\n\r\n /** @private */ #slotChanged = false;\r\n /** @private */ #hasOpened = false;\r\n\r\n /**\r\n * Whether content is visible.\r\n * @default false\r\n */\r\n @property({ type: Boolean, reflect: true }) open = false;\r\n\r\n /** @inheritdoc */\r\n protected override update(changedProperties: PropertyValues): void {\r\n super.update(changedProperties);\r\n\r\n this.classList.toggle(\"-no-animate\", true);\r\n\r\n if (!this.#slotChanged) {\r\n if (this.open) {\r\n this.#hasOpened = true;\r\n this.#autoSize();\r\n }\r\n this.#slotChanged = true;\r\n return;\r\n }\r\n\r\n this.toggleAttribute(\"inert\", !this.open);\r\n\r\n if (this.open) {\r\n this.#hasOpened = true;\r\n this.classList.toggle(\"-closing\", false);\r\n this.classList.toggle(\"-opening\", true);\r\n this.dispatchEvent(new Event(\"opening\"));\r\n\r\n this.#clearSize();\r\n this.classList.toggle(\"-no-animate\", false);\r\n this.#actualSize();\r\n\r\n if (prefersReducedMotion()) {\r\n this.classList.toggle(\"-opening\", false);\r\n this.dispatchEvent(new Event(\"opened\"));\r\n } else {\r\n this.addEventListener(\r\n \"transitionend\",\r\n () => {\r\n if (this.open) {\r\n this.#autoSize();\r\n this.classList.toggle(\"-opening\", false);\r\n this.dispatchEvent(new Event(\"opened\"));\r\n }\r\n },\r\n { once: true }\r\n );\r\n }\r\n } else {\r\n this.classList.toggle(\"-opening\", false);\r\n this.classList.toggle(\"-closing\", true);\r\n this.dispatchEvent(new Event(\"closing\"));\r\n\r\n this.#actualSize();\r\n if (this.#hasOpened) {\r\n this.classList.toggle(\"-no-animate\", false);\r\n }\r\n\r\n if (prefersReducedMotion()) {\r\n this.#clearSize();\r\n this.classList.toggle(\"-closing\", false);\r\n this.dispatchEvent(new Event(\"closed\"));\r\n } else {\r\n requestAnimationFrame(() => {\r\n this.#clearSize();\r\n this.addEventListener(\r\n \"transitionend\",\r\n () => {\r\n if (!this.open) {\r\n this.classList.toggle(\"-closing\", false);\r\n this.dispatchEvent(new Event(\"closed\"));\r\n }\r\n },\r\n { once: true }\r\n );\r\n });\r\n }\r\n }\r\n }\r\n\r\n /** @inheritdoc */\r\n protected override render(): unknown {\r\n return html`<slot @slotchange=\"${this.#handleSlotChange}\"></slot>`;\r\n }\r\n\r\n /** @private */\r\n #handleSlotChange() {\r\n this.#slotChanged = true;\r\n }\r\n\r\n /** @private */\r\n #autoSize(): void {\r\n this.style.height = \"auto\";\r\n }\r\n\r\n /** @private */\r\n #clearSize(): void {\r\n this.style.height = \"\";\r\n }\r\n\r\n /** @private */\r\n #actualSize(): void {\r\n this.style.height = `${this.scrollHeight}px`;\r\n }\r\n}\r\n\r\ninterface M3eCollapsibleElementEventMap extends HTMLElementEventMap {\r\n opening: Event;\r\n opened: Event;\r\n closing: Event;\r\n closed: Event;\r\n}\r\n\r\nexport interface M3eCollapsibleElement {\r\n addEventListener<K extends keyof M3eCollapsibleElementEventMap>(\r\n type: K,\r\n listener: (this: M3eCollapsibleElement, ev: M3eCollapsibleElementEventMap[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 M3eCollapsibleElementEventMap>(\r\n type: K,\r\n listener: (this: M3eCollapsibleElement, ev: M3eCollapsibleElementEventMap[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\ndeclare global {\r\n interface HTMLElementTagNameMap {\r\n \"m3e-collapsible\": M3eCollapsibleElement;\r\n }\r\n}\r\n","import { unsafeCSS } from \"lit\";\r\n\r\nimport { DesignToken } from \"../tokens\";\r\n\r\n/**\r\n * Component design tokens that control the `M3eElevationElement`.\r\n * @internal\r\n */\r\nexport const ElevationToken = {\r\n liftDuration: unsafeCSS(`var(--m3e-elevation-lift-duration, ${DesignToken.motion.duration.short4})`),\r\n liftEasing: unsafeCSS(`var(--m3e-elevation-lift-easing, ${DesignToken.motion.easing.standard})`),\r\n settleDuration: unsafeCSS(`var(--m3e-elevation-settle-duration, ${DesignToken.motion.duration.short3})`),\r\n settleEasing: unsafeCSS(`var(--m3e-elevation-settle-easing, ${DesignToken.motion.easing.standardAccelerate})`),\r\n level: unsafeCSS(`var(--m3e-elevation-level, ${DesignToken.elevation.level0})`),\r\n hoverLevel: unsafeCSS(`var(--m3e-elevation-hover-level, ${DesignToken.elevation.level0})`),\r\n focusLevel: unsafeCSS(`var(--m3e-elevation-focus-level, ${DesignToken.elevation.level0})`),\r\n pressedLevel: unsafeCSS(`var(--m3e-elevation-pressed-level, ${DesignToken.elevation.level0})`),\r\n} as const;\r\n","import { css, CSSResultGroup, html, LitElement, PropertyValues, unsafeCSS } from \"lit\";\r\nimport { customElement, property, query } from \"lit/decorators.js\";\r\n\r\nimport { FocusController, HoverController, PressedController } from \"../controllers\";\r\nimport { HtmlFor, Role } from \"../mixins\";\r\n\r\nimport { ElevationLevel } from \"./ElevationLevel\";\r\nimport { ElevationToken } from \"./ElevationToken\";\r\nimport { DesignToken } from \"../tokens\";\r\n\r\n/**\r\n * Visually depicts elevation using a shadow.\r\n *\r\n * @description\r\n * The `m3e-elevation` component is an absolute positioned element used to depict elevation using a shadow.\r\n * The parenting element must be a relative positioned element and allow for overflow. Use the `level` attribute\r\n * to specify the elevation level.\r\n *\r\n * The component can also be attached to another element using the `for` attribute. When attached, elevation will\r\n * be lifted by 1 level on hover. This can be disabled using the `disabled` attribute.\r\n *\r\n * Alternately, use the `attach` and `detach` methods to programmatically attach and detach this element to another.\r\n *\r\n * @example\r\n * The following example illustrates basic markup. Note how the parenting element's position is `relative`. A parenting\r\n * element's position must be `relative` and overflow must be visible.\r\n *\r\n * ```html\r\n * <div style=\"position: relative;\">\r\n * <m3e-elevation level=\"1\"></m3e-elevation>\r\n * <div>\r\n * ```\r\n * @example\r\n * The following example illustrates attaching elevation to an interactive element. In this example, the parenting div\r\n * is given an `id` referenced by `m3e-elevation` using the `for` attribute. Note that `#myDiv` is not used when\r\n * specifying the attached element's identifier. The `#` is inferred.\r\n *\r\n * ```html\r\n * <div id=\"myDiv\" style=\"position: relative;\">\r\n * <m3e-elevation for=\"myDiv\" level=\"1\"></m3e-elevation>\r\n * <div>\r\n * ```\r\n *\r\n * @tag m3e-elevation\r\n *\r\n * @attr disabled - Whether hover and press events will not trigger changes in elevation, when attached to an interactive element.\r\n * @attr for - The identifier of the interactive control to which this element is attached.\r\n * @attr level - The level at which to visually depict elevation.\r\n *\r\n * @cssprop --m3e-elevation-color - Color used to depict elevation.\r\n * @cssprop --m3e-elevation-lift-duration - Duration when lifting.\r\n * @cssprop --m3e-elevation-lift-easing - Easing curve when lifting.\r\n * @cssprop --m3e-elevation-settle-duration - Duration when settling.\r\n * @cssprop --m3e-elevation-settle-easing - Easing curve when settling.\r\n * @cssprop --m3e-elevation-level - Elevation when resting (box-shadow).\r\n * @cssprop --m3e-elevation-hover-level - Elevation on hover (box-shadow).\r\n * @cssprop --m3e-elevation-focus-level - Elevation on focus (box-shadow).\r\n * @cssprop --m3e-elevation-pressed-level - Elevation on pressed (box-shadow).\r\n */\r\n@customElement(\"m3e-elevation\")\r\nexport class M3eElevationElement extends HtmlFor(Role(LitElement, \"none\")) {\r\n /** The styles of the element. */\r\n static override styles: CSSResultGroup = css`\r\n :host {\r\n display: block;\r\n }\r\n :host,\r\n .shadow {\r\n position: absolute;\r\n left: 0;\r\n top: 0;\r\n right: 0;\r\n bottom: 0;\r\n pointer-events: none;\r\n border-radius: inherit;\r\n }\r\n .shadow.resting,\r\n .shadow.focus,\r\n .shadow.pressed {\r\n will-change: box-shadow;\r\n transition: ${unsafeCSS(`box-shadow ${ElevationToken.settleDuration} ${ElevationToken.settleEasing};`)};\r\n }\r\n .shadow.hover {\r\n will-change: box-shadow;\r\n transition: ${unsafeCSS(`box-shadow ${ElevationToken.liftDuration} ${ElevationToken.liftEasing};`)};\r\n }\r\n .shadow {\r\n box-shadow: ${ElevationToken.level};\r\n }\r\n .shadow.focus {\r\n box-shadow: ${ElevationToken.focusLevel};\r\n }\r\n .shadow.hover {\r\n box-shadow: ${ElevationToken.hoverLevel};\r\n }\r\n .shadow.pressed {\r\n box-shadow: ${ElevationToken.pressedLevel};\r\n }\r\n :host([level=\"0\"]) .shadow {\r\n --m3e-elevation-level: ${DesignToken.elevation.level0};\r\n --m3e-elevation-hover-level: ${DesignToken.elevation.level1};\r\n }\r\n :host([level=\"1\"]) .shadow {\r\n --m3e-elevation-level: ${DesignToken.elevation.level1};\r\n --m3e-elevation-hover-level: ${DesignToken.elevation.level2};\r\n }\r\n :host([level=\"2\"]) .shadow {\r\n --m3e-elevation-level: ${DesignToken.elevation.level2};\r\n --m3e-elevation-hover-level: ${DesignToken.elevation.level3};\r\n }\r\n :host([level=\"3\"]) .shadow {\r\n --m3e-elevation-level: ${DesignToken.elevation.level3};\r\n --m3e-elevation-hover-level: ${DesignToken.elevation.level4};\r\n }\r\n :host([level=\"4\"]) .shadow {\r\n --m3e-elevation-level: ${DesignToken.elevation.level4};\r\n --m3e-elevation-hover-level: ${DesignToken.elevation.level5};\r\n }\r\n :host([level=\"5\"]) .shadow {\r\n --m3e-elevation-level: ${DesignToken.elevation.level5};\r\n --m3e-elevation-hover-level: ${ElevationToken.level};\r\n }\r\n :host([level]) .shadow {\r\n --m3e-elevation-focus-level: ${ElevationToken.level};\r\n --m3e-elevation-pressed-level: ${ElevationToken.level};\r\n }\r\n @media (prefers-reduced-motion) {\r\n .shadow.resting,\r\n .shadow.pressed,\r\n .shadow.focus,\r\n .shadow.hover {\r\n transition: none;\r\n }\r\n }\r\n @media (forced-colors: active) {\r\n .shadow {\r\n display: none;\r\n }\r\n }\r\n `;\r\n\r\n /** @private */\r\n readonly #hoverController = new HoverController(this, {\r\n target: null,\r\n callback: (hovering) => this.#handleHoverChange(hovering),\r\n });\r\n\r\n /** @private */\r\n readonly #focusController = new FocusController(this, {\r\n target: null,\r\n callback: (focused) => this.#handleFocusChange(focused),\r\n });\r\n\r\n /** @private */\r\n readonly #pressedController = new PressedController(this, {\r\n target: null,\r\n callback: (pressed) => this.#handlePressedChange(pressed),\r\n });\r\n\r\n @query(\".shadow\") private readonly _shadow?: HTMLElement;\r\n\r\n /**\r\n * Whether hover and press events will not trigger changes in elevation, when attached to an interactive element.\r\n * @default false\r\n */\r\n @property({ type: Boolean, reflect: true }) disabled = false;\r\n\r\n /**\r\n * The level at which to visually depict elevation.\r\n * @default null\r\n */\r\n @property({ type: Number, reflect: true }) level: ElevationLevel | null = null;\r\n\r\n /** @inheritdoc */\r\n override attach(control: HTMLElement): void {\r\n super.attach(control);\r\n\r\n this.#hoverController.observe(control);\r\n this.#focusController.observe(control);\r\n this.#pressedController.observe(control);\r\n }\r\n\r\n /** @inheritdoc */\r\n override detach(): void {\r\n if (this.control) {\r\n this.#hoverController.unobserve(this.control);\r\n this.#focusController.unobserve(this.control);\r\n this.#pressedController.unobserve(this.control);\r\n }\r\n super.detach();\r\n }\r\n\r\n /** @inheritdoc */\r\n override connectedCallback(): void {\r\n this.ariaHidden = \"true\";\r\n super.connectedCallback();\r\n }\r\n\r\n /** @inheritdoc */\r\n override disconnectedCallback(): void {\r\n super.disconnectedCallback();\r\n\r\n this._shadow?.classList.toggle(\"hover\", false);\r\n this._shadow?.classList.toggle(\"focus\", false);\r\n this._shadow?.classList.toggle(\"pressed\", false);\r\n this._shadow?.classList.toggle(\"resting\", false);\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(\"disabled\") && this.disabled) {\r\n this._shadow?.classList.toggle(\"hover\", false);\r\n this._shadow?.classList.toggle(\"focus\", false);\r\n this._shadow?.classList.toggle(\"pressed\", false);\r\n this._shadow?.classList.toggle(\"resting\", true);\r\n }\r\n }\r\n\r\n /** @inheritdoc */\r\n protected override render(): unknown {\r\n return html`<div class=\"shadow\"></div>`;\r\n }\r\n\r\n /** @private */\r\n #handleHoverChange(hovering: boolean): void {\r\n if (!this.disabled) {\r\n this._shadow?.classList.toggle(\"hover\", hovering);\r\n this._shadow?.classList.toggle(\"resting\", !hovering);\r\n }\r\n }\r\n\r\n /** @private */\r\n #handleFocusChange(focused: boolean): void {\r\n if (!this.disabled) {\r\n this._shadow?.classList.toggle(\"focus\", focused);\r\n }\r\n }\r\n\r\n /** @private */\r\n #handlePressedChange(pressed: boolean): void {\r\n if (!this.disabled) {\r\n this._shadow?.classList.toggle(\"pressed\", pressed);\r\n }\r\n }\r\n}\r\n\r\ndeclare global {\r\n interface HTMLElementTagNameMap {\r\n \"m3e-elevation\": M3eElevationElement;\r\n }\r\n}\r\n","import { unsafeCSS } from \"lit\";\r\n\r\nimport { DesignToken } from \"../tokens\";\r\n\r\n/**\r\n * Component design tokens that control the `M3eFocusRingElement`.\r\n * @internal\r\n */\r\nexport const FocusRingToken = {\r\n /** The color of the focus ring. */\r\n color: unsafeCSS(`var(--m3e-focus-ring-color, ${DesignToken.color.secondary})`),\r\n\r\n /** The duration of the focus ring animation. */\r\n duration: unsafeCSS(`var(--m3e-focus-ring-duration, ${DesignToken.motion.duration.long2})`),\r\n\r\n /** The thickness of the focus ring. */\r\n thickness: unsafeCSS(`var(--m3e-focus-ring-thickness, 0.1875rem)`),\r\n\r\n /** The visibility of the focus ring. */\r\n visibility: unsafeCSS(`var(--m3e-focus-ring-visibility, visible)`),\r\n\r\n /** The factor by which the focus ring grows. */\r\n growthFactor: unsafeCSS(`var(--m3e-focus-ring-growth-factor, 2)`),\r\n} as const;\r\n","import { css, CSSResultGroup, html, LitElement, PropertyValues } from \"lit\";\r\nimport { customElement, property, query } from \"lit/decorators.js\";\r\n\r\nimport { FocusController } from \"../controllers\";\r\nimport { HtmlFor, Role } from \"../mixins\";\r\n\r\nimport { FocusRingToken } from \"./FocusRingToken\";\r\n\r\n/**\r\n * A focus ring used to depict a strong focus indicator.\r\n *\r\n * @description\r\n * The `m3e-focus-ring` component is an absolute positioned element used to provide a strong focus indicator.\r\n * The parenting element must be a relative positioned focusable element and allow for overflow.\r\n *\r\n * The component can be attached to an interactive element using the `for` attribute or programmatically using the `attach` method.\r\n * The focus ring is displayed when the interactive element receives visible focus and hidden when focus is lost.\r\n * This can be disabled using the `disabled` attribute.\r\n *\r\n * Alternately, you can use the `show` and `hide` methods to programmatically control the focus ring.\r\n *\r\n * @example\r\n * The following example illustrates attaching a focus ring to an interactive element. In this example, the parenting div\r\n * has relative positioning and is given an `id` referenced by `m3e-focus-ring` using the `for` attribute. Note that `#myDiv`\r\n * is not used when specifying the attached element's identifier. The `#` is inferred.\r\n *\r\n * ```html\r\n * <div id=\"myDiv\" tabindex=\"0\" style=\"position: relative;\">\r\n * <m3e-focus-ring for=\"myDiv\"></m3e-focus-ring>\r\n * <div>\r\n * ```\r\n *\r\n * @tag m3e-focus-ring\r\n *\r\n * @attr disabled - Whether the focus events will not trigger the focus ring. Focus rings can be still controlled manually by using the `show` and `hide` methods.\r\n * @attr inward - Whether the focus ring animates inward instead of outward.\r\n *\r\n * @cssprop --m3e-focus-ring-color - The color of the focus ring.\r\n * @cssprop --m3e-focus-ring-duration - The duration of the focus ring animation.\r\n * @cssprop --m3e-focus-ring-growth-factor - The factor by which the focus ring grows.\r\n * @cssprop --m3e-focus-ring-thickness - The thickness of the focus ring.\r\n * @cssprop --m3e-focus-ring-visibility - The visibility of the focus ring.\r\n */\r\n@customElement(\"m3e-focus-ring\")\r\nexport class M3eFocusRingElement extends HtmlFor(Role(LitElement, \"none\")) {\r\n /** The styles of the element. */\r\n static override styles: CSSResultGroup = css`\r\n :host {\r\n display: block;\r\n position: absolute;\r\n left: 0;\r\n top: 0;\r\n right: 0;\r\n bottom: 0;\r\n pointer-events: none;\r\n border-radius: inherit;\r\n outline: none;\r\n }\r\n .outline {\r\n position: absolute;\r\n left: 0;\r\n top: 0;\r\n right: 0;\r\n bottom: 0;\r\n pointer-events: none;\r\n border-radius: inherit;\r\n z-index: 1;\r\n outline-color: ${FocusRingToken.color};\r\n outline-width: ${FocusRingToken.thickness};\r\n visibility: ${FocusRingToken.visibility};\r\n }\r\n .outline.visible {\r\n outline-style: solid;\r\n }\r\n :host(:not([inward])) .outline {\r\n outline-offset: calc(${FocusRingToken.thickness} / ${FocusRingToken.growthFactor});\r\n }\r\n :host([inward]) .outline {\r\n outline-offset: calc(0px - ${FocusRingToken.thickness});\r\n }\r\n :host(:not([inward])) .outline.visible {\r\n animation: grow-shrink ${FocusRingToken.duration};\r\n }\r\n :host([inward]) .outline.visible {\r\n animation: shrink-grow ${FocusRingToken.duration};\r\n }\r\n @keyframes grow-shrink {\r\n 50% {\r\n outline-width: calc(${FocusRingToken.thickness} * ${FocusRingToken.growthFactor});\r\n }\r\n }\r\n @keyframes shrink-grow {\r\n 50% {\r\n outline-offset: calc(0px - calc(${FocusRingToken.thickness} * ${FocusRingToken.growthFactor}));\r\n outline-width: calc(${FocusRingToken.thickness} * ${FocusRingToken.growthFactor});\r\n }\r\n }\r\n @media (prefers-reduced-motion) {\r\n :host(:not([inward])) .outline.visible,\r\n :host([inward]) .outline.visible {\r\n animation: none;\r\n }\r\n }\r\n @media (forced-colors: active) {\r\n .outline {\r\n outline-color: Highlight;\r\n }\r\n }\r\n `;\r\n\r\n /** @private */\r\n readonly #focusController = new FocusController(this, {\r\n target: null,\r\n callback: (_, focusVisible) => this.#handleFocusChange(focusVisible),\r\n });\r\n\r\n /** @private */ @query(\".outline\") private readonly _outline?: HTMLElement;\r\n\r\n /**\r\n * Whether the focus ring animates inward instead of outward.\r\n * @default false\r\n */\r\n @property({ type: Boolean, reflect: true }) inward = false;\r\n\r\n /**\r\n * Whether the focus events will not trigger the focus ring.\r\n * Focus rings can be still controlled manually by using the `show` and `hide` methods.\r\n * @default false\r\n */\r\n @property({ type: Boolean, reflect: true }) disabled = false;\r\n\r\n /** Launches a manual focus ring. */\r\n show(): void {\r\n this._outline?.classList.toggle(\"visible\", true);\r\n }\r\n\r\n /** Hides the focus ring. */\r\n hide(): void {\r\n this._outline?.classList.toggle(\"visible\", false);\r\n }\r\n\r\n /** @inheritdoc */\r\n override attach(control: HTMLElement): void {\r\n super.attach(control);\r\n this.#focusController.observe(control);\r\n }\r\n\r\n /** @inheritdoc */\r\n override detach(): void {\r\n if (this.control) {\r\n this.#focusController.unobserve(this.control);\r\n }\r\n super.detach();\r\n }\r\n\r\n /** @inheritdoc */\r\n override connectedCallback(): void {\r\n this.ariaHidden = \"true\";\r\n super.connectedCallback();\r\n }\r\n\r\n /** @inheritdoc */\r\n override disconnectedCallback(): void {\r\n super.disconnectedCallback();\r\n this.hide();\r\n }\r\n\r\n /** @inheritdoc */\r\n protected override render(): unknown {\r\n return html`<div class=\"outline\"></div>`;\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(\"disabled\") && this.disabled) {\r\n this.hide();\r\n }\r\n }\r\n\r\n /** @private */\r\n #handleFocusChange(focusVisible: boolean): void {\r\n if (!this.disabled) {\r\n if (focusVisible) {\r\n this.show();\r\n } else {\r\n this.hide();\r\n }\r\n }\r\n }\r\n}\r\n\r\ndeclare global {\r\n interface HTMLElementTagNameMap {\r\n \"m3e-focus-ring\": M3eFocusRingElement;\r\n }\r\n}\r\n","import { css, CSSResultGroup, html, LitElement, nothing } from \"lit\";\r\nimport { customElement } from \"lit/decorators.js\";\r\n\r\nimport { CheckedIndeterminate, Disabled, Role } from \"../mixins\";\r\nimport { DesignToken } from \"../tokens\";\r\n\r\n/**\r\n * An element which looks like a checkbox.\r\n *\r\n * @description\r\n * The `m3e-pseudo-checkbox` component is a pseudo-checkbox supporting checked, indeterminate, and disabled\r\n * states. It is customizable via CSS properties for expressive, accessible UI design.\r\n *\r\n * @example\r\n * The following example illustrates how to render a checked pseudo-checkbox.\r\n * ```html\r\n * <m3e-pseudo-checkbox checked></m3e-pseudo-checkbox>\r\n * ```\r\n *\r\n * @tag m3e-pseudo-checkbox\r\n *\r\n * @attr checked - A value indicating whether the element is checked.\r\n * @attr disabled - A value indicating whether the element is disabled.\r\n * @attr indeterminate - A value indicating whether the element's checked state is indeterminate.\r\n *\r\n * @cssprop --m3e-checkbox-icon-size - Size of the checkbox icon.\r\n * @cssprop --m3e-checkbox-container-shape - Border radius of the checkbox container.\r\n * @cssprop --m3e-checkbox-unselected-outline-thickness - Outline thickness for unselected state.\r\n * @cssprop --m3e-checkbox-unselected-outline-color - Outline color for unselected state.\r\n * @cssprop --m3e-checkbox-selected-container-color - Background color for selected state.\r\n * @cssprop --m3e-checkbox-selected-icon-color - Icon color for selected state.\r\n * @cssprop --m3e-checkbox-unselected-disabled-outline-color - Outline color for unselected disabled state.\r\n * @cssprop --m3e-checkbox-unselected-disabled-outline-opacity - Outline opacity for unselected disabled state.\r\n * @cssprop --m3e-checkbox-selected-disabled-container-color - Background color for selected disabled state.\r\n * @cssprop --m3e-checkbox-selected-disabled-container-opacity - Background opacity for selected disabled state.\r\n * @cssprop --m3e-checkbox-selected-disabled-icon-color - Icon color for selected disabled state.\r\n * @cssprop --m3e-checkbox-selected-disabled-icon-opacity - Icon opacity for selected disabled state.\r\n */\r\n@customElement(\"m3e-pseudo-checkbox\")\r\nexport class M3ePseudoCheckboxElement extends CheckedIndeterminate(Disabled(Role(LitElement, \"none\"))) {\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: middle;\r\n width: var(--m3e-checkbox-icon-size, 1.125rem);\r\n height: var(--m3e-checkbox-icon-size, 1.125rem);\r\n border-radius: var(--m3e-checkbox-container-shape, 0.125rem);\r\n box-sizing: border-box;\r\n flex: none;\r\n }\r\n :host(:not([checked]):not([indeterminate])) {\r\n border-width: var(--m3e-checkbox-unselected-outline-thickness, 0.125rem);\r\n border-style: solid;\r\n }\r\n :host(:not([disabled])[checked]),\r\n :host(:not([disabled])[indeterminate]) {\r\n background-color: var(--m3e-checkbox-selected-container-color, ${DesignToken.color.primary});\r\n color: var(--m3e-checkbox-selected-icon-color, ${DesignToken.color.onPrimary});\r\n }\r\n :host(:not([disabled]):not([checked]):not([indeterminate])) {\r\n border-color: var(--m3e-checkbox-unselected-outline-color, ${DesignToken.color.onSurfaceVariant});\r\n }\r\n :host([disabled]:not([checked]):not([indeterminate])) {\r\n border-color: color-mix(\r\n in srgb,\r\n var(--m3e-checkbox-unselected-disabled-outline-color, ${DesignToken.color.onSurface})\r\n var(--m3e-checkbox-unselected-disabled-outline-opacity, 38%),\r\n transparent\r\n );\r\n }\r\n :host([disabled][checked]),\r\n :host([disabled][indeterminate]) {\r\n background-color: color-mix(\r\n in srgb,\r\n var(--m3e-checkbox-selected-disabled-container-color, ${DesignToken.color.onSurface})\r\n var(--m3e-checkbox-selected-disabled-container-opacity, 38%),\r\n transparent\r\n );\r\n color: color-mix(\r\n in srgb,\r\n var(--m3e-checkbox-selected-disabled-icon-color, ${DesignToken.color.surface})\r\n var(--m3e-checkbox-selected-disabled-icon-opacity, 100%),\r\n transparent\r\n );\r\n }\r\n `;\r\n\r\n /** @inheritdoc */\r\n override connectedCallback(): void {\r\n super.connectedCallback();\r\n this.ariaHidden = \"true\";\r\n }\r\n\r\n /** @inheritdoc */\r\n protected override render(): unknown {\r\n if (this.indeterminate) {\r\n return html`<svg viewBox=\"0 -960 960 960\" fill=\"currentColor\">\r\n <path Required d=\"M240-440v-80h480v80H240Z\" />\r\n </svg>`;\r\n }\r\n if (this.checked) {\r\n return html`<svg viewBox=\"0 -960 960 960\" fill=\"currentColor\">\r\n <path d=\"M382-240 154-468l57-57 171 171 367-367 57 57-424 424Z\" />\r\n </svg>`;\r\n }\r\n return nothing;\r\n }\r\n}\r\n\r\ndeclare global {\r\n interface HTMLElementTagNameMap {\r\n \"m3e-pseudo-checkbox\": M3ePseudoCheckboxElement;\r\n }\r\n}\r\n","import { css, CSSResultGroup, html, LitElement } from \"lit\";\r\nimport { customElement } from \"lit/decorators.js\";\r\n\r\nimport { Checked, Disabled, Role } from \"../mixins\";\r\nimport { DesignToken } from \"../tokens\";\r\n\r\n/**\r\n * An element which looks like a radio button.\r\n *\r\n * @description\r\n * The `m3e-pseudo-radio` component is a pseudo-radio supporting checked and disabled\r\n * states. It is customizable via CSS properties for expressive, accessible UI design.\r\n *\r\n * @example\r\n * The following example illustrates how to render a checked pseudo-radio.\r\n * ```html\r\n * <m3e-pseudo-radio checked></m3e-pseudo-radio>\r\n * ```\r\n *\r\n * @tag m3e-pseudo-radio\r\n *\r\n * @attr checked - A value indicating whether the element is checked.\r\n * @attr disabled - A value indicating whether the element is disabled.\r\n *\r\n * @cssprop --m3e-radio-icon-size - Size of the radio icon.\r\n * @cssprop --m3e-radio-unselected-icon-color - Color of the unselected radio icon.\r\n * @cssprop --m3e-radio-selected-icon-color - Color of the selected radio icon.\r\n * @cssprop --m3e-radio-disabled-icon-color - Color of the disabled radio icon.\r\n */\r\n@customElement(\"m3e-pseudo-radio\")\r\nexport class M3ePseudoRadioElement extends Checked(Disabled(Role(LitElement, \"none\"))) {\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: middle;\r\n box-sizing: border-box;\r\n width: var(--m3e-radio-icon-size, 1.25rem);\r\n height: var(--m3e-radio-icon-size, 1.25rem);\r\n flex: none;\r\n }\r\n .circle {\r\n fill: currentColor;\r\n }\r\n :host(:not([checked])) .circle.inner {\r\n opacity: 0;\r\n }\r\n :host(:not([checked])) {\r\n color: var(--m3e-radio-unselected-icon-color, ${DesignToken.color.onSurfaceVariant});\r\n }\r\n :host([checked]) {\r\n color: var(--m3e-radio-selected-icon-color, ${DesignToken.color.primary});\r\n }\r\n :host([disabled]) {\r\n color: color-mix(in srgb, var(--m3e-radio-disabled-icon-color, ${DesignToken.color.onSurface}) 38%, transparent);\r\n }\r\n `;\r\n\r\n /** @inheritdoc */\r\n override connectedCallback(): void {\r\n super.connectedCallback();\r\n this.ariaHidden = \"true\";\r\n }\r\n\r\n /** @inheritdoc */\r\n protected override render(): unknown {\r\n return html`<svg class=\"icon\" viewBox=\"0 0 20 20\">\r\n <mask id=\"cutout2\">\r\n <rect width=\"100%\" height=\"100%\" fill=\"white\"></rect>\r\n <circle cx=\"10\" cy=\"10\" r=\"8\" fill=\"black\"></circle>\r\n </mask>\r\n <circle class=\"outer circle\" cx=\"10\" cy=\"10\" r=\"10\" mask=\"url(#cutout2)\"></circle>\r\n <circle class=\"inner circle\" cx=\"10\" cy=\"10\" r=\"5\"></circle>\r\n </svg>`;\r\n }\r\n}\r\n\r\ndeclare global {\r\n interface HTMLElementTagNameMap {\r\n \"m3e-pseudo-radio\": M3ePseudoRadioElement;\r\n }\r\n}\r\n","import { unsafeCSS } from \"lit\";\r\n\r\nimport { DesignToken } from \"../tokens\";\r\n\r\n/**\r\n * Component design tokens that control the `M3eRippleElement`.\r\n * @internal\r\n */\r\nexport const RippleToken = {\r\n color: unsafeCSS(`var(--m3e-ripple-color, ${DesignToken.color.onSurface})`),\r\n opacity: unsafeCSS(`var(--m3e-ripple-opacity, ${DesignToken.state.pressedStateLayerOpacity})`),\r\n enterDuration: unsafeCSS(`var(--m3e-ripple-enter-duration, ${DesignToken.motion.duration.long4})`),\r\n exitDuration: unsafeCSS(`var(--m3e-ripple-exit-duration, ${DesignToken.motion.duration.short2})`),\r\n scaleFactor: unsafeCSS(`var(--m3e-ripple-scale-factor, 2.5)`),\r\n} as const;\r\n","import { css, CSSResultGroup, LitElement, PropertyValues } from \"lit\";\r\nimport { customElement, property } from \"lit/decorators.js\";\r\n\r\nimport { PressedController } from \"../controllers\";\r\nimport { HtmlFor, Role } from \"../mixins\";\r\n\r\nimport { RippleToken } from \"./RippleToken\";\r\nimport { DesignToken } from \"../tokens\";\r\n\r\n/**\r\n * Connects user input to screen reactions using ripples.\r\n *\r\n * @description\r\n * The `m3e-ripple` component is an absolute positioned element used to depict a ripple.\r\n * The parenting element must be a relative positioned element.\r\n *\r\n * The component can be attached to an interactive element using the `for` attribute or programmatically using the `attach` method.\r\n * The ripple is displayed when the interactive element is pressed and hidden when released. This can be disabled using the `disabled` attribute.\r\n *\r\n * The pressed state actives either using both pointer and keyboard events. For keyboard events, `SPACE` and `ENTER` activate a ripple.\r\n * You can disabled whether the `ENTER` key actives a ripple using the `disable-enter` attribute.\r\n *\r\n * Alternately, you can use the `show` and `hide` methods to programmatically control the ripple.\r\n *\r\n * @example\r\n * The following example illustrates attaching a ripple to an interactive element. In this example, the parenting div\r\n * has relative positioning and is given an `id` referenced by `m3e-ripple` using the `for` attribute. Note that `#myDiv`\r\n * is not used when specifying the attached element's identifier. The `#` is inferred.\r\n *\r\n * ```html\r\n * <div id=\"myDiv\" tabindex=\"0\" style=\"position: relative;\">\r\n * <m3e-ripple for=\"myDiv\"></m3e-ripple>\r\n * <div>\r\n * ```\r\n *\r\n * @tag m3e-ripple\r\n *\r\n * @attr centered - Whether the ripple always originates from the center of the element's bounds, rather than originating from the location of the click event.\r\n * @attr disable-enter - Whether the ripple is disabled when the enter key is pressed.\r\n * @attr disabled - Whether click events will not trigger the ripple. Ripples can be still controlled manually by using the `show` and 'hide' methods.\r\n * @attr for - The identifier of the interactive control to which this element is attached.\r\n * @attr radius - The radius, in pixels, of the ripple.\r\n * @attr unbounded - Whether the ripple is visible outside the element's bounds.\r\n *\r\n * @cssprop --m3e-ripple-color - The color of the ripple.\r\n * @cssprop --m3e-ripple-enter-duration - The duration for the enter animation (expansion from point of contact).\r\n * @cssprop --m3e-ripple-exit-duration - The duration for the exit animation (fade-out).\r\n * @cssprop --m3e-ripple-opacity - The opacity of the ripple.\r\n * @cssprop --m3e-ripple-scale-factor - The factor by which to scale the ripple.\r\n * @cssprop --m3e-ripple-shape - The shape of the ripple.\r\n */\r\n@customElement(\"m3e-ripple\")\r\nexport class M3eRippleElement extends HtmlFor(Role(LitElement, \"none\")) {\r\n /** The styles of the element. */\r\n static override styles: CSSResultGroup = css`\r\n :host {\r\n display: block;\r\n position: absolute;\r\n left: 0;\r\n top: 0;\r\n right: 0;\r\n bottom: 0;\r\n pointer-events: none;\r\n border-radius: inherit;\r\n }\r\n :host(:not([unbounded])) {\r\n overflow: hidden;\r\n }\r\n .ripple {\r\n display: block;\r\n position: absolute;\r\n left: 0;\r\n top: 0;\r\n right: 0;\r\n bottom: 0;\r\n pointer-events: none;\r\n transform: scale(0);\r\n border-radius: ${DesignToken.shape.corner.full};\r\n background-color: color-mix(in srgb, ${RippleToken.color} ${RippleToken.opacity}, transparent);\r\n will-change: background-color, opacity;\r\n }\r\n .ripple:not(.persistent) {\r\n animation: ripple ${RippleToken.enterDuration} linear;\r\n }\r\n .ripple.persistent {\r\n animation: persistent-ripple ${RippleToken.enterDuration} linear;\r\n }\r\n .ripple.persistent.pressed {\r\n transform: scale(${RippleToken.scaleFactor});\r\n }\r\n .ripple.exit {\r\n transition: opacity ${RippleToken.exitDuration} cubic-bezier(0, 0, 0.2, 0.1);\r\n opacity: 0;\r\n }\r\n @keyframes persistent-ripple {\r\n to {\r\n transform: scale(${RippleToken.scaleFactor});\r\n }\r\n }\r\n @keyframes ripple {\r\n to {\r\n transform: scale(${RippleToken.scaleFactor});\r\n }\r\n }\r\n @media (prefers-reduced-motion) {\r\n .ripple {\r\n transform: scale(${RippleToken.scaleFactor});\r\n }\r\n .ripple:not(.persistent),\r\n .ripple.persistent {\r\n animation-duration: 90ms;\r\n }\r\n .ripple.exit {\r\n transition-duration: 10ms;\r\n }\r\n }\r\n @media (forced-colors: active) {\r\n .ripple {\r\n display: none;\r\n }\r\n }\r\n `;\r\n\r\n /** @private */ #ripple: HTMLElement | null = null;\r\n /** @private */ readonly #pressedController = new PressedController(this, {\r\n target: null,\r\n minPressedDuration: 150,\r\n isPressedKey: (key) => key === \" \" || (!this.disableEnter && key === \"Enter\"),\r\n callback: (pressed, { x, y }) => this.#handlePressedChange(pressed, x, y),\r\n });\r\n\r\n /**\r\n * Whether click events will not trigger the ripple.\r\n * Ripples can be still controlled manually by using the `show` and 'hide' methods.\r\n * @default false\r\n */\r\n @property({ type: Boolean, reflect: true }) disabled = false;\r\n\r\n /**\r\n * Whether the ripple is disabled when the enter key is pressed.\r\n * @default false\r\n */\r\n @property({ attribute: \"disable-enter\", type: Boolean, reflect: true }) disableEnter = false;\r\n\r\n /**\r\n * Whether the ripple always originates from the center of the element's bounds, rather\r\n * than originating from the location of the click event.\r\n * @default false\r\n */\r\n @property({ type: Boolean, reflect: true }) centered = false;\r\n\r\n /**\r\n * Whether the ripple is visible outside the element's bounds.\r\n * @default false\r\n */\r\n @property({ type: Boolean, reflect: true }) unbounded = false;\r\n\r\n /**\r\n * The radius, in pixels, of the ripple.\r\n * @default null\r\n */\r\n @property({ type: Number }) radius: number | null = null;\r\n\r\n /**\r\n * The element that triggers the ripple when click events are received.\r\n * @default null\r\n */\r\n @property() trigger: string | HTMLElement | null = null;\r\n\r\n /** Whether the ripple is currently visible to the user. */\r\n get visible() {\r\n return this.#ripple !== null;\r\n }\r\n\r\n /**\r\n * Launches a manual ripple.\r\n * @param {number} x The x-coordinate, relative to the viewport, at which to present the ripple.\r\n * @param {number} y The y-coordinate, relative to the viewport, at which to present the ripple.\r\n * @param {boolean} [persistent=false] Whether the ripple will persist until hidden.\r\n */\r\n show(x: number, y: number, persistent: boolean = false): void {\r\n this.#destroyRipple();\r\n\r\n const bounds = this.getBoundingClientRect();\r\n if (this.centered) {\r\n x = bounds.left + bounds.width / 2;\r\n y = bounds.top + bounds.height / 2;\r\n }\r\n\r\n let radius = this.radius;\r\n\r\n if (!radius || isNaN(radius)) {\r\n const distX = Math.max(Math.abs(x - bounds.left), Math.abs(x - bounds.right));\r\n const distY = Math.max(Math.abs(y - bounds.top), Math.abs(y - bounds.bottom));\r\n radius = Math.sqrt(distX * distX + distY * distY);\r\n }\r\n\r\n const offsetX = x - bounds.left;\r\n const offsetY = y - bounds.top;\r\n\r\n this.#ripple = document.createElement(\"div\");\r\n this.#ripple.classList.add(\"ripple\");\r\n if (persistent) {\r\n this.#ripple.classList.add(\"persistent\");\r\n }\r\n\r\n this.#ripple.style.left = `${offsetX - radius}px`;\r\n this.#ripple.style.top = `${offsetY - radius}px`;\r\n this.#ripple.style.width = `${radius * 2}px`;\r\n this.#ripple.style.height = `${radius * 2}px`;\r\n\r\n this.#ripple.addEventListener(\"animationend\", () => this.#handleAnimationEnd(persistent), { once: true });\r\n this.#ripple.addEventListener(\"transitionend\", () => this.#destroyRipple(), { once: true });\r\n\r\n this.shadowRoot?.appendChild(this.#ripple);\r\n }\r\n\r\n /** Manually hides the ripple. */\r\n hide(): void {\r\n this.#ripple?.classList.add(\"exit\");\r\n }\r\n\r\n /** @inheritdoc */\r\n override attach(control: HTMLElement): void {\r\n super.attach(control);\r\n this.#pressedController.observe(control);\r\n }\r\n\r\n /** @inheritdoc */\r\n override detach(): void {\r\n if (this.control) {\r\n this.#pressedController.unobserve(this.control);\r\n }\r\n super.detach();\r\n }\r\n\r\n /** @inheritdoc */\r\n override connectedCallback(): void {\r\n this.ariaHidden = \"true\";\r\n super.connectedCallback();\r\n }\r\n\r\n /** @inheritdoc */\r\n override disconnectedCallback(): void {\r\n super.disconnectedCallback();\r\n this.#destroyRipple();\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(\"disabled\") && this.disabled) {\r\n this.hide();\r\n }\r\n }\r\n\r\n /** @private */\r\n #destroyRipple(): void {\r\n this.#ripple?.remove();\r\n this.#ripple = null;\r\n }\r\n\r\n /** @private */\r\n #handleAnimationEnd(persistent: boolean): void {\r\n if (persistent) {\r\n this.#ripple?.classList.add(\"pressed\");\r\n } else {\r\n this.hide();\r\n }\r\n }\r\n\r\n /** @private */\r\n #handlePressedChange(pressed: boolean, x: number, y: number): void {\r\n if (!this.disabled) {\r\n if (pressed) {\r\n this.show(x, y, true);\r\n } else {\r\n this.hide();\r\n }\r\n }\r\n }\r\n}\r\n\r\ndeclare global {\r\n interface HTMLElementTagNameMap {\r\n \"m3e-ripple\": M3eRippleElement;\r\n }\r\n}\r\n","import { css, CSSResultGroup, html, LitElement, PropertyValues } from \"lit\";\r\nimport { customElement, property } from \"lit/decorators.js\";\r\n\r\nimport { debounce } from \"../decorators\";\r\nimport { DesignToken } from \"../tokens\";\r\n\r\nimport { ScrollDividers } from \"./ScrollDividers\";\r\n\r\n/**\r\n * A vertically oriented content container which presents dividers above and below content when scrolled.\r\n *\r\n * @description\r\n * The `m3e-scroll-container` component provides a vertically oriented scrollable container with dynamic\r\n * dividers above and below content. Designed according to Material 3 principles, it supports custom scrollbar\r\n * thickness, divider styling, and focus ring theming via CSS custom properties.\r\n *\r\n * @example\r\n * This example shows a scrollable container with dividers above and below the content, and thin scrollbars enabled.\r\n * ```html\r\n * <m3e-scroll-container dividers=\"above-below\" thin>\r\n * <div>Scrollable content goes here</div>\r\n * </m3e-scroll-container>\r\n * ```\r\n *\r\n * @tag m3e-scroll-container\r\n *\r\n * @slot - Renders the scrollable content.\r\n *\r\n * @attr dividers - The dividers used to separate scrollable content.\r\n * @attr thin - Whether to present thin scrollbars.\r\n *\r\n * @cssprop --m3e-divider-thickness - Thickness of the divider lines above and below content.\r\n * @cssprop --m3e-divider-color - Color of the divider lines when visible.\r\n * @cssprop --m3e-focus-ring-color - Color of the focus ring outline.\r\n * @cssprop --m3e-focus-ring-thickness - Thickness of the focus ring outline.\r\n * @cssprop --m3e-focus-ring-factor - Animation factor for focus ring thickness.\r\n * @cssprop --m3e-focus-ring-duration - Duration of the focus ring animation.\r\n */\r\n@customElement(\"m3e-scroll-container\")\r\nexport class M3eScrollContainerElement extends LitElement {\r\n /** The styles of the element. */\r\n static override styles: CSSResultGroup = css`\r\n :host {\r\n display: block;\r\n overflow-y: auto;\r\n position: relative;\r\n box-sizing: border-box;\r\n scrollbar-color: ${DesignToken.scrollbar.color};\r\n border-top: var(--m3e-divider-thickness, 1px) solid transparent;\r\n border-bottom: var(--m3e-divider-thickness, 1px) solid transparent;\r\n outline: var(--m3e-focus-ring-color, ${DesignToken.color.secondary});\r\n outline-width: var(--m3e-focus-ring-thickness, 0.25rem);\r\n outline-offset: calc(var(--m3e-focus-ring-thickness, 0.25rem) / 2);\r\n }\r\n :host([thin]) {\r\n scrollbar-width: ${DesignToken.scrollbar.thinWidth};\r\n }\r\n :host(:not([thin])) {\r\n scrollbar-width: ${DesignToken.scrollbar.width};\r\n }\r\n :host(:not(:focus-visible).-above) {\r\n border-top-color: var(--m3e-divider-color, ${DesignToken.color.outlineVariant});\r\n }\r\n :host(:not(:focus-visible).-below) {\r\n border-bottom-color: var(--m3e-divider-color, ${DesignToken.color.outlineVariant});\r\n }\r\n :host(:focus-visible) {\r\n outline-style: solid;\r\n animation: grow-shrink var(--m3e-focus-ring-duration, ${DesignToken.motion.duration.long2});\r\n }\r\n @keyframes grow-shrink {\r\n 50% {\r\n outline-width: calc(var(--m3e-focus-ring-thickness, 0.25rem) * var(--m3e-focus-ring-factor, 2));\r\n }\r\n }\r\n @media (forced-colors: active) {\r\n :host {\r\n border-top: var(--m3e-divider-thickness, 1px) solid Canvas;\r\n border-bottom: var(--m3e-divider-thickness, 1px) solid Canvas;\r\n }\r\n :host(:not(:focus-visible).-above) {\r\n border-top-color: GrayText;\r\n }\r\n :host(:not(:focus-visible).-below) {\r\n border-bottom-color: GrayText;\r\n }\r\n }\r\n @media (prefers-reduced-motion) {\r\n :host(:focus-visible) {\r\n animation: none;\r\n }\r\n }\r\n `;\r\n\r\n /** @private */ readonly #scrollHandler = () => this._updateScroll();\r\n\r\n /**\r\n * The dividers used to separate scrollable content.\r\n * @default \"above-below\"\r\n */\r\n @property() dividers: ScrollDividers = \"above-below\";\r\n\r\n /**\r\n * Whether to present thin scrollbars.\r\n * @default false\r\n */\r\n @property({ type: Boolean, reflect: true }) thin = false;\r\n\r\n /** @inheritdoc */\r\n override disconnectedCallback(): void {\r\n super.disconnectedCallback();\r\n this.removeEventListener(\"scroll\", this.#scrollHandler);\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(\"dividers\")) {\r\n this.removeEventListener(\"scroll\", this.#scrollHandler);\r\n if (this.dividers !== \"none\") {\r\n this.addEventListener(\"scroll\", this.#scrollHandler);\r\n }\r\n }\r\n }\r\n\r\n /** @inheritdoc */\r\n protected override render(): unknown {\r\n return html`<slot @slotchange=\"${this._updateScroll}\"></slot>`;\r\n }\r\n\r\n /** @private */\r\n @debounce(40)\r\n private _updateScroll(): void {\r\n const before = (this.dividers === \"above\" || this.dividers === \"above-below\") && this.scrollTop > 0;\r\n const after =\r\n (this.dividers === \"below\" || this.dividers === \"above-below\") &&\r\n this.scrollHeight - this.scrollTop - this.clientHeight > 1;\r\n\r\n this.classList.toggle(\"-above\", before);\r\n this.classList.toggle(\"-below\", after);\r\n }\r\n}\r\n\r\ndeclare global {\r\n interface HTMLElementTagNameMap {\r\n \"m3e-scroll-container\": M3eScrollContainerElement;\r\n }\r\n}\r\n","import { css, CSSResultGroup, html, LitElement, PropertyValues, unsafeCSS } from \"lit\";\r\nimport { customElement, property, queryAssignedElements } from \"lit/decorators.js\";\r\n\r\nimport { DesignToken } from \"../tokens\";\r\n\r\n/**\r\n * A carousel-like container used to horizontally cycle through slotted items.\r\n *\r\n * @example\r\n * The following example illustrates the use of `m3e-slide` to cycle through content.\r\n * In this example, `selected-index` is set to `1` so that \"Content at index 1\" is presented\r\n * by the component.\r\n * ```html\r\n * <m3e-slide selected-index=\"1\">\r\n * <div>Content at index 0</div>\r\n * <div>Content at index 1</div>\r\n * <div>Content at index 2</div>\r\n * <div>Content at index 3</div>\r\n * </m3e-slide>\r\n * ```\r\n *\r\n * @tag m3e-slide\r\n *\r\n * @attr selected-index - The zero-based index of the visible item.\r\n *\r\n * @cssprop --m3e-slide-animation-duration - The duration of transitions between slotted items.\r\n */\r\n@customElement(\"m3e-slide\")\r\nexport class M3eSlide extends LitElement {\r\n /** The styles of the element. */\r\n static override styles: CSSResultGroup = css`\r\n :host {\r\n display: flex;\r\n position: relative;\r\n overflow: hidden;\r\n }\r\n ::slotted(*) {\r\n width: 100%;\r\n top: 0;\r\n transition: ${unsafeCSS(\r\n `left var(--m3e-slide-animation-duration, ${DesignToken.motion.duration.long2}) ${DesignToken.motion.easing.standard},\r\n visibility var(--m3e-slide-animation-duration, ${DesignToken.motion.duration.long2}) ${DesignToken.motion.easing.standard} allow-discrete`\r\n )};\r\n }\r\n ::slotted(.-before),\r\n ::slotted(.-after) {\r\n visibility: hidden;\r\n position: absolute;\r\n }\r\n ::slotted(.-before) {\r\n left: -100%;\r\n }\r\n ::slotted(.-after) {\r\n left: 100%;\r\n }\r\n ::slotted(:not(.-before):not(.-after)) {\r\n visibility: visible;\r\n position: relative;\r\n left: 0;\r\n }\r\n :host(.-no-animate) ::slotted(*) {\r\n transition: none;\r\n }\r\n @media (prefers-reduced-motion) {\r\n ::slotted(*) {\r\n transition: none;\r\n }\r\n }\r\n `;\r\n\r\n /** @private */ @queryAssignedElements({ flatten: true }) private readonly _items!: Element[];\r\n\r\n /**\r\n * The zero-based index of the visible item.\r\n * @default null\r\n */\r\n @property({ attribute: \"selected-index\", type: Number, reflect: true }) selectedIndex: number | null = null;\r\n\r\n /** @inheritdoc */\r\n override connectedCallback(): void {\r\n super.connectedCallback();\r\n this.classList.toggle(\"-no-animate\", true);\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(\"selectedIndex\")) {\r\n if (this.selectedIndex === null) {\r\n this.classList.toggle(\"-no-animate\", true);\r\n }\r\n\r\n this.#updateItems();\r\n\r\n if (this.selectedIndex !== null && this.classList.contains(\"-no-animate\")) {\r\n requestAnimationFrame(() => {\r\n if (this.selectedIndex !== null) {\r\n this.classList.toggle(\"-no-animate\", false);\r\n }\r\n });\r\n }\r\n }\r\n }\r\n\r\n /** @inheritdoc */\r\n protected override render(): unknown {\r\n return html`<slot @slotchange=\"${this.#updateItems}\"></slot>`;\r\n }\r\n\r\n /** @private */\r\n #updateItems(): void {\r\n const selectedIndex = this.selectedIndex ?? this._items.length;\r\n for (let i = 0; i < this._items.length; i++) {\r\n const item = this._items[i];\r\n item.classList.toggle(\"-before\", i < selectedIndex);\r\n item.classList.toggle(\"-after\", i > selectedIndex);\r\n item.toggleAttribute(\"inert\", i !== selectedIndex);\r\n }\r\n }\r\n}\r\n\r\ndeclare global {\r\n interface HTMLElementTagNameMap {\r\n \"m3e-slide\": M3eSlide;\r\n }\r\n}\r\n","import { unsafeCSS } from \"lit\";\r\n\r\nimport { DesignToken } from \"../tokens\";\r\n\r\n/**\r\n * Component design tokens that control the `M3eStateLayerElement`.\r\n * @internal\r\n */\r\nexport const StateLayerToken = {\r\n hoverColor: unsafeCSS(`var(--m3e-state-layer-hover-color, ${DesignToken.color.onSurface})`),\r\n hoverOpacity: unsafeCSS(`var(--m3e-state-layer-hover-opacity, ${DesignToken.state.hoverStateLayerOpacity})`),\r\n focusColor: unsafeCSS(`var(--m3e-state-layer-focus-color, ${DesignToken.color.onSurface})`),\r\n focusOpacity: unsafeCSS(`var(--m3e-state-layer-focus-opacity, ${DesignToken.state.focusStateLayerOpacity})`),\r\n duration: unsafeCSS(`var(--m3e-state-layer-duration, ${DesignToken.motion.duration.medium1})`),\r\n easing: unsafeCSS(`var(--m3e-state-layer-easing, ${DesignToken.motion.easing.standard})`),\r\n} as const;\r\n","import { css, CSSResultGroup, html, LitElement, PropertyValues, unsafeCSS } from \"lit\";\r\nimport { customElement, property, query } from \"lit/decorators.js\";\r\n\r\nimport { FocusController, HoverController } from \"../controllers\";\r\nimport { HtmlFor, Role } from \"../mixins\";\r\n\r\nimport { StateLayerToken } from \"./StateLayerToken\";\r\n\r\n/**\r\n * Provides focus and hover state layer treatment for an interactive element.\r\n *\r\n * @description\r\n * The `m3e-state-layer` component is an absolute positioned element used to depict hover and focus overlays.\r\n * The parenting element must be a relative positioned element.\r\n *\r\n * This element can be attached to an interactive element using the `for` attribute or programmatically using the `attach` method.\r\n * The state layer is displayed when the interactive element is either hovered or focused. This can be disabled using\r\n * the `disabled` attribute.\r\n *\r\n * @example\r\n * The following example illustrates attaching a state layer to an interactive element. In this example, the parenting div\r\n * has relative positioning and is given an `id` referenced by `m3e-state-layer` using the `for` attribute. Note that `#myDiv`\r\n * is not used when specifying the attached element's identifier. The `#` is inferred.\r\n *\r\n * ```html\r\n * <div id=\"myDiv\" tabindex=\"0\" style=\"position: relative;\">\r\n * <m3e-state-layer for=\"myDiv\"></m3e-state-layer>\r\n * <div>\r\n * ```\r\n *\r\n * @tag m3e-state-layer\r\n *\r\n * @attr disabled - Whether hover and focus event will not trigger the state layer.Whether hover and focus event will not trigger the state layer. State layers can still be controlled manually using the `show` and `hide` methods.\r\n *\r\n * @cssprop --m3e-state-layer-duration - Duration of state layer changes.\r\n * @cssprop --m3e-state-layer-easing - Easing curve of state layer changes.\r\n * @cssprop --m3e-state-layer-focus-color - Color on hover.\r\n * @cssprop --m3e-state-layer-focus-opacity - Opacity on focus.\r\n * @cssprop --m3e-state-layer-hover-color - Color on hover.\r\n * @cssprop --m3e-state-layer-hover-opacity - Opacity on hover.\r\n */\r\n@customElement(\"m3e-state-layer\")\r\nexport class M3eStateLayerElement extends HtmlFor(Role(LitElement, \"none\")) {\r\n /** The styles of the element. */\r\n static override styles: CSSResultGroup = css`\r\n :host {\r\n display: block;\r\n }\r\n :host,\r\n .layer {\r\n position: absolute;\r\n left: 0;\r\n top: 0;\r\n right: 0;\r\n bottom: 0;\r\n pointer-events: none;\r\n border-radius: inherit;\r\n }\r\n .layer {\r\n will-change: background-color;\r\n transition: ${unsafeCSS(`background-color ${StateLayerToken.duration} ${StateLayerToken.easing}`)};\r\n }\r\n .layer.focused {\r\n background-color: color-mix(in srgb, ${StateLayerToken.focusColor} ${StateLayerToken.focusOpacity}, transparent);\r\n }\r\n .layer.hover {\r\n background-color: color-mix(in srgb, ${StateLayerToken.hoverColor} ${StateLayerToken.hoverOpacity}, transparent);\r\n }\r\n @media (prefers-reduced-motion) {\r\n .layer {\r\n transition: none;\r\n }\r\n }\r\n @media (forced-colors: active) {\r\n .layer {\r\n display: none;\r\n }\r\n }\r\n `;\r\n\r\n /** @private */\r\n readonly #hoverController = new HoverController(this, {\r\n target: null,\r\n callback: (hovering) => this.#handleHoverChange(hovering),\r\n });\r\n\r\n /** @private */\r\n readonly #focusController = new FocusController(this, {\r\n target: null,\r\n callback: (focused) => this.#handleFocusChange(focused),\r\n });\r\n\r\n /** @private */ @query(\".layer\") private readonly _layer?: HTMLElement;\r\n\r\n /**\r\n * Whether hover and focus event will not trigger the state layer. State layers can still\r\n * be controlled manually using the `show` and `hide` methods.\r\n * @default false\r\n */\r\n @property({ type: Boolean, reflect: true }) disabled = false;\r\n\r\n /**\r\n * Launches a manual state layer.\r\n * @param {\"hover\" | \"focused\"} state The state of the layer to show.\r\n */\r\n show(state: \"hover\" | \"focused\"): void {\r\n this._layer?.classList.toggle(state, true);\r\n }\r\n\r\n /**\r\n * Hides the state layer.\r\n * @param {\"hover\" | \"focused\"} state The state of the layer to hide.\r\n */\r\n hide(state: \"hover\" | \"focused\"): void {\r\n this._layer?.classList.toggle(state, false);\r\n }\r\n\r\n /** @inheritdoc */\r\n override attach(control: HTMLElement): void {\r\n super.attach(control);\r\n this.#hoverController.observe(control);\r\n this.#focusController.observe(control);\r\n }\r\n\r\n /** @inheritdoc */\r\n override detach(): void {\r\n if (this.control) {\r\n this.#hoverController.unobserve(this.control);\r\n this.#focusController.unobserve(this.control);\r\n }\r\n super.detach();\r\n }\r\n\r\n /** @inheritdoc */\r\n override connectedCallback(): void {\r\n this.ariaHidden = \"true\";\r\n super.connectedCallback();\r\n }\r\n\r\n /** @inheritdoc */\r\n override disconnectedCallback(): void {\r\n super.disconnectedCallback();\r\n\r\n this.hide(\"hover\");\r\n this.hide(\"focused\");\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(\"disabled\") && this.disabled) {\r\n this.hide(\"hover\");\r\n this.hide(\"focused\");\r\n }\r\n }\r\n\r\n /** @inheritdoc */\r\n protected override render(): unknown {\r\n return html`<div class=\"layer\"></div>`;\r\n }\r\n\r\n /** @private */\r\n #handleHoverChange(hovering: boolean): void {\r\n if (!this.disabled) {\r\n if (hovering) {\r\n this.show(\"hover\");\r\n } else {\r\n this.hide(\"hover\");\r\n }\r\n }\r\n }\r\n\r\n /** @private */\r\n #handleFocusChange(focused: boolean): void {\r\n if (!this.disabled) {\r\n if (focused) {\r\n this.show(\"focused\");\r\n } else {\r\n this.hide(\"focused\");\r\n }\r\n }\r\n }\r\n}\r\n\r\ndeclare global {\r\n interface HTMLElementTagNameMap {\r\n \"m3e-state-layer\": M3eStateLayerElement;\r\n }\r\n}\r\n","import { css, CSSResultGroup, html, LitElement } from \"lit\";\r\nimport { customElement } from \"lit/decorators.js\";\r\n\r\n/**\r\n * An inline container which presents an ellipsis when content overflows.\r\n *\r\n * @description\r\n * The `m3e-text-overflow` component truncates inline content with an ellipsis when it\r\n * exceeds the available width. It's intended for use inside flex or otherwise\r\n * constrained containers to preserve layout while providing predictable, single-line\r\n * truncation behavior for long text.\r\n *\r\n * @example\r\n * A typical usage inside a flex container where the heading and trailing actions are\r\n * constrained, allowing the center text to truncate with an ellipsis.\r\n *\r\n * ```html\r\n * <div style=\"display:flex;align-items:center;gap:12px;\">\r\n * <m3e-icon name=\"menu\"></m3e-icon>\r\n * <m3e-text-overflow>Very long title or breadcrumb that should truncate gracefully</m3e-text-overflow>\r\n * <m3e-icon name=\"more_vert\"></m3e-icon>\r\n * </div>\r\n * ```\r\n *\r\n * @tag m3e-text-overflow\r\n *\r\n * @slot - Renders the content to truncate with an ellipsis.\r\n */\r\n@customElement(\"m3e-text-overflow\")\r\nexport class M3eTextOverflowElement extends LitElement {\r\n /** The styles of the element. */\r\n static override styles: CSSResultGroup = css`\r\n :host {\r\n flex: 1 1 auto;\r\n display: inline-flex;\r\n align-items: center;\r\n flex-wrap: nowrap;\r\n min-width: 0;\r\n }\r\n .base {\r\n flex: 1 1 auto;\r\n display: inline;\r\n overflow: hidden;\r\n text-overflow: ellipsis;\r\n white-space: nowrap;\r\n }\r\n `;\r\n\r\n /** @inheritdoc */\r\n protected override render(): unknown {\r\n return html`<span class=\"base\"><slot></slot></span>`;\r\n }\r\n}\r\n\r\ndeclare global {\r\n interface HTMLElementTagNameMap {\r\n \"m3e-text-overflow\": M3eTextOverflowElement;\r\n }\r\n}\r\n","/* eslint-disable @typescript-eslint/no-unsafe-declaration-merging */\r\nimport { css, CSSResultGroup, html, isServer, LitElement, PropertyValues, unsafeCSS } from \"lit\";\r\nimport { customElement, property } from \"lit/decorators.js\";\r\n\r\nimport { DesignToken } from \"../tokens\";\r\n\r\n/**\r\n * Highlights text which matches a given search term.\r\n *\r\n * @description\r\n * Highlights all text ranges in slotted content that match a given search term using the CSS Custom Highlight API.\r\n *\r\n * @example\r\n * The following example illustrates highlighting \"Lor\".\r\n * ```html\r\n * <m3e-text-highlight term=\"Lor\">\r\n * <p>\r\n * Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt\r\n * ut labore et dolore magna aliqua.\r\n * </p>\r\n * </m3e-text-highlight>\r\n * ```\r\n *\r\n * @tag m3e-text-highlight\r\n *\r\n * @slot - Renders the content to highlight.\r\n *\r\n * @attr case-sensitive - A value indicating whether matching is case sensitive.\r\n * @attr disabled - A value indicating whether text highlighting is disabled.\r\n * @attr term - The term to highlight.\r\n *\r\n * @fires highlight - Emitted when content is highlighted.\r\n *\r\n * @cssprop --m3e-text-highlight-container-color - Background color applied to highlighted text ranges.\r\n * @cssprop --m3e-text-highlight-color - Foreground color of highlighted text content.\r\n * @cssprop --m3e-text-highlight-decoration - Optional text decoration (e.g., underline, line-through) for highlighted text.\r\n * @cssprop --m3e-text-highlight-shadow - Optional text shadow for emphasis or contrast.\r\n */\r\n@customElement(\"m3e-text-highlight\")\r\nexport class M3eTextHighlightElement extends LitElement {\r\n /** The styles of the element. */\r\n static override styles: CSSResultGroup = css`\r\n :host {\r\n display: contents;\r\n }\r\n `;\r\n\r\n /** @private */ private static __nextId = 0;\r\n\r\n /** @private */ #id = `m3e-text-highlight-${M3eTextHighlightElement.__nextId++}`;\r\n /** @private */ #ranges = new Array<Range>();\r\n /** @private */ #styles: CSSStyleSheet | null = null;\r\n\r\n constructor() {\r\n super();\r\n\r\n if (this.isSupported) {\r\n this.#styles = new CSSStyleSheet();\r\n this.#styles.replaceSync(\r\n css`\r\n ::highlight(${unsafeCSS(this.#id)}) {\r\n background-color: var(--m3e-text-highlight-container-color, ${DesignToken.color.secondaryContainer});\r\n color: var(--m3e-text-highlight-color, ${DesignToken.color.onSecondaryContainer});\r\n text-decoration: var(--m3e-text-highlight-decoration);\r\n text-shadow: var(--m3e-text-highlight-shadow);\r\n }\r\n `.toString()\r\n );\r\n }\r\n }\r\n\r\n /**\r\n * A value indicating whether text highlighting is disabled.\r\n * @default false\r\n */\r\n @property({ type: Boolean, reflect: true }) disabled = false;\r\n\r\n /**\r\n * The term to highlight.\r\n * @default \"\"\r\n */\r\n @property() term = \"\";\r\n\r\n /**\r\n * A value indicating whether matching is case sensitive.\r\n * @default false\r\n */\r\n @property({ attribute: \"case-sensitive\", type: Boolean }) caseSensitive = false;\r\n\r\n /** A value indicating whether text highlighting is supported by the browser. */\r\n get isSupported(): boolean {\r\n return !isServer && CSS.highlights ? true : false;\r\n }\r\n\r\n /** The ranges that match the current term. */\r\n get ranges(): readonly Range[] {\r\n return this.#ranges;\r\n }\r\n\r\n /** @inheritdoc */\r\n protected override firstUpdated(_changedProperties: PropertyValues): void {\r\n super.firstUpdated(_changedProperties);\r\n\r\n if (this.shadowRoot && this.#styles && !this.shadowRoot.adoptedStyleSheets.includes(this.#styles)) {\r\n this.shadowRoot.adoptedStyleSheets.push(this.#styles);\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 (\r\n _changedProperties.has(\"term\") ||\r\n _changedProperties.has(\"caseSensitive\") ||\r\n _changedProperties.has(\"disabled\")\r\n ) {\r\n this.#highlight();\r\n }\r\n }\r\n\r\n /** @inheritdoc */\r\n protected override render(): unknown {\r\n return html`<slot @slotchange=\"${this.#highlight}\"></slot>`;\r\n }\r\n\r\n /** @private */\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n #isTextNode(node: any): boolean {\r\n return /^(\\\\s|\\\\n)+$/gi.test(node.data) ? false : true;\r\n }\r\n\r\n /** @private */\r\n #findTextNodes(parent: Node, nodes: Node[]): void {\r\n if (parent instanceof HTMLSlotElement) {\r\n parent.assignedElements({ flatten: true }).forEach((x) => {\r\n switch (x.nodeType) {\r\n case Node.TEXT_NODE:\r\n if (this.#isTextNode(x)) {\r\n nodes.push(x);\r\n }\r\n break;\r\n case Node.ELEMENT_NODE:\r\n this.#findTextNodes(x, nodes);\r\n break;\r\n }\r\n });\r\n } else {\r\n parent.childNodes.forEach((x) => {\r\n switch (x.nodeType) {\r\n case Node.TEXT_NODE:\r\n if (this.#isTextNode(x)) {\r\n nodes.push(x);\r\n }\r\n break;\r\n case Node.ELEMENT_NODE:\r\n this.#findTextNodes(x, nodes);\r\n break;\r\n }\r\n });\r\n }\r\n }\r\n\r\n /** @private */\r\n #highlight(): void {\r\n if (!this.isSupported || !this.isConnected) return;\r\n CSS.highlights.delete(this.#id);\r\n this.#ranges.length = 0;\r\n\r\n if (this.disabled) return;\r\n\r\n if (!this.term) {\r\n this.dispatchEvent(\r\n new CustomEvent<readonly Range[]>(\"highlight\", {\r\n detail: [...this.#ranges],\r\n bubbles: false,\r\n composed: false,\r\n })\r\n );\r\n return;\r\n }\r\n\r\n const texts = new Array<Node>();\r\n this.#findTextNodes(this, texts);\r\n\r\n const term = !this.caseSensitive ? this.term.toLowerCase() : this.term;\r\n this.#ranges = texts\r\n .map((x) => {\r\n return {\r\n el: x,\r\n text: (!this.caseSensitive ? x.textContent?.toLowerCase() : x.textContent) ?? \"\",\r\n };\r\n })\r\n .map(({ el, text }) => {\r\n const indices = new Array<number>();\r\n let startPos = 0;\r\n while (startPos < text.length) {\r\n const index = text.indexOf(term, startPos);\r\n if (index === -1) break;\r\n indices.push(index);\r\n startPos = index + term.length;\r\n }\r\n return indices.map((index) => {\r\n const range = new Range();\r\n range.setStart(el, index);\r\n range.setEnd(el, index + term.length);\r\n return range;\r\n });\r\n })\r\n .flat();\r\n\r\n if (this.#ranges.length > 0) {\r\n CSS.highlights.set(this.#id, new Highlight(...this.#ranges));\r\n }\r\n\r\n this.dispatchEvent(\r\n new CustomEvent<readonly Range[]>(\"highlight\", {\r\n detail: [...this.#ranges],\r\n bubbles: false,\r\n composed: false,\r\n })\r\n );\r\n }\r\n}\r\n\r\ninterface M3eTextHighlightElementEventMap extends HTMLElementEventMap {\r\n highlight: CustomEvent<readonly Range[]>;\r\n}\r\n\r\nexport interface M3eTextHighlightElement {\r\n addEventListener<K extends keyof M3eTextHighlightElementEventMap>(\r\n type: K,\r\n listener: (this: M3eTextHighlightElement, ev: M3eTextHighlightElementEventMap[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 M3eTextHighlightElementEventMap>(\r\n type: K,\r\n listener: (this: M3eTextHighlightElement, ev: M3eTextHighlightElementEventMap[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\ndeclare global {\r\n interface HTMLElementTagNameMap {\r\n \"m3e-text-highlight\": M3eTextHighlightElement;\r\n }\r\n}\r\n"],"names":["t","e","Directive","PartType","directive","s","o","r","n","S","c","i","h","a","l","p","d","u","f","property","_eventHandler","ElevationToken","_clickHandler","ifDefined","customElement","query","queryAssignedElements"],"mappings":"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AC,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CA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,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,MAAM,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC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","x_google_ignoreList":[0,11,15,16,17,18,19,20,21,47,48]}
|