mdui 2.0.1 → 2.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (97) hide show
  1. package/LICENSE +21 -21
  2. package/components/avatar/index.js +2 -1
  3. package/components/badge/index.js +2 -1
  4. package/components/bottom-app-bar/index.d.ts +2 -2
  5. package/components/bottom-app-bar/index.js +4 -3
  6. package/components/button/button-base.d.ts +2 -2
  7. package/components/button/button-base.js +15 -14
  8. package/components/button/index.js +2 -1
  9. package/components/button-icon/index.js +2 -1
  10. package/components/card/index.d.ts +1 -1
  11. package/components/card/index.js +5 -2
  12. package/components/checkbox/index.js +7 -10
  13. package/components/checkbox/style.js +1 -1
  14. package/components/chip/index.js +2 -1
  15. package/components/circular-progress/index.js +3 -3
  16. package/components/collapse/collapse-item-style.js +1 -1
  17. package/components/collapse/collapse-item.d.ts +2 -1
  18. package/components/collapse/collapse-item.js +23 -20
  19. package/components/collapse/collapse.d.ts +6 -6
  20. package/components/collapse/collapse.js +57 -34
  21. package/components/dialog/index.d.ts +3 -2
  22. package/components/dialog/index.js +27 -23
  23. package/components/divider/index.js +2 -1
  24. package/components/dropdown/index.d.ts +4 -5
  25. package/components/dropdown/index.js +56 -51
  26. package/components/fab/index.d.ts +1 -0
  27. package/components/fab/index.js +10 -5
  28. package/components/icon/index.js +2 -1
  29. package/components/layout/helper.d.ts +5 -6
  30. package/components/layout/helper.js +42 -48
  31. package/components/layout/layout-item-base.js +1 -2
  32. package/components/layout/layout-item.js +3 -3
  33. package/components/layout/layout-main.js +2 -1
  34. package/components/layout/layout.js +2 -1
  35. package/components/linear-progress/index.js +3 -3
  36. package/components/list/list-item.js +3 -2
  37. package/components/list/list-subheader.js +2 -1
  38. package/components/list/list.js +2 -1
  39. package/components/menu/menu-item.d.ts +1 -0
  40. package/components/menu/menu-item.js +45 -28
  41. package/components/menu/menu.d.ts +4 -1
  42. package/components/menu/menu.js +82 -56
  43. package/components/navigation-bar/navigation-bar-item-style.js +1 -1
  44. package/components/navigation-bar/navigation-bar-item.d.ts +6 -2
  45. package/components/navigation-bar/navigation-bar-item.js +26 -10
  46. package/components/navigation-bar/navigation-bar.d.ts +6 -6
  47. package/components/navigation-bar/navigation-bar.js +49 -42
  48. package/components/navigation-drawer/index.d.ts +5 -1
  49. package/components/navigation-drawer/index.js +62 -41
  50. package/components/navigation-rail/navigation-rail-item-style.js +1 -1
  51. package/components/navigation-rail/navigation-rail-item.d.ts +6 -2
  52. package/components/navigation-rail/navigation-rail-item.js +20 -8
  53. package/components/navigation-rail/navigation-rail.d.ts +4 -5
  54. package/components/navigation-rail/navigation-rail.js +51 -44
  55. package/components/radio/radio-group.d.ts +6 -4
  56. package/components/radio/radio-group.js +61 -48
  57. package/components/radio/radio-style.js +1 -1
  58. package/components/radio/radio.d.ts +3 -2
  59. package/components/radio/radio.js +24 -17
  60. package/components/range-slider/index.js +7 -9
  61. package/components/ripple/index.js +2 -1
  62. package/components/segmented-button/segmented-button-group.d.ts +6 -3
  63. package/components/segmented-button/segmented-button-group.js +84 -69
  64. package/components/segmented-button/segmented-button.d.ts +2 -2
  65. package/components/segmented-button/segmented-button.js +5 -4
  66. package/components/select/index.d.ts +2 -2
  67. package/components/select/index.js +26 -24
  68. package/components/slider/index.js +7 -9
  69. package/components/slider/slider-base-style.js +1 -1
  70. package/components/slider/slider-base.js +1 -5
  71. package/components/snackbar/index.js +2 -1
  72. package/components/switch/index.js +6 -9
  73. package/components/switch/style.js +1 -1
  74. package/components/tabs/tab-panel.js +2 -1
  75. package/components/tabs/tab-style.js +1 -1
  76. package/components/tabs/tab.js +10 -5
  77. package/components/tabs/tabs-style.js +1 -1
  78. package/components/tabs/tabs.d.ts +6 -5
  79. package/components/tabs/tabs.js +52 -38
  80. package/components/text-field/index.d.ts +2 -2
  81. package/components/text-field/index.js +32 -54
  82. package/components/text-field/style.js +1 -1
  83. package/components/tooltip/index.d.ts +5 -5
  84. package/components/tooltip/index.js +30 -25
  85. package/components/top-app-bar/top-app-bar-title-style.js +1 -1
  86. package/components/top-app-bar/top-app-bar-title.js +16 -12
  87. package/components/top-app-bar/top-app-bar.d.ts +2 -2
  88. package/components/top-app-bar/top-app-bar.js +6 -4
  89. package/custom-elements.json +3421 -3126
  90. package/functions/getTheme.js +3 -3
  91. package/functions/snackbar.js +1 -2
  92. package/functions/utils/colorScheme.js +2 -2
  93. package/html-data.zh-cn.json +438 -438
  94. package/mdui.esm.js +8 -8
  95. package/mdui.global.js +8 -8
  96. package/package.json +7 -7
  97. package/web-types.zh-cn.json +770 -770
@@ -1,6 +1,6 @@
1
1
  import { __decorate } from "tslib";
2
2
  import { html, LitElement } from 'lit';
3
- import { customElement, property } from 'lit/decorators.js';
3
+ import { customElement, property, state } from 'lit/decorators.js';
4
4
  import { classMap } from 'lit/directives/class-map.js';
5
5
  import { ifDefined } from 'lit/directives/if-defined.js';
6
6
  import { live } from 'lit/directives/live.js';
@@ -42,7 +42,7 @@ import { style } from './style.js';
42
42
  * @cssprop --shape-corner - 组件的轨道的圆角大小。可以指定一个具体的像素值;但更推荐[引用设计令牌](/docs/2/styles/design-tokens#shape-corner)
43
43
  * @cssprop --shape-corner-thumb - 组件的图标容器的圆角大小。可以指定一个具体的像素值;但更推荐[引用设计令牌](/docs/2/styles/design-tokens#shape-corner)
44
44
  */
45
- export let Switch = class Switch extends RippleMixin(FocusableMixin(LitElement)) {
45
+ let Switch = class Switch extends RippleMixin(FocusableMixin(LitElement)) {
46
46
  constructor() {
47
47
  super(...arguments);
48
48
  /**
@@ -111,11 +111,10 @@ export let Switch = class Switch extends RippleMixin(FocusableMixin(LitElement))
111
111
  this.invalid = !this.inputRef.value.checkValidity();
112
112
  }
113
113
  async onCheckedChange() {
114
- var _a;
115
114
  await this.updateComplete;
116
115
  // reset 引起的值变更,不执行验证;直接修改值引起的变更,需要进行验证
117
116
  const form = this.formController.getForm();
118
- if (form && ((_a = formResets.get(form)) === null || _a === void 0 ? void 0 : _a.has(this))) {
117
+ if (form && formResets.get(form)?.has(this)) {
119
118
  this.invalid = false;
120
119
  formResets.get(form).delete(this);
121
120
  }
@@ -169,6 +168,7 @@ export let Switch = class Switch extends RippleMixin(FocusableMixin(LitElement))
169
168
  }
170
169
  render() {
171
170
  return html `<label class="${classMap({
171
+ invalid: this.invalid,
172
172
  'has-unchecked-icon': this.uncheckedIcon || this.hasSlotController.test('unchecked-icon'),
173
173
  })}"><input ${ref(this.inputRef)} type="checkbox" name="${ifDefined(this.name)}" value="${ifDefined(this.value)}" .disabled="${this.disabled}" .checked="${live(this.checked)}" .required="${this.required}" @change="${this.onChange}"><div part="track" class="track"><div part="thumb" class="thumb"><mdui-ripple ${ref(this.rippleRef)} .noRipple="${this.noRipple}"></mdui-ripple><slot name="checked-icon" part="checked-icon" class="checked-icon">${this.checkedIcon
174
174
  ? html `<mdui-icon name="${this.checkedIcon}" class="i"></mdui-icon>`
@@ -227,11 +227,7 @@ __decorate([
227
227
  property({ reflect: true })
228
228
  ], Switch.prototype, "value", void 0);
229
229
  __decorate([
230
- property({
231
- type: Boolean,
232
- reflect: true,
233
- converter: booleanConverter,
234
- })
230
+ state()
235
231
  ], Switch.prototype, "invalid", void 0);
236
232
  __decorate([
237
233
  watch('disabled', true),
@@ -243,3 +239,4 @@ __decorate([
243
239
  Switch = __decorate([
244
240
  customElement('mdui-switch')
245
241
  ], Switch);
242
+ export { Switch };
@@ -1,2 +1,2 @@
1
1
  import { css } from 'lit';
2
- export const style = css `:host{--shape-corner:var(--mdui-shape-corner-full);--shape-corner-thumb:var(--mdui-shape-corner-full);position:relative;display:inline-block;cursor:pointer;-webkit-tap-highlight-color:transparent;height:2.5rem}:host([disabled]){cursor:default;pointer-events:none}label{display:inline-flex;align-items:center;width:100%;height:100%;white-space:nowrap;cursor:inherit;-webkit-user-select:none;user-select:none;touch-action:manipulation;zoom:1;-webkit-user-drag:none}.track{position:relative;display:flex;align-items:center;border-radius:var(--shape-corner);transition-property:background-color,border-width;transition-duration:var(--mdui-motion-duration-short4);transition-timing-function:var(--mdui-motion-easing-standard);height:2rem;width:3.25rem;border:.125rem solid rgb(var(--mdui-color-outline));background-color:rgb(var(--mdui-color-surface-container-highest))}:host([checked]) .track{background-color:rgb(var(--mdui-color-primary));border-width:0}:host([invalid]) .track{background-color:rgb(var(--mdui-color-error-container));border-color:rgb(var(--mdui-color-error))}:host([disabled]) .track{background-color:rgba(var(--mdui-color-surface-container-highest),.12);border-color:rgba(var(--mdui-color-on-surface),.12)}:host([disabled][checked]) .track{background-color:rgba(var(--mdui-color-on-surface),.12)}input{position:absolute;padding:0;opacity:0;pointer-events:none;width:1.25rem;height:1.25rem;margin:0 0 0 .625rem}mdui-ripple{border-radius:50%;transition-property:left,top;transition-duration:var(--mdui-motion-duration-short4);transition-timing-function:var(--mdui-motion-easing-standard);width:2.5rem;height:2.5rem}.thumb{position:absolute;display:flex;align-items:center;justify-content:center;border-radius:var(--shape-corner-thumb);transition-property:width,height,left,background-color;transition-duration:var(--mdui-motion-duration-short4);transition-timing-function:var(--mdui-motion-easing-standard);height:1rem;width:1rem;left:.375rem;background-color:rgb(var(--mdui-color-outline));--mdui-comp-ripple-state-layer-color:var(--mdui-color-on-surface)}.thumb mdui-ripple{left:-.75rem;top:-.75rem}.has-unchecked-icon .thumb{height:1.5rem;width:1.5rem;left:.125rem}.has-unchecked-icon .thumb mdui-ripple{left:-.5rem;top:-.5rem}:host([focus-visible]) .thumb,:host([hover]) .thumb,:host([pressed]) .thumb{background-color:rgb(var(--mdui-color-on-surface-variant))}:host([checked]) .thumb{height:1.5rem;width:1.5rem;left:1.5rem;background-color:rgb(var(--mdui-color-on-primary));--mdui-comp-ripple-state-layer-color:var(--mdui-color-primary)}:host([checked]) .thumb mdui-ripple{left:-.5rem;top:-.5rem}:host([pressed]) .thumb{height:1.75rem;width:1.75rem;left:0}:host([pressed]) .thumb mdui-ripple{left:-.375rem;top:-.375rem}:host([pressed][checked]) .thumb{left:1.375rem}:host([focus-visible][checked]) .thumb,:host([hover][checked]) .thumb,:host([pressed][checked]) .thumb{background-color:rgb(var(--mdui-color-primary-container))}:host([invalid]) .thumb{background-color:rgb(var(--mdui-color-error));--mdui-comp-ripple-state-layer-color:var(--mdui-color-error)}:host([focus-visible][invalid]) .thumb,:host([hover][invalid]) .thumb,:host([pressed][invalid]) .thumb{background-color:rgb(var(--mdui-color-error))}:host([disabled]) .thumb{background-color:rgba(var(--mdui-color-on-surface),.38)}:host([disabled][checked]) .thumb{background-color:rgb(var(--mdui-color-surface))}.checked-icon,.unchecked-icon{display:flex;position:absolute;transition-property:opacity,transform;font-size:1rem}.unchecked-icon{opacity:1;transform:scale(1);transition-delay:var(--mdui-motion-duration-short1);transition-duration:var(--mdui-motion-duration-short3);transition-timing-function:var(--mdui-motion-easing-linear);color:rgb(var(--mdui-color-surface-container-highest))}:host([checked]) .unchecked-icon{opacity:0;transform:scale(.92);transition-delay:0s;transition-duration:var(--mdui-motion-duration-short1)}:host([disabled]) .unchecked-icon{color:rgba(var(--mdui-color-surface-container-highest),.38)}.checked-icon{opacity:0;transform:scale(.92);transition-delay:0s;transition-duration:var(--mdui-motion-duration-short1);transition-timing-function:var(--mdui-motion-easing-linear);color:rgb(var(--mdui-color-on-primary-container))}:host([checked]) .checked-icon{opacity:1;transform:scale(1);transition-delay:var(--mdui-motion-duration-short1);transition-duration:var(--mdui-motion-duration-short3)}:host([invalid]) .checked-icon{color:rgb(var(--mdui-color-error-container))}:host([disabled]) .checked-icon{color:rgba(var(--mdui-color-on-surface),.38)}.checked-icon .i,.unchecked-icon .i,::slotted([slot=checked-icon]),::slotted([slot=unchecked-icon]){font-size:inherit;color:inherit}`;
2
+ export const style = css `:host{--shape-corner:var(--mdui-shape-corner-full);--shape-corner-thumb:var(--mdui-shape-corner-full);position:relative;display:inline-block;cursor:pointer;-webkit-tap-highlight-color:transparent;height:2.5rem}:host([disabled]){cursor:default;pointer-events:none}label{display:inline-flex;align-items:center;width:100%;height:100%;white-space:nowrap;cursor:inherit;-webkit-user-select:none;user-select:none;touch-action:manipulation;zoom:1;-webkit-user-drag:none}.track{position:relative;display:flex;align-items:center;border-radius:var(--shape-corner);transition-property:background-color,border-width;transition-duration:var(--mdui-motion-duration-short4);transition-timing-function:var(--mdui-motion-easing-standard);height:2rem;width:3.25rem;border:.125rem solid rgb(var(--mdui-color-outline));background-color:rgb(var(--mdui-color-surface-container-highest))}:host([checked]) .track{background-color:rgb(var(--mdui-color-primary));border-width:0}.invalid .track{background-color:rgb(var(--mdui-color-error-container));border-color:rgb(var(--mdui-color-error))}:host([disabled]) .track{background-color:rgba(var(--mdui-color-surface-container-highest),.12);border-color:rgba(var(--mdui-color-on-surface),.12)}:host([disabled][checked]) .track{background-color:rgba(var(--mdui-color-on-surface),.12)}input{position:absolute;padding:0;opacity:0;pointer-events:none;width:1.25rem;height:1.25rem;margin:0 0 0 .625rem}mdui-ripple{border-radius:50%;transition-property:left,top;transition-duration:var(--mdui-motion-duration-short4);transition-timing-function:var(--mdui-motion-easing-standard);width:2.5rem;height:2.5rem}.thumb{position:absolute;display:flex;align-items:center;justify-content:center;border-radius:var(--shape-corner-thumb);transition-property:width,height,left,background-color;transition-duration:var(--mdui-motion-duration-short4);transition-timing-function:var(--mdui-motion-easing-standard);height:1rem;width:1rem;left:.375rem;background-color:rgb(var(--mdui-color-outline));--mdui-comp-ripple-state-layer-color:var(--mdui-color-on-surface)}.thumb mdui-ripple{left:-.75rem;top:-.75rem}.has-unchecked-icon .thumb{height:1.5rem;width:1.5rem;left:.125rem}.has-unchecked-icon .thumb mdui-ripple{left:-.5rem;top:-.5rem}:host([focus-visible]) .thumb,:host([hover]) .thumb,:host([pressed]) .thumb{background-color:rgb(var(--mdui-color-on-surface-variant))}:host([checked]) .thumb{height:1.5rem;width:1.5rem;left:1.5rem;background-color:rgb(var(--mdui-color-on-primary));--mdui-comp-ripple-state-layer-color:var(--mdui-color-primary)}:host([checked]) .thumb mdui-ripple{left:-.5rem;top:-.5rem}:host([pressed]) .thumb{height:1.75rem;width:1.75rem;left:0}:host([pressed]) .thumb mdui-ripple{left:-.375rem;top:-.375rem}:host([pressed][checked]) .thumb{left:1.375rem}:host([focus-visible][checked]) .thumb,:host([hover][checked]) .thumb,:host([pressed][checked]) .thumb{background-color:rgb(var(--mdui-color-primary-container))}.invalid .thumb{background-color:rgb(var(--mdui-color-error));--mdui-comp-ripple-state-layer-color:var(--mdui-color-error)}:host([focus-visible]) .invalid .thumb,:host([hover]) .invalid .thumb,:host([pressed]) .invalid .thumb{background-color:rgb(var(--mdui-color-error))}:host([disabled]) .thumb{background-color:rgba(var(--mdui-color-on-surface),.38)}:host([disabled][checked]) .thumb{background-color:rgb(var(--mdui-color-surface))}.checked-icon,.unchecked-icon{display:flex;position:absolute;transition-property:opacity,transform;font-size:1rem}.unchecked-icon{opacity:1;transform:scale(1);transition-delay:var(--mdui-motion-duration-short1);transition-duration:var(--mdui-motion-duration-short3);transition-timing-function:var(--mdui-motion-easing-linear);color:rgb(var(--mdui-color-surface-container-highest))}:host([checked]) .unchecked-icon{opacity:0;transform:scale(.92);transition-delay:0s;transition-duration:var(--mdui-motion-duration-short1)}:host([disabled]) .unchecked-icon{color:rgba(var(--mdui-color-surface-container-highest),.38)}.checked-icon{opacity:0;transform:scale(.92);transition-delay:0s;transition-duration:var(--mdui-motion-duration-short1);transition-timing-function:var(--mdui-motion-easing-linear);color:rgb(var(--mdui-color-on-primary-container))}:host([checked]) .checked-icon{opacity:1;transform:scale(1);transition-delay:var(--mdui-motion-duration-short1);transition-duration:var(--mdui-motion-duration-short3)}.invalid .checked-icon{color:rgb(var(--mdui-color-error-container))}:host([disabled]) .checked-icon{color:rgba(var(--mdui-color-on-surface),.38)}.checked-icon .i,.unchecked-icon .i,::slotted([slot=checked-icon]),::slotted([slot=unchecked-icon]){font-size:inherit;color:inherit}`;
@@ -21,7 +21,7 @@ import { tabPanelStyle } from './tab-panel-style.js';
21
21
  *
22
22
  * @slot - 选项卡面板内容
23
23
  */
24
- export let TabPanel = class TabPanel extends LitElement {
24
+ let TabPanel = class TabPanel extends LitElement {
25
25
  constructor() {
26
26
  super(...arguments);
27
27
  /**
@@ -50,3 +50,4 @@ __decorate([
50
50
  TabPanel = __decorate([
51
51
  customElement('mdui-tab-panel')
52
52
  ], TabPanel);
53
+ export { TabPanel };
@@ -1,2 +1,2 @@
1
1
  import { css } from 'lit';
2
- export const tabStyle = css `:host{position:relative;--mdui-comp-ripple-state-layer-color:var(--mdui-color-on-surface)}:host([active]){--mdui-comp-ripple-state-layer-color:var(--mdui-color-primary)}.container{display:flex;justify-content:center;align-items:center;cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;height:100%}.preset{flex-direction:column;min-height:3rem;padding:.625rem 1rem}:host([inline]) .preset{flex-direction:row}.icon-container,.label-container{position:relative;display:flex;align-items:center;justify-content:center}.icon-container ::slotted([slot=badge]){position:absolute;transform:translate(50%,-50%)}.icon-container ::slotted([slot=badge][variant=small]){transform:translate(.5625rem,-.5625rem)}.label-container ::slotted([slot=badge]){position:absolute;left:100%;bottom:100%;transform:translate(-.75rem,.625rem)}.label-container ::slotted([slot=badge][variant=small]){transform:translate(-.375rem,.375rem)}.icon,.label{display:flex;color:rgb(var(--mdui-color-on-surface-variant))}:host([focused]) .icon,:host([focused]) .label,:host([hover]) .icon,:host([hover]) .label,:host([pressed]) .icon,:host([pressed]) .label{color:rgb(var(--mdui-color-on-surface))}:host([active]) .icon,:host([active]) .label{color:rgb(var(--mdui-color-primary))}:host([active][variant=secondary]) .icon,:host([active][variant=secondary]) .label{color:rgb(var(--mdui-color-on-surface))}.icon{font-size:1.5rem}.label{font-size:var(--mdui-typescale-title-small-size);font-weight:var(--mdui-typescale-title-small-weight);letter-spacing:var(--mdui-typescale-title-small-tracking);line-height:var(--mdui-typescale-title-small-line-height)}.icon mdui-icon,::slotted([slot=icon]){font-size:inherit;color:inherit}`;
2
+ export const tabStyle = css `:host{position:relative;--mdui-comp-ripple-state-layer-color:var(--mdui-color-on-surface)}:host([active]){--mdui-comp-ripple-state-layer-color:var(--mdui-color-primary)}.container{display:flex;justify-content:center;align-items:center;cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;height:100%}.preset{flex-direction:column;min-height:3rem;padding:.625rem 1rem}:host([inline]) .preset{flex-direction:row}.icon-container,.label-container{position:relative;display:flex;align-items:center;justify-content:center}.icon-container ::slotted([slot=badge]){position:absolute;transform:translate(50%,-50%)}.icon-container ::slotted([slot=badge][variant=small]){transform:translate(.5625rem,-.5625rem)}.label-container ::slotted([slot=badge]){position:absolute;left:100%;bottom:100%;transform:translate(-.75rem,.625rem)}.label-container ::slotted([slot=badge][variant=small]){transform:translate(-.375rem,.375rem)}.icon,.label{display:flex;color:rgb(var(--mdui-color-on-surface-variant))}:host([focused]) .icon,:host([focused]) .label,:host([hover]) .icon,:host([hover]) .label,:host([pressed]) .icon,:host([pressed]) .label{color:rgb(var(--mdui-color-on-surface))}:host([active]) .icon,:host([active]) .label{color:rgb(var(--mdui-color-primary))}:host([active]) .variant-secondary .icon,:host([active]) .variant-secondary .label{color:rgb(var(--mdui-color-on-surface))}.icon{font-size:1.5rem}.label{font-size:var(--mdui-typescale-title-small-size);font-weight:var(--mdui-typescale-title-small-weight);letter-spacing:var(--mdui-typescale-title-small-tracking);line-height:var(--mdui-typescale-title-small-line-height)}.icon mdui-icon,::slotted([slot=icon]){font-size:inherit;color:inherit}`;
@@ -1,9 +1,9 @@
1
1
  import { __decorate } from "tslib";
2
2
  import { html, LitElement } from 'lit';
3
- import { customElement, property } from 'lit/decorators.js';
3
+ import { customElement, property, state } from 'lit/decorators.js';
4
+ import { classMap } from 'lit/directives/class-map.js';
4
5
  import { createRef, ref } from 'lit/directives/ref.js';
5
6
  import { when } from 'lit/directives/when.js';
6
- import cc from 'classcat';
7
7
  import { HasSlotController } from '@mdui/shared/controllers/has-slot.js';
8
8
  import { booleanConverter } from '@mdui/shared/helpers/decorator.js';
9
9
  import { nothingTemplate } from '@mdui/shared/helpers/template.js';
@@ -40,7 +40,7 @@ import { tabStyle } from './tab-style.js';
40
40
  * @csspart icon - 导航项中的图标
41
41
  * @csspart label - 导航项的文本
42
42
  */
43
- export let Tab = class Tab extends RippleMixin(FocusableMixin(LitElement)) {
43
+ let Tab = class Tab extends RippleMixin(FocusableMixin(LitElement)) {
44
44
  constructor() {
45
45
  super(...arguments);
46
46
  /**
@@ -76,7 +76,11 @@ export let Tab = class Tab extends RippleMixin(FocusableMixin(LitElement)) {
76
76
  const hasIcon = this.icon || this.hasSlotController.test('icon');
77
77
  const hasCustomSlot = this.hasSlotController.test('custom');
78
78
  const renderBadge = () => html `<slot name="badge"></slot>`;
79
- return html `<mdui-ripple ${ref(this.rippleRef)} .noRipple="${this.noRipple}"></mdui-ripple><div part="container" class="container ${cc({ preset: !hasCustomSlot })}"><slot name="custom"><div class="icon-container">${when(hasIcon || this.icon, renderBadge)}<slot name="icon" part="icon" class="icon">${this.icon
79
+ return html `<mdui-ripple ${ref(this.rippleRef)} .noRipple="${this.noRipple}"></mdui-ripple><div part="container" class="${classMap({
80
+ container: true,
81
+ preset: !hasCustomSlot,
82
+ 'variant-secondary': this.variant === 'secondary',
83
+ })}"><slot name="custom"><div class="icon-container">${when(hasIcon || this.icon, renderBadge)}<slot name="icon" part="icon" class="icon">${this.icon
80
84
  ? html `<mdui-icon name="${this.icon}"></mdui-icon>`
81
85
  : nothingTemplate}</slot></div><div class="label-container">${when(!hasIcon, renderBadge)}<slot part="label" class="label"></slot></div></slot></div>`;
82
86
  }
@@ -103,8 +107,9 @@ __decorate([
103
107
  })
104
108
  ], Tab.prototype, "active", void 0);
105
109
  __decorate([
106
- property({ reflect: true })
110
+ state()
107
111
  ], Tab.prototype, "variant", void 0);
108
112
  Tab = __decorate([
109
113
  customElement('mdui-tab')
110
114
  ], Tab);
115
+ export { Tab };
@@ -1,2 +1,2 @@
1
1
  import { css } from 'lit';
2
- export const tabsStyle = css `:host{position:relative;display:flex}:host([placement^=top]){flex-direction:column}:host([placement^=bottom]){flex-direction:column-reverse}:host([placement^=left]){flex-direction:row}:host([placement^=right]){flex-direction:row-reverse}.container{position:relative;display:flex;flex:0 0 auto;overflow-x:auto;background-color:rgb(var(--mdui-color-surface))}:host([placement^=bottom]) .container,:host([placement^=top]) .container{flex-direction:row}:host([placement^=left]) .container,:host([placement^=right]) .container{flex-direction:column}:host([placement$='-start']) .container{justify-content:flex-start}:host([placement=bottom]) .container,:host([placement=left]) .container,:host([placement=right]) .container,:host([placement=top]) .container{justify-content:center}:host([placement$='-end']) .container{justify-content:flex-end}.container::after{content:' ';position:absolute;background-color:rgb(var(--mdui-color-surface-variant))}:host([placement^=bottom]) .container::after,:host([placement^=top]) .container::after{left:0;width:100%;height:.0625rem}:host([placement^=top]) .container::after{bottom:0}:host([placement^=bottom]) .container::after{top:0}:host([placement^=left]) .container::after,:host([placement^=right]) .container::after{top:0;height:100%;width:.0625rem}:host([placement^=left]) .container::after{right:0}:host([placement^=right]) .container::after{left:0}.indicator{position:absolute;z-index:1;transition-duration:var(--mdui-motion-duration-medium2);transition-timing-function:var(--mdui-motion-easing-standard-decelerate);background-color:rgb(var(--mdui-color-primary))}:host([placement^=bottom]) .indicator,:host([placement^=top]) .indicator{transition-property:transform,left,width}:host([placement^=left]) .indicator,:host([placement^=right]) .indicator{transition-property:transform,top,height}:host([placement^=top]) .indicator{bottom:0}:host([placement^=bottom]) .indicator{top:0}:host([placement^=left]) .indicator{right:0}:host([placement^=right]) .indicator{left:0}:host([placement^=bottom][variant=primary]) .indicator,:host([placement^=top][variant=primary]) .indicator{height:.1875rem}:host([placement^=bottom][variant=secondary]) .indicator,:host([placement^=top][variant=secondary]) .indicator{height:.125rem}:host([placement^=left][variant=primary]) .indicator,:host([placement^=right][variant=primary]) .indicator{width:.1875rem}:host([placement^=left][variant=secondary]) .indicator,:host([placement^=right][variant=secondary]) .indicator{width:.125rem}:host([placement^=top][variant=primary]) .indicator{border-top-left-radius:.1875rem;border-top-right-radius:.1875rem}:host([placement^=bottom][variant=primary]) .indicator{border-bottom-right-radius:.1875rem;border-bottom-left-radius:.1875rem}:host([placement^=left][variant=primary]) .indicator{border-top-left-radius:.1875rem;border-bottom-left-radius:.1875rem}:host([placement^=right][variant=primary]) .indicator{border-top-right-radius:.1875rem;border-bottom-right-radius:.1875rem}:host([full-width]) ::slotted(mdui-tab){flex:1}`;
2
+ export const tabsStyle = css `:host{position:relative;display:flex}:host([placement^=top]){flex-direction:column}:host([placement^=bottom]){flex-direction:column-reverse}:host([placement^=left]){flex-direction:row}:host([placement^=right]){flex-direction:row-reverse}.container{position:relative;display:flex;flex:0 0 auto;overflow-x:auto;background-color:rgb(var(--mdui-color-surface))}:host([placement^=bottom]) .container,:host([placement^=top]) .container{flex-direction:row}:host([placement^=left]) .container,:host([placement^=right]) .container{flex-direction:column}:host([placement$='-start']) .container{justify-content:flex-start}:host([placement=bottom]) .container,:host([placement=left]) .container,:host([placement=right]) .container,:host([placement=top]) .container{justify-content:center}:host([placement$='-end']) .container{justify-content:flex-end}.container::after{content:' ';position:absolute;background-color:rgb(var(--mdui-color-surface-variant))}:host([placement^=bottom]) .container::after,:host([placement^=top]) .container::after{left:0;width:100%;height:.0625rem}:host([placement^=top]) .container::after{bottom:0}:host([placement^=bottom]) .container::after{top:0}:host([placement^=left]) .container::after,:host([placement^=right]) .container::after{top:0;height:100%;width:.0625rem}:host([placement^=left]) .container::after{right:0}:host([placement^=right]) .container::after{left:0}.indicator{position:absolute;z-index:1;background-color:rgb(var(--mdui-color-primary))}.container:not(.initial) .indicator{transition-duration:var(--mdui-motion-duration-medium2);transition-timing-function:var(--mdui-motion-easing-standard-decelerate)}:host([placement^=bottom]) .indicator,:host([placement^=top]) .indicator{transition-property:transform,left,width}:host([placement^=left]) .indicator,:host([placement^=right]) .indicator{transition-property:transform,top,height}:host([placement^=top]) .indicator{bottom:0}:host([placement^=bottom]) .indicator{top:0}:host([placement^=left]) .indicator{right:0}:host([placement^=right]) .indicator{left:0}:host([placement^=bottom][variant=primary]) .indicator,:host([placement^=top][variant=primary]) .indicator{height:.1875rem}:host([placement^=bottom][variant=secondary]) .indicator,:host([placement^=top][variant=secondary]) .indicator{height:.125rem}:host([placement^=left][variant=primary]) .indicator,:host([placement^=right][variant=primary]) .indicator{width:.1875rem}:host([placement^=left][variant=secondary]) .indicator,:host([placement^=right][variant=secondary]) .indicator{width:.125rem}:host([placement^=top][variant=primary]) .indicator{border-top-left-radius:.1875rem;border-top-right-radius:.1875rem}:host([placement^=bottom][variant=primary]) .indicator{border-bottom-right-radius:.1875rem;border-bottom-left-radius:.1875rem}:host([placement^=left][variant=primary]) .indicator{border-top-left-radius:.1875rem;border-bottom-left-radius:.1875rem}:host([placement^=right][variant=primary]) .indicator{border-top-right-radius:.1875rem;border-bottom-right-radius:.1875rem}:host([full-width]) ::slotted(mdui-tab){flex:1}`;
@@ -3,7 +3,7 @@ import '@mdui/jq/methods/children.js';
3
3
  import '@mdui/jq/methods/css.js';
4
4
  import '@mdui/jq/methods/find.js';
5
5
  import '@mdui/jq/methods/get.js';
6
- import type { CSSResultGroup, TemplateResult } from 'lit';
6
+ import type { CSSResultGroup, PropertyValues, TemplateResult } from 'lit';
7
7
  /**
8
8
  * @summary 选项卡组件。需与 `<mdui-tab>` 和 `<mdui-tab-panel>` 组件配合使用
9
9
  *
@@ -62,19 +62,20 @@ export declare class Tabs extends LitElement {
62
62
  */
63
63
  fullWidth: boolean;
64
64
  private activeKey;
65
+ private isInitial;
66
+ private readonly tabs;
67
+ private readonly panels;
65
68
  private activeTab?;
66
69
  private observeResize?;
67
- private tabs;
68
- private panels;
69
70
  private readonly containerRef;
70
71
  private readonly indicatorRef;
72
+ private readonly definedController;
71
73
  private onActiveKeyChange;
72
74
  private onValueChange;
73
75
  private onIndicatorChange;
74
- connectedCallback(): void;
75
76
  disconnectedCallback(): void;
77
+ protected firstUpdated(_changedProperties: PropertyValues): void;
76
78
  protected render(): TemplateResult;
77
- private syncTabsAndPanels;
78
79
  private onSlotChange;
79
80
  private onClick;
80
81
  private updateActive;
@@ -1,12 +1,14 @@
1
1
  import { __decorate } from "tslib";
2
2
  import { html, LitElement } from 'lit';
3
- import { customElement, property, state } from 'lit/decorators.js';
3
+ import { customElement, property, queryAssignedElements, state, } from 'lit/decorators.js';
4
+ import { classMap } from 'lit/directives/class-map.js';
4
5
  import { createRef, ref } from 'lit/directives/ref.js';
5
6
  import { $ } from '@mdui/jq/$.js';
6
7
  import '@mdui/jq/methods/children.js';
7
8
  import '@mdui/jq/methods/css.js';
8
9
  import '@mdui/jq/methods/find.js';
9
10
  import '@mdui/jq/methods/get.js';
11
+ import { DefinedController } from '@mdui/shared/controllers/defined.js';
10
12
  import { watch } from '@mdui/shared/decorators/watch.js';
11
13
  import { booleanConverter } from '@mdui/shared/helpers/decorator.js';
12
14
  import { emit } from '@mdui/shared/helpers/event.js';
@@ -36,7 +38,7 @@ import { tabsStyle } from './tabs-style.js';
36
38
  * @csspart container - `<mdui-tab>` 元素的容器
37
39
  * @csspart indicator - 激活状态指示器
38
40
  */
39
- export let Tabs = class Tabs extends LitElement {
41
+ let Tabs = class Tabs extends LitElement {
40
42
  constructor() {
41
43
  super(...arguments);
42
44
  /**
@@ -69,59 +71,58 @@ export let Tabs = class Tabs extends LitElement {
69
71
  this.fullWidth = false;
70
72
  // 因为 tab 的 value 可能会重复,所以在每个 tab 元素上都添加了一个唯一的 key,通过 activeKey 来记录激活状态的 key
71
73
  this.activeKey = 0;
72
- this.tabs = [];
73
- this.panels = [];
74
+ // 是否为初始状态,初始状态不触发 change 事件
75
+ this.isInitial = true;
74
76
  this.containerRef = createRef();
75
77
  this.indicatorRef = createRef();
78
+ this.definedController = new DefinedController(this, {
79
+ relatedElements: ['mdui-tab', 'mdui-tab-panel'],
80
+ });
76
81
  }
77
- onActiveKeyChange() {
78
- var _a;
82
+ async onActiveKeyChange() {
83
+ await this.definedController.whenDefined();
79
84
  // 根据 activeKey 读取对应 tab 的值
80
- this.value = (_a = this.tabs.find((tab) => tab.key === this.activeKey)) === null || _a === void 0 ? void 0 : _a.value;
81
- emit(this, 'change');
85
+ this.value = this.tabs.find((tab) => tab.key === this.activeKey)?.value;
86
+ this.updateActive();
87
+ if (!this.isInitial) {
88
+ emit(this, 'change');
89
+ }
82
90
  }
83
- onValueChange() {
84
- var _a;
91
+ async onValueChange() {
92
+ this.isInitial = !this.hasUpdated;
93
+ await this.definedController.whenDefined();
85
94
  const tab = this.tabs.find((tab) => tab.value === this.value);
86
- this.activeKey = (_a = tab === null || tab === void 0 ? void 0 : tab.key) !== null && _a !== void 0 ? _a : 0;
87
- this.updateActive();
95
+ this.activeKey = tab?.key ?? 0;
88
96
  }
89
- onIndicatorChange() {
97
+ async onIndicatorChange() {
98
+ await this.updateComplete;
90
99
  this.updateIndicator();
91
100
  }
92
- connectedCallback() {
93
- super.connectedCallback();
94
- this.syncTabsAndPanels();
95
- this.updateComplete.then(() => {
96
- this.observeResize = observeResize(this.containerRef.value, () => this.updateIndicator());
97
- });
98
- }
99
101
  disconnectedCallback() {
100
- var _a;
101
102
  super.disconnectedCallback();
102
- (_a = this.observeResize) === null || _a === void 0 ? void 0 : _a.unobserve();
103
+ this.observeResize?.unobserve();
103
104
  }
104
- render() {
105
- return html `<div ${ref(this.containerRef)} part="container" class="container"><slot @slotchange="${this.onSlotChange}" @click="${this.onClick}"></slot><div ${ref(this.indicatorRef)} part="indicator" class="indicator"></div></div><slot name="panel" @slotchange="${this.onSlotChange}"></slot>`;
105
+ firstUpdated(_changedProperties) {
106
+ super.firstUpdated(_changedProperties);
107
+ this.observeResize = observeResize(this.containerRef.value, () => this.updateIndicator());
106
108
  }
107
- syncTabsAndPanels() {
108
- this.tabs = $(this).find('mdui-tab').get();
109
- this.panels = $(this)
110
- .find('mdui-tab-panel[slot="panel"]')
111
- .get();
109
+ render() {
110
+ return html `<div ${ref(this.containerRef)} part="container" class="container ${classMap({ initial: this.isInitial })}"><slot @slotchange="${this.onSlotChange}" @click="${this.onClick}"></slot><div ${ref(this.indicatorRef)} part="indicator" class="indicator"></div></div><slot name="panel" @slotchange="${this.onSlotChange}"></slot>`;
112
111
  }
113
- onSlotChange() {
114
- this.syncTabsAndPanels();
112
+ async onSlotChange() {
113
+ await this.definedController.whenDefined();
115
114
  this.updateActive();
116
115
  }
117
- onClick(event) {
116
+ async onClick(event) {
118
117
  // event.button 为 0 时,为鼠标左键点击。忽略鼠标中键和右键
119
118
  if (event.button) {
120
119
  return;
121
120
  }
121
+ await this.definedController.whenDefined();
122
122
  const target = event.target;
123
123
  const tab = target.closest('mdui-tab');
124
124
  this.activeKey = tab.key;
125
+ this.isInitial = false;
125
126
  this.updateActive();
126
127
  }
127
128
  updateActive() {
@@ -131,11 +132,10 @@ export let Tabs = class Tabs extends LitElement {
131
132
  return tab;
132
133
  })
133
134
  .find((tab) => tab.active);
134
- this.panels.forEach((panel) => { var _a; return (panel.active = panel.value === ((_a = this.activeTab) === null || _a === void 0 ? void 0 : _a.value)); });
135
+ this.panels.forEach((panel) => (panel.active = panel.value === this.activeTab?.value));
135
136
  this.updateIndicator();
136
137
  }
137
- async updateIndicator() {
138
- await this.updateComplete;
138
+ updateIndicator() {
139
139
  const activeTab = this.activeTab;
140
140
  const $indicator = $(this.indicatorRef.value);
141
141
  const isVertical = this.placement.startsWith('left') || this.placement.startsWith('right');
@@ -154,9 +154,9 @@ export let Tabs = class Tabs extends LitElement {
154
154
  : { transform: 'scaleX(1)', height: '', top: '' };
155
155
  let shownStyle = {};
156
156
  if (this.variant === 'primary') {
157
- const customSlots = $activeTab.find(':scope > [slot="custom"]').get();
158
- const children = customSlots.length
159
- ? customSlots
157
+ const $customSlots = $activeTab.find(':scope > [slot="custom"]');
158
+ const children = $customSlots.length
159
+ ? $customSlots.get()
160
160
  : $(activeTab.renderRoot)
161
161
  .find('slot[name="custom"]')
162
162
  .children()
@@ -205,6 +205,19 @@ __decorate([
205
205
  __decorate([
206
206
  state()
207
207
  ], Tabs.prototype, "activeKey", void 0);
208
+ __decorate([
209
+ state()
210
+ ], Tabs.prototype, "isInitial", void 0);
211
+ __decorate([
212
+ queryAssignedElements({ selector: 'mdui-tab', flatten: true })
213
+ ], Tabs.prototype, "tabs", void 0);
214
+ __decorate([
215
+ queryAssignedElements({
216
+ selector: 'mdui-tab-panel',
217
+ slot: 'panel',
218
+ flatten: true,
219
+ })
220
+ ], Tabs.prototype, "panels", void 0);
208
221
  __decorate([
209
222
  watch('activeKey', true)
210
223
  ], Tabs.prototype, "onActiveKeyChange", null);
@@ -219,3 +232,4 @@ __decorate([
219
232
  Tabs = __decorate([
220
233
  customElement('mdui-tabs')
221
234
  ], Tabs);
235
+ export { Tabs };
@@ -7,7 +7,7 @@ import '@mdui/shared/icons/visibility.js';
7
7
  import '../button-icon.js';
8
8
  import '../icon.js';
9
9
  import type { FormControl } from '@mdui/jq/shared/form.js';
10
- import type { CSSResultGroup, TemplateResult } from 'lit';
10
+ import type { CSSResultGroup, PropertyValues, TemplateResult } from 'lit';
11
11
  declare const TextField_base: import("@open-wc/dedupe-mixin").Constructor<import("@mdui/shared/mixins/focusable.js").FocusableMixinInterface> & typeof LitElement;
12
12
  /**
13
13
  * @summary 文本框组件
@@ -324,7 +324,6 @@ export declare class TextField extends TextField_base implements FormControl {
324
324
  private onRowsChange;
325
325
  private onMaxRowsChange;
326
326
  private onMinRowsChange;
327
- connectedCallback(): void;
328
327
  disconnectedCallback(): void;
329
328
  /**
330
329
  * 选中文本框中的文本
@@ -366,6 +365,7 @@ export declare class TextField extends TextField_base implements FormControl {
366
365
  * @param message 自定义的提示文本
367
366
  */
368
367
  setCustomValidity(message: string): void;
368
+ protected firstUpdated(_changedProperties: PropertyValues): void;
369
369
  protected render(): TemplateResult;
370
370
  private onChange;
371
371
  private onClear;
@@ -71,7 +71,7 @@ import { style } from './style.js';
71
71
  * @csspart error - 底部的错误描述文本
72
72
  * @csspart counter - 底部右侧的字数统计
73
73
  */
74
- export let TextField = class TextField extends FocusableMixin(LitElement) {
74
+ let TextField = class TextField extends FocusableMixin(LitElement) {
75
75
  constructor() {
76
76
  super(...arguments);
77
77
  /**
@@ -200,8 +200,8 @@ export let TextField = class TextField extends FocusableMixin(LitElement) {
200
200
  * 如果值无法被转换为 `number` 类型,则会返回 `NaN`。
201
201
  */
202
202
  get valueAsNumber() {
203
- var _a, _b;
204
- return ((_b = (_a = this.inputRef.value) === null || _a === void 0 ? void 0 : _a.valueAsNumber) !== null && _b !== void 0 ? _b : parseFloat(this.value));
203
+ return (this.inputRef.value?.valueAsNumber ??
204
+ parseFloat(this.value));
205
205
  }
206
206
  set valueAsNumber(newValue) {
207
207
  const input = document.createElement('input');
@@ -234,13 +234,12 @@ export let TextField = class TextField extends FocusableMixin(LitElement) {
234
234
  this.invalid = !this.inputRef.value.checkValidity();
235
235
  }
236
236
  async onValueChange() {
237
- var _a;
238
237
  this.hasValue = !!this.value;
239
238
  if (this.hasUpdated) {
240
239
  await this.updateComplete;
241
240
  // reset 引起的值变更,不执行验证;直接修改值引起的变更,需要进行验证
242
241
  const form = this.formController.getForm();
243
- if (form && ((_a = formResets.get(form)) === null || _a === void 0 ? void 0 : _a.has(this))) {
242
+ if (form && formResets.get(form)?.has(this)) {
244
243
  this.invalid = false;
245
244
  formResets.get(form).delete(this);
246
245
  }
@@ -256,53 +255,31 @@ export let TextField = class TextField extends FocusableMixin(LitElement) {
256
255
  if (!this.autosize) {
257
256
  return;
258
257
  }
259
- // 设置最大高度,为 line-height * maxRows + padding-top + padding-bottom
260
- const setMaxHeight = () => {
261
- var _a;
262
- const $input = $(this.inputRef.value);
263
- $input.css('max-height', parseFloat($input.css('line-height')) * ((_a = this.maxRows) !== null && _a !== void 0 ? _a : 1) +
264
- parseFloat($input.css('padding-top')) +
265
- parseFloat($input.css('padding-bottom')));
266
- };
267
- if (this.hasUpdated) {
268
- setMaxHeight();
269
- }
270
- else {
258
+ if (!this.hasUpdated) {
271
259
  await this.updateComplete;
272
- setMaxHeight();
273
260
  }
261
+ // 设置最大高度,为 line-height * maxRows + padding-top + padding-bottom
262
+ const $input = $(this.inputRef.value);
263
+ $input.css('max-height', parseFloat($input.css('line-height')) * (this.maxRows ?? 1) +
264
+ parseFloat($input.css('padding-top')) +
265
+ parseFloat($input.css('padding-bottom')));
274
266
  }
275
267
  async onMinRowsChange() {
276
268
  if (!this.autosize) {
277
269
  return;
278
270
  }
279
- // 设置最小高度,为 line-height * minRows + padding-top + padding-bottom
280
- const setMinHeight = () => {
281
- var _a;
282
- const $input = $(this.inputRef.value);
283
- $input.css('min-height', parseFloat($input.css('line-height')) * ((_a = this.minRows) !== null && _a !== void 0 ? _a : 1) +
284
- parseFloat($input.css('padding-top')) +
285
- parseFloat($input.css('padding-bottom')));
286
- };
287
- if (this.hasUpdated) {
288
- setMinHeight();
289
- }
290
- else {
271
+ if (!this.hasUpdated) {
291
272
  await this.updateComplete;
292
- setMinHeight();
293
273
  }
294
- }
295
- connectedCallback() {
296
- super.connectedCallback();
297
- this.updateComplete.then(() => {
298
- this.setTextareaHeight();
299
- this.observeResize = observeResize(this.inputRef.value, () => this.setTextareaHeight());
300
- });
274
+ // 设置最小高度,为 line-height * minRows + padding-top + padding-bottom
275
+ const $input = $(this.inputRef.value);
276
+ $input.css('min-height', parseFloat($input.css('line-height')) * (this.minRows ?? 1) +
277
+ parseFloat($input.css('padding-top')) +
278
+ parseFloat($input.css('padding-bottom')));
301
279
  }
302
280
  disconnectedCallback() {
303
- var _a;
304
281
  super.disconnectedCallback();
305
- (_a = this.observeResize) === null || _a === void 0 ? void 0 : _a.unobserve();
282
+ this.observeResize?.unobserve();
306
283
  }
307
284
  /**
308
285
  * 选中文本框中的文本
@@ -380,6 +357,11 @@ export let TextField = class TextField extends FocusableMixin(LitElement) {
380
357
  this.inputRef.value.setCustomValidity(message);
381
358
  this.invalid = !this.inputRef.value.checkValidity();
382
359
  }
360
+ firstUpdated(_changedProperties) {
361
+ super.firstUpdated(_changedProperties);
362
+ this.setTextareaHeight();
363
+ this.observeResize = observeResize(this.inputRef.value, () => this.setTextareaHeight());
364
+ }
383
365
  render() {
384
366
  const hasIcon = !!this.icon || this.hasSlotController.test('icon');
385
367
  const hasEndIcon = !!this.endIcon || this.hasSlotController.test('end-icon');
@@ -389,6 +371,10 @@ export let TextField = class TextField extends FocusableMixin(LitElement) {
389
371
  const hasCounter = this.counter && !!this.maxlength;
390
372
  // 存在 input slot 时,隐藏组件内部的 .input 元素,使用 slot 代替
391
373
  const hasInputSlot = this.hasSlotController.test('input');
374
+ const invalidClassNameObj = {
375
+ invalid: this.invalid,
376
+ 'invalid-style': this.invalidStyle,
377
+ };
392
378
  const className = classMap({
393
379
  container: true,
394
380
  'has-value': this.hasValue,
@@ -396,10 +382,11 @@ export let TextField = class TextField extends FocusableMixin(LitElement) {
396
382
  'has-end-icon': hasEndIcon,
397
383
  'has-error-icon': hasErrorIcon,
398
384
  'is-firefox': navigator.userAgent.includes('Firefox'),
385
+ ...invalidClassNameObj,
399
386
  });
400
387
  return html `<div part="container" class="${className}">${this.renderPrefix()}<div class="input-container">${this.renderLabel()} ${this.isTextarea
401
388
  ? this.renderTextArea(hasInputSlot)
402
- : this.renderInput(hasInputSlot)} ${when(hasInputSlot, () => html `<slot name="input" class="input"></slot>`)}</div>${this.renderClearButton()}${this.renderTogglePasswordButton()} ${this.renderSuffix(hasErrorIcon)}</div>${when(hasError || hasHelper || hasCounter, () => html `<div part="supporting" class="supporting">${this.renderHelper(hasError, hasHelper)} ${this.renderCounter(hasCounter)}</div>`)}`;
389
+ : this.renderInput(hasInputSlot)} ${when(hasInputSlot, () => html `<slot name="input" class="input"></slot>`)}</div>${this.renderClearButton()}${this.renderTogglePasswordButton()} ${this.renderSuffix(hasErrorIcon)}</div>${when(hasError || hasHelper || hasCounter, () => html `<div part="supporting" class="${classMap({ supporting: true, ...invalidClassNameObj })}">${this.renderHelper(hasError, hasHelper)} ${this.renderCounter(hasCounter)}</div>`)}`;
403
390
  }
404
391
  onChange() {
405
392
  this.value = this.inputRef.value.value;
@@ -512,12 +499,11 @@ export let TextField = class TextField extends FocusableMixin(LitElement) {
512
499
  : undefined)}" ?readonly="${this.readonly}" ?disabled="${this.disabled}" ?required="${this.required}" minlength="${ifDefined(this.minlength)}" maxlength="${ifDefined(this.maxlength)}" min="${ifDefined(this.min)}" max="${ifDefined(this.max)}" step="${ifDefined(this.step)}" autocapitalize="${ifDefined(this.type === 'password' ? 'off' : this.autocapitalize)}" autocomplete="${ifDefined(this.type === 'password' ? 'off' : this.autocomplete)}" autocorrect="${ifDefined(this.type === 'password' ? 'off' : this.autocorrect)}" spellcheck="${ifDefined(this.spellcheck)}" pattern="${ifDefined(this.pattern)}" enterkeyhint="${ifDefined(this.enterkeyhint)}" inputmode="${ifDefined(this.inputmode)}" @change="${this.onChange}" @input="${this.onInput}" @invalid="${this.onInvalid}" @keydown="${this.onKeyDown}">`;
513
500
  }
514
501
  renderTextArea(hasInputSlot) {
515
- var _a;
516
502
  return html `<textarea ${ref(this.inputRef)} part="input" class="input ${classMap({ 'hide-input': hasInputSlot })}" name="${ifDefined(this.name)}" .value="${live(this.value)}" placeholder="${ifDefined(
517
503
  // @ts-ignore
518
504
  !this.label || this.isFocusedStyle || this.hasValue
519
505
  ? this.placeholder
520
- : undefined)}" ?readonly="${this.readonly}" ?disabled="${this.disabled}" ?required="${this.required}" minlength="${ifDefined(this.minlength)}" maxlength="${ifDefined(this.maxlength)}" rows="${(_a = this.rows) !== null && _a !== void 0 ? _a : 1}" autocapitalize="${ifDefined(this.autocapitalize)}" autocorrect="${ifDefined(this.autocorrect)}" spellcheck="${ifDefined(this.spellcheck)}" enterkeyhint="${ifDefined(this.enterkeyhint)}" inputmode="${ifDefined(this.inputmode)}" @change="${this.onChange}" @input="${this.onInput}" @invalid="${this.onInvalid}" @keydown="${this.onKeyDown}" @keyup="${this.onTextAreaKeyUp}"></textarea>`;
506
+ : undefined)}" ?readonly="${this.readonly}" ?disabled="${this.disabled}" ?required="${this.required}" minlength="${ifDefined(this.minlength)}" maxlength="${ifDefined(this.maxlength)}" rows="${this.rows ?? 1}" autocapitalize="${ifDefined(this.autocapitalize)}" autocorrect="${ifDefined(this.autocorrect)}" spellcheck="${ifDefined(this.spellcheck)}" enterkeyhint="${ifDefined(this.enterkeyhint)}" inputmode="${ifDefined(this.inputmode)}" @change="${this.onChange}" @input="${this.onInput}" @invalid="${this.onInvalid}" @keydown="${this.onKeyDown}" @keyup="${this.onTextAreaKeyUp}"></textarea>`;
521
507
  }
522
508
  /**
523
509
  * @param hasError 是否包含错误提示
@@ -701,19 +687,10 @@ __decorate([
701
687
  property({ reflect: true })
702
688
  ], TextField.prototype, "inputmode", void 0);
703
689
  __decorate([
704
- property({
705
- type: Boolean,
706
- reflect: true,
707
- converter: booleanConverter,
708
- })
690
+ state()
709
691
  ], TextField.prototype, "invalid", void 0);
710
692
  __decorate([
711
- property({
712
- type: Boolean,
713
- reflect: true,
714
- converter: booleanConverter,
715
- attribute: 'invalid-style',
716
- })
693
+ state()
717
694
  ], TextField.prototype, "invalidStyle", void 0);
718
695
  __decorate([
719
696
  property({
@@ -750,3 +727,4 @@ __decorate([
750
727
  TextField = __decorate([
751
728
  customElement('mdui-text-field')
752
729
  ], TextField);
730
+ export { TextField };
@@ -1,2 +1,2 @@
1
1
  import { css } from 'lit';
2
- export const style = css `:host{display:inline-block;width:100%}:host([disabled]){pointer-events:none}:host([type=hidden]){display:none}.container{position:relative;display:flex;align-items:center;transition:box-shadow var(--mdui-motion-duration-short4) var(--mdui-motion-easing-standard);padding:0 1rem}.container.has-icon{padding-left:.75rem}.container.has-end-icon,.container.has-error-icon{padding-right:.75rem}:host([variant=filled]) .container{box-shadow:inset 0 -.0625rem 0 0 rgb(var(--mdui-color-on-surface-variant));background-color:rgb(var(--mdui-color-surface-container-highest));border-radius:var(--mdui-shape-corner-extra-small) var(--mdui-shape-corner-extra-small) 0 0}:host([variant=filled][invalid-style]) .container,:host([variant=filled][invalid]) .container{box-shadow:inset 0 -.0625rem 0 0 rgb(var(--mdui-color-error))}:host([variant=filled]:hover) .container{box-shadow:inset 0 -.0625rem 0 0 rgb(var(--mdui-color-on-surface))}:host([variant=filled][invalid-style]:hover) .container,:host([variant=filled][invalid]:hover) .container{box-shadow:inset 0 -.0625rem 0 0 rgb(var(--mdui-color-on-error-container))}:host([variant=filled][focused-style]) .container,:host([variant=filled][focused]) .container{box-shadow:inset 0 -.125rem 0 0 rgb(var(--mdui-color-primary))}:host([variant=filled][focused-style][invalid-style]) .container,:host([variant=filled][focused-style][invalid]) .container,:host([variant=filled][focused][invalid-style]) .container,:host([variant=filled][focused][invalid]) .container{box-shadow:inset 0 -.125rem 0 0 rgb(var(--mdui-color-error))}:host([variant=filled][disabled]) .container{box-shadow:inset 0 -.0625rem 0 0 rgba(var(--mdui-color-on-surface),38%);background-color:rgba(var(--mdui-color-on-surface),4%)}:host([variant=outlined]) .container{box-shadow:inset 0 0 0 .0625rem rgb(var(--mdui-color-outline));border-radius:var(--mdui-shape-corner-extra-small)}:host([variant=outlined][invalid-style]) .container,:host([variant=outlined][invalid]) .container{box-shadow:inset 0 0 0 .0625rem rgb(var(--mdui-color-error))}:host([variant=outlined]:hover) .container{box-shadow:inset 0 0 0 .0625rem rgb(var(--mdui-color-on-surface))}:host([variant=outlined][invalid-style]:hover) .container,:host([variant=outlined][invalid]:hover) .container{box-shadow:inset 0 0 0 .0625rem rgb(var(--mdui-color-on-error-container))}:host([variant=outlined][focused-style]) .container,:host([variant=outlined][focused]) .container{box-shadow:inset 0 0 0 .125rem rgb(var(--mdui-color-primary))}:host([variant=outlined][focused-style][invalid-style]) .container,:host([variant=outlined][focused-style][invalid]) .container,:host([variant=outlined][focused][invalid-style]) .container,:host([variant=outlined][focused][invalid]) .container{box-shadow:inset 0 0 0 .125rem rgb(var(--mdui-color-error))}:host([variant=outlined][disabled]) .container{box-shadow:inset 0 0 0 .125rem rgba(var(--mdui-color-on-surface),12%)}.icon,.prefix,.right-icon,.suffix{display:flex;-webkit-user-select:none;user-select:none;color:rgb(var(--mdui-color-on-surface-variant))}:host([disabled]) .icon,:host([disabled]) .prefix,:host([disabled]) .right-icon,:host([disabled]) .suffix{color:rgba(var(--mdui-color-on-surface),38%)}:host([invalid-style]) .right-icon,:host([invalid-style]) .suffix,:host([invalid]) .right-icon,:host([invalid]) .suffix{color:rgb(var(--mdui-color-error))}:host([invalid-style]:hover) .right-icon,:host([invalid-style]:hover) .suffix,:host([invalid]:hover) .right-icon,:host([invalid]:hover) .suffix{color:rgb(var(--mdui-color-on-error-container))}:host([focused-style][invalid-style]) .right-icon,:host([focused-style][invalid-style]) .suffix,:host([focused-style][invalid]) .right-icon,:host([focused-style][invalid]) .suffix,:host([focused][invalid-style]) .right-icon,:host([focused][invalid-style]) .suffix,:host([focused][invalid]) .right-icon,:host([focused][invalid]) .suffix{color:rgb(var(--mdui-color-error))}.icon,.right-icon{font-size:1.5rem}.icon mdui-button-icon,.right-icon mdui-button-icon,::slotted(mdui-button-icon[slot]){margin-left:-.5rem;margin-right:-.5rem}.icon .i,.right-icon .i,::slotted([slot$=icon]){font-size:inherit}.has-icon .icon{margin-right:1rem}.has-end-icon .end-icon,.right-icon:not(.end-icon){margin-left:1rem}.prefix,.suffix{display:none;font-size:var(--mdui-typescale-body-large-size);font-weight:var(--mdui-typescale-body-large-weight);letter-spacing:var(--mdui-typescale-body-large-tracking);line-height:var(--mdui-typescale-body-large-line-height)}:host([variant=filled][label]) .prefix,:host([variant=filled][label]) .suffix{padding-top:1rem}.has-value .prefix,.has-value .suffix,:host([focused-style]) .prefix,:host([focused-style]) .suffix,:host([focused]) .prefix,:host([focused]) .suffix{display:flex}.prefix{padding-right:.125rem}.suffix{padding-left:.125rem}.input-container{width:100%}.label{position:absolute;pointer-events:none;max-width:calc(100% - 1rem);display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:1;top:1rem;color:rgb(var(--mdui-color-on-surface-variant));font-size:var(--mdui-typescale-body-large-size);font-weight:var(--mdui-typescale-body-large-weight);letter-spacing:var(--mdui-typescale-body-large-tracking);line-height:var(--mdui-typescale-body-large-line-height)}:host([invalid-style]) .label,:host([invalid]) .label{color:rgb(var(--mdui-color-error))}:host([variant=outlined]) .label{padding:0 .25rem;margin:0 -.25rem}:host([variant=outlined]:hover) .label{color:rgb(var(--mdui-color-on-surface))}:host([variant=filled][invalid-style]:hover) .label,:host([variant=filled][invalid]:hover) .label,:host([variant=outlined][invalid-style]:hover) .label,:host([variant=outlined][invalid]:hover) .label{color:rgb(var(--mdui-color-on-error-container))}:host([variant=filled][focused-style]) .label,:host([variant=filled][focused]) .label,:host([variant=outlined][focused-style]) .label,:host([variant=outlined][focused]) .label{color:rgb(var(--mdui-color-primary))}:host([variant=filled]) .has-value .label,:host([variant=filled][focused-style]) .label,:host([variant=filled][focused]) .label,:host([variant=filled][type=date]) .label,:host([variant=filled][type=datetime-local]) .label,:host([variant=filled][type=month]) .label,:host([variant=filled][type=time]) .label,:host([variant=filled][type=week]) .label{font-size:var(--mdui-typescale-body-small-size);font-weight:var(--mdui-typescale-body-small-weight);letter-spacing:var(--mdui-typescale-body-small-tracking);line-height:var(--mdui-typescale-body-small-line-height);top:.25rem}:host([variant=outlined]) .has-value .label,:host([variant=outlined][focused-style]) .label,:host([variant=outlined][focused]) .label,:host([variant=outlined][type=date]) .label,:host([variant=outlined][type=datetime-local]) .label,:host([variant=outlined][type=month]) .label,:host([variant=outlined][type=time]) .label,:host([variant=outlined][type=week]) .label{font-size:var(--mdui-typescale-body-small-size);font-weight:var(--mdui-typescale-body-small-weight);letter-spacing:var(--mdui-typescale-body-small-tracking);line-height:var(--mdui-typescale-body-small-line-height);top:-.5rem;left:.75rem;background-color:rgb(var(--mdui-color-background))}:host([variant=filled][focused-style][invalid-style]) .label,:host([variant=filled][focused-style][invalid]) .label,:host([variant=filled][focused][invalid-style]) .label,:host([variant=filled][focused][invalid]) .label,:host([variant=outlined][focused-style][invalid-style]) .label,:host([variant=outlined][focused-style][invalid]) .label,:host([variant=outlined][focused][invalid-style]) .label,:host([variant=outlined][focused][invalid]) .label{color:rgb(var(--mdui-color-error))}:host([variant=filled][disabled]) .label,:host([variant=outlined][disabled]) .label{color:rgba(var(--mdui-color-on-surface),38%)}.input{display:flex;flex-wrap:wrap;width:100%;border:none;outline:0;background:0 0;-webkit-appearance:none;appearance:none;resize:none;cursor:inherit;font-family:inherit;padding:1rem 0;font-size:var(--mdui-typescale-body-large-size);font-weight:var(--mdui-typescale-body-large-weight);letter-spacing:var(--mdui-typescale-body-large-tracking);line-height:var(--mdui-typescale-body-large-line-height);color:rgb(var(--mdui-color-on-surface));caret-color:rgb(var(--mdui-color-primary))}.input.hide-input{opacity:0;height:0;padding:0!important;overflow:hidden}.input::placeholder{color:rgb(var(--mdui-color-on-surface-variant))}:host([invalid-style]) .input,:host([invalid]) .input{caret-color:rgb(var(--mdui-color-error))}:host([disabled]) .input{color:rgba(var(--mdui-color-on-surface),38%)}:host([end-aligned]) .input{text-align:right}:host([variant=filled]) .label+.input{padding:1.5rem 0 .5rem 0}.supporting{display:flex;justify-content:space-between;padding:.25rem 1rem;color:rgb(var(--mdui-color-on-surface-variant))}:host([invalid-style]) .supporting,:host([invalid]) .supporting{color:rgb(var(--mdui-color-error))}.helper{display:block;opacity:1;transition:opacity var(--mdui-motion-duration-short4) var(--mdui-motion-easing-linear);font-size:var(--mdui-typescale-body-small-size);font-weight:var(--mdui-typescale-body-small-weight);letter-spacing:var(--mdui-typescale-body-small-tracking);line-height:var(--mdui-typescale-body-small-line-height)}:host([disabled]) .helper{color:rgba(var(--mdui-color-on-surface),38%)}:host([helper-on-focus]) .helper{opacity:0}:host([helper-on-focus][focused-style]) .helper,:host([helper-on-focus][focused]) .helper{opacity:1}.error{font-size:var(--mdui-typescale-body-small-size);font-weight:var(--mdui-typescale-body-small-weight);letter-spacing:var(--mdui-typescale-body-small-tracking);line-height:var(--mdui-typescale-body-small-line-height)}.counter{flex-wrap:nowrap;padding-left:1rem;font-size:var(--mdui-typescale-body-small-size);font-weight:var(--mdui-typescale-body-small-weight);letter-spacing:var(--mdui-typescale-body-small-tracking);line-height:var(--mdui-typescale-body-small-line-height)}::-ms-reveal{display:none}.is-firefox .input[type=date],.is-firefox .input[type=datetime-local],.is-firefox .input[type=time]{-webkit-clip-path:inset(0 2em 0 0);clip-path:inset(0 2em 0 0)}.input[type=number]::-webkit-inner-spin-button,.input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;display:none}.input[type=number]{-moz-appearance:textfield}.input[type=search]::-webkit-search-cancel-button{-webkit-appearance:none}`;
2
+ export const style = css `:host{display:inline-block;width:100%}:host([disabled]){pointer-events:none}:host([type=hidden]){display:none}.container{position:relative;display:flex;align-items:center;transition:box-shadow var(--mdui-motion-duration-short4) var(--mdui-motion-easing-standard);padding:0 1rem}.container.has-icon{padding-left:.75rem}.container.has-end-icon,.container.has-error-icon{padding-right:.75rem}:host([variant=filled]) .container{box-shadow:inset 0 -.0625rem 0 0 rgb(var(--mdui-color-on-surface-variant));background-color:rgb(var(--mdui-color-surface-container-highest));border-radius:var(--mdui-shape-corner-extra-small) var(--mdui-shape-corner-extra-small) 0 0}:host([variant=filled]) .container.invalid,:host([variant=filled]) .container.invalid-style{box-shadow:inset 0 -.0625rem 0 0 rgb(var(--mdui-color-error))}:host([variant=filled]:hover) .container{box-shadow:inset 0 -.0625rem 0 0 rgb(var(--mdui-color-on-surface))}:host([variant=filled]:hover) .container.invalid,:host([variant=filled]:hover) .container.invalid-style{box-shadow:inset 0 -.0625rem 0 0 rgb(var(--mdui-color-on-error-container))}:host([variant=filled][focused-style]) .container,:host([variant=filled][focused]) .container{box-shadow:inset 0 -.125rem 0 0 rgb(var(--mdui-color-primary))}:host([variant=filled][focused-style]) .container.invalid,:host([variant=filled][focused-style]) .container.invalid-style,:host([variant=filled][focused]) .container.invalid,:host([variant=filled][focused]) .container.invalid-style{box-shadow:inset 0 -.125rem 0 0 rgb(var(--mdui-color-error))}:host([variant=filled][disabled]) .container{box-shadow:inset 0 -.0625rem 0 0 rgba(var(--mdui-color-on-surface),38%);background-color:rgba(var(--mdui-color-on-surface),4%)}:host([variant=outlined]) .container{box-shadow:inset 0 0 0 .0625rem rgb(var(--mdui-color-outline));border-radius:var(--mdui-shape-corner-extra-small)}:host([variant=outlined]) .container.invalid,:host([variant=outlined]) .container.invalid-style{box-shadow:inset 0 0 0 .0625rem rgb(var(--mdui-color-error))}:host([variant=outlined]:hover) .container{box-shadow:inset 0 0 0 .0625rem rgb(var(--mdui-color-on-surface))}:host([variant=outlined]:hover) .container.invalid,:host([variant=outlined]:hover) .container.invalid-style{box-shadow:inset 0 0 0 .0625rem rgb(var(--mdui-color-on-error-container))}:host([variant=outlined][focused-style]) .container,:host([variant=outlined][focused]) .container{box-shadow:inset 0 0 0 .125rem rgb(var(--mdui-color-primary))}:host([variant=outlined][focused-style]) .container.invalid,:host([variant=outlined][focused-style]) .container.invalid-style,:host([variant=outlined][focused]) .container.invalid,:host([variant=outlined][focused]) .container.invalid-style{box-shadow:inset 0 0 0 .125rem rgb(var(--mdui-color-error))}:host([variant=outlined][disabled]) .container{box-shadow:inset 0 0 0 .125rem rgba(var(--mdui-color-on-surface),12%)}.icon,.prefix,.right-icon,.suffix{display:flex;-webkit-user-select:none;user-select:none;color:rgb(var(--mdui-color-on-surface-variant))}:host([disabled]) .icon,:host([disabled]) .prefix,:host([disabled]) .right-icon,:host([disabled]) .suffix{color:rgba(var(--mdui-color-on-surface),38%)}.invalid .right-icon,.invalid .suffix,.invalid-style .right-icon,.invalid-style .suffix{color:rgb(var(--mdui-color-error))}:host(:hover) .invalid .right-icon,:host(:hover) .invalid .suffix,:host(:hover) .invalid-style .right-icon,:host(:hover) .invalid-style .suffix{color:rgb(var(--mdui-color-on-error-container))}:host([focused-style]) .invalid .right-icon,:host([focused-style]) .invalid .suffix,:host([focused-style]) .invalid-style .right-icon,:host([focused-style]) .invalid-style .suffix,:host([focused]) .invalid .right-icon,:host([focused]) .invalid .suffix,:host([focused]) .invalid-style .right-icon,:host([focused]) .invalid-style .suffix{color:rgb(var(--mdui-color-error))}.icon,.right-icon{font-size:1.5rem}.icon mdui-button-icon,.right-icon mdui-button-icon,::slotted(mdui-button-icon[slot]){margin-left:-.5rem;margin-right:-.5rem}.icon .i,.right-icon .i,::slotted([slot$=icon]){font-size:inherit}.has-icon .icon{margin-right:1rem}.has-end-icon .end-icon,.right-icon:not(.end-icon){margin-left:1rem}.prefix,.suffix{display:none;font-size:var(--mdui-typescale-body-large-size);font-weight:var(--mdui-typescale-body-large-weight);letter-spacing:var(--mdui-typescale-body-large-tracking);line-height:var(--mdui-typescale-body-large-line-height)}:host([variant=filled][label]) .prefix,:host([variant=filled][label]) .suffix{padding-top:1rem}.has-value .prefix,.has-value .suffix,:host([focused-style]) .prefix,:host([focused-style]) .suffix,:host([focused]) .prefix,:host([focused]) .suffix{display:flex}.prefix{padding-right:.125rem}.suffix{padding-left:.125rem}.input-container{width:100%}.label{position:absolute;pointer-events:none;max-width:calc(100% - 1rem);display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:1;top:1rem;color:rgb(var(--mdui-color-on-surface-variant));font-size:var(--mdui-typescale-body-large-size);font-weight:var(--mdui-typescale-body-large-weight);letter-spacing:var(--mdui-typescale-body-large-tracking);line-height:var(--mdui-typescale-body-large-line-height)}.invalid .label,.invalid-style .label{color:rgb(var(--mdui-color-error))}:host([variant=outlined]) .label{padding:0 .25rem;margin:0 -.25rem}:host([variant=outlined]:hover) .label{color:rgb(var(--mdui-color-on-surface))}:host([variant=filled]:hover) .invalid .label,:host([variant=filled]:hover) .invalid-style .label,:host([variant=outlined]:hover) .invalid .label,:host([variant=outlined]:hover) .invalid-style .label{color:rgb(var(--mdui-color-on-error-container))}:host([variant=filled][focused-style]) .label,:host([variant=filled][focused]) .label,:host([variant=outlined][focused-style]) .label,:host([variant=outlined][focused]) .label{color:rgb(var(--mdui-color-primary))}:host([variant=filled]) .has-value .label,:host([variant=filled][focused-style]) .label,:host([variant=filled][focused]) .label,:host([variant=filled][type=date]) .label,:host([variant=filled][type=datetime-local]) .label,:host([variant=filled][type=month]) .label,:host([variant=filled][type=time]) .label,:host([variant=filled][type=week]) .label{font-size:var(--mdui-typescale-body-small-size);font-weight:var(--mdui-typescale-body-small-weight);letter-spacing:var(--mdui-typescale-body-small-tracking);line-height:var(--mdui-typescale-body-small-line-height);top:.25rem}:host([variant=outlined]) .has-value .label,:host([variant=outlined][focused-style]) .label,:host([variant=outlined][focused]) .label,:host([variant=outlined][type=date]) .label,:host([variant=outlined][type=datetime-local]) .label,:host([variant=outlined][type=month]) .label,:host([variant=outlined][type=time]) .label,:host([variant=outlined][type=week]) .label{font-size:var(--mdui-typescale-body-small-size);font-weight:var(--mdui-typescale-body-small-weight);letter-spacing:var(--mdui-typescale-body-small-tracking);line-height:var(--mdui-typescale-body-small-line-height);top:-.5rem;left:.75rem;background-color:rgb(var(--mdui-color-background))}:host([variant=filled][focused-style]) .invalid .label,:host([variant=filled][focused-style]) .invalid-style .label,:host([variant=filled][focused]) .invalid .label,:host([variant=filled][focused]) .invalid-style .label,:host([variant=outlined][focused-style]) .invalid .label,:host([variant=outlined][focused-style]) .invalid-style .label,:host([variant=outlined][focused]) .invalid .label,:host([variant=outlined][focused]) .invalid-style .label{color:rgb(var(--mdui-color-error))}:host([variant=filled][disabled]) .label,:host([variant=outlined][disabled]) .label{color:rgba(var(--mdui-color-on-surface),38%)}.input{display:flex;flex-wrap:wrap;width:100%;border:none;outline:0;background:0 0;-webkit-appearance:none;appearance:none;resize:none;cursor:inherit;font-family:inherit;padding:1rem 0;font-size:var(--mdui-typescale-body-large-size);font-weight:var(--mdui-typescale-body-large-weight);letter-spacing:var(--mdui-typescale-body-large-tracking);line-height:var(--mdui-typescale-body-large-line-height);color:rgb(var(--mdui-color-on-surface));caret-color:rgb(var(--mdui-color-primary))}.input.hide-input{opacity:0;height:0;padding:0!important;overflow:hidden}.input::placeholder{color:rgb(var(--mdui-color-on-surface-variant))}.invalid .input,.invalid-style .input{caret-color:rgb(var(--mdui-color-error))}:host([disabled]) .input{color:rgba(var(--mdui-color-on-surface),38%)}:host([end-aligned]) .input{text-align:right}:host([variant=filled]) .label+.input{padding:1.5rem 0 .5rem 0}.supporting{display:flex;justify-content:space-between;padding:.25rem 1rem;color:rgb(var(--mdui-color-on-surface-variant))}.supporting.invalid,.supporting.invalid-style{color:rgb(var(--mdui-color-error))}.helper{display:block;opacity:1;transition:opacity var(--mdui-motion-duration-short4) var(--mdui-motion-easing-linear);font-size:var(--mdui-typescale-body-small-size);font-weight:var(--mdui-typescale-body-small-weight);letter-spacing:var(--mdui-typescale-body-small-tracking);line-height:var(--mdui-typescale-body-small-line-height)}:host([disabled]) .helper{color:rgba(var(--mdui-color-on-surface),38%)}:host([helper-on-focus]) .helper{opacity:0}:host([helper-on-focus][focused-style]) .helper,:host([helper-on-focus][focused]) .helper{opacity:1}.error{font-size:var(--mdui-typescale-body-small-size);font-weight:var(--mdui-typescale-body-small-weight);letter-spacing:var(--mdui-typescale-body-small-tracking);line-height:var(--mdui-typescale-body-small-line-height)}.counter{flex-wrap:nowrap;padding-left:1rem;font-size:var(--mdui-typescale-body-small-size);font-weight:var(--mdui-typescale-body-small-weight);letter-spacing:var(--mdui-typescale-body-small-tracking);line-height:var(--mdui-typescale-body-small-line-height)}::-ms-reveal{display:none}.is-firefox .input[type=date],.is-firefox .input[type=datetime-local],.is-firefox .input[type=time]{-webkit-clip-path:inset(0 2em 0 0);clip-path:inset(0 2em 0 0)}.input[type=number]::-webkit-inner-spin-button,.input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;display:none}.input[type=number]{-moz-appearance:textfield}.input[type=search]::-webkit-search-cancel-button{-webkit-appearance:none}`;