@m3e/web 2.0.3 → 2.0.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/all.js +564 -462
- package/dist/all.js.map +1 -1
- package/dist/all.min.js +54 -59
- package/dist/all.min.js.map +1 -1
- package/dist/app-bar.js +11 -11
- package/dist/app-bar.js.map +1 -1
- package/dist/app-bar.min.js +1 -1
- package/dist/app-bar.min.js.map +1 -1
- package/dist/autocomplete.js +32 -19
- package/dist/autocomplete.js.map +1 -1
- package/dist/autocomplete.min.js +1 -1
- package/dist/autocomplete.min.js.map +1 -1
- package/dist/avatar.js +2 -3
- package/dist/avatar.js.map +1 -1
- package/dist/avatar.min.js +1 -1
- package/dist/avatar.min.js.map +1 -1
- package/dist/badge.js +3 -3
- package/dist/badge.js.map +1 -1
- package/dist/badge.min.js +1 -1
- package/dist/badge.min.js.map +1 -1
- package/dist/bottom-sheet.js +17 -18
- package/dist/bottom-sheet.js.map +1 -1
- package/dist/bottom-sheet.min.js +1 -1
- package/dist/bottom-sheet.min.js.map +1 -1
- package/dist/button-group.js +8 -8
- package/dist/button-group.js.map +1 -1
- package/dist/button-group.min.js +1 -1
- package/dist/button-group.min.js.map +1 -1
- package/dist/button.js +18 -18
- package/dist/button.js.map +1 -1
- package/dist/button.min.js +1 -1
- package/dist/button.min.js.map +1 -1
- package/dist/card.js +3 -3
- package/dist/card.js.map +1 -1
- package/dist/card.min.js +1 -1
- package/dist/card.min.js.map +1 -1
- package/dist/checkbox.js +4 -4
- package/dist/checkbox.js.map +1 -1
- package/dist/checkbox.min.js +1 -1
- package/dist/checkbox.min.js.map +1 -1
- package/dist/chips.js +58 -45
- package/dist/chips.js.map +1 -1
- package/dist/chips.min.js +1 -1
- package/dist/chips.min.js.map +1 -1
- package/dist/core-a11y.js +28 -2
- package/dist/core-a11y.js.map +1 -1
- package/dist/core-a11y.min.js +4 -13
- package/dist/core-a11y.min.js.map +1 -1
- package/dist/core-bidi.js +3 -5
- package/dist/core-bidi.js.map +1 -1
- package/dist/core-bidi.min.js +2 -2
- package/dist/core-bidi.min.js.map +1 -1
- package/dist/core.js +139 -60
- package/dist/core.js.map +1 -1
- package/dist/core.min.js +1 -1
- package/dist/core.min.js.map +1 -1
- package/dist/css-custom-data.json +332 -542
- package/dist/custom-elements.json +11238 -12197
- package/dist/dialog.js +12 -12
- package/dist/dialog.js.map +1 -1
- package/dist/dialog.min.js +1 -1
- package/dist/dialog.min.js.map +1 -1
- package/dist/divider.js +3 -3
- package/dist/divider.js.map +1 -1
- package/dist/divider.min.js +1 -1
- package/dist/divider.min.js.map +1 -1
- package/dist/drawer-container.js +20 -20
- package/dist/drawer-container.js.map +1 -1
- package/dist/drawer-container.min.js +1 -1
- package/dist/drawer-container.min.js.map +1 -1
- package/dist/expansion-panel.js +7 -7
- package/dist/expansion-panel.js.map +1 -1
- package/dist/expansion-panel.min.js +1 -1
- package/dist/expansion-panel.min.js.map +1 -1
- package/dist/fab-menu.js +12 -12
- package/dist/fab-menu.js.map +1 -1
- package/dist/fab-menu.min.js +1 -1
- package/dist/fab-menu.min.js.map +1 -1
- package/dist/fab.js +5 -5
- package/dist/fab.js.map +1 -1
- package/dist/fab.min.js +1 -1
- package/dist/fab.min.js.map +1 -1
- package/dist/form-field.js +23 -23
- package/dist/form-field.js.map +1 -1
- package/dist/form-field.min.js +3 -3
- package/dist/form-field.min.js.map +1 -1
- package/dist/heading.js +3 -3
- package/dist/heading.js.map +1 -1
- package/dist/heading.min.js +1 -1
- package/dist/heading.min.js.map +1 -1
- package/dist/html-custom-data.json +115 -147
- package/dist/icon-button.js +18 -18
- package/dist/icon-button.js.map +1 -1
- package/dist/icon-button.min.js +1 -1
- package/dist/icon-button.min.js.map +1 -1
- package/dist/icon.js +3 -3
- package/dist/icon.js.map +1 -1
- package/dist/icon.min.js +1 -1
- package/dist/icon.min.js.map +1 -1
- package/dist/list.js +34 -28
- package/dist/list.js.map +1 -1
- package/dist/list.min.js +1 -1
- package/dist/list.min.js.map +1 -1
- package/dist/loading-indicator.js +3 -3
- package/dist/loading-indicator.js.map +1 -1
- package/dist/loading-indicator.min.js +1 -1
- package/dist/loading-indicator.min.js.map +1 -1
- package/dist/menu.js +34 -32
- package/dist/menu.js.map +1 -1
- package/dist/menu.min.js +1 -1
- package/dist/menu.min.js.map +1 -1
- package/dist/nav-bar.js +6 -6
- package/dist/nav-bar.js.map +1 -1
- package/dist/nav-bar.min.js +1 -1
- package/dist/nav-bar.min.js.map +1 -1
- package/dist/nav-menu.js +28 -24
- package/dist/nav-menu.js.map +1 -1
- package/dist/nav-menu.min.js +1 -1
- package/dist/nav-menu.min.js.map +1 -1
- package/dist/nav-rail.js +6 -7
- package/dist/nav-rail.js.map +1 -1
- package/dist/nav-rail.min.js +1 -1
- package/dist/nav-rail.min.js.map +1 -1
- package/dist/option.js +29 -31
- package/dist/option.js.map +1 -1
- package/dist/option.min.js +1 -1
- package/dist/option.min.js.map +1 -1
- package/dist/paginator.js +3 -4
- package/dist/paginator.js.map +1 -1
- package/dist/paginator.min.js +2 -2
- package/dist/paginator.min.js.map +1 -1
- package/dist/progress-indicator.js +4 -4
- package/dist/progress-indicator.js.map +1 -1
- package/dist/progress-indicator.min.js +7 -7
- package/dist/progress-indicator.min.js.map +1 -1
- package/dist/radio-group.js +6 -6
- package/dist/radio-group.js.map +1 -1
- package/dist/radio-group.min.js +1 -1
- package/dist/radio-group.min.js.map +1 -1
- package/dist/segmented-button.js +11 -11
- package/dist/segmented-button.js.map +1 -1
- package/dist/segmented-button.min.js +1 -1
- package/dist/segmented-button.min.js.map +1 -1
- package/dist/select.js +11 -355
- package/dist/select.js.map +1 -1
- package/dist/select.min.js +1 -18
- package/dist/select.min.js.map +1 -1
- package/dist/shape.js +3 -3
- package/dist/shape.js.map +1 -1
- package/dist/shape.min.js +1 -1
- package/dist/shape.min.js.map +1 -1
- package/dist/slide-group.js +3 -3
- package/dist/slide-group.js.map +1 -1
- package/dist/slide-group.min.js +1 -1
- package/dist/slide-group.min.js.map +1 -1
- package/dist/slider.js +10 -10
- package/dist/slider.js.map +1 -1
- package/dist/slider.min.js +1 -1
- package/dist/slider.min.js.map +1 -1
- package/dist/snackbar.js +4 -4
- package/dist/snackbar.js.map +1 -1
- package/dist/snackbar.min.js +1 -1
- package/dist/snackbar.min.js.map +1 -1
- package/dist/split-button.js +3 -3
- package/dist/split-button.js.map +1 -1
- package/dist/split-button.min.js +1 -1
- package/dist/split-button.min.js.map +1 -1
- package/dist/src/autocomplete/AutocompleteElement.d.ts.map +1 -1
- package/dist/src/avatar/AvatarElement.d.ts.map +1 -1
- package/dist/src/bottom-sheet/BottomSheetActionElement.d.ts.map +1 -1
- package/dist/src/bottom-sheet/BottomSheetElement.d.ts +1 -1
- package/dist/src/bottom-sheet/BottomSheetElement.d.ts.map +1 -1
- package/dist/src/bottom-sheet/BottomSheetTriggerElement.d.ts.map +1 -1
- package/dist/src/button/ButtonElement.d.ts +2 -1
- package/dist/src/button/ButtonElement.d.ts.map +1 -1
- package/dist/src/button/styles/ButtonSizeStyle.d.ts.map +1 -1
- package/dist/src/button/styles/ButtonVariantStyle.d.ts.map +1 -1
- package/dist/src/button-group/ButtonGroupElement.d.ts.map +1 -1
- package/dist/src/card/CardElement.d.ts.map +1 -1
- package/dist/src/checkbox/CheckboxElement.d.ts.map +1 -1
- package/dist/src/chips/AssistChipElement.d.ts +3 -1
- package/dist/src/chips/AssistChipElement.d.ts.map +1 -1
- package/dist/src/chips/ChipElement.d.ts +3 -1
- package/dist/src/chips/ChipElement.d.ts.map +1 -1
- package/dist/src/chips/ChipSetElement.d.ts.map +1 -1
- package/dist/src/chips/FilterChipElement.d.ts +3 -1
- package/dist/src/chips/FilterChipElement.d.ts.map +1 -1
- package/dist/src/chips/FilterChipSetElement.d.ts.map +1 -1
- package/dist/src/chips/InputChipElement.d.ts +8 -1
- package/dist/src/chips/InputChipElement.d.ts.map +1 -1
- package/dist/src/chips/InputChipSetElement.d.ts.map +1 -1
- package/dist/src/chips/SuggestionChipElement.d.ts +3 -1
- package/dist/src/chips/SuggestionChipElement.d.ts.map +1 -1
- package/dist/src/core/bidi/Directionality.d.ts.map +1 -1
- package/dist/src/core/shared/controllers/HoverController.d.ts.map +1 -1
- package/dist/src/core/shared/controllers/IntersectionController.d.ts.map +1 -1
- package/dist/src/core/shared/decorators/component.d.ts +19 -0
- package/dist/src/core/shared/decorators/component.d.ts.map +1 -0
- package/dist/src/core/shared/decorators/element.d.ts +19 -0
- package/dist/src/core/shared/decorators/element.d.ts.map +1 -0
- package/dist/src/core/shared/decorators/index.d.ts +1 -0
- package/dist/src/core/shared/decorators/index.d.ts.map +1 -1
- package/dist/src/core/shared/mixins/AttachInternals.d.ts +27 -0
- package/dist/src/core/shared/mixins/AttachInternals.d.ts.map +1 -1
- package/dist/src/core/shared/mixins/Dirty.d.ts +2 -1
- package/dist/src/core/shared/mixins/Dirty.d.ts.map +1 -1
- package/dist/src/core/shared/mixins/HtmlFor.d.ts.map +1 -1
- package/dist/src/core/shared/mixins/Labelled.d.ts.map +1 -1
- package/dist/src/core/shared/mixins/Touched.d.ts +2 -1
- package/dist/src/core/shared/mixins/Touched.d.ts.map +1 -1
- package/dist/src/core/shared/primitives/CollapsibleElement.d.ts +1 -1
- package/dist/src/core/shared/primitives/CollapsibleElement.d.ts.map +1 -1
- package/dist/src/core/shared/primitives/ElevationElement.d.ts.map +1 -1
- package/dist/src/core/shared/primitives/FocusRingElement.d.ts.map +1 -1
- package/dist/src/core/shared/primitives/RippleElement.d.ts.map +1 -1
- package/dist/src/core/shared/primitives/ScrollContainerElement.d.ts +3 -1
- package/dist/src/core/shared/primitives/ScrollContainerElement.d.ts.map +1 -1
- package/dist/src/core/shared/primitives/SlideElement.d.ts +3 -1
- package/dist/src/core/shared/primitives/SlideElement.d.ts.map +1 -1
- package/dist/src/core/shared/primitives/StateLayerElement.d.ts.map +1 -1
- package/dist/src/core/shared/primitives/TextHighlightElement.d.ts.map +1 -1
- package/dist/src/core/shared/primitives/TextOverflowElement.d.ts.map +1 -1
- package/dist/src/core/shared/utils/getState.d.ts +15 -0
- package/dist/src/core/shared/utils/getState.d.ts.map +1 -0
- package/dist/src/dialog/DialogActionElement.d.ts.map +1 -1
- package/dist/src/dialog/DialogElement.d.ts +2 -2
- package/dist/src/dialog/DialogElement.d.ts.map +1 -1
- package/dist/src/dialog/DialogTriggerElement.d.ts.map +1 -1
- package/dist/src/drawer-container/DrawerContainerElement.d.ts +3 -1
- package/dist/src/drawer-container/DrawerContainerElement.d.ts.map +1 -1
- package/dist/src/drawer-container/DrawerToggleElement.d.ts.map +1 -1
- package/dist/src/drawer-container/styles/DrawerContainerStyle.d.ts.map +1 -1
- package/dist/src/expansion-panel/ExpansionHeaderElement.d.ts.map +1 -1
- package/dist/src/fab/FabElement.d.ts.map +1 -1
- package/dist/src/fab-menu/FabMenuElement.d.ts +1 -1
- package/dist/src/fab-menu/FabMenuElement.d.ts.map +1 -1
- package/dist/src/fab-menu/FabMenuItemElement.d.ts.map +1 -1
- package/dist/src/fab-menu/FabMenuTriggerElement.d.ts.map +1 -1
- package/dist/src/form-field/FormFieldElement.d.ts.map +1 -1
- package/dist/src/icon-button/IconButtonElement.d.ts +2 -1
- package/dist/src/icon-button/IconButtonElement.d.ts.map +1 -1
- package/dist/src/icon-button/styles/IconButtonSizeStyle.d.ts.map +1 -1
- package/dist/src/icon-button/styles/IconButtonVariantStyle.d.ts.map +1 -1
- package/dist/src/list/ActionListElement.d.ts.map +1 -1
- package/dist/src/list/ListElement.d.ts +1 -1
- package/dist/src/list/ListElement.d.ts.map +1 -1
- package/dist/src/list/ListItemButtonElement.d.ts.map +1 -1
- package/dist/src/list/ListItemElement.d.ts +1 -1
- package/dist/src/list/ListItemElement.d.ts.map +1 -1
- package/dist/src/list/ListOptionElement.d.ts.map +1 -1
- package/dist/src/list/SelectionListElement.d.ts.map +1 -1
- package/dist/src/menu/MenuElement.d.ts +1 -1
- package/dist/src/menu/MenuElement.d.ts.map +1 -1
- package/dist/src/menu/MenuItemCheckboxElement.d.ts.map +1 -1
- package/dist/src/menu/MenuItemGroupElement.d.ts.map +1 -1
- package/dist/src/menu/MenuItemRadioElement.d.ts.map +1 -1
- package/dist/src/menu/MenuTriggerElement.d.ts.map +1 -1
- package/dist/src/nav-bar/NavBarElement.d.ts +1 -1
- package/dist/src/nav-bar/NavBarElement.d.ts.map +1 -1
- package/dist/src/nav-bar/NavItemElement.d.ts.map +1 -1
- package/dist/src/nav-menu/NavMenuElement.d.ts.map +1 -1
- package/dist/src/nav-menu/NavMenuItemElement.d.ts.map +1 -1
- package/dist/src/nav-menu/NavMenuItemGroupElement.d.ts +1 -1
- package/dist/src/nav-menu/NavMenuItemGroupElement.d.ts.map +1 -1
- package/dist/src/nav-rail/NavRailElement.d.ts.map +1 -1
- package/dist/src/nav-rail/NavRailToggleElement.d.ts.map +1 -1
- package/dist/src/option/OptGroupElement.d.ts.map +1 -1
- package/dist/src/option/OptionElement.d.ts +1 -2
- package/dist/src/option/OptionElement.d.ts.map +1 -1
- package/dist/src/option/OptionPanelElement.d.ts +12 -13
- package/dist/src/option/OptionPanelElement.d.ts.map +1 -1
- package/dist/src/paginator/PaginatorElement.d.ts +0 -1
- package/dist/src/paginator/PaginatorElement.d.ts.map +1 -1
- package/dist/src/radio-group/RadioElement.d.ts.map +1 -1
- package/dist/src/radio-group/RadioGroupElement.d.ts.map +1 -1
- package/dist/src/segmented-button/ButtonSegmentElement.d.ts.map +1 -1
- package/dist/src/segmented-button/SegmentedButtonElement.d.ts.map +1 -1
- package/dist/src/select/SelectElement.d.ts.map +1 -1
- package/dist/src/shape/ShapeElement.d.ts.map +1 -1
- package/dist/src/slider/SliderElement.d.ts +3 -1
- package/dist/src/slider/SliderElement.d.ts.map +1 -1
- package/dist/src/slider/SliderThumbElement.d.ts.map +1 -1
- package/dist/src/stepper/StepElement.d.ts.map +1 -1
- package/dist/src/stepper/StepperElement.d.ts.map +1 -1
- package/dist/src/switch/SwitchElement.d.ts.map +1 -1
- package/dist/src/tabs/TabElement.d.ts.map +1 -1
- package/dist/src/tabs/TabPanelElement.d.ts.map +1 -1
- package/dist/src/tabs/TabsElement.d.ts.map +1 -1
- package/dist/src/toc/TocElement.d.ts.map +1 -1
- package/dist/src/tooltip/RichTooltipActionElement.d.ts.map +1 -1
- package/dist/src/tooltip/TooltipElementBase.d.ts +1 -1
- package/dist/src/tooltip/TooltipElementBase.d.ts.map +1 -1
- package/dist/stepper.js +15 -15
- package/dist/stepper.js.map +1 -1
- package/dist/stepper.min.js +1 -1
- package/dist/stepper.min.js.map +1 -1
- package/dist/switch.js +3 -3
- package/dist/switch.js.map +1 -1
- package/dist/switch.min.js +1 -1
- package/dist/switch.min.js.map +1 -1
- package/dist/tabs.js +10 -10
- package/dist/tabs.js.map +1 -1
- package/dist/tabs.min.js +1 -1
- package/dist/tabs.min.js.map +1 -1
- package/dist/textarea-autosize.js +3 -3
- package/dist/textarea-autosize.js.map +1 -1
- package/dist/textarea-autosize.min.js +2 -2
- package/dist/textarea-autosize.min.js.map +1 -1
- package/dist/theme.js +3 -3
- package/dist/theme.js.map +1 -1
- package/dist/theme.min.js +2 -2
- package/dist/theme.min.js.map +1 -1
- package/dist/toc.js +11 -11
- package/dist/toc.js.map +1 -1
- package/dist/toc.min.js +1 -1
- package/dist/toc.min.js.map +1 -1
- package/dist/toolbar.js +3 -3
- package/dist/toolbar.js.map +1 -1
- package/dist/toolbar.min.js +1 -1
- package/dist/toolbar.min.js.map +1 -1
- package/dist/tooltip.js +8 -8
- package/dist/tooltip.js.map +1 -1
- package/dist/tooltip.min.js +1 -1
- package/dist/tooltip.min.js.map +1 -1
- package/package.json +1 -1
package/dist/form-field.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"form-field.js","sources":["../../src/form-field/FormFieldControl.ts","../../../node_modules/tslib/tslib.es6.js","../../src/form-field/FormFieldElement.ts"],"sourcesContent":["/**\r\n * Adapted from Angular Material Form Field Control\r\n * Source: https://github.com/angular/components/blob/main/src/material/form-field/form-field-control.ts\r\n *\r\n * @license MIT\r\n * Copyright (c) 2025 Google LLC\r\n * See LICENSE file in the project root for full license text.\r\n */\r\n\r\n/** An interface which allows a control to work inside of a `M3eFormField`. */\r\nexport interface FormFieldControl extends HTMLElement {\r\n /** A value indicating whether the control is disabled. */\r\n disabled: boolean;\r\n\r\n /** The value of the control. */\r\n value?: unknown;\r\n\r\n /** A value indicating whether the control is required. */\r\n required?: boolean;\r\n\r\n /** A value indicated whether the content of the control is read-only. */\r\n readonly?: boolean;\r\n\r\n /** A value indicating whether the form field's label should try to float. */\r\n readonly shouldLabelFloat?: boolean;\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 /** The `HTMLFormElement` associated with this element. */\r\n readonly form?: HTMLFormElement | null;\r\n\r\n /**\r\n * Handles the click event on the control's container.\r\n * @param {MouseEvent} event The `MouseEvent`.\r\n */\r\n onContainerClick?: (event: MouseEvent) => void;\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\nconst KNOWN_FORM_FIELD_TAGS = [\"m3e-input-chip-set\", \"m3e-select\"];\r\n\r\n/**\r\n * Determines whether a value is a `FormFieldControl`.\r\n * @param {unknown} value The value to test.\r\n * @returns {value is FormFieldControl} A value indicating whether `value` is a `FormFieldControl`.\r\n */\r\nexport function isFormFieldControl(value: unknown): value is FormFieldControl {\r\n return (\r\n value instanceof HTMLElement &&\r\n (value instanceof HTMLInputElement ||\r\n value instanceof HTMLTextAreaElement ||\r\n value instanceof HTMLSelectElement ||\r\n KNOWN_FORM_FIELD_TAGS.includes(value.tagName.toLowerCase()))\r\n );\r\n}\r\n\r\n/**\r\n * Locates the first `FormFieldControl` in a given slot.\r\n * @param {HTMLSlotElement} slot The slot in which to locate a `FormFieldControl`.\r\n * @returns {FormFieldControl | null} The `FormFieldControl` located in `slot`.\r\n */\r\nexport function findFormFieldControl(slot: HTMLSlotElement): FormFieldControl | null {\r\n for (const element of slot.assignedElements({ flatten: true })) {\r\n if (isFormFieldControl(element)) {\r\n return element;\r\n }\r\n\r\n const walker = document.createTreeWalker(element, NodeFilter.SHOW_ELEMENT);\r\n while (walker.nextNode()) {\r\n if (isFormFieldControl(walker.currentNode)) {\r\n return walker.currentNode;\r\n }\r\n }\r\n }\r\n\r\n return null;\r\n}\r\n","/******************************************************************************\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","/**\r\n * Adapted from Angular Material Form Field\r\n * Source: https://github.com/angular/components/blob/main/src/material/form-field/form-field.ts\r\n *\r\n * @license MIT\r\n * Copyright (c) 2025 Google LLC\r\n * See LICENSE file in the project root for full license text.\r\n */\r\n\r\nimport { css, CSSResultGroup, html, LitElement, nothing, PropertyValues, unsafeCSS } from \"lit\";\r\nimport { customElement, property, query, state } from \"lit/decorators.js\";\r\n\r\nimport {\r\n AttachInternals,\r\n DesignToken,\r\n FocusController,\r\n getTextContent,\r\n hasAssignedNodes,\r\n HoverController,\r\n interceptProperty,\r\n isReadOnlyMixin,\r\n MutationController,\r\n PressedController,\r\n ResizeController,\r\n} from \"@m3e/web/core\";\r\n\r\nimport { M3eAriaDescriber } from \"@m3e/web/core/a11y\";\r\n\r\nimport { findFormFieldControl, FormFieldControl } from \"./FormFieldControl\";\r\nimport { FormFieldVariant } from \"./FormFieldVariant\";\r\nimport { HideSubscriptType } from \"./HideSubscriptType\";\r\nimport { FloatLabelType } from \"./FloatLabelType\";\r\n\r\n/**\r\n * A container for form controls that applies Material Design styling and behavior.\r\n *\r\n * @description\r\n * The `m3e-form-field` component is a semantic, expressive container for form controls that anchors\r\n * label behavior, subscript messaging, and variant-specific layout. Designed according to Material Design 3\r\n * guidelines, it supports two visual variants—`outlined` and `filled`—each with dynamic elevation,\r\n * shape transitions, and adaptive color theming. The component responds to control state changes\r\n * (focus, hover, press, disabled, invalid) with smooth motion and semantic clarity, ensuring\r\n * visual hierarchy and emotional resonance.\r\n\r\n * The component is accessible by default, with ARIA annotations, contrast-safe color tokens,\r\n * and dynamic descriptions for hint and error messaging. It supports prefix and suffix content,\r\n * floating labels, and adaptive subscript visibility. When hosting a control with validation,\r\n * error messages are surfaced with `aria-invalid` and described for assistive technology.\r\n\r\n * Native form controls may not expose full state or messaging on their own. `m3e-form-field` bridges\r\n * these gaps by coordinating label floating, container styling, and subscript feedback.\r\n *\r\n * @example\r\n * The following example illustrates a basic usage of the `m3e-form-field`.\r\n * ```html\r\n * <m3e-form-field>\r\n * <label slot=\"label\" for=\"field\">Text field</label>\r\n * <input id=\"field\" />\r\n * </m3e-form-field>\r\n * ```\r\n * \r\n * @tag m3e-form-field\r\n *\r\n * @slot - Renders the control of the field.\r\n * @slot prefix - Renders content before the fields's control.\r\n * @slot prefix-text - Renders text before the fields's control.\r\n * @slot suffix - Renders content after the fields's control.\r\n * @slot suffix-text - Renders text after the fields's control.\r\n * @slot hint - Renders hint text in the fields's subscript, when the control is valid.\r\n * @slot error - Renders error text in the fields's subscript, when the control is invalid.\r\n *\r\n * @attr float-label - Specifies whether the label should float always or only when necessary.\r\n * @attr hide-required-marker - Whether the required marker should be hidden.\r\n * @attr hide-subscript - Whether subscript content is hidden.\r\n * @attr variant - The appearance variant of the field.\r\n *\r\n * @cssprop --m3e-form-field-font-size - Font size for the form field container text.\r\n * @cssprop --m3e-form-field-font-weight - Font weight for the form field container text.\r\n * @cssprop --m3e-form-field-line-height - Line height for the form field container text.\r\n * @cssprop --m3e-form-field-tracking - Letter spacing for the form field container text.\r\n * @cssprop --m3e-form-field-label-font-size - Font size for the floating label.\r\n * @cssprop --m3e-form-field-label-font-weight - Font weight for the floating label.\r\n * @cssprop --m3e-form-field-label-line-height - Line height for the floating label.\r\n * @cssprop --m3e-form-field-label-tracking - Letter spacing for the floating label.\r\n * @cssprop --m3e-form-field-subscript-font-size - Font size for hint and error text.\r\n * @cssprop --m3e-form-field-subscript-font-weight - Font weight for hint and error text.\r\n * @cssprop --m3e-form-field-subscript-line-height - Line height for hint and error text.\r\n * @cssprop --m3e-form-field-subscript-tracking - Letter spacing for hint and error text.\r\n * @cssprop --m3e-form-field-color - Text color for the form field container.\r\n * @cssprop --m3e-form-field-subscript-color - Color for hint and error text.\r\n * @cssprop --m3e-form-field-invalid-color - Color used when the control is invalid.\r\n * @cssprop --m3e-form-field-focused-outline-color - Outline color when focused.\r\n * @cssprop --m3e-form-field-focused-color - Label color when focused.\r\n * @cssprop --m3e-form-field-outline-color - Outline color in outlined variant.\r\n * @cssprop --m3e-form-field-container-color - Background color in filled variant.\r\n * @cssprop --m3e-form-field-hover-container-color - Hover background color in filled variant.\r\n * @cssprop --m3e-form-field-width - Width of the form field container.\r\n * @cssprop --m3e-form-field-icon-size - Size of prefix and suffix icons.\r\n * @cssprop --m3e-outlined-form-field-container-shape - Corner radius for outlined container.\r\n * @cssprop --m3e-form-field-container-shape - Corner radius for filled container.\r\n * @cssprop --m3e-form-field-hover-container-opacity - Opacity for hover background in filled variant.\r\n * @cssprop --m3e-form-field-disabled-opacity - Opacity for disabled text.\r\n * @cssprop --m3e-form-field-disabled-container-opacity - Opacity for disabled container background.\r\n */\r\n@customElement(\"m3e-form-field\")\r\nexport class M3eFormFieldElement extends AttachInternals(LitElement) {\r\n static {\r\n if (document) {\r\n const lightDomStyle = new CSSStyleSheet();\r\n lightDomStyle.replaceSync(\r\n css`\r\n m3e-form-field input::placeholder,\r\n m3e-form-field textarea::placeholder {\r\n user-select: none;\r\n color: currentColor;\r\n transition: opacity ${DesignToken.motion.duration.extraLong1};\r\n }\r\n m3e-form-field[float-label=\"auto\"]:not(.-float-label).-with-label input::placeholder,\r\n m3e-form-field[float-label=\"auto\"]:not(.-float-label).-with-label textarea::placeholder {\r\n opacity: 0;\r\n transition: opacity 0s;\r\n }\r\n m3e-form-field[variant=\"outlined\"] m3e-input-chip-set {\r\n margin-block: calc(calc(3.5rem + ${DesignToken.density.calc(-2)}) / 4);\r\n }\r\n @media (prefers-reduced-motion) {\r\n m3e-form-field input::placeholder,\r\n m3e-form-field textarea::placeholder {\r\n transition: none !important;\r\n }\r\n }\r\n `.toString(),\r\n );\r\n\r\n document.adoptedStyleSheets = [...document.adoptedStyleSheets, lightDomStyle];\r\n }\r\n }\r\n /** The styles of the element. */\r\n static override styles: CSSResultGroup = css`\r\n :host {\r\n display: inline-flex;\r\n flex-direction: column;\r\n vertical-align: middle;\r\n font-size: var(--m3e-form-field-font-size, ${DesignToken.typescale.standard.body.large.fontSize});\r\n font-weight: var(--m3e-form-field-font-weight, ${DesignToken.typescale.standard.body.large.fontWeight});\r\n line-height: var(--m3e-form-field-line-height, ${DesignToken.typescale.standard.body.large.lineHeight});\r\n letter-spacing: var(--m3e-form-field-tracking, ${DesignToken.typescale.standard.body.large.tracking});\r\n width: var(--m3e-form-field-width, 14.5rem);\r\n color: var(--_form-field-color);\r\n }\r\n :host(:not(.-disabled)) .base {\r\n cursor: var(--_form-field-cursor);\r\n }\r\n .base {\r\n display: flex;\r\n align-items: center;\r\n position: relative;\r\n min-height: calc(3.5rem + ${DesignToken.density.calc(-2)});\r\n --_form-field-label-font-size: var(\r\n --m3e-form-field-label-font-size,\r\n ${DesignToken.typescale.standard.body.small.fontSize}\r\n );\r\n --_form-field-label-line-height: var(\r\n --m3e-form-field-label-line-height,\r\n ${DesignToken.typescale.standard.body.small.lineHeight}\r\n );\r\n }\r\n .content {\r\n display: flex;\r\n align-items: center;\r\n position: relative;\r\n flex: 1 1 auto;\r\n min-width: 0;\r\n min-height: var(--m3e-form-field-icon-size, 1.5rem);\r\n }\r\n .prefix,\r\n .suffix {\r\n display: flex;\r\n align-items: center;\r\n position: relative;\r\n user-select: none;\r\n flex: none;\r\n font-size: var(--m3e-form-field-icon-size, 1.5rem);\r\n }\r\n .prefix-text,\r\n .suffix-text {\r\n opacity: 1;\r\n transition: opacity ${DesignToken.motion.duration.extraLong1};\r\n user-select: none;\r\n flex: none;\r\n }\r\n .input {\r\n display: inline-flex;\r\n flex-wrap: wrap;\r\n flex: 1 1 auto;\r\n min-width: 0;\r\n }\r\n .label {\r\n display: flex;\r\n position: absolute;\r\n pointer-events: none;\r\n user-select: none;\r\n top: 0;\r\n left: 0;\r\n right: 0;\r\n font-size: var(--m3e-form-field-label-font-size, ${DesignToken.typescale.standard.body.small.fontSize});\r\n font-weight: var(--m3e-form-field-label-font-weight, ${DesignToken.typescale.standard.body.small.fontWeight});\r\n line-height: var(--m3e-form-field-label-line-height, ${DesignToken.typescale.standard.body.small.lineHeight});\r\n letter-spacing: var(--m3e-form-field-label-tracking, ${DesignToken.typescale.standard.body.small.tracking});\r\n color: var(--_form-field-label-color, inherit);\r\n transition: ${unsafeCSS(\r\n `top ${DesignToken.motion.duration.short4}, \r\n font-size ${DesignToken.motion.duration.short4}, \r\n line-height ${DesignToken.motion.duration.short4}`,\r\n )};\r\n }\r\n :host(.-with-select) .label {\r\n margin-inline-end: 1.5rem;\r\n }\r\n ::slotted([slot=\"label\"]) {\r\n white-space: nowrap;\r\n overflow: hidden;\r\n text-overflow: ellipsis;\r\n }\r\n .subscript {\r\n display: inline-flex;\r\n width: 100%;\r\n margin-top: 0.25rem;\r\n font-size: var(--m3e-form-field-subscript-font-size, ${DesignToken.typescale.standard.body.small.fontSize});\r\n font-weight: var(--m3e-form-field-subscript-font-weight, ${DesignToken.typescale.standard.body.small.fontWeight});\r\n line-height: var(--m3e-form-field-subscript-line-height, ${DesignToken.typescale.standard.body.small.lineHeight});\r\n letter-spacing: var(--m3e-form-field-subscript-tracking, ${DesignToken.typescale.standard.body.small.tracking});\r\n min-height: var(--m3e-form-field-subscript-line-height, ${DesignToken.typescale.standard.body.small.lineHeight});\r\n color: var(--m3e-form-field-subscript-color, ${DesignToken.color.onSurfaceVariant});\r\n }\r\n .error,\r\n .hint {\r\n flex: 1 1 auto;\r\n }\r\n :host([hide-subscript=\"always\"]) .subscript {\r\n display: none;\r\n }\r\n :host([hide-subscript=\"auto\"]:not(.-invalid)) .subscript {\r\n opacity: 0;\r\n margin-top: 0px;\r\n margin-bottom: 0.25rem;\r\n transition: ${unsafeCSS(\r\n `opacity ${DesignToken.motion.duration.short4}, \r\n margin-top ${DesignToken.motion.duration.short4}, \r\n margin-bottom ${DesignToken.motion.duration.short4}`,\r\n )};\r\n }\r\n :host([hide-subscript=\"auto\"]:not(.-invalid):focus-within) .subscript,\r\n :host([hide-subscript=\"auto\"]:not(.-invalid).-pressed) .subscript {\r\n opacity: 1;\r\n margin-top: 0.25rem;\r\n margin-bottom: 0;\r\n }\r\n :host(.-invalid) .hint {\r\n display: none;\r\n }\r\n :host(:not(.-invalid)) .error {\r\n display: none;\r\n }\r\n ::slotted(input),\r\n ::slotted(textarea),\r\n ::slotted(select) {\r\n outline: unset;\r\n border: unset;\r\n background-color: transparent;\r\n box-shadow: none;\r\n font-family: inherit;\r\n font-size: inherit;\r\n line-height: initial;\r\n letter-spacing: inherit;\r\n color: var(--_form-field-input-color, inherit);\r\n flex: 1 1 auto;\r\n min-width: 0;\r\n padding: unset;\r\n }\r\n ::slotted(textarea) {\r\n scrollbar-width: ${DesignToken.scrollbar.thinWidth};\r\n scrollbar-color: ${DesignToken.scrollbar.color};\r\n }\r\n ::slotted(m3e-select),\r\n ::slotted(m3e-input-chip-set) {\r\n flex: 1 1 auto;\r\n min-width: 0;\r\n }\r\n :host([float-label=\"auto\"]:not(.-float-label):not(.-pressed)) .label {\r\n font-size: inherit;\r\n }\r\n\r\n :host([float-label=\"auto\"]:not(.-float-label).-with-label) .prefix-text,\r\n :host([float-label=\"auto\"]:not(.-float-label).-with-label) .suffix-text {\r\n opacity: 0;\r\n transition: opacity 0s;\r\n }\r\n .prefix {\r\n margin-inline-start: 1rem;\r\n }\r\n :host(.-with-prefix) .prefix {\r\n margin-inline-end: 1rem;\r\n margin-inline-start: 0.75rem;\r\n }\r\n .suffix {\r\n margin-inline-end: 1rem;\r\n }\r\n :host(.-with-suffix) .suffix {\r\n margin-inline-start: 0.25rem;\r\n margin-inline-end: 0.5rem;\r\n }\r\n :host(.-with-suffix.-with-select) .suffix {\r\n margin-inline-start: unset;\r\n }\r\n :host(.-with-select) .suffix-text {\r\n display: none;\r\n }\r\n :host([variant=\"outlined\"]) .label {\r\n margin-top: calc(0px - var(--_form-field-label-line-height) / 2);\r\n }\r\n :host([variant=\"outlined\"]) .outline {\r\n position: absolute;\r\n display: flex;\r\n pointer-events: none;\r\n left: 0;\r\n top: 0;\r\n bottom: 0;\r\n right: 0;\r\n }\r\n :host([variant=\"outlined\"]) .pseudo-label {\r\n visibility: hidden;\r\n margin-inline-end: 0.5rem;\r\n font-size: var(--_form-field-label-font-size);\r\n line-height: var(--_form-field-label-line-height);\r\n letter-spacing: var(--_form-field-label-tracking);\r\n max-width: 100%;\r\n transition-property: max-width, margin-inline-end;\r\n transition-duration: 1ms;\r\n }\r\n :host([variant=\"outlined\"].-required:not([hide-required-marker])) .pseudo-label {\r\n margin-inline-end: 0.25rem;\r\n }\r\n :host([variant=\"outlined\"][float-label=\"auto\"]:not(.-float-label):not(.-pressed)) .pseudo-label {\r\n max-width: 0;\r\n margin-inline-end: 0px;\r\n transition-delay: ${DesignToken.motion.duration.short2};\r\n }\r\n :host([variant=\"outlined\"]) .outline-start,\r\n :host([variant=\"outlined\"]) .outline-notch,\r\n :host([variant=\"outlined\"]) .outline-end {\r\n box-sizing: border-box;\r\n border-width: var(--_form-field-outline-size, 1px);\r\n border-color: var(--_form-field-outline-color);\r\n transition: border-color ${DesignToken.motion.duration.short4};\r\n }\r\n :host([variant=\"outlined\"]:not(.-with-label)) .outline-notch {\r\n display: none;\r\n }\r\n :host([variant=\"outlined\"]) .outline-start {\r\n min-width: 0.75rem;\r\n border-top-style: solid;\r\n border-inline-start-style: solid;\r\n border-bottom-style: solid;\r\n border-start-start-radius: var(--m3e-outlined-form-field-container-shape, ${DesignToken.shape.corner.extraSmall});\r\n border-end-start-radius: var(--m3e-outlined-form-field-container-shape, ${DesignToken.shape.corner.extraSmall});\r\n }\r\n :host([variant=\"outlined\"]) .outline-notch {\r\n border-bottom-style: solid;\r\n }\r\n :host([variant=\"outlined\"]) .outline-end {\r\n flex-grow: 1;\r\n min-width: 1rem;\r\n border-top-style: solid;\r\n border-inline-end-style: solid;\r\n border-bottom-style: solid;\r\n border-start-end-radius: var(--m3e-outlined-form-field-container-shape, ${DesignToken.shape.corner.extraSmall});\r\n border-end-end-radius: var(--m3e-outlined-form-field-container-shape, ${DesignToken.shape.corner.extraSmall});\r\n }\r\n :host([variant=\"outlined\"].-with-prefix) .outline-start {\r\n min-width: calc(1.25rem + var(--_prefix-width, 0px) + 0.25rem);\r\n }\r\n :host([variant=\"outlined\"]:not(.-disabled)) .base:hover .outline,\r\n :host([variant=\"outlined\"]:not(.-disabled):focus-within) .outline,\r\n :host([variant=\"outlined\"]:not(.-disabled).-pressed) .outline {\r\n --_form-field-outline-size: 2px;\r\n }\r\n :host([variant=\"outlined\"]) .subscript {\r\n margin-inline: 1rem;\r\n width: calc(100% - 2rem);\r\n }\r\n :host([variant=\"outlined\"]) .content {\r\n min-height: calc(3.5rem + ${DesignToken.density.calc(-2)});\r\n --_form-field-label-font-size: var(\r\n --m3e-form-field-label-font-size,\r\n ${DesignToken.typescale.standard.body.small.fontSize}\r\n );\r\n }\r\n :host([variant=\"outlined\"][float-label=\"auto\"]:not(.-float-label):not(.-pressed)) .label {\r\n margin-top: unset;\r\n line-height: calc(3.5rem + ${DesignToken.density.calc(-2)});\r\n --_form-field-label-font-size: var(\r\n --m3e-form-field-label-font-size,\r\n ${DesignToken.typescale.standard.body.small.fontSize}\r\n );\r\n }\r\n :host([variant=\"filled\"]) .base {\r\n --_select-arrow-margin-top: calc(\r\n 0px - calc(1rem / max(calc(0 - calc(var(--md-sys-density-scale, 0) + var(--md-sys-density-scale, 0))), 1))\r\n );\r\n }\r\n :host([variant=\"filled\"]) .base::before {\r\n content: \"\";\r\n box-sizing: border-box;\r\n position: absolute;\r\n pointer-events: none;\r\n top: 0;\r\n left: 0;\r\n right: 0;\r\n bottom: 0;\r\n border-bottom-style: solid;\r\n border-width: 1px;\r\n border-radius: var(--m3e-form-field-container-shape, ${DesignToken.shape.corner.extraSmallTop});\r\n border-color: var(--_form-field-outline-color);\r\n background-color: var(--_form-field-container-color);\r\n }\r\n :host([variant=\"filled\"]:not(.-disabled)) .base:hover::before,\r\n :host([variant=\"filled\"]:not(.-disabled):focus-within) .base::before,\r\n :host([variant=\"filled\"]:not(.-disabled).-pressed) .base::before {\r\n border-width: 3px;\r\n }\r\n :host([variant=\"filled\"]) .base::after {\r\n content: \"\";\r\n box-sizing: border-box;\r\n position: absolute;\r\n pointer-events: none;\r\n top: 0;\r\n left: 0;\r\n right: 0;\r\n bottom: 0;\r\n background-color: var(--_form-field-hover-container-color);\r\n transition: background-color ${DesignToken.motion.duration.short4};\r\n }\r\n :host([variant=\"filled\"]) .subscript {\r\n margin-inline: 1rem;\r\n width: calc(100% - 2rem);\r\n }\r\n :host([variant=\"filled\"]) .content {\r\n padding-top: calc(1.5rem + ${DesignToken.density.calc(-2)});\r\n margin-bottom: 0.5rem;\r\n }\r\n :host([variant=\"filled\"]) .label {\r\n top: calc(0.5rem + ${DesignToken.density.calc(-2)});\r\n }\r\n :host([variant=\"filled\"][float-label=\"auto\"]:not(.-float-label):not(.-pressed)) .label {\r\n top: 0px;\r\n line-height: calc(3.5rem + ${DesignToken.density.calc(-2)} - 0.0625rem);\r\n --_form-field-label-font-size: var(\r\n --m3e-form-field-label-font-size,\r\n ${DesignToken.typescale.standard.body.small.fontSize}\r\n );\r\n }\r\n :host(:not(.-disabled):not(:focus-within):not(.-pressed)) .base:hover {\r\n --_form-field-hover-container-color: color-mix(\r\n in srgb,\r\n var(--m3e-form-field-hover-container-color, ${DesignToken.color.onSurface})\r\n var(--m3e-form-field-hover-container-opacity, 8%),\r\n transparent\r\n );\r\n }\r\n :host(:not(.-disabled):not(.-invalid)) {\r\n color: var(--m3e-form-field-color, ${DesignToken.color.onSurface});\r\n }\r\n :host([variant=\"outlined\"]:not(.-disabled):not(.-invalid)) .base {\r\n --_form-field-outline-color: var(--m3e-form-field-outline-color, ${DesignToken.color.outline});\r\n }\r\n :host([variant=\"filled\"]:not(.-disabled):not(.-invalid)) .base {\r\n --_form-field-outline-color: var(--m3e-form-field-outline-color, ${DesignToken.color.onSurfaceVariant});\r\n }\r\n :host([variant=\"outlined\"]:not(.-disabled):not(.-invalid):focus-within) .base,\r\n :host([variant=\"outlined\"]:not(.-disabled):not(.-invalid).-pressed) .base,\r\n :host([variant=\"filled\"]:not(.-disabled):not(.-invalid):focus-within) .base,\r\n :host([variant=\"filled\"]:not(.-disabled):not(.-invalid).-pressed) .base {\r\n --_form-field-outline-color: var(--m3e-form-field-focused-outline-color, ${DesignToken.color.primary});\r\n --_form-field-label-color: var(--m3e-form-field-focused-color, ${DesignToken.color.primary});\r\n }\r\n :host(:not(.-disabled)) .base {\r\n --_form-field-container-color: var(\r\n --m3e-form-field-container-color,\r\n ${DesignToken.color.surfaceContainerHighest}\r\n );\r\n }\r\n :host(:not(.-disabled).-invalid) .base {\r\n --_form-field-label-color: var(--m3e-form-field-invalid-color, ${DesignToken.color.error});\r\n --_form-field-outline-color: var(--m3e-form-field-invalid-color, ${DesignToken.color.error});\r\n }\r\n :host(:not(.-disabled).-invalid) .subscript {\r\n color: var(--m3e-form-field-invalid-color, ${DesignToken.color.error});\r\n }\r\n :host(.-disabled) {\r\n color: color-mix(\r\n in srgb,\r\n var(--m3e-form-field-disabled-color, ${DesignToken.color.onSurface}) var(--m3e-form-field-disabled-opacity, 38%),\r\n transparent\r\n );\r\n }\r\n :host(.-disabled) .base {\r\n --_form-field-container-color: color-mix(\r\n in srgb,\r\n var(--m3e-form-field-disabled-container-color, ${DesignToken.color.onSurface})\r\n var(--m3e-form-field-disabled-container-opacity, 4%),\r\n transparent\r\n );\r\n }\r\n :host(.-no-animate) *,\r\n :host(.-no-animate) *::before,\r\n :host(.-no-animate) *::after {\r\n transition: none !important;\r\n }\r\n @media (forced-colors: active) {\r\n :host([variant=\"filled\"]) .base::after {\r\n transition: none;\r\n }\r\n :host {\r\n --_form-field-outline-color: CanvasText;\r\n }\r\n :host(.-disabled) {\r\n --_form-field-input-color: GrayText;\r\n --_form-field-color: GrayText;\r\n --_form-field-label-color: GrayText;\r\n --_form-field-outline-color: GrayText;\r\n }\r\n }\r\n @media (prefers-reduced-motion) {\r\n .base::before,\r\n .prefix-text,\r\n .suffix-text,\r\n .label,\r\n .subscript,\r\n .outline-start,\r\n .outline-notch,\r\n .outline-end,\r\n .pseudo-label {\r\n transition: none !important;\r\n }\r\n }\r\n `;\r\n\r\n /** @private */ #control: FormFieldControl | null = null;\r\n /** @private */ #removeValueInterceptor?: () => void;\r\n /** @private */ readonly #formResetHandler = () => this.#handleFormReset();\r\n /** @private */ readonly #controlInvalidHandler = () => this.#handleControlInvalid();\r\n\r\n /** @private */\r\n readonly #controlMutationController = new MutationController(this, {\r\n target: null,\r\n config: { attributeFilter: [\"disabled\", \"readonly\", \"required\"] },\r\n callback: () => this.notifyControlStateChange(),\r\n });\r\n\r\n /** @private */\r\n readonly #resizeController = new ResizeController(this, {\r\n target: null,\r\n callback: () => this.#handlePrefixResize(),\r\n });\r\n\r\n /** @private */\r\n readonly #focusController = new FocusController(this, {\r\n target: null,\r\n callback: (focused) => {\r\n focused = focused && !(this.#control?.disabled ?? true);\r\n this.classList.toggle(\"-no-animate\", false);\r\n this.#focused = focused;\r\n if (focused) {\r\n this.classList.toggle(\"-float-label\", true);\r\n } else {\r\n this._invalid = !(this.#control?.checkValidity?.() ?? true);\r\n this.notifyControlStateChange();\r\n }\r\n },\r\n });\r\n\r\n /** @private */ @query(\".base\") private readonly _base!: HTMLElement;\r\n /** @private */ @query(\".prefix\") private readonly _prefix!: HTMLElement;\r\n /** @private */ @query(\".error\") private readonly _error!: HTMLElement;\r\n /** @private */ @query(\".hint\") private readonly _hint!: HTMLElement;\r\n\r\n /** @private */\r\n readonly #hintMutationController = new MutationController(this, {\r\n target: null,\r\n config: { childList: true, subtree: true },\r\n callback: () => this.#handleHintChange(),\r\n });\r\n\r\n /** @private */\r\n readonly #errorMutationController = new MutationController(this, {\r\n target: null,\r\n config: { childList: true, subtree: true },\r\n callback: () => this.#handleErrorChange(),\r\n });\r\n\r\n /** @private */\r\n readonly #pressedController = new PressedController(this, {\r\n target: null,\r\n callback: (pressed) => this.classList.toggle(\"-pressed\", pressed && !(this.#control?.disabled ?? true)),\r\n });\r\n\r\n /** @private */ #focused = false;\r\n /** @private */ @state() private _pseudoLabel = \"\";\r\n /** @private */ @state() private _required = false;\r\n /** @private */ @state() private _invalid = false;\r\n /** @private */ @state() private _validationMessage = \"\";\r\n /** @private */ #hintText = \"\";\r\n /** @private */ #errorText = \"\";\r\n\r\n constructor() {\r\n super();\r\n\r\n new HoverController(this, { callback: () => this.classList.toggle(\"-no-animate\", false) });\r\n }\r\n\r\n /** @private */\r\n get #shouldFloatLabel(): boolean {\r\n return this.#control?.shouldLabelFloat !== undefined\r\n ? this.#control.shouldLabelFloat === true\r\n : typeof this.#control?.value == \"string\" && this.#control.value.length > 0;\r\n }\r\n\r\n /** A reference to the element used to anchor dropdown menus. */\r\n get menuAnchor() {\r\n return this._base;\r\n }\r\n\r\n /** A reference to the hosted form field control. */\r\n get control() {\r\n return this.#control;\r\n }\r\n\r\n /**\r\n * The appearance variant of the field.\r\n * @default \"outlined\"\r\n */\r\n @property({ reflect: true }) variant: FormFieldVariant = \"outlined\";\r\n\r\n /**\r\n * Whether the required marker should be hidden.\r\n * @default false\r\n */\r\n @property({ attribute: \"hide-required-marker\", type: Boolean, reflect: true }) hideRequiredMarker = false;\r\n\r\n /**\r\n * Whether subscript content is hidden.\r\n * @default \"auto\"\r\n */\r\n @property({ attribute: \"hide-subscript\", reflect: true }) hideSubscript: HideSubscriptType = \"auto\";\r\n\r\n /**\r\n * Specifies whether the label should float always or only when necessary.\r\n * @default \"auto\"\r\n */\r\n @property({ attribute: \"float-label\", reflect: true }) floatLabel: FloatLabelType = \"auto\";\r\n\r\n /**\r\n * Notifies the form field that the state of the hosted `control` has changed.\r\n * @param {boolean} [checkValidity=false] Whether to check validity.\r\n */\r\n notifyControlStateChange(checkValidity: boolean = false): void {\r\n this._required = this.#control?.required === true;\r\n this.classList.toggle(\"-required\", this._required);\r\n this.classList.toggle(\"-disabled\", this.#control?.disabled === true);\r\n this.classList.toggle(\"-readonly\", isReadOnlyMixin(this.#control) && this.#control.readOnly === true);\r\n if (this.floatLabel === \"auto\") {\r\n this.classList.toggle(\"-float-label\", this.#shouldFloatLabel || this.#focused);\r\n }\r\n\r\n if (checkValidity) {\r\n this._invalid = !(this.#control?.checkValidity?.() ?? true);\r\n }\r\n\r\n this.classList.toggle(\"-invalid\", this._invalid);\r\n\r\n this._validationMessage = this.#control?.validationMessage ?? \"\";\r\n if (!this.isUpdatePending) {\r\n this.performUpdate();\r\n }\r\n }\r\n\r\n /** @inheritdoc */\r\n override connectedCallback(): void {\r\n super.connectedCallback();\r\n // Label animations are disabled on initial paint.\r\n this.classList.toggle(\"-no-animate\", true);\r\n }\r\n\r\n /** @inheritdoc */\r\n override disconnectedCallback(): void {\r\n super.disconnectedCallback();\r\n this.#changeControl(null);\r\n }\r\n\r\n /** @private */\r\n protected override firstUpdated(_changedProperties: PropertyValues): void {\r\n super.firstUpdated(_changedProperties);\r\n\r\n this.#focusController.observe(this._base);\r\n this.#pressedController.observe(this._base);\r\n\r\n this.#hintMutationController.observe(this._hint);\r\n this.#handleHintChange();\r\n\r\n this.#errorMutationController.observe(this._error);\r\n this.#handleErrorChange();\r\n }\r\n\r\n /** @inheritdoc */\r\n protected override update(changedProperties: PropertyValues): void {\r\n super.update(changedProperties);\r\n\r\n if (changedProperties.has(\"_invalid\") && this.#control) {\r\n this.#control.ariaInvalid = this._invalid ? \"true\" : null;\r\n\r\n if (this.#errorText) {\r\n if (this._invalid) {\r\n M3eAriaDescriber.describe(this.#control, this.#errorText);\r\n } else {\r\n M3eAriaDescriber.removeDescription(this.#control, this.#errorText);\r\n }\r\n }\r\n }\r\n }\r\n\r\n /** @inheritdoc */\r\n protected override render(): unknown {\r\n return html`<div class=\"base\" @click=\"${this.#handleContainerClick}\">\r\n ${this.variant === \"outlined\"\r\n ? html`<div class=\"outline\" aria-hidden=\"true\">\r\n <div class=\"outline-start\"></div>\r\n <div class=\"outline-notch\">\r\n <div class=\"pseudo-label\">\r\n ${this._pseudoLabel} ${!this.hideRequiredMarker && this._required ? html` *` : nothing}\r\n </div>\r\n </div>\r\n <div class=\"outline-end\"></div>\r\n </div>`\r\n : nothing}\r\n <div class=\"prefix\">\r\n <slot name=\"prefix\" @slotchange=\"${this.#handlePrefixSlotChange}\"></slot>\r\n </div>\r\n <div class=\"content\">\r\n <span class=\"prefix-text\"><slot name=\"prefix-text\"></slot></span>\r\n <span class=\"input\">\r\n <slot @slotchange=\"${this.#handleSlotChange}\" @change=\"${this.#handleControlChange}\"></slot>\r\n </span>\r\n <span class=\"suffix-text\"><slot name=\"suffix-text\"></slot></span>\r\n <span class=\"label\">\r\n <slot name=\"label\" @slotchange=\"${this.#handleLabelSlotChange}\"></slot>\r\n ${!this.hideRequiredMarker && this._required\r\n ? html`<span class=\"required-marker\" aria-hidden=\"true\"> *</span>`\r\n : nothing}\r\n </span>\r\n </div>\r\n <div\r\n class=\"suffix\"\r\n @click=\"${this.#stopPropagation}\"\r\n @focusin=\"${this.#stopPropagation}\"\r\n @focusout=\"${this.#stopPropagation}\"\r\n @pointerdown=\"${this.#stopPropagation}\"\r\n @keydown=\"${this.#stopPropagation}\"\r\n @keyup=\"${this.#stopPropagation}\"\r\n >\r\n <slot name=\"suffix\" @slotchange=\"${this.#handleSuffixSlotChange}\"></slot>\r\n </div>\r\n </div>\r\n <span class=\"subscript\" aria-hidden=\"true\">\r\n <span class=\"error\"><slot name=\"error\">${this._validationMessage}</slot></span>\r\n <span class=\"hint\"><slot name=\"hint\"></slot></span>\r\n </span>`;\r\n }\r\n\r\n /** @private */\r\n #stopPropagation(e: Event): void {\r\n e.stopImmediatePropagation();\r\n e.stopPropagation();\r\n }\r\n\r\n /** @private */\r\n #handleLabelSlotChange(e: Event): void {\r\n const assignedElements = (<HTMLSlotElement>e.target).assignedElements({ flatten: true });\r\n this.classList.toggle(\"-with-label\", assignedElements.length > 0);\r\n this._pseudoLabel = assignedElements[0]?.textContent ?? \"\";\r\n }\r\n\r\n /** @private */\r\n #handlePrefixSlotChange(e: Event): void {\r\n this.classList.toggle(\"-with-prefix\", hasAssignedNodes(<HTMLSlotElement>e.target));\r\n this.#resizeController.observe(this._prefix);\r\n }\r\n\r\n /** @private */\r\n #handleSuffixSlotChange(e: Event): void {\r\n this.classList.toggle(\"-with-suffix\", hasAssignedNodes(<HTMLSlotElement>e.target));\r\n }\r\n\r\n /** @private */\r\n #handlePrefixResize(): void {\r\n if (this.variant === \"outlined\") {\r\n this._base.style.setProperty(\"--_prefix-width\", `${this._prefix.clientWidth}px`);\r\n }\r\n }\r\n\r\n /** @private */\r\n #handleSlotChange(e: Event): void {\r\n this.#changeControl(findFormFieldControl(<HTMLSlotElement>e.target));\r\n }\r\n\r\n /** @private */\r\n #handleContainerClick(e: MouseEvent): void {\r\n if (this.#control && !this.#focused && !this.#control.disabled) {\r\n if (this.#control.onContainerClick) {\r\n this.#control.onContainerClick(e);\r\n } else {\r\n this.#control.focus();\r\n }\r\n }\r\n }\r\n\r\n /** @private */\r\n #handleControlInvalid(): void {\r\n this._invalid = true;\r\n this.notifyControlStateChange();\r\n }\r\n\r\n /** @private */\r\n #handleControlChange(): void {\r\n this._invalid = !(this.#control?.checkValidity?.() ?? true);\r\n this.notifyControlStateChange();\r\n }\r\n\r\n /** @private */\r\n #handleFormReset(): void {\r\n this._invalid = false;\r\n setTimeout(() => this.notifyControlStateChange());\r\n }\r\n\r\n /** @private */\r\n #changeControl(control: FormFieldControl | null): void {\r\n if (this.#control === control) return;\r\n if (this.#control) {\r\n if (this.#hintText) {\r\n M3eAriaDescriber.removeDescription(this.#control, this.#hintText);\r\n }\r\n if (this.#errorText) {\r\n M3eAriaDescriber.removeDescription(this.#control, this.#errorText);\r\n }\r\n\r\n this.#controlMutationController.unobserve(this.#control);\r\n this.#control.removeEventListener(\"invalid\", this.#controlInvalidHandler);\r\n this.#control.form?.removeEventListener(\"reset\", this.#formResetHandler);\r\n this.#removeValueInterceptor?.();\r\n this.#removeValueInterceptor = undefined;\r\n }\r\n this.#control = control;\r\n\r\n if ([\"INPUT\", \"TEXTAREA\"].includes(this.#control?.tagName ?? \"\")) {\r\n this._base.style.setProperty(\"--_form-field-cursor\", \"text\");\r\n } else {\r\n this._base.style.removeProperty(\"--_form-field-cursor\");\r\n }\r\n\r\n this.classList.toggle(\"-with-select\", this.#control?.tagName === \"M3E-SELECT\");\r\n if (this.classList.contains(\"-with-select\")) {\r\n this._base.style.setProperty(\"--_form-field-cursor\", \"pointer\");\r\n }\r\n\r\n if (this.#control) {\r\n this.#controlMutationController.observe(this.#control);\r\n this.#control.addEventListener(\"invalid\", this.#controlInvalidHandler);\r\n this.#control.form?.addEventListener(\"reset\", this.#formResetHandler);\r\n this.#control.removeAttribute(\"aria-invalid\");\r\n\r\n if (this.#hintText) {\r\n M3eAriaDescriber.describe(this.#control, this.#hintText);\r\n }\r\n\r\n this.notifyControlStateChange();\r\n\r\n const tagname = this.#control.tagName.toLowerCase();\r\n if (tagname.startsWith(\"m3e-\") && !customElements.get(tagname)) {\r\n customElements.whenDefined(tagname).then(() => this.#bindValueInterceptor());\r\n } else {\r\n this.#bindValueInterceptor();\r\n }\r\n }\r\n }\r\n\r\n /** @private */\r\n #bindValueInterceptor(): void {\r\n if (!this.#control) return;\r\n this.#removeValueInterceptor = interceptProperty(this.#control, \"value\", {\r\n set: (value, setter) => {\r\n setter(value);\r\n this.notifyControlStateChange(true);\r\n },\r\n });\r\n }\r\n\r\n /** @private */\r\n #handleHintChange(): void {\r\n const hintText = getTextContent(this._hint, true);\r\n if (hintText === this.#hintText) return;\r\n\r\n if (this.#control && this.#hintText) {\r\n M3eAriaDescriber.removeDescription(this.#control, this.#hintText);\r\n }\r\n\r\n this.#hintText = hintText;\r\n\r\n if (this.#control && this.#hintText) {\r\n M3eAriaDescriber.describe(this.#control, this.#hintText);\r\n }\r\n }\r\n\r\n /** @private */\r\n #handleErrorChange(): void {\r\n const errorText = getTextContent(this._error, true);\r\n if (errorText === this.#errorText) return;\r\n\r\n if (this.#control && this.#errorText) {\r\n M3eAriaDescriber.removeDescription(this.#control, this.#errorText);\r\n }\r\n\r\n this.#errorText = errorText;\r\n\r\n if (this.#control && this.#errorText && this._invalid) {\r\n M3eAriaDescriber.describe(this.#control, this.#errorText);\r\n }\r\n }\r\n}\r\n\r\ndeclare global {\r\n interface HTMLElementTagNameMap {\r\n \"m3e-form-field\": M3eFormFieldElement;\r\n }\r\n}\r\n"],"names":["KNOWN_FORM_FIELD_TAGS","isFormFieldControl","value","HTMLElement","HTMLInputElement","HTMLTextAreaElement","HTMLSelectElement","includes","tagName","toLowerCase","findFormFieldControl","slot","element","assignedElements","flatten","walker","document","createTreeWalker","NodeFilter","SHOW_ELEMENT","nextNode","currentNode","__decorate","decorators","target","key","desc","c","arguments","length","r","Object","getOwnPropertyDescriptor","d","Reflect","decorate","i","defineProperty","__classPrivateFieldGet","receiver","state","kind","f","TypeError","has","call","get","__classPrivateFieldSet","set","SuppressedError","error","suppressed","message","e","Error","name","M3eFormFieldElement","AttachInternals","LitElement","constructor","_M3eFormFieldElement_control","_M3eFormFieldElement_removeValueInterceptor","_M3eFormFieldElement_formResetHandler","_M3eFormFieldElement_instances","_M3eFormFieldElement_handleFormReset","_M3eFormFieldElement_controlInvalidHandler","_M3eFormFieldElement_handleControlInvalid","_M3eFormFieldElement_controlMutationController","MutationController","config","attributeFilter","callback","notifyControlStateChange","_M3eFormFieldElement_resizeController","ResizeController","_M3eFormFieldElement_handlePrefixResize","_M3eFormFieldElement_focusController","FocusController","focused","disabled","classList","toggle","_M3eFormFieldElement_focused","_invalid","checkValidity","_M3eFormFieldElement_hintMutationController","childList","subtree","_M3eFormFieldElement_handleHintChange","_M3eFormFieldElement_errorMutationController","_M3eFormFieldElement_handleErrorChange","_M3eFormFieldElement_pressedController","PressedController","pressed","_pseudoLabel","_required","_validationMessage","_M3eFormFieldElement_hintText","_M3eFormFieldElement_errorText","variant","hideRequiredMarker","hideSubscript","floatLabel","HoverController","menuAnchor","_base","control","required","isReadOnlyMixin","readOnly","validationMessage","isUpdatePending","performUpdate","connectedCallback","disconnectedCallback","_M3eFormFieldElement_changeControl","firstUpdated","_changedProperties","observe","_hint","_error","update","changedProperties","ariaInvalid","M3eAriaDescriber","describe","removeDescription","render","html","_M3eFormFieldElement_handleContainerClick","nothing","_M3eFormFieldElement_handlePrefixSlotChange","_M3eFormFieldElement_handleSlotChange","_M3eFormFieldElement_handleControlChange","_M3eFormFieldElement_handleLabelSlotChange","_M3eFormFieldElement_stopPropagation","_M3eFormFieldElement_handleSuffixSlotChange","shouldLabelFloat","undefined","stopImmediatePropagation","stopPropagation","textContent","hasAssignedNodes","_prefix","style","setProperty","clientWidth","onContainerClick","focus","setTimeout","unobserve","removeEventListener","form","removeProperty","contains","addEventListener","removeAttribute","tagname","startsWith","customElements","whenDefined","then","_M3eFormFieldElement_bindValueInterceptor","interceptProperty","setter","hintText","getTextContent","errorText","lightDomStyle","CSSStyleSheet","replaceSync","css","DesignToken","motion","duration","extraLong1","density","calc","toString","adoptedStyleSheets","styles","typescale","standard","body","large","fontSize","fontWeight","lineHeight","tracking","small","unsafeCSS","short4","color","onSurfaceVariant","scrollbar","thinWidth","short2","shape","corner","extraSmall","extraSmallTop","onSurface","outline","primary","surfaceContainerHighest","query","prototype","property","reflect","attribute","type","Boolean","customElement"],"mappings":"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","x_google_ignoreList":[1]}
|
|
1
|
+
{"version":3,"file":"form-field.js","sources":["../../src/form-field/FormFieldControl.ts","../../../node_modules/tslib/tslib.es6.js","../../src/form-field/FormFieldElement.ts"],"sourcesContent":["/**\r\n * Adapted from Angular Material Form Field Control\r\n * Source: https://github.com/angular/components/blob/main/src/material/form-field/form-field-control.ts\r\n *\r\n * @license MIT\r\n * Copyright (c) 2025 Google LLC\r\n * See LICENSE file in the project root for full license text.\r\n */\r\n\r\n/** An interface which allows a control to work inside of a `M3eFormField`. */\r\nexport interface FormFieldControl extends HTMLElement {\r\n /** A value indicating whether the control is disabled. */\r\n disabled: boolean;\r\n\r\n /** The value of the control. */\r\n value?: unknown;\r\n\r\n /** A value indicating whether the control is required. */\r\n required?: boolean;\r\n\r\n /** A value indicated whether the content of the control is read-only. */\r\n readonly?: boolean;\r\n\r\n /** A value indicating whether the form field's label should try to float. */\r\n readonly shouldLabelFloat?: boolean;\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 /** The `HTMLFormElement` associated with this element. */\r\n readonly form?: HTMLFormElement | null;\r\n\r\n /**\r\n * Handles the click event on the control's container.\r\n * @param {MouseEvent} event The `MouseEvent`.\r\n */\r\n onContainerClick?: (event: MouseEvent) => void;\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\nconst KNOWN_FORM_FIELD_TAGS = [\"m3e-input-chip-set\", \"m3e-select\"];\r\n\r\n/**\r\n * Determines whether a value is a `FormFieldControl`.\r\n * @param {unknown} value The value to test.\r\n * @returns {value is FormFieldControl} A value indicating whether `value` is a `FormFieldControl`.\r\n */\r\nexport function isFormFieldControl(value: unknown): value is FormFieldControl {\r\n return (\r\n value instanceof HTMLElement &&\r\n (value instanceof HTMLInputElement ||\r\n value instanceof HTMLTextAreaElement ||\r\n value instanceof HTMLSelectElement ||\r\n KNOWN_FORM_FIELD_TAGS.includes(value.tagName.toLowerCase()))\r\n );\r\n}\r\n\r\n/**\r\n * Locates the first `FormFieldControl` in a given slot.\r\n * @param {HTMLSlotElement} slot The slot in which to locate a `FormFieldControl`.\r\n * @returns {FormFieldControl | null} The `FormFieldControl` located in `slot`.\r\n */\r\nexport function findFormFieldControl(slot: HTMLSlotElement): FormFieldControl | null {\r\n for (const element of slot.assignedElements({ flatten: true })) {\r\n if (isFormFieldControl(element)) {\r\n return element;\r\n }\r\n\r\n const walker = document.createTreeWalker(element, NodeFilter.SHOW_ELEMENT);\r\n while (walker.nextNode()) {\r\n if (isFormFieldControl(walker.currentNode)) {\r\n return walker.currentNode;\r\n }\r\n }\r\n }\r\n\r\n return null;\r\n}\r\n","/******************************************************************************\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","/**\r\n * Adapted from Angular Material Form Field\r\n * Source: https://github.com/angular/components/blob/main/src/material/form-field/form-field.ts\r\n *\r\n * @license MIT\r\n * Copyright (c) 2025 Google LLC\r\n * See LICENSE file in the project root for full license text.\r\n */\r\n\r\nimport { css, CSSResultGroup, html, LitElement, nothing, PropertyValues, unsafeCSS } from \"lit\";\r\nimport { property, query, state } from \"lit/decorators.js\";\r\n\r\nimport {\r\n AttachInternals,\r\n element,\r\n DesignToken,\r\n FocusController,\r\n getTextContent,\r\n hasAssignedNodes,\r\n hasCustomState,\r\n HoverController,\r\n interceptProperty,\r\n isReadOnlyMixin,\r\n MutationController,\r\n PressedController,\r\n ResizeController,\r\n setCustomState,\r\n} from \"@m3e/web/core\";\r\n\r\nimport { M3eAriaDescriber } from \"@m3e/web/core/a11y\";\r\n\r\nimport { findFormFieldControl, FormFieldControl } from \"./FormFieldControl\";\r\nimport { FormFieldVariant } from \"./FormFieldVariant\";\r\nimport { HideSubscriptType } from \"./HideSubscriptType\";\r\nimport { FloatLabelType } from \"./FloatLabelType\";\r\n\r\n/**\r\n * A container for form controls that applies Material Design styling and behavior.\r\n *\r\n * @description\r\n * The `m3e-form-field` component is a semantic, expressive container for form controls that anchors\r\n * label behavior, subscript messaging, and variant-specific layout. Designed according to Material Design 3\r\n * guidelines, it supports two visual variants—`outlined` and `filled`—each with dynamic elevation,\r\n * shape transitions, and adaptive color theming. The component responds to control state changes\r\n * (focus, hover, press, disabled, invalid) with smooth motion and semantic clarity, ensuring\r\n * visual hierarchy and emotional resonance.\r\n\r\n * The component is accessible by default, with ARIA annotations, contrast-safe color tokens,\r\n * and dynamic descriptions for hint and error messaging. It supports prefix and suffix content,\r\n * floating labels, and adaptive subscript visibility. When hosting a control with validation,\r\n * error messages are surfaced with `aria-invalid` and described for assistive technology.\r\n\r\n * Native form controls may not expose full state or messaging on their own. `m3e-form-field` bridges\r\n * these gaps by coordinating label floating, container styling, and subscript feedback.\r\n *\r\n * @example\r\n * The following example illustrates a basic usage of the `m3e-form-field`.\r\n * ```html\r\n * <m3e-form-field>\r\n * <label slot=\"label\" for=\"field\">Text field</label>\r\n * <input id=\"field\" />\r\n * </m3e-form-field>\r\n * ```\r\n * \r\n * @tag m3e-form-field\r\n *\r\n * @slot - Renders the control of the field.\r\n * @slot prefix - Renders content before the fields's control.\r\n * @slot prefix-text - Renders text before the fields's control.\r\n * @slot suffix - Renders content after the fields's control.\r\n * @slot suffix-text - Renders text after the fields's control.\r\n * @slot hint - Renders hint text in the fields's subscript, when the control is valid.\r\n * @slot error - Renders error text in the fields's subscript, when the control is invalid.\r\n *\r\n * @attr float-label - Specifies whether the label should float always or only when necessary.\r\n * @attr hide-required-marker - Whether the required marker should be hidden.\r\n * @attr hide-subscript - Whether subscript content is hidden.\r\n * @attr variant - The appearance variant of the field.\r\n *\r\n * @cssprop --m3e-form-field-font-size - Font size for the form field container text.\r\n * @cssprop --m3e-form-field-font-weight - Font weight for the form field container text.\r\n * @cssprop --m3e-form-field-line-height - Line height for the form field container text.\r\n * @cssprop --m3e-form-field-tracking - Letter spacing for the form field container text.\r\n * @cssprop --m3e-form-field-label-font-size - Font size for the floating label.\r\n * @cssprop --m3e-form-field-label-font-weight - Font weight for the floating label.\r\n * @cssprop --m3e-form-field-label-line-height - Line height for the floating label.\r\n * @cssprop --m3e-form-field-label-tracking - Letter spacing for the floating label.\r\n * @cssprop --m3e-form-field-subscript-font-size - Font size for hint and error text.\r\n * @cssprop --m3e-form-field-subscript-font-weight - Font weight for hint and error text.\r\n * @cssprop --m3e-form-field-subscript-line-height - Line height for hint and error text.\r\n * @cssprop --m3e-form-field-subscript-tracking - Letter spacing for hint and error text.\r\n * @cssprop --m3e-form-field-color - Text color for the form field container.\r\n * @cssprop --m3e-form-field-subscript-color - Color for hint and error text.\r\n * @cssprop --m3e-form-field-invalid-color - Color used when the control is invalid.\r\n * @cssprop --m3e-form-field-focused-outline-color - Outline color when focused.\r\n * @cssprop --m3e-form-field-focused-color - Label color when focused.\r\n * @cssprop --m3e-form-field-outline-color - Outline color in outlined variant.\r\n * @cssprop --m3e-form-field-container-color - Background color in filled variant.\r\n * @cssprop --m3e-form-field-hover-container-color - Hover background color in filled variant.\r\n * @cssprop --m3e-form-field-width - Width of the form field container.\r\n * @cssprop --m3e-form-field-icon-size - Size of prefix and suffix icons.\r\n * @cssprop --m3e-outlined-form-field-container-shape - Corner radius for outlined container.\r\n * @cssprop --m3e-form-field-container-shape - Corner radius for filled container.\r\n * @cssprop --m3e-form-field-hover-container-opacity - Opacity for hover background in filled variant.\r\n * @cssprop --m3e-form-field-disabled-opacity - Opacity for disabled text.\r\n * @cssprop --m3e-form-field-disabled-container-opacity - Opacity for disabled container background.\r\n */\r\n@element(\"m3e-form-field\")\r\nexport class M3eFormFieldElement extends AttachInternals(LitElement) {\r\n static {\r\n if (typeof window !== \"undefined\") {\r\n const lightDomStyle = new CSSStyleSheet();\r\n lightDomStyle.replaceSync(\r\n css`\r\n m3e-form-field input::placeholder,\r\n m3e-form-field textarea::placeholder {\r\n user-select: none;\r\n color: currentColor;\r\n transition: opacity ${DesignToken.motion.duration.extraLong1};\r\n }\r\n m3e-form-field[float-label=\"auto\"]:not(:state(-float-label)):state(-with-label) input::placeholder,\r\n m3e-form-field[float-label=\"auto\"]:not(:state(-float-label)):state(-with-label) textarea::placeholder {\r\n opacity: 0;\r\n transition: opacity 0s;\r\n }\r\n m3e-form-field[variant=\"outlined\"] m3e-input-chip-set {\r\n margin-block: calc(calc(3.5rem + ${DesignToken.density.calc(-2)}) / 4);\r\n }\r\n @media (prefers-reduced-motion) {\r\n m3e-form-field input::placeholder,\r\n m3e-form-field textarea::placeholder {\r\n transition: none !important;\r\n }\r\n }\r\n `.toString(),\r\n );\r\n\r\n document.adoptedStyleSheets = [...document.adoptedStyleSheets, lightDomStyle];\r\n }\r\n }\r\n /** The styles of the element. */\r\n static override styles: CSSResultGroup = css`\r\n :host {\r\n display: inline-flex;\r\n flex-direction: column;\r\n vertical-align: middle;\r\n font-size: var(--m3e-form-field-font-size, ${DesignToken.typescale.standard.body.large.fontSize});\r\n font-weight: var(--m3e-form-field-font-weight, ${DesignToken.typescale.standard.body.large.fontWeight});\r\n line-height: var(--m3e-form-field-line-height, ${DesignToken.typescale.standard.body.large.lineHeight});\r\n letter-spacing: var(--m3e-form-field-tracking, ${DesignToken.typescale.standard.body.large.tracking});\r\n width: var(--m3e-form-field-width, 14.5rem);\r\n color: var(--_form-field-color);\r\n }\r\n :host(:not(:state(-disabled))) .base {\r\n cursor: var(--_form-field-cursor);\r\n }\r\n .base {\r\n display: flex;\r\n align-items: center;\r\n position: relative;\r\n min-height: calc(3.5rem + ${DesignToken.density.calc(-2)});\r\n --_form-field-label-font-size: var(\r\n --m3e-form-field-label-font-size,\r\n ${DesignToken.typescale.standard.body.small.fontSize}\r\n );\r\n --_form-field-label-line-height: var(\r\n --m3e-form-field-label-line-height,\r\n ${DesignToken.typescale.standard.body.small.lineHeight}\r\n );\r\n }\r\n .content {\r\n display: flex;\r\n align-items: center;\r\n position: relative;\r\n flex: 1 1 auto;\r\n min-width: 0;\r\n min-height: var(--m3e-form-field-icon-size, 1.5rem);\r\n }\r\n .prefix,\r\n .suffix {\r\n display: flex;\r\n align-items: center;\r\n position: relative;\r\n user-select: none;\r\n flex: none;\r\n font-size: var(--m3e-form-field-icon-size, 1.5rem);\r\n }\r\n .prefix-text,\r\n .suffix-text {\r\n opacity: 1;\r\n transition: opacity ${DesignToken.motion.duration.extraLong1};\r\n user-select: none;\r\n flex: none;\r\n }\r\n .input {\r\n display: inline-flex;\r\n flex-wrap: wrap;\r\n flex: 1 1 auto;\r\n min-width: 0;\r\n }\r\n .label {\r\n display: flex;\r\n position: absolute;\r\n pointer-events: none;\r\n user-select: none;\r\n top: 0;\r\n left: 0;\r\n right: 0;\r\n font-size: var(--m3e-form-field-label-font-size, ${DesignToken.typescale.standard.body.small.fontSize});\r\n font-weight: var(--m3e-form-field-label-font-weight, ${DesignToken.typescale.standard.body.small.fontWeight});\r\n line-height: var(--m3e-form-field-label-line-height, ${DesignToken.typescale.standard.body.small.lineHeight});\r\n letter-spacing: var(--m3e-form-field-label-tracking, ${DesignToken.typescale.standard.body.small.tracking});\r\n color: var(--_form-field-label-color, inherit);\r\n transition: ${unsafeCSS(\r\n `top ${DesignToken.motion.duration.short4}, \r\n font-size ${DesignToken.motion.duration.short4}, \r\n line-height ${DesignToken.motion.duration.short4}`,\r\n )};\r\n }\r\n :host(:state(-with-select)) .label {\r\n margin-inline-end: 1.5rem;\r\n }\r\n ::slotted([slot=\"label\"]) {\r\n white-space: nowrap;\r\n overflow: hidden;\r\n text-overflow: ellipsis;\r\n }\r\n .subscript {\r\n display: inline-flex;\r\n width: 100%;\r\n margin-top: 0.25rem;\r\n font-size: var(--m3e-form-field-subscript-font-size, ${DesignToken.typescale.standard.body.small.fontSize});\r\n font-weight: var(--m3e-form-field-subscript-font-weight, ${DesignToken.typescale.standard.body.small.fontWeight});\r\n line-height: var(--m3e-form-field-subscript-line-height, ${DesignToken.typescale.standard.body.small.lineHeight});\r\n letter-spacing: var(--m3e-form-field-subscript-tracking, ${DesignToken.typescale.standard.body.small.tracking});\r\n min-height: var(--m3e-form-field-subscript-line-height, ${DesignToken.typescale.standard.body.small.lineHeight});\r\n color: var(--m3e-form-field-subscript-color, ${DesignToken.color.onSurfaceVariant});\r\n }\r\n .error,\r\n .hint {\r\n flex: 1 1 auto;\r\n }\r\n :host([hide-subscript=\"always\"]) .subscript {\r\n display: none;\r\n }\r\n :host([hide-subscript=\"auto\"]:not(:state(-invalid))) .subscript {\r\n opacity: 0;\r\n margin-top: 0px;\r\n margin-bottom: 0.25rem;\r\n transition: ${unsafeCSS(\r\n `opacity ${DesignToken.motion.duration.short4}, \r\n margin-top ${DesignToken.motion.duration.short4}, \r\n margin-bottom ${DesignToken.motion.duration.short4}`,\r\n )};\r\n }\r\n :host([hide-subscript=\"auto\"]:not(:state(-invalid)):focus-within) .subscript,\r\n :host([hide-subscript=\"auto\"]:not(:state(-invalid)):state(-pressed)) .subscript {\r\n opacity: 1;\r\n margin-top: 0.25rem;\r\n margin-bottom: 0;\r\n }\r\n :host(:state(-invalid)) .hint {\r\n display: none;\r\n }\r\n :host(:not(:state(-invalid))) .error {\r\n display: none;\r\n }\r\n ::slotted(input),\r\n ::slotted(textarea),\r\n ::slotted(select) {\r\n outline: unset;\r\n border: unset;\r\n background-color: transparent;\r\n box-shadow: none;\r\n font-family: inherit;\r\n font-size: inherit;\r\n line-height: inherit;\r\n letter-spacing: inherit;\r\n color: var(--_form-field-input-color, inherit);\r\n flex: 1 1 auto;\r\n min-width: 0;\r\n padding: unset;\r\n }\r\n ::slotted(textarea) {\r\n scrollbar-width: ${DesignToken.scrollbar.thinWidth};\r\n scrollbar-color: ${DesignToken.scrollbar.color};\r\n }\r\n ::slotted(m3e-select),\r\n ::slotted(m3e-input-chip-set) {\r\n flex: 1 1 auto;\r\n min-width: 0;\r\n }\r\n :host([float-label=\"auto\"]:not(:state(-float-label)):not(:state(-pressed))) .label {\r\n font-size: inherit;\r\n }\r\n\r\n :host([float-label=\"auto\"]:not(:state(-float-label)):state(-with-label)) .prefix-text,\r\n :host([float-label=\"auto\"]:not(:state(-float-label)):state(-with-label)) .suffix-text {\r\n opacity: 0;\r\n transition: opacity 0s;\r\n }\r\n .prefix {\r\n margin-inline-start: 1rem;\r\n }\r\n :host(:state(-with-prefix)) .prefix {\r\n margin-inline-end: 1rem;\r\n margin-inline-start: 0.75rem;\r\n }\r\n .suffix {\r\n margin-inline-end: 1rem;\r\n }\r\n :host(:state(-with-suffix)) .suffix {\r\n margin-inline-start: 0.25rem;\r\n margin-inline-end: 0.5rem;\r\n }\r\n :host(:state(-with-suffix):state(-with-select)) .suffix {\r\n margin-inline-start: unset;\r\n }\r\n :host(:state(-with-select)) .suffix-text {\r\n display: none;\r\n }\r\n :host([variant=\"outlined\"]) .label {\r\n margin-top: calc(0px - var(--_form-field-label-line-height) / 2);\r\n }\r\n :host([variant=\"outlined\"]) .outline {\r\n position: absolute;\r\n display: flex;\r\n pointer-events: none;\r\n left: 0;\r\n top: 0;\r\n bottom: 0;\r\n right: 0;\r\n }\r\n :host([variant=\"outlined\"]) .pseudo-label {\r\n visibility: hidden;\r\n margin-inline-end: 0.5rem;\r\n font-size: var(--_form-field-label-font-size);\r\n line-height: var(--_form-field-label-line-height);\r\n letter-spacing: var(--_form-field-label-tracking);\r\n max-width: 100%;\r\n transition-property: max-width, margin-inline-end;\r\n transition-duration: 1ms;\r\n }\r\n :host([variant=\"outlined\"]:state(-required):not([hide-required-marker])) .pseudo-label {\r\n margin-inline-end: 0.25rem;\r\n }\r\n :host([variant=\"outlined\"][float-label=\"auto\"]:not(:state(-float-label)):not(:state(-pressed))) .pseudo-label {\r\n max-width: 0;\r\n margin-inline-end: 0px;\r\n transition-delay: ${DesignToken.motion.duration.short2};\r\n }\r\n :host([variant=\"outlined\"]) .outline-start,\r\n :host([variant=\"outlined\"]) .outline-notch,\r\n :host([variant=\"outlined\"]) .outline-end {\r\n box-sizing: border-box;\r\n border-width: var(--_form-field-outline-size, 1px);\r\n border-color: var(--_form-field-outline-color);\r\n transition: border-color ${DesignToken.motion.duration.short4};\r\n }\r\n :host([variant=\"outlined\"]:not(:state(-with-label))) .outline-notch {\r\n display: none;\r\n }\r\n :host([variant=\"outlined\"]) .outline-start {\r\n min-width: 0.75rem;\r\n border-top-style: solid;\r\n border-inline-start-style: solid;\r\n border-bottom-style: solid;\r\n border-start-start-radius: var(--m3e-outlined-form-field-container-shape, ${DesignToken.shape.corner.extraSmall});\r\n border-end-start-radius: var(--m3e-outlined-form-field-container-shape, ${DesignToken.shape.corner.extraSmall});\r\n }\r\n :host([variant=\"outlined\"]) .outline-notch {\r\n border-bottom-style: solid;\r\n }\r\n :host([variant=\"outlined\"]) .outline-end {\r\n flex-grow: 1;\r\n min-width: 1rem;\r\n border-top-style: solid;\r\n border-inline-end-style: solid;\r\n border-bottom-style: solid;\r\n border-start-end-radius: var(--m3e-outlined-form-field-container-shape, ${DesignToken.shape.corner.extraSmall});\r\n border-end-end-radius: var(--m3e-outlined-form-field-container-shape, ${DesignToken.shape.corner.extraSmall});\r\n }\r\n :host([variant=\"outlined\"]:state(-with-prefix)) .outline-start {\r\n min-width: calc(1.25rem + var(--_prefix-width, 0px) + 0.25rem);\r\n }\r\n :host([variant=\"outlined\"]:not(:state(-disabled))) .base:hover .outline,\r\n :host([variant=\"outlined\"]:not(:state(-disabled)):focus-within) .outline,\r\n :host([variant=\"outlined\"]:not(:state(-disabled)):state(-pressed)) .outline {\r\n --_form-field-outline-size: 2px;\r\n }\r\n :host([variant=\"outlined\"]) .subscript {\r\n margin-inline: 1rem;\r\n width: calc(100% - 2rem);\r\n }\r\n :host([variant=\"outlined\"]) .content {\r\n min-height: calc(3.5rem + ${DesignToken.density.calc(-2)});\r\n --_form-field-label-font-size: var(\r\n --m3e-form-field-label-font-size,\r\n ${DesignToken.typescale.standard.body.small.fontSize}\r\n );\r\n }\r\n :host([variant=\"outlined\"][float-label=\"auto\"]:not(:state(-float-label)):not(:state(-pressed))) .label {\r\n margin-top: unset;\r\n line-height: calc(3.5rem + ${DesignToken.density.calc(-2)});\r\n --_form-field-label-font-size: var(\r\n --m3e-form-field-label-font-size,\r\n ${DesignToken.typescale.standard.body.small.fontSize}\r\n );\r\n }\r\n :host([variant=\"filled\"]) .base {\r\n --_select-arrow-margin-top: calc(\r\n 0px - calc(1rem / max(calc(0 - calc(var(--md-sys-density-scale, 0) + var(--md-sys-density-scale, 0))), 1))\r\n );\r\n }\r\n :host([variant=\"filled\"]) .base::before {\r\n content: \"\";\r\n box-sizing: border-box;\r\n position: absolute;\r\n pointer-events: none;\r\n top: 0;\r\n left: 0;\r\n right: 0;\r\n bottom: 0;\r\n border-bottom-style: solid;\r\n border-width: 1px;\r\n border-radius: var(--m3e-form-field-container-shape, ${DesignToken.shape.corner.extraSmallTop});\r\n border-color: var(--_form-field-outline-color);\r\n background-color: var(--_form-field-container-color);\r\n }\r\n :host([variant=\"filled\"]:not(:state(-disabled))) .base:hover::before,\r\n :host([variant=\"filled\"]:not(:state(-disabled)):focus-within) .base::before,\r\n :host([variant=\"filled\"]:not(:state(-disabled)):state(-pressed)) .base::before {\r\n border-width: 3px;\r\n }\r\n :host([variant=\"filled\"]) .base::after {\r\n content: \"\";\r\n box-sizing: border-box;\r\n position: absolute;\r\n pointer-events: none;\r\n top: 0;\r\n left: 0;\r\n right: 0;\r\n bottom: 0;\r\n background-color: var(--_form-field-hover-container-color);\r\n transition: background-color ${DesignToken.motion.duration.short4};\r\n }\r\n :host([variant=\"filled\"]) .subscript {\r\n margin-inline: 1rem;\r\n width: calc(100% - 2rem);\r\n }\r\n :host([variant=\"filled\"]) .content {\r\n padding-top: calc(1.5rem + ${DesignToken.density.calc(-2)});\r\n margin-bottom: 0.5rem;\r\n }\r\n :host([variant=\"filled\"]) .label {\r\n top: calc(0.5rem + ${DesignToken.density.calc(-2)});\r\n }\r\n :host([variant=\"filled\"][float-label=\"auto\"]:not(:state(-float-label)):not(:state(-pressed))) .label {\r\n top: 0px;\r\n line-height: calc(3.5rem + ${DesignToken.density.calc(-2)} - 0.0625rem);\r\n --_form-field-label-font-size: var(\r\n --m3e-form-field-label-font-size,\r\n ${DesignToken.typescale.standard.body.small.fontSize}\r\n );\r\n }\r\n :host(:not(:state(-disabled)):not(:focus-within):not(:state(-pressed))) .base:hover {\r\n --_form-field-hover-container-color: color-mix(\r\n in srgb,\r\n var(--m3e-form-field-hover-container-color, ${DesignToken.color.onSurface})\r\n var(--m3e-form-field-hover-container-opacity, 8%),\r\n transparent\r\n );\r\n }\r\n :host(:not(:state(-disabled)):not(:state(-invalid))) {\r\n color: var(--m3e-form-field-color, ${DesignToken.color.onSurface});\r\n }\r\n :host([variant=\"outlined\"]:not(:state(-disabled)):not(:state(-invalid))) .base {\r\n --_form-field-outline-color: var(--m3e-form-field-outline-color, ${DesignToken.color.outline});\r\n }\r\n :host([variant=\"filled\"]:not(:state(-disabled)):not(:state(-invalid))) .base {\r\n --_form-field-outline-color: var(--m3e-form-field-outline-color, ${DesignToken.color.onSurfaceVariant});\r\n }\r\n :host([variant=\"outlined\"]:not(:state(-disabled)):not(:state(-invalid)):focus-within) .base,\r\n :host([variant=\"outlined\"]:not(:state(-disabled)):not(:state(-invalid)):state(-pressed)) .base,\r\n :host([variant=\"filled\"]:not(:state(-disabled)):not(:state(-invalid)):focus-within) .base,\r\n :host([variant=\"filled\"]:not(:state(-disabled)):not(:state(-invalid)):state(-pressed)) .base {\r\n --_form-field-outline-color: var(--m3e-form-field-focused-outline-color, ${DesignToken.color.primary});\r\n --_form-field-label-color: var(--m3e-form-field-focused-color, ${DesignToken.color.primary});\r\n }\r\n :host(:not(:state(-disabled))) .base {\r\n --_form-field-container-color: var(\r\n --m3e-form-field-container-color,\r\n ${DesignToken.color.surfaceContainerHighest}\r\n );\r\n }\r\n :host(:not(:state(-disabled)):state(-invalid)) .base {\r\n --_form-field-label-color: var(--m3e-form-field-invalid-color, ${DesignToken.color.error});\r\n --_form-field-outline-color: var(--m3e-form-field-invalid-color, ${DesignToken.color.error});\r\n }\r\n :host(:not(:state(-disabled)):state(-invalid)) .subscript {\r\n color: var(--m3e-form-field-invalid-color, ${DesignToken.color.error});\r\n }\r\n :host(:state(-disabled)) {\r\n color: color-mix(\r\n in srgb,\r\n var(--m3e-form-field-disabled-color, ${DesignToken.color.onSurface}) var(--m3e-form-field-disabled-opacity, 38%),\r\n transparent\r\n );\r\n }\r\n :host(:state(-disabled)) .base {\r\n --_form-field-container-color: color-mix(\r\n in srgb,\r\n var(--m3e-form-field-disabled-container-color, ${DesignToken.color.onSurface})\r\n var(--m3e-form-field-disabled-container-opacity, 4%),\r\n transparent\r\n );\r\n }\r\n :host(:state(-no-animate)) *,\r\n :host(:state(-no-animate)) *::before,\r\n :host(:state(-no-animate)) *::after {\r\n transition: none !important;\r\n }\r\n @media (forced-colors: active) {\r\n :host([variant=\"filled\"]) .base::after {\r\n transition: none;\r\n }\r\n :host {\r\n --_form-field-outline-color: CanvasText;\r\n }\r\n :host(:state(-disabled)) {\r\n --_form-field-input-color: GrayText;\r\n --_form-field-color: GrayText;\r\n --_form-field-label-color: GrayText;\r\n --_form-field-outline-color: GrayText;\r\n }\r\n }\r\n @media (prefers-reduced-motion) {\r\n .base::before,\r\n .prefix-text,\r\n .suffix-text,\r\n .label,\r\n .subscript,\r\n .outline-start,\r\n .outline-notch,\r\n .outline-end,\r\n .pseudo-label {\r\n transition: none !important;\r\n }\r\n }\r\n `;\r\n\r\n /** @private */ #control: FormFieldControl | null = null;\r\n /** @private */ #removeValueInterceptor?: () => void;\r\n /** @private */ readonly #formResetHandler = () => this.#handleFormReset();\r\n /** @private */ readonly #controlInvalidHandler = () => this.#handleControlInvalid();\r\n\r\n /** @private */\r\n readonly #controlMutationController = new MutationController(this, {\r\n target: null,\r\n config: { attributeFilter: [\"disabled\", \"readonly\", \"required\"] },\r\n callback: () => this.notifyControlStateChange(),\r\n });\r\n\r\n /** @private */\r\n readonly #resizeController = new ResizeController(this, {\r\n target: null,\r\n callback: () => this.#handlePrefixResize(),\r\n });\r\n\r\n /** @private */\r\n readonly #focusController = new FocusController(this, {\r\n target: null,\r\n callback: (focused) => {\r\n focused = focused && !(this.#control?.disabled ?? true);\r\n setCustomState(this, \"-no-animate\", false);\r\n this.#focused = focused;\r\n if (focused) {\r\n setCustomState(this, \"-float-label\", true);\r\n } else {\r\n this._invalid = !(this.#control?.checkValidity?.() ?? true);\r\n this.notifyControlStateChange();\r\n }\r\n },\r\n });\r\n\r\n /** @private */ @query(\".base\") private readonly _base!: HTMLElement;\r\n /** @private */ @query(\".prefix\") private readonly _prefix!: HTMLElement;\r\n /** @private */ @query(\".error\") private readonly _error!: HTMLElement;\r\n /** @private */ @query(\".hint\") private readonly _hint!: HTMLElement;\r\n\r\n /** @private */\r\n readonly #hintMutationController = new MutationController(this, {\r\n target: null,\r\n config: { childList: true, subtree: true },\r\n callback: () => this.#handleHintChange(),\r\n });\r\n\r\n /** @private */\r\n readonly #errorMutationController = new MutationController(this, {\r\n target: null,\r\n config: { childList: true, subtree: true },\r\n callback: () => this.#handleErrorChange(),\r\n });\r\n\r\n /** @private */\r\n readonly #pressedController = new PressedController(this, {\r\n target: null,\r\n callback: (pressed) => setCustomState(this, \"-pressed\", pressed && !(this.#control?.disabled ?? true)),\r\n });\r\n\r\n /** @private */ #focused = false;\r\n /** @private */ @state() private _pseudoLabel = \"\";\r\n /** @private */ @state() private _required = false;\r\n /** @private */ @state() private _invalid = false;\r\n /** @private */ @state() private _validationMessage = \"\";\r\n /** @private */ #hintText = \"\";\r\n /** @private */ #errorText = \"\";\r\n\r\n constructor() {\r\n super();\r\n\r\n new HoverController(this, { callback: () => setCustomState(this, \"-no-animate\", false) });\r\n }\r\n\r\n /** @private */\r\n get #shouldFloatLabel(): boolean {\r\n return this.#control?.shouldLabelFloat !== undefined\r\n ? this.#control.shouldLabelFloat === true\r\n : typeof this.#control?.value == \"string\" && this.#control.value.length > 0;\r\n }\r\n\r\n /** A reference to the element used to anchor dropdown menus. */\r\n get menuAnchor() {\r\n return this._base;\r\n }\r\n\r\n /** A reference to the hosted form field control. */\r\n get control() {\r\n return this.#control;\r\n }\r\n\r\n /**\r\n * The appearance variant of the field.\r\n * @default \"outlined\"\r\n */\r\n @property({ reflect: true }) variant: FormFieldVariant = \"outlined\";\r\n\r\n /**\r\n * Whether the required marker should be hidden.\r\n * @default false\r\n */\r\n @property({ attribute: \"hide-required-marker\", type: Boolean, reflect: true }) hideRequiredMarker = false;\r\n\r\n /**\r\n * Whether subscript content is hidden.\r\n * @default \"auto\"\r\n */\r\n @property({ attribute: \"hide-subscript\", reflect: true }) hideSubscript: HideSubscriptType = \"auto\";\r\n\r\n /**\r\n * Specifies whether the label should float always or only when necessary.\r\n * @default \"auto\"\r\n */\r\n @property({ attribute: \"float-label\", reflect: true }) floatLabel: FloatLabelType = \"auto\";\r\n\r\n /**\r\n * Notifies the form field that the state of the hosted `control` has changed.\r\n * @param {boolean} [checkValidity=false] Whether to check validity.\r\n */\r\n notifyControlStateChange(checkValidity: boolean = false): void {\r\n this._required = this.#control?.required === true;\r\n setCustomState(this, \"-required\", this._required);\r\n setCustomState(this, \"-disabled\", this.#control?.disabled === true);\r\n setCustomState(this, \"-readonly\", isReadOnlyMixin(this.#control) && this.#control.readOnly === true);\r\n if (this.floatLabel === \"auto\") {\r\n setCustomState(this, \"-float-label\", this.#shouldFloatLabel || this.#focused);\r\n }\r\n\r\n if (checkValidity) {\r\n this._invalid = !(this.#control?.checkValidity?.() ?? true);\r\n }\r\n\r\n setCustomState(this, \"-invalid\", this._invalid);\r\n\r\n this._validationMessage = this.#control?.validationMessage ?? \"\";\r\n if (!this.isUpdatePending) {\r\n this.performUpdate();\r\n }\r\n }\r\n\r\n /** @inheritdoc */\r\n override connectedCallback(): void {\r\n super.connectedCallback();\r\n // Label animations are disabled on initial paint.\r\n setCustomState(this, \"-no-animate\", true);\r\n }\r\n\r\n /** @inheritdoc */\r\n override disconnectedCallback(): void {\r\n super.disconnectedCallback();\r\n this.#changeControl(null);\r\n }\r\n\r\n /** @private */\r\n protected override firstUpdated(_changedProperties: PropertyValues): void {\r\n super.firstUpdated(_changedProperties);\r\n\r\n this.#focusController.observe(this._base);\r\n this.#pressedController.observe(this._base);\r\n\r\n this.#hintMutationController.observe(this._hint);\r\n this.#handleHintChange();\r\n\r\n this.#errorMutationController.observe(this._error);\r\n this.#handleErrorChange();\r\n }\r\n\r\n /** @inheritdoc */\r\n protected override update(changedProperties: PropertyValues): void {\r\n super.update(changedProperties);\r\n\r\n if (changedProperties.has(\"_invalid\") && this.#control) {\r\n this.#control.ariaInvalid = this._invalid ? \"true\" : null;\r\n\r\n if (this.#errorText) {\r\n if (this._invalid) {\r\n M3eAriaDescriber.describe(this.#control, this.#errorText);\r\n } else {\r\n M3eAriaDescriber.removeDescription(this.#control, this.#errorText);\r\n }\r\n }\r\n }\r\n }\r\n\r\n /** @inheritdoc */\r\n protected override render(): unknown {\r\n return html`<div class=\"base\" @click=\"${this.#handleContainerClick}\">\r\n ${this.variant === \"outlined\"\r\n ? html`<div class=\"outline\" aria-hidden=\"true\">\r\n <div class=\"outline-start\"></div>\r\n <div class=\"outline-notch\">\r\n <div class=\"pseudo-label\">\r\n ${this._pseudoLabel} ${!this.hideRequiredMarker && this._required ? html` *` : nothing}\r\n </div>\r\n </div>\r\n <div class=\"outline-end\"></div>\r\n </div>`\r\n : nothing}\r\n <div class=\"prefix\">\r\n <slot name=\"prefix\" @slotchange=\"${this.#handlePrefixSlotChange}\"></slot>\r\n </div>\r\n <div class=\"content\">\r\n <span class=\"prefix-text\"><slot name=\"prefix-text\"></slot></span>\r\n <span class=\"input\">\r\n <slot @slotchange=\"${this.#handleSlotChange}\" @change=\"${this.#handleControlChange}\"></slot>\r\n </span>\r\n <span class=\"suffix-text\"><slot name=\"suffix-text\"></slot></span>\r\n <span class=\"label\">\r\n <slot name=\"label\" @slotchange=\"${this.#handleLabelSlotChange}\"></slot>\r\n ${!this.hideRequiredMarker && this._required\r\n ? html`<span class=\"required-marker\" aria-hidden=\"true\"> *</span>`\r\n : nothing}\r\n </span>\r\n </div>\r\n <div\r\n class=\"suffix\"\r\n @click=\"${this.#stopPropagation}\"\r\n @focusin=\"${this.#stopPropagation}\"\r\n @focusout=\"${this.#stopPropagation}\"\r\n @pointerdown=\"${this.#stopPropagation}\"\r\n @keydown=\"${this.#stopPropagation}\"\r\n @keyup=\"${this.#stopPropagation}\"\r\n >\r\n <slot name=\"suffix\" @slotchange=\"${this.#handleSuffixSlotChange}\"></slot>\r\n </div>\r\n </div>\r\n <span class=\"subscript\" aria-hidden=\"true\">\r\n <span class=\"error\"><slot name=\"error\">${this._validationMessage}</slot></span>\r\n <span class=\"hint\"><slot name=\"hint\"></slot></span>\r\n </span>`;\r\n }\r\n\r\n /** @private */\r\n #stopPropagation(e: Event): void {\r\n e.stopImmediatePropagation();\r\n e.stopPropagation();\r\n }\r\n\r\n /** @private */\r\n #handleLabelSlotChange(e: Event): void {\r\n const assignedElements = (<HTMLSlotElement>e.target).assignedElements({ flatten: true });\r\n setCustomState(this, \"-with-label\", assignedElements.length > 0);\r\n this._pseudoLabel = assignedElements[0]?.textContent ?? \"\";\r\n }\r\n\r\n /** @private */\r\n #handlePrefixSlotChange(e: Event): void {\r\n setCustomState(this, \"-with-prefix\", hasAssignedNodes(<HTMLSlotElement>e.target));\r\n this.#resizeController.observe(this._prefix);\r\n }\r\n\r\n /** @private */\r\n #handleSuffixSlotChange(e: Event): void {\r\n setCustomState(this, \"-with-suffix\", hasAssignedNodes(<HTMLSlotElement>e.target));\r\n }\r\n\r\n /** @private */\r\n #handlePrefixResize(): void {\r\n if (this.variant === \"outlined\") {\r\n this._base.style.setProperty(\"--_prefix-width\", `${this._prefix.clientWidth}px`);\r\n }\r\n }\r\n\r\n /** @private */\r\n #handleSlotChange(e: Event): void {\r\n this.#changeControl(findFormFieldControl(<HTMLSlotElement>e.target));\r\n }\r\n\r\n /** @private */\r\n #handleContainerClick(e: MouseEvent): void {\r\n if (this.#control && !this.#focused && !this.#control.disabled) {\r\n if (this.#control.onContainerClick) {\r\n this.#control.onContainerClick(e);\r\n } else {\r\n this.#control.focus();\r\n }\r\n }\r\n }\r\n\r\n /** @private */\r\n #handleControlInvalid(): void {\r\n this._invalid = true;\r\n this.notifyControlStateChange();\r\n }\r\n\r\n /** @private */\r\n #handleControlChange(): void {\r\n this._invalid = !(this.#control?.checkValidity?.() ?? true);\r\n this.notifyControlStateChange();\r\n }\r\n\r\n /** @private */\r\n #handleFormReset(): void {\r\n this._invalid = false;\r\n setTimeout(() => this.notifyControlStateChange());\r\n }\r\n\r\n /** @private */\r\n #changeControl(control: FormFieldControl | null): void {\r\n if (this.#control === control) return;\r\n if (this.#control) {\r\n if (this.#hintText) {\r\n M3eAriaDescriber.removeDescription(this.#control, this.#hintText);\r\n }\r\n if (this.#errorText) {\r\n M3eAriaDescriber.removeDescription(this.#control, this.#errorText);\r\n }\r\n\r\n this.#controlMutationController.unobserve(this.#control);\r\n this.#control.removeEventListener(\"invalid\", this.#controlInvalidHandler);\r\n this.#control.form?.removeEventListener(\"reset\", this.#formResetHandler);\r\n this.#removeValueInterceptor?.();\r\n this.#removeValueInterceptor = undefined;\r\n }\r\n this.#control = control;\r\n\r\n if ([\"INPUT\", \"TEXTAREA\"].includes(this.#control?.tagName ?? \"\")) {\r\n this._base.style.setProperty(\"--_form-field-cursor\", \"text\");\r\n } else {\r\n this._base.style.removeProperty(\"--_form-field-cursor\");\r\n }\r\n\r\n setCustomState(this, \"-with-select\", this.#control?.tagName === \"M3E-SELECT\");\r\n if (hasCustomState(this, \"-with-select\")) {\r\n this._base.style.setProperty(\"--_form-field-cursor\", \"pointer\");\r\n }\r\n\r\n if (this.#control) {\r\n this.#controlMutationController.observe(this.#control);\r\n this.#control.addEventListener(\"invalid\", this.#controlInvalidHandler);\r\n this.#control.form?.addEventListener(\"reset\", this.#formResetHandler);\r\n this.#control.removeAttribute(\"aria-invalid\");\r\n\r\n if (this.#hintText) {\r\n M3eAriaDescriber.describe(this.#control, this.#hintText);\r\n }\r\n\r\n this.notifyControlStateChange();\r\n\r\n const tagname = this.#control.tagName.toLowerCase();\r\n if (tagname.startsWith(\"m3e-\") && !customElements.get(tagname)) {\r\n customElements.whenDefined(tagname).then(() => this.#bindValueInterceptor());\r\n } else {\r\n this.#bindValueInterceptor();\r\n }\r\n }\r\n }\r\n\r\n /** @private */\r\n #bindValueInterceptor(): void {\r\n if (!this.#control) return;\r\n this.#removeValueInterceptor = interceptProperty(this.#control, \"value\", {\r\n set: (value, setter) => {\r\n setter(value);\r\n this.notifyControlStateChange(true);\r\n },\r\n });\r\n }\r\n\r\n /** @private */\r\n #handleHintChange(): void {\r\n const hintText = getTextContent(this._hint, true);\r\n if (hintText === this.#hintText) return;\r\n\r\n if (this.#control && this.#hintText) {\r\n M3eAriaDescriber.removeDescription(this.#control, this.#hintText);\r\n }\r\n\r\n this.#hintText = hintText;\r\n\r\n if (this.#control && this.#hintText) {\r\n M3eAriaDescriber.describe(this.#control, this.#hintText);\r\n }\r\n }\r\n\r\n /** @private */\r\n #handleErrorChange(): void {\r\n const errorText = getTextContent(this._error, true);\r\n if (errorText === this.#errorText) return;\r\n\r\n if (this.#control && this.#errorText) {\r\n M3eAriaDescriber.removeDescription(this.#control, this.#errorText);\r\n }\r\n\r\n this.#errorText = errorText;\r\n\r\n if (this.#control && this.#errorText && this._invalid) {\r\n M3eAriaDescriber.describe(this.#control, this.#errorText);\r\n }\r\n }\r\n}\r\n\r\ndeclare global {\r\n interface HTMLElementTagNameMap {\r\n \"m3e-form-field\": M3eFormFieldElement;\r\n }\r\n}\r\n"],"names":["KNOWN_FORM_FIELD_TAGS","isFormFieldControl","value","HTMLElement","HTMLInputElement","HTMLTextAreaElement","HTMLSelectElement","includes","tagName","toLowerCase","findFormFieldControl","slot","element","assignedElements","flatten","walker","document","createTreeWalker","NodeFilter","SHOW_ELEMENT","nextNode","currentNode","__decorate","decorators","target","key","desc","c","arguments","length","r","Object","getOwnPropertyDescriptor","d","Reflect","decorate","i","defineProperty","__classPrivateFieldGet","receiver","state","kind","f","TypeError","has","call","get","__classPrivateFieldSet","set","SuppressedError","error","suppressed","message","e","Error","name","M3eFormFieldElement","AttachInternals","LitElement","constructor","_M3eFormFieldElement_control","_M3eFormFieldElement_removeValueInterceptor","_M3eFormFieldElement_formResetHandler","_M3eFormFieldElement_instances","_M3eFormFieldElement_handleFormReset","_M3eFormFieldElement_controlInvalidHandler","_M3eFormFieldElement_handleControlInvalid","_M3eFormFieldElement_controlMutationController","MutationController","config","attributeFilter","callback","notifyControlStateChange","_M3eFormFieldElement_resizeController","ResizeController","_M3eFormFieldElement_handlePrefixResize","_M3eFormFieldElement_focusController","FocusController","focused","disabled","setCustomState","_M3eFormFieldElement_focused","_invalid","checkValidity","_M3eFormFieldElement_hintMutationController","childList","subtree","_M3eFormFieldElement_handleHintChange","_M3eFormFieldElement_errorMutationController","_M3eFormFieldElement_handleErrorChange","_M3eFormFieldElement_pressedController","PressedController","pressed","_pseudoLabel","_required","_validationMessage","_M3eFormFieldElement_hintText","_M3eFormFieldElement_errorText","variant","hideRequiredMarker","hideSubscript","floatLabel","HoverController","menuAnchor","_base","control","required","isReadOnlyMixin","readOnly","_M3eFormFieldElement_shouldFloatLabel_get","validationMessage","isUpdatePending","performUpdate","connectedCallback","disconnectedCallback","_M3eFormFieldElement_changeControl","firstUpdated","_changedProperties","observe","_hint","_error","update","changedProperties","ariaInvalid","M3eAriaDescriber","describe","removeDescription","render","html","_M3eFormFieldElement_handleContainerClick","nothing","_M3eFormFieldElement_handlePrefixSlotChange","_M3eFormFieldElement_handleSlotChange","_M3eFormFieldElement_handleControlChange","_M3eFormFieldElement_handleLabelSlotChange","_M3eFormFieldElement_stopPropagation","_M3eFormFieldElement_handleSuffixSlotChange","shouldLabelFloat","undefined","stopImmediatePropagation","stopPropagation","textContent","hasAssignedNodes","_prefix","style","setProperty","clientWidth","onContainerClick","focus","setTimeout","unobserve","removeEventListener","form","removeProperty","hasCustomState","addEventListener","removeAttribute","tagname","startsWith","customElements","whenDefined","then","_M3eFormFieldElement_bindValueInterceptor","interceptProperty","setter","hintText","getTextContent","errorText","window","lightDomStyle","CSSStyleSheet","replaceSync","css","DesignToken","motion","duration","extraLong1","density","calc","toString","adoptedStyleSheets","styles","typescale","standard","body","large","fontSize","fontWeight","lineHeight","tracking","small","unsafeCSS","short4","color","onSurfaceVariant","scrollbar","thinWidth","short2","shape","corner","extraSmall","extraSmallTop","onSurface","outline","primary","surfaceContainerHighest","query","prototype","property","reflect","attribute","type","Boolean"],"mappings":"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","x_google_ignoreList":[1]}
|
package/dist/form-field.min.js
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* Copyright (c) 2025 matraic
|
|
4
4
|
* See LICENSE file in the project root for full license text.
|
|
5
5
|
*/
|
|
6
|
-
import{LitElement as
|
|
6
|
+
import{LitElement as t,nothing as e,html as i,css as o,unsafeCSS as a}from"lit";import{query as s,state as r,property as n}from"lit/decorators.js";import{AttachInternals as l,MutationController as d,ResizeController as f,FocusController as h,setCustomState as c,PressedController as m,HoverController as p,isReadOnlyMixin as u,DesignToken as b,element as v,hasAssignedNodes as g,hasCustomState as y,interceptProperty as x,getTextContent as w}from"@m3e/web/core";import{M3eAriaDescriber as _}from"@m3e/web/core/a11y";
|
|
7
7
|
/**
|
|
8
8
|
* Adapted from Angular Material Form Field Control
|
|
9
9
|
* Source: https://github.com/angular/components/blob/main/src/material/form-field/form-field-control.ts
|
|
@@ -11,7 +11,7 @@ import{LitElement as e,nothing as t,html as i,css as o,unsafeCSS as a}from"lit";
|
|
|
11
11
|
* @license MIT
|
|
12
12
|
* Copyright (c) 2025 Google LLC
|
|
13
13
|
* See LICENSE file in the project root for full license text.
|
|
14
|
-
*/const
|
|
14
|
+
*/const $=["m3e-input-chip-set","m3e-select"];function k(t){return t instanceof HTMLElement&&(t instanceof HTMLInputElement||t instanceof HTMLTextAreaElement||t instanceof HTMLSelectElement||$.includes(t.tagName.toLowerCase()))}function S(t){for(const e of t.assignedElements({flatten:!0})){if(k(e))return e;const t=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT);for(;t.nextNode();)if(k(t.currentNode))return t.currentNode}return null}function z(t,e,i,o){var a,s=arguments.length,r=s<3?e:null===o?o=Object.getOwnPropertyDescriptor(e,i):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,e,i,o);else for(var n=t.length-1;n>=0;n--)(a=t[n])&&(r=(s<3?a(r):s>3?a(e,i,r):a(e,i))||r);return s>3&&r&&Object.defineProperty(e,i,r),r}function C(t,e,i,o){if("a"===i&&!o)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!o:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===i?o:"a"===i?o.call(t):o?o.value:e.get(t)}function M(t,e,i,o,a){if("m"===o)throw new TypeError("Private method is not writable");if("a"===o&&!a)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof e?t!==e||!a:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===o?a.call(t,i):a?a.value=i:e.set(t,i),i}
|
|
15
15
|
/**
|
|
16
16
|
* Adapted from Angular Material Form Field
|
|
17
17
|
* Source: https://github.com/angular/components/blob/main/src/material/form-field/form-field.ts
|
|
@@ -20,5 +20,5 @@ import{LitElement as e,nothing as t,html as i,css as o,unsafeCSS as a}from"lit";
|
|
|
20
20
|
* Copyright (c) 2025 Google LLC
|
|
21
21
|
* See LICENSE file in the project root for full license text.
|
|
22
22
|
*/
|
|
23
|
-
var z,C,M,E,T,W,q,P,H,N,R,D,j,A,O,U,V,F,G,I,B,X,J,K,Q,Y,Z,ee,te;"function"==typeof SuppressedError&&SuppressedError;let ie=class extends(d(e)){constructor(){super(),z.add(this),C.set(this,null),M.set(this,void 0),E.set(this,()=>S(this,z,"m",Q).call(this)),T.set(this,()=>S(this,z,"m",J).call(this)),W.set(this,new f(this,{target:null,config:{attributeFilter:["disabled","readonly","required"]},callback:()=>this.notifyControlStateChange()})),q.set(this,new h(this,{target:null,callback:()=>S(this,z,"m",I).call(this)})),P.set(this,new c(this,{target:null,callback:e=>{e=e&&!(S(this,C,"f")?.disabled??1),this.classList.toggle("-no-animate",!1),L(this,D,e,"f"),e?this.classList.toggle("-float-label",!0):(this._invalid=!(S(this,C,"f")?.checkValidity?.()??1),this.notifyControlStateChange())}})),H.set(this,new f(this,{target:null,config:{childList:!0,subtree:!0},callback:()=>S(this,z,"m",ee).call(this)})),N.set(this,new f(this,{target:null,config:{childList:!0,subtree:!0},callback:()=>S(this,z,"m",te).call(this)})),R.set(this,new m(this,{target:null,callback:e=>this.classList.toggle("-pressed",e&&!(S(this,C,"f")?.disabled??1))})),D.set(this,!1),this._pseudoLabel="",this._required=!1,this._invalid=!1,this._validationMessage="",j.set(this,""),A.set(this,""),this.variant="outlined",this.hideRequiredMarker=!1,this.hideSubscript="auto",this.floatLabel="auto",new p(this,{callback:()=>this.classList.toggle("-no-animate",!1)})}get menuAnchor(){return this._base}get control(){return S(this,C,"f")}notifyControlStateChange(e=!1){this._required=!0===S(this,C,"f")?.required,this.classList.toggle("-required",this._required),this.classList.toggle("-disabled",!0===S(this,C,"f")?.disabled),this.classList.toggle("-readonly",u(S(this,C,"f"))&&!0===S(this,C,"f").readOnly),"auto"===this.floatLabel&&this.classList.toggle("-float-label",S(this,z,"a",O)||S(this,D,"f")),e&&(this._invalid=!(S(this,C,"f")?.checkValidity?.()??1)),this.classList.toggle("-invalid",this._invalid),this._validationMessage=S(this,C,"f")?.validationMessage??"",this.isUpdatePending||this.performUpdate()}connectedCallback(){super.connectedCallback(),this.classList.toggle("-no-animate",!0)}disconnectedCallback(){super.disconnectedCallback(),S(this,z,"m",Y).call(this,null)}firstUpdated(e){super.firstUpdated(e),S(this,P,"f").observe(this._base),S(this,R,"f").observe(this._base),S(this,H,"f").observe(this._hint),S(this,z,"m",ee).call(this),S(this,N,"f").observe(this._error),S(this,z,"m",te).call(this)}update(e){super.update(e),e.has("_invalid")&&S(this,C,"f")&&(S(this,C,"f").ariaInvalid=this._invalid?"true":null,S(this,A,"f")&&(this._invalid?x.describe(S(this,C,"f"),S(this,A,"f")):x.removeDescription(S(this,C,"f"),S(this,A,"f"))))}render(){return i`<div class="base" @click="${S(this,z,"m",X)}">${"outlined"===this.variant?i`<div class="outline" aria-hidden="true"><div class="outline-start"></div><div class="outline-notch"><div class="pseudo-label">${this._pseudoLabel} ${!this.hideRequiredMarker&&this._required?i` *`:t}</div></div><div class="outline-end"></div></div>`:t}<div class="prefix"><slot name="prefix" @slotchange="${S(this,z,"m",F)}"></slot></div><div class="content"><span class="prefix-text"><slot name="prefix-text"></slot></span><span class="input"><slot @slotchange="${S(this,z,"m",B)}" @change="${S(this,z,"m",K)}"></slot></span><span class="suffix-text"><slot name="suffix-text"></slot></span><span class="label"><slot name="label" @slotchange="${S(this,z,"m",V)}"></slot>${!this.hideRequiredMarker&&this._required?i`<span class="required-marker" aria-hidden="true"> *</span>`:t}</span></div><div class="suffix" @click="${S(this,z,"m",U)}" @focusin="${S(this,z,"m",U)}" @focusout="${S(this,z,"m",U)}" @pointerdown="${S(this,z,"m",U)}" @keydown="${S(this,z,"m",U)}" @keyup="${S(this,z,"m",U)}"><slot name="suffix" @slotchange="${S(this,z,"m",G)}"></slot></div></div><span class="subscript" aria-hidden="true"><span class="error"><slot name="error">${this._validationMessage}</slot></span><span class="hint"><slot name="hint"></slot></span></span>`}};C=new WeakMap,M=new WeakMap,E=new WeakMap,T=new WeakMap,W=new WeakMap,q=new WeakMap,P=new WeakMap,H=new WeakMap,N=new WeakMap,R=new WeakMap,D=new WeakMap,j=new WeakMap,A=new WeakMap,z=new WeakSet,O=function(){return void 0!==S(this,C,"f")?.shouldLabelFloat?!0===S(this,C,"f").shouldLabelFloat:"string"==typeof S(this,C,"f")?.value&&S(this,C,"f").value.length>0},U=function(e){e.stopImmediatePropagation(),e.stopPropagation()},V=function(e){const t=e.target.assignedElements({flatten:!0});this.classList.toggle("-with-label",t.length>0),this._pseudoLabel=t[0]?.textContent??""},F=function(e){this.classList.toggle("-with-prefix",v(e.target)),S(this,q,"f").observe(this._prefix)},G=function(e){this.classList.toggle("-with-suffix",v(e.target))},I=function(){"outlined"===this.variant&&this._base.style.setProperty("--_prefix-width",`${this._prefix.clientWidth}px`)},B=function(e){S(this,z,"m",Y).call(this,$(e.target))},X=function(e){!S(this,C,"f")||S(this,D,"f")||S(this,C,"f").disabled||(S(this,C,"f").onContainerClick?S(this,C,"f").onContainerClick(e):S(this,C,"f").focus())},J=function(){this._invalid=!0,this.notifyControlStateChange()},K=function(){this._invalid=!(S(this,C,"f")?.checkValidity?.()??1),this.notifyControlStateChange()},Q=function(){this._invalid=!1,setTimeout(()=>this.notifyControlStateChange())},Y=function(e){if(S(this,C,"f")!==e&&(S(this,C,"f")&&(S(this,j,"f")&&x.removeDescription(S(this,C,"f"),S(this,j,"f")),S(this,A,"f")&&x.removeDescription(S(this,C,"f"),S(this,A,"f")),S(this,W,"f").unobserve(S(this,C,"f")),S(this,C,"f").removeEventListener("invalid",S(this,T,"f")),S(this,C,"f").form?.removeEventListener("reset",S(this,E,"f")),S(this,M,"f")?.call(this),L(this,M,void 0,"f")),L(this,C,e,"f"),["INPUT","TEXTAREA"].includes(S(this,C,"f")?.tagName??"")?this._base.style.setProperty("--_form-field-cursor","text"):this._base.style.removeProperty("--_form-field-cursor"),this.classList.toggle("-with-select","M3E-SELECT"===S(this,C,"f")?.tagName),this.classList.contains("-with-select")&&this._base.style.setProperty("--_form-field-cursor","pointer"),S(this,C,"f"))){S(this,W,"f").observe(S(this,C,"f")),S(this,C,"f").addEventListener("invalid",S(this,T,"f")),S(this,C,"f").form?.addEventListener("reset",S(this,E,"f")),S(this,C,"f").removeAttribute("aria-invalid"),S(this,j,"f")&&x.describe(S(this,C,"f"),S(this,j,"f")),this.notifyControlStateChange();const e=S(this,C,"f").tagName.toLowerCase();e.startsWith("m3e-")&&!customElements.get(e)?customElements.whenDefined(e).then(()=>S(this,z,"m",Z).call(this)):S(this,z,"m",Z).call(this)}},Z=function(){S(this,C,"f")&&L(this,M,g(S(this,C,"f"),"value",{set:(e,t)=>{t(e),this.notifyControlStateChange(!0)}}),"f")},ee=function(){const e=y(this._hint,!0);e!==S(this,j,"f")&&(S(this,C,"f")&&S(this,j,"f")&&x.removeDescription(S(this,C,"f"),S(this,j,"f")),L(this,j,e,"f"),S(this,C,"f")&&S(this,j,"f")&&x.describe(S(this,C,"f"),S(this,j,"f")))},te=function(){const e=y(this._error,!0);e!==S(this,A,"f")&&(S(this,C,"f")&&S(this,A,"f")&&x.removeDescription(S(this,C,"f"),S(this,A,"f")),L(this,A,e,"f"),S(this,C,"f")&&S(this,A,"f")&&this._invalid&&x.describe(S(this,C,"f"),S(this,A,"f")))},(()=>{if(document){const e=new CSSStyleSheet;e.replaceSync(o`m3e-form-field input::placeholder, m3e-form-field textarea::placeholder { user-select: none; color: currentColor; transition: opacity ${b.motion.duration.extraLong1}; } m3e-form-field[float-label="auto"]:not(.-float-label).-with-label input::placeholder, m3e-form-field[float-label="auto"]:not(.-float-label).-with-label textarea::placeholder { opacity: 0; transition: opacity 0s; } m3e-form-field[variant="outlined"] m3e-input-chip-set { margin-block: calc(calc(3.5rem + ${b.density.calc(-2)}) / 4); } @media (prefers-reduced-motion) { m3e-form-field input::placeholder, m3e-form-field textarea::placeholder { transition: none !important; } }`.toString()),document.adoptedStyleSheets=[...document.adoptedStyleSheets,e]}})(),ie.styles=o`:host { display: inline-flex; flex-direction: column; vertical-align: middle; font-size: var(--m3e-form-field-font-size, ${b.typescale.standard.body.large.fontSize}); font-weight: var(--m3e-form-field-font-weight, ${b.typescale.standard.body.large.fontWeight}); line-height: var(--m3e-form-field-line-height, ${b.typescale.standard.body.large.lineHeight}); letter-spacing: var(--m3e-form-field-tracking, ${b.typescale.standard.body.large.tracking}); width: var(--m3e-form-field-width, 14.5rem); color: var(--_form-field-color); } :host(:not(.-disabled)) .base { cursor: var(--_form-field-cursor); } .base { display: flex; align-items: center; position: relative; min-height: calc(3.5rem + ${b.density.calc(-2)}); --_form-field-label-font-size: var( --m3e-form-field-label-font-size, ${b.typescale.standard.body.small.fontSize} ); --_form-field-label-line-height: var( --m3e-form-field-label-line-height, ${b.typescale.standard.body.small.lineHeight} ); } .content { display: flex; align-items: center; position: relative; flex: 1 1 auto; min-width: 0; min-height: var(--m3e-form-field-icon-size, 1.5rem); } .prefix, .suffix { display: flex; align-items: center; position: relative; user-select: none; flex: none; font-size: var(--m3e-form-field-icon-size, 1.5rem); } .prefix-text, .suffix-text { opacity: 1; transition: opacity ${b.motion.duration.extraLong1}; user-select: none; flex: none; } .input { display: inline-flex; flex-wrap: wrap; flex: 1 1 auto; min-width: 0; } .label { display: flex; position: absolute; pointer-events: none; user-select: none; top: 0; left: 0; right: 0; font-size: var(--m3e-form-field-label-font-size, ${b.typescale.standard.body.small.fontSize}); font-weight: var(--m3e-form-field-label-font-weight, ${b.typescale.standard.body.small.fontWeight}); line-height: var(--m3e-form-field-label-line-height, ${b.typescale.standard.body.small.lineHeight}); letter-spacing: var(--m3e-form-field-label-tracking, ${b.typescale.standard.body.small.tracking}); color: var(--_form-field-label-color, inherit); transition: ${a(`top ${b.motion.duration.short4}, \n font-size ${b.motion.duration.short4}, \n line-height ${b.motion.duration.short4}`)}; } :host(.-with-select) .label { margin-inline-end: 1.5rem; } ::slotted([slot="label"]) { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } .subscript { display: inline-flex; width: 100%; margin-top: 0.25rem; font-size: var(--m3e-form-field-subscript-font-size, ${b.typescale.standard.body.small.fontSize}); font-weight: var(--m3e-form-field-subscript-font-weight, ${b.typescale.standard.body.small.fontWeight}); line-height: var(--m3e-form-field-subscript-line-height, ${b.typescale.standard.body.small.lineHeight}); letter-spacing: var(--m3e-form-field-subscript-tracking, ${b.typescale.standard.body.small.tracking}); min-height: var(--m3e-form-field-subscript-line-height, ${b.typescale.standard.body.small.lineHeight}); color: var(--m3e-form-field-subscript-color, ${b.color.onSurfaceVariant}); } .error, .hint { flex: 1 1 auto; } :host([hide-subscript="always"]) .subscript { display: none; } :host([hide-subscript="auto"]:not(.-invalid)) .subscript { opacity: 0; margin-top: 0px; margin-bottom: 0.25rem; transition: ${a(`opacity ${b.motion.duration.short4}, \n margin-top ${b.motion.duration.short4}, \n margin-bottom ${b.motion.duration.short4}`)}; } :host([hide-subscript="auto"]:not(.-invalid):focus-within) .subscript, :host([hide-subscript="auto"]:not(.-invalid).-pressed) .subscript { opacity: 1; margin-top: 0.25rem; margin-bottom: 0; } :host(.-invalid) .hint { display: none; } :host(:not(.-invalid)) .error { display: none; } ::slotted(input), ::slotted(textarea), ::slotted(select) { outline: unset; border: unset; background-color: transparent; box-shadow: none; font-family: inherit; font-size: inherit; line-height: initial; letter-spacing: inherit; color: var(--_form-field-input-color, inherit); flex: 1 1 auto; min-width: 0; padding: unset; } ::slotted(textarea) { scrollbar-width: ${b.scrollbar.thinWidth}; scrollbar-color: ${b.scrollbar.color}; } ::slotted(m3e-select), ::slotted(m3e-input-chip-set) { flex: 1 1 auto; min-width: 0; } :host([float-label="auto"]:not(.-float-label):not(.-pressed)) .label { font-size: inherit; } :host([float-label="auto"]:not(.-float-label).-with-label) .prefix-text, :host([float-label="auto"]:not(.-float-label).-with-label) .suffix-text { opacity: 0; transition: opacity 0s; } .prefix { margin-inline-start: 1rem; } :host(.-with-prefix) .prefix { margin-inline-end: 1rem; margin-inline-start: 0.75rem; } .suffix { margin-inline-end: 1rem; } :host(.-with-suffix) .suffix { margin-inline-start: 0.25rem; margin-inline-end: 0.5rem; } :host(.-with-suffix.-with-select) .suffix { margin-inline-start: unset; } :host(.-with-select) .suffix-text { display: none; } :host([variant="outlined"]) .label { margin-top: calc(0px - var(--_form-field-label-line-height) / 2); } :host([variant="outlined"]) .outline { position: absolute; display: flex; pointer-events: none; left: 0; top: 0; bottom: 0; right: 0; } :host([variant="outlined"]) .pseudo-label { visibility: hidden; margin-inline-end: 0.5rem; font-size: var(--_form-field-label-font-size); line-height: var(--_form-field-label-line-height); letter-spacing: var(--_form-field-label-tracking); max-width: 100%; transition-property: max-width, margin-inline-end; transition-duration: 1ms; } :host([variant="outlined"].-required:not([hide-required-marker])) .pseudo-label { margin-inline-end: 0.25rem; } :host([variant="outlined"][float-label="auto"]:not(.-float-label):not(.-pressed)) .pseudo-label { max-width: 0; margin-inline-end: 0px; transition-delay: ${b.motion.duration.short2}; } :host([variant="outlined"]) .outline-start, :host([variant="outlined"]) .outline-notch, :host([variant="outlined"]) .outline-end { box-sizing: border-box; border-width: var(--_form-field-outline-size, 1px); border-color: var(--_form-field-outline-color); transition: border-color ${b.motion.duration.short4}; } :host([variant="outlined"]:not(.-with-label)) .outline-notch { display: none; } :host([variant="outlined"]) .outline-start { min-width: 0.75rem; border-top-style: solid; border-inline-start-style: solid; border-bottom-style: solid; border-start-start-radius: var(--m3e-outlined-form-field-container-shape, ${b.shape.corner.extraSmall}); border-end-start-radius: var(--m3e-outlined-form-field-container-shape, ${b.shape.corner.extraSmall}); } :host([variant="outlined"]) .outline-notch { border-bottom-style: solid; } :host([variant="outlined"]) .outline-end { flex-grow: 1; min-width: 1rem; border-top-style: solid; border-inline-end-style: solid; border-bottom-style: solid; border-start-end-radius: var(--m3e-outlined-form-field-container-shape, ${b.shape.corner.extraSmall}); border-end-end-radius: var(--m3e-outlined-form-field-container-shape, ${b.shape.corner.extraSmall}); } :host([variant="outlined"].-with-prefix) .outline-start { min-width: calc(1.25rem + var(--_prefix-width, 0px) + 0.25rem); } :host([variant="outlined"]:not(.-disabled)) .base:hover .outline, :host([variant="outlined"]:not(.-disabled):focus-within) .outline, :host([variant="outlined"]:not(.-disabled).-pressed) .outline { --_form-field-outline-size: 2px; } :host([variant="outlined"]) .subscript { margin-inline: 1rem; width: calc(100% - 2rem); } :host([variant="outlined"]) .content { min-height: calc(3.5rem + ${b.density.calc(-2)}); --_form-field-label-font-size: var( --m3e-form-field-label-font-size, ${b.typescale.standard.body.small.fontSize} ); } :host([variant="outlined"][float-label="auto"]:not(.-float-label):not(.-pressed)) .label { margin-top: unset; line-height: calc(3.5rem + ${b.density.calc(-2)}); --_form-field-label-font-size: var( --m3e-form-field-label-font-size, ${b.typescale.standard.body.small.fontSize} ); } :host([variant="filled"]) .base { --_select-arrow-margin-top: calc( 0px - calc(1rem / max(calc(0 - calc(var(--md-sys-density-scale, 0) + var(--md-sys-density-scale, 0))), 1)) ); } :host([variant="filled"]) .base::before { content: ""; box-sizing: border-box; position: absolute; pointer-events: none; top: 0; left: 0; right: 0; bottom: 0; border-bottom-style: solid; border-width: 1px; border-radius: var(--m3e-form-field-container-shape, ${b.shape.corner.extraSmallTop}); border-color: var(--_form-field-outline-color); background-color: var(--_form-field-container-color); } :host([variant="filled"]:not(.-disabled)) .base:hover::before, :host([variant="filled"]:not(.-disabled):focus-within) .base::before, :host([variant="filled"]:not(.-disabled).-pressed) .base::before { border-width: 3px; } :host([variant="filled"]) .base::after { content: ""; box-sizing: border-box; position: absolute; pointer-events: none; top: 0; left: 0; right: 0; bottom: 0; background-color: var(--_form-field-hover-container-color); transition: background-color ${b.motion.duration.short4}; } :host([variant="filled"]) .subscript { margin-inline: 1rem; width: calc(100% - 2rem); } :host([variant="filled"]) .content { padding-top: calc(1.5rem + ${b.density.calc(-2)}); margin-bottom: 0.5rem; } :host([variant="filled"]) .label { top: calc(0.5rem + ${b.density.calc(-2)}); } :host([variant="filled"][float-label="auto"]:not(.-float-label):not(.-pressed)) .label { top: 0px; line-height: calc(3.5rem + ${b.density.calc(-2)} - 0.0625rem); --_form-field-label-font-size: var( --m3e-form-field-label-font-size, ${b.typescale.standard.body.small.fontSize} ); } :host(:not(.-disabled):not(:focus-within):not(.-pressed)) .base:hover { --_form-field-hover-container-color: color-mix( in srgb, var(--m3e-form-field-hover-container-color, ${b.color.onSurface}) var(--m3e-form-field-hover-container-opacity, 8%), transparent ); } :host(:not(.-disabled):not(.-invalid)) { color: var(--m3e-form-field-color, ${b.color.onSurface}); } :host([variant="outlined"]:not(.-disabled):not(.-invalid)) .base { --_form-field-outline-color: var(--m3e-form-field-outline-color, ${b.color.outline}); } :host([variant="filled"]:not(.-disabled):not(.-invalid)) .base { --_form-field-outline-color: var(--m3e-form-field-outline-color, ${b.color.onSurfaceVariant}); } :host([variant="outlined"]:not(.-disabled):not(.-invalid):focus-within) .base, :host([variant="outlined"]:not(.-disabled):not(.-invalid).-pressed) .base, :host([variant="filled"]:not(.-disabled):not(.-invalid):focus-within) .base, :host([variant="filled"]:not(.-disabled):not(.-invalid).-pressed) .base { --_form-field-outline-color: var(--m3e-form-field-focused-outline-color, ${b.color.primary}); --_form-field-label-color: var(--m3e-form-field-focused-color, ${b.color.primary}); } :host(:not(.-disabled)) .base { --_form-field-container-color: var( --m3e-form-field-container-color, ${b.color.surfaceContainerHighest} ); } :host(:not(.-disabled).-invalid) .base { --_form-field-label-color: var(--m3e-form-field-invalid-color, ${b.color.error}); --_form-field-outline-color: var(--m3e-form-field-invalid-color, ${b.color.error}); } :host(:not(.-disabled).-invalid) .subscript { color: var(--m3e-form-field-invalid-color, ${b.color.error}); } :host(.-disabled) { color: color-mix( in srgb, var(--m3e-form-field-disabled-color, ${b.color.onSurface}) var(--m3e-form-field-disabled-opacity, 38%), transparent ); } :host(.-disabled) .base { --_form-field-container-color: color-mix( in srgb, var(--m3e-form-field-disabled-container-color, ${b.color.onSurface}) var(--m3e-form-field-disabled-container-opacity, 4%), transparent ); } :host(.-no-animate) *, :host(.-no-animate) *::before, :host(.-no-animate) *::after { transition: none !important; } @media (forced-colors: active) { :host([variant="filled"]) .base::after { transition: none; } :host { --_form-field-outline-color: CanvasText; } :host(.-disabled) { --_form-field-input-color: GrayText; --_form-field-color: GrayText; --_form-field-label-color: GrayText; --_form-field-outline-color: GrayText; } } @media (prefers-reduced-motion) { .base::before, .prefix-text, .suffix-text, .label, .subscript, .outline-start, .outline-notch, .outline-end, .pseudo-label { transition: none !important; } }`,k([r(".base")],ie.prototype,"_base",void 0),k([r(".prefix")],ie.prototype,"_prefix",void 0),k([r(".error")],ie.prototype,"_error",void 0),k([r(".hint")],ie.prototype,"_hint",void 0),k([s()],ie.prototype,"_pseudoLabel",void 0),k([s()],ie.prototype,"_required",void 0),k([s()],ie.prototype,"_invalid",void 0),k([s()],ie.prototype,"_validationMessage",void 0),k([l({reflect:!0})],ie.prototype,"variant",void 0),k([l({attribute:"hide-required-marker",type:Boolean,reflect:!0})],ie.prototype,"hideRequiredMarker",void 0),k([l({attribute:"hide-subscript",reflect:!0})],ie.prototype,"hideSubscript",void 0),k([l({attribute:"float-label",reflect:!0})],ie.prototype,"floatLabel",void 0),ie=k([n("m3e-form-field")],ie);export{ie as M3eFormFieldElement,$ as findFormFieldControl,_ as isFormFieldControl};
|
|
23
|
+
var E,L,T,W,q,P,H,N,R,D,j,A,O,U,V,F,G,I,B,X,J,K,Q,Y,Z,tt,et,it,ot;"function"==typeof SuppressedError&&SuppressedError;let at=class extends(l(t)){constructor(){super(),E.add(this),L.set(this,null),T.set(this,void 0),W.set(this,()=>C(this,E,"m",Z).call(this)),q.set(this,()=>C(this,E,"m",Q).call(this)),P.set(this,new d(this,{target:null,config:{attributeFilter:["disabled","readonly","required"]},callback:()=>this.notifyControlStateChange()})),H.set(this,new f(this,{target:null,callback:()=>C(this,E,"m",X).call(this)})),N.set(this,new h(this,{target:null,callback:t=>{t=t&&!(C(this,L,"f")?.disabled??1),c(this,"-no-animate",!1),M(this,A,t,"f"),t?c(this,"-float-label",!0):(this._invalid=!(C(this,L,"f")?.checkValidity?.()??1),this.notifyControlStateChange())}})),R.set(this,new d(this,{target:null,config:{childList:!0,subtree:!0},callback:()=>C(this,E,"m",it).call(this)})),D.set(this,new d(this,{target:null,config:{childList:!0,subtree:!0},callback:()=>C(this,E,"m",ot).call(this)})),j.set(this,new m(this,{target:null,callback:t=>c(this,"-pressed",t&&!(C(this,L,"f")?.disabled??1))})),A.set(this,!1),this._pseudoLabel="",this._required=!1,this._invalid=!1,this._validationMessage="",O.set(this,""),U.set(this,""),this.variant="outlined",this.hideRequiredMarker=!1,this.hideSubscript="auto",this.floatLabel="auto",new p(this,{callback:()=>c(this,"-no-animate",!1)})}get menuAnchor(){return this._base}get control(){return C(this,L,"f")}notifyControlStateChange(t=!1){this._required=!0===C(this,L,"f")?.required,c(this,"-required",this._required),c(this,"-disabled",!0===C(this,L,"f")?.disabled),c(this,"-readonly",u(C(this,L,"f"))&&!0===C(this,L,"f").readOnly),"auto"===this.floatLabel&&c(this,"-float-label",C(this,E,"a",V)||C(this,A,"f")),t&&(this._invalid=!(C(this,L,"f")?.checkValidity?.()??1)),c(this,"-invalid",this._invalid),this._validationMessage=C(this,L,"f")?.validationMessage??"",this.isUpdatePending||this.performUpdate()}connectedCallback(){super.connectedCallback(),c(this,"-no-animate",!0)}disconnectedCallback(){super.disconnectedCallback(),C(this,E,"m",tt).call(this,null)}firstUpdated(t){super.firstUpdated(t),C(this,N,"f").observe(this._base),C(this,j,"f").observe(this._base),C(this,R,"f").observe(this._hint),C(this,E,"m",it).call(this),C(this,D,"f").observe(this._error),C(this,E,"m",ot).call(this)}update(t){super.update(t),t.has("_invalid")&&C(this,L,"f")&&(C(this,L,"f").ariaInvalid=this._invalid?"true":null,C(this,U,"f")&&(this._invalid?_.describe(C(this,L,"f"),C(this,U,"f")):_.removeDescription(C(this,L,"f"),C(this,U,"f"))))}render(){return i`<div class="base" @click="${C(this,E,"m",K)}">${"outlined"===this.variant?i`<div class="outline" aria-hidden="true"><div class="outline-start"></div><div class="outline-notch"><div class="pseudo-label">${this._pseudoLabel} ${!this.hideRequiredMarker&&this._required?i` *`:e}</div></div><div class="outline-end"></div></div>`:e}<div class="prefix"><slot name="prefix" @slotchange="${C(this,E,"m",I)}"></slot></div><div class="content"><span class="prefix-text"><slot name="prefix-text"></slot></span><span class="input"><slot @slotchange="${C(this,E,"m",J)}" @change="${C(this,E,"m",Y)}"></slot></span><span class="suffix-text"><slot name="suffix-text"></slot></span><span class="label"><slot name="label" @slotchange="${C(this,E,"m",G)}"></slot>${!this.hideRequiredMarker&&this._required?i`<span class="required-marker" aria-hidden="true"> *</span>`:e}</span></div><div class="suffix" @click="${C(this,E,"m",F)}" @focusin="${C(this,E,"m",F)}" @focusout="${C(this,E,"m",F)}" @pointerdown="${C(this,E,"m",F)}" @keydown="${C(this,E,"m",F)}" @keyup="${C(this,E,"m",F)}"><slot name="suffix" @slotchange="${C(this,E,"m",B)}"></slot></div></div><span class="subscript" aria-hidden="true"><span class="error"><slot name="error">${this._validationMessage}</slot></span><span class="hint"><slot name="hint"></slot></span></span>`}};L=new WeakMap,T=new WeakMap,W=new WeakMap,q=new WeakMap,P=new WeakMap,H=new WeakMap,N=new WeakMap,R=new WeakMap,D=new WeakMap,j=new WeakMap,A=new WeakMap,O=new WeakMap,U=new WeakMap,E=new WeakSet,V=function(){return void 0!==C(this,L,"f")?.shouldLabelFloat?!0===C(this,L,"f").shouldLabelFloat:"string"==typeof C(this,L,"f")?.value&&C(this,L,"f").value.length>0},F=function(t){t.stopImmediatePropagation(),t.stopPropagation()},G=function(t){const e=t.target.assignedElements({flatten:!0});c(this,"-with-label",e.length>0),this._pseudoLabel=e[0]?.textContent??""},I=function(t){c(this,"-with-prefix",g(t.target)),C(this,H,"f").observe(this._prefix)},B=function(t){c(this,"-with-suffix",g(t.target))},X=function(){"outlined"===this.variant&&this._base.style.setProperty("--_prefix-width",`${this._prefix.clientWidth}px`)},J=function(t){C(this,E,"m",tt).call(this,S(t.target))},K=function(t){!C(this,L,"f")||C(this,A,"f")||C(this,L,"f").disabled||(C(this,L,"f").onContainerClick?C(this,L,"f").onContainerClick(t):C(this,L,"f").focus())},Q=function(){this._invalid=!0,this.notifyControlStateChange()},Y=function(){this._invalid=!(C(this,L,"f")?.checkValidity?.()??1),this.notifyControlStateChange()},Z=function(){this._invalid=!1,setTimeout(()=>this.notifyControlStateChange())},tt=function(t){if(C(this,L,"f")!==t&&(C(this,L,"f")&&(C(this,O,"f")&&_.removeDescription(C(this,L,"f"),C(this,O,"f")),C(this,U,"f")&&_.removeDescription(C(this,L,"f"),C(this,U,"f")),C(this,P,"f").unobserve(C(this,L,"f")),C(this,L,"f").removeEventListener("invalid",C(this,q,"f")),C(this,L,"f").form?.removeEventListener("reset",C(this,W,"f")),C(this,T,"f")?.call(this),M(this,T,void 0,"f")),M(this,L,t,"f"),["INPUT","TEXTAREA"].includes(C(this,L,"f")?.tagName??"")?this._base.style.setProperty("--_form-field-cursor","text"):this._base.style.removeProperty("--_form-field-cursor"),c(this,"-with-select","M3E-SELECT"===C(this,L,"f")?.tagName),y(this,"-with-select")&&this._base.style.setProperty("--_form-field-cursor","pointer"),C(this,L,"f"))){C(this,P,"f").observe(C(this,L,"f")),C(this,L,"f").addEventListener("invalid",C(this,q,"f")),C(this,L,"f").form?.addEventListener("reset",C(this,W,"f")),C(this,L,"f").removeAttribute("aria-invalid"),C(this,O,"f")&&_.describe(C(this,L,"f"),C(this,O,"f")),this.notifyControlStateChange();const t=C(this,L,"f").tagName.toLowerCase();t.startsWith("m3e-")&&!customElements.get(t)?customElements.whenDefined(t).then(()=>C(this,E,"m",et).call(this)):C(this,E,"m",et).call(this)}},et=function(){C(this,L,"f")&&M(this,T,x(C(this,L,"f"),"value",{set:(t,e)=>{e(t),this.notifyControlStateChange(!0)}}),"f")},it=function(){const t=w(this._hint,!0);t!==C(this,O,"f")&&(C(this,L,"f")&&C(this,O,"f")&&_.removeDescription(C(this,L,"f"),C(this,O,"f")),M(this,O,t,"f"),C(this,L,"f")&&C(this,O,"f")&&_.describe(C(this,L,"f"),C(this,O,"f")))},ot=function(){const t=w(this._error,!0);t!==C(this,U,"f")&&(C(this,L,"f")&&C(this,U,"f")&&_.removeDescription(C(this,L,"f"),C(this,U,"f")),M(this,U,t,"f"),C(this,L,"f")&&C(this,U,"f")&&this._invalid&&_.describe(C(this,L,"f"),C(this,U,"f")))},(()=>{if("undefined"!=typeof window){const t=new CSSStyleSheet;t.replaceSync(o`m3e-form-field input::placeholder, m3e-form-field textarea::placeholder { user-select: none; color: currentColor; transition: opacity ${b.motion.duration.extraLong1}; } m3e-form-field[float-label="auto"]:not(:state(-float-label)):state(-with-label) input::placeholder, m3e-form-field[float-label="auto"]:not(:state(-float-label)):state(-with-label) textarea::placeholder { opacity: 0; transition: opacity 0s; } m3e-form-field[variant="outlined"] m3e-input-chip-set { margin-block: calc(calc(3.5rem + ${b.density.calc(-2)}) / 4); } @media (prefers-reduced-motion) { m3e-form-field input::placeholder, m3e-form-field textarea::placeholder { transition: none !important; } }`.toString()),document.adoptedStyleSheets=[...document.adoptedStyleSheets,t]}})(),at.styles=o`:host { display: inline-flex; flex-direction: column; vertical-align: middle; font-size: var(--m3e-form-field-font-size, ${b.typescale.standard.body.large.fontSize}); font-weight: var(--m3e-form-field-font-weight, ${b.typescale.standard.body.large.fontWeight}); line-height: var(--m3e-form-field-line-height, ${b.typescale.standard.body.large.lineHeight}); letter-spacing: var(--m3e-form-field-tracking, ${b.typescale.standard.body.large.tracking}); width: var(--m3e-form-field-width, 14.5rem); color: var(--_form-field-color); } :host(:not(:state(-disabled))) .base { cursor: var(--_form-field-cursor); } .base { display: flex; align-items: center; position: relative; min-height: calc(3.5rem + ${b.density.calc(-2)}); --_form-field-label-font-size: var( --m3e-form-field-label-font-size, ${b.typescale.standard.body.small.fontSize} ); --_form-field-label-line-height: var( --m3e-form-field-label-line-height, ${b.typescale.standard.body.small.lineHeight} ); } .content { display: flex; align-items: center; position: relative; flex: 1 1 auto; min-width: 0; min-height: var(--m3e-form-field-icon-size, 1.5rem); } .prefix, .suffix { display: flex; align-items: center; position: relative; user-select: none; flex: none; font-size: var(--m3e-form-field-icon-size, 1.5rem); } .prefix-text, .suffix-text { opacity: 1; transition: opacity ${b.motion.duration.extraLong1}; user-select: none; flex: none; } .input { display: inline-flex; flex-wrap: wrap; flex: 1 1 auto; min-width: 0; } .label { display: flex; position: absolute; pointer-events: none; user-select: none; top: 0; left: 0; right: 0; font-size: var(--m3e-form-field-label-font-size, ${b.typescale.standard.body.small.fontSize}); font-weight: var(--m3e-form-field-label-font-weight, ${b.typescale.standard.body.small.fontWeight}); line-height: var(--m3e-form-field-label-line-height, ${b.typescale.standard.body.small.lineHeight}); letter-spacing: var(--m3e-form-field-label-tracking, ${b.typescale.standard.body.small.tracking}); color: var(--_form-field-label-color, inherit); transition: ${a(`top ${b.motion.duration.short4}, \n font-size ${b.motion.duration.short4}, \n line-height ${b.motion.duration.short4}`)}; } :host(:state(-with-select)) .label { margin-inline-end: 1.5rem; } ::slotted([slot="label"]) { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } .subscript { display: inline-flex; width: 100%; margin-top: 0.25rem; font-size: var(--m3e-form-field-subscript-font-size, ${b.typescale.standard.body.small.fontSize}); font-weight: var(--m3e-form-field-subscript-font-weight, ${b.typescale.standard.body.small.fontWeight}); line-height: var(--m3e-form-field-subscript-line-height, ${b.typescale.standard.body.small.lineHeight}); letter-spacing: var(--m3e-form-field-subscript-tracking, ${b.typescale.standard.body.small.tracking}); min-height: var(--m3e-form-field-subscript-line-height, ${b.typescale.standard.body.small.lineHeight}); color: var(--m3e-form-field-subscript-color, ${b.color.onSurfaceVariant}); } .error, .hint { flex: 1 1 auto; } :host([hide-subscript="always"]) .subscript { display: none; } :host([hide-subscript="auto"]:not(:state(-invalid))) .subscript { opacity: 0; margin-top: 0px; margin-bottom: 0.25rem; transition: ${a(`opacity ${b.motion.duration.short4}, \n margin-top ${b.motion.duration.short4}, \n margin-bottom ${b.motion.duration.short4}`)}; } :host([hide-subscript="auto"]:not(:state(-invalid)):focus-within) .subscript, :host([hide-subscript="auto"]:not(:state(-invalid)):state(-pressed)) .subscript { opacity: 1; margin-top: 0.25rem; margin-bottom: 0; } :host(:state(-invalid)) .hint { display: none; } :host(:not(:state(-invalid))) .error { display: none; } ::slotted(input), ::slotted(textarea), ::slotted(select) { outline: unset; border: unset; background-color: transparent; box-shadow: none; font-family: inherit; font-size: inherit; line-height: inherit; letter-spacing: inherit; color: var(--_form-field-input-color, inherit); flex: 1 1 auto; min-width: 0; padding: unset; } ::slotted(textarea) { scrollbar-width: ${b.scrollbar.thinWidth}; scrollbar-color: ${b.scrollbar.color}; } ::slotted(m3e-select), ::slotted(m3e-input-chip-set) { flex: 1 1 auto; min-width: 0; } :host([float-label="auto"]:not(:state(-float-label)):not(:state(-pressed))) .label { font-size: inherit; } :host([float-label="auto"]:not(:state(-float-label)):state(-with-label)) .prefix-text, :host([float-label="auto"]:not(:state(-float-label)):state(-with-label)) .suffix-text { opacity: 0; transition: opacity 0s; } .prefix { margin-inline-start: 1rem; } :host(:state(-with-prefix)) .prefix { margin-inline-end: 1rem; margin-inline-start: 0.75rem; } .suffix { margin-inline-end: 1rem; } :host(:state(-with-suffix)) .suffix { margin-inline-start: 0.25rem; margin-inline-end: 0.5rem; } :host(:state(-with-suffix):state(-with-select)) .suffix { margin-inline-start: unset; } :host(:state(-with-select)) .suffix-text { display: none; } :host([variant="outlined"]) .label { margin-top: calc(0px - var(--_form-field-label-line-height) / 2); } :host([variant="outlined"]) .outline { position: absolute; display: flex; pointer-events: none; left: 0; top: 0; bottom: 0; right: 0; } :host([variant="outlined"]) .pseudo-label { visibility: hidden; margin-inline-end: 0.5rem; font-size: var(--_form-field-label-font-size); line-height: var(--_form-field-label-line-height); letter-spacing: var(--_form-field-label-tracking); max-width: 100%; transition-property: max-width, margin-inline-end; transition-duration: 1ms; } :host([variant="outlined"]:state(-required):not([hide-required-marker])) .pseudo-label { margin-inline-end: 0.25rem; } :host([variant="outlined"][float-label="auto"]:not(:state(-float-label)):not(:state(-pressed))) .pseudo-label { max-width: 0; margin-inline-end: 0px; transition-delay: ${b.motion.duration.short2}; } :host([variant="outlined"]) .outline-start, :host([variant="outlined"]) .outline-notch, :host([variant="outlined"]) .outline-end { box-sizing: border-box; border-width: var(--_form-field-outline-size, 1px); border-color: var(--_form-field-outline-color); transition: border-color ${b.motion.duration.short4}; } :host([variant="outlined"]:not(:state(-with-label))) .outline-notch { display: none; } :host([variant="outlined"]) .outline-start { min-width: 0.75rem; border-top-style: solid; border-inline-start-style: solid; border-bottom-style: solid; border-start-start-radius: var(--m3e-outlined-form-field-container-shape, ${b.shape.corner.extraSmall}); border-end-start-radius: var(--m3e-outlined-form-field-container-shape, ${b.shape.corner.extraSmall}); } :host([variant="outlined"]) .outline-notch { border-bottom-style: solid; } :host([variant="outlined"]) .outline-end { flex-grow: 1; min-width: 1rem; border-top-style: solid; border-inline-end-style: solid; border-bottom-style: solid; border-start-end-radius: var(--m3e-outlined-form-field-container-shape, ${b.shape.corner.extraSmall}); border-end-end-radius: var(--m3e-outlined-form-field-container-shape, ${b.shape.corner.extraSmall}); } :host([variant="outlined"]:state(-with-prefix)) .outline-start { min-width: calc(1.25rem + var(--_prefix-width, 0px) + 0.25rem); } :host([variant="outlined"]:not(:state(-disabled))) .base:hover .outline, :host([variant="outlined"]:not(:state(-disabled)):focus-within) .outline, :host([variant="outlined"]:not(:state(-disabled)):state(-pressed)) .outline { --_form-field-outline-size: 2px; } :host([variant="outlined"]) .subscript { margin-inline: 1rem; width: calc(100% - 2rem); } :host([variant="outlined"]) .content { min-height: calc(3.5rem + ${b.density.calc(-2)}); --_form-field-label-font-size: var( --m3e-form-field-label-font-size, ${b.typescale.standard.body.small.fontSize} ); } :host([variant="outlined"][float-label="auto"]:not(:state(-float-label)):not(:state(-pressed))) .label { margin-top: unset; line-height: calc(3.5rem + ${b.density.calc(-2)}); --_form-field-label-font-size: var( --m3e-form-field-label-font-size, ${b.typescale.standard.body.small.fontSize} ); } :host([variant="filled"]) .base { --_select-arrow-margin-top: calc( 0px - calc(1rem / max(calc(0 - calc(var(--md-sys-density-scale, 0) + var(--md-sys-density-scale, 0))), 1)) ); } :host([variant="filled"]) .base::before { content: ""; box-sizing: border-box; position: absolute; pointer-events: none; top: 0; left: 0; right: 0; bottom: 0; border-bottom-style: solid; border-width: 1px; border-radius: var(--m3e-form-field-container-shape, ${b.shape.corner.extraSmallTop}); border-color: var(--_form-field-outline-color); background-color: var(--_form-field-container-color); } :host([variant="filled"]:not(:state(-disabled))) .base:hover::before, :host([variant="filled"]:not(:state(-disabled)):focus-within) .base::before, :host([variant="filled"]:not(:state(-disabled)):state(-pressed)) .base::before { border-width: 3px; } :host([variant="filled"]) .base::after { content: ""; box-sizing: border-box; position: absolute; pointer-events: none; top: 0; left: 0; right: 0; bottom: 0; background-color: var(--_form-field-hover-container-color); transition: background-color ${b.motion.duration.short4}; } :host([variant="filled"]) .subscript { margin-inline: 1rem; width: calc(100% - 2rem); } :host([variant="filled"]) .content { padding-top: calc(1.5rem + ${b.density.calc(-2)}); margin-bottom: 0.5rem; } :host([variant="filled"]) .label { top: calc(0.5rem + ${b.density.calc(-2)}); } :host([variant="filled"][float-label="auto"]:not(:state(-float-label)):not(:state(-pressed))) .label { top: 0px; line-height: calc(3.5rem + ${b.density.calc(-2)} - 0.0625rem); --_form-field-label-font-size: var( --m3e-form-field-label-font-size, ${b.typescale.standard.body.small.fontSize} ); } :host(:not(:state(-disabled)):not(:focus-within):not(:state(-pressed))) .base:hover { --_form-field-hover-container-color: color-mix( in srgb, var(--m3e-form-field-hover-container-color, ${b.color.onSurface}) var(--m3e-form-field-hover-container-opacity, 8%), transparent ); } :host(:not(:state(-disabled)):not(:state(-invalid))) { color: var(--m3e-form-field-color, ${b.color.onSurface}); } :host([variant="outlined"]:not(:state(-disabled)):not(:state(-invalid))) .base { --_form-field-outline-color: var(--m3e-form-field-outline-color, ${b.color.outline}); } :host([variant="filled"]:not(:state(-disabled)):not(:state(-invalid))) .base { --_form-field-outline-color: var(--m3e-form-field-outline-color, ${b.color.onSurfaceVariant}); } :host([variant="outlined"]:not(:state(-disabled)):not(:state(-invalid)):focus-within) .base, :host([variant="outlined"]:not(:state(-disabled)):not(:state(-invalid)):state(-pressed)) .base, :host([variant="filled"]:not(:state(-disabled)):not(:state(-invalid)):focus-within) .base, :host([variant="filled"]:not(:state(-disabled)):not(:state(-invalid)):state(-pressed)) .base { --_form-field-outline-color: var(--m3e-form-field-focused-outline-color, ${b.color.primary}); --_form-field-label-color: var(--m3e-form-field-focused-color, ${b.color.primary}); } :host(:not(:state(-disabled))) .base { --_form-field-container-color: var( --m3e-form-field-container-color, ${b.color.surfaceContainerHighest} ); } :host(:not(:state(-disabled)):state(-invalid)) .base { --_form-field-label-color: var(--m3e-form-field-invalid-color, ${b.color.error}); --_form-field-outline-color: var(--m3e-form-field-invalid-color, ${b.color.error}); } :host(:not(:state(-disabled)):state(-invalid)) .subscript { color: var(--m3e-form-field-invalid-color, ${b.color.error}); } :host(:state(-disabled)) { color: color-mix( in srgb, var(--m3e-form-field-disabled-color, ${b.color.onSurface}) var(--m3e-form-field-disabled-opacity, 38%), transparent ); } :host(:state(-disabled)) .base { --_form-field-container-color: color-mix( in srgb, var(--m3e-form-field-disabled-container-color, ${b.color.onSurface}) var(--m3e-form-field-disabled-container-opacity, 4%), transparent ); } :host(:state(-no-animate)) *, :host(:state(-no-animate)) *::before, :host(:state(-no-animate)) *::after { transition: none !important; } @media (forced-colors: active) { :host([variant="filled"]) .base::after { transition: none; } :host { --_form-field-outline-color: CanvasText; } :host(:state(-disabled)) { --_form-field-input-color: GrayText; --_form-field-color: GrayText; --_form-field-label-color: GrayText; --_form-field-outline-color: GrayText; } } @media (prefers-reduced-motion) { .base::before, .prefix-text, .suffix-text, .label, .subscript, .outline-start, .outline-notch, .outline-end, .pseudo-label { transition: none !important; } }`,z([s(".base")],at.prototype,"_base",void 0),z([s(".prefix")],at.prototype,"_prefix",void 0),z([s(".error")],at.prototype,"_error",void 0),z([s(".hint")],at.prototype,"_hint",void 0),z([r()],at.prototype,"_pseudoLabel",void 0),z([r()],at.prototype,"_required",void 0),z([r()],at.prototype,"_invalid",void 0),z([r()],at.prototype,"_validationMessage",void 0),z([n({reflect:!0})],at.prototype,"variant",void 0),z([n({attribute:"hide-required-marker",type:Boolean,reflect:!0})],at.prototype,"hideRequiredMarker",void 0),z([n({attribute:"hide-subscript",reflect:!0})],at.prototype,"hideSubscript",void 0),z([n({attribute:"float-label",reflect:!0})],at.prototype,"floatLabel",void 0),at=z([v("m3e-form-field")],at);export{at as M3eFormFieldElement,S as findFormFieldControl,k as isFormFieldControl};
|
|
24
24
|
//# sourceMappingURL=form-field.min.js.map
|