@universal-material/web 3.0.28 → 3.0.30

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 (194) hide show
  1. package/app-bar/top-app-bar.styles.js +1 -1
  2. package/app-bar/top-app-bar.styles.js.map +1 -1
  3. package/button/button.js +1 -1
  4. package/button/button.js.map +1 -1
  5. package/button/button.styles.d.ts.map +1 -1
  6. package/button/button.styles.js +10 -5
  7. package/button/button.styles.js.map +1 -1
  8. package/button/icon-button.styles.d.ts.map +1 -1
  9. package/button/icon-button.styles.js +10 -3
  10. package/button/icon-button.styles.js.map +1 -1
  11. package/card/card.styles.d.ts.map +1 -1
  12. package/card/card.styles.js +0 -4
  13. package/card/card.styles.js.map +1 -1
  14. package/checkbox/checkbox-list-item.d.ts +11 -0
  15. package/checkbox/checkbox-list-item.d.ts.map +1 -0
  16. package/checkbox/checkbox-list-item.js +16 -0
  17. package/checkbox/checkbox-list-item.js.map +1 -0
  18. package/checkbox/checkbox.d.ts +13 -8
  19. package/checkbox/checkbox.d.ts.map +1 -1
  20. package/checkbox/checkbox.js +51 -52
  21. package/checkbox/checkbox.js.map +1 -1
  22. package/{container/container.styles.d.ts → checkbox/checkbox.styles.d.ts} +1 -1
  23. package/checkbox/checkbox.styles.d.ts.map +1 -0
  24. package/checkbox/checkbox.styles.js +126 -0
  25. package/checkbox/checkbox.styles.js.map +1 -0
  26. package/config.d.ts +3 -0
  27. package/config.d.ts.map +1 -1
  28. package/config.js +3 -0
  29. package/config.js.map +1 -1
  30. package/css/universal-material.css +3343 -327
  31. package/css/universal-material.min.css +2 -2
  32. package/custom-elements.json +3767 -1924
  33. package/field/field.d.ts +57 -0
  34. package/field/field.d.ts.map +1 -0
  35. package/field/field.js +167 -0
  36. package/field/field.js.map +1 -0
  37. package/{divider/divider.styles.d.ts → field/field.styles.d.ts} +1 -1
  38. package/field/field.styles.d.ts.map +1 -0
  39. package/field/field.styles.js +289 -0
  40. package/field/field.styles.js.map +1 -0
  41. package/index.d.ts +35 -26
  42. package/index.d.ts.map +1 -1
  43. package/index.js +35 -26
  44. package/index.js.map +1 -1
  45. package/list/list-item.d.ts +13 -0
  46. package/list/list-item.d.ts.map +1 -0
  47. package/list/list-item.js +33 -0
  48. package/list/list-item.js.map +1 -0
  49. package/{container/grid-base.styles.d.ts → list/list-item.styles.d.ts} +1 -1
  50. package/list/list-item.styles.d.ts.map +1 -0
  51. package/list/list-item.styles.js +22 -0
  52. package/list/list-item.styles.js.map +1 -0
  53. package/list/list.d.ts +11 -0
  54. package/list/list.d.ts.map +1 -0
  55. package/{container/container.js → list/list.js} +9 -16
  56. package/list/list.js.map +1 -0
  57. package/{container/grid.styles.d.ts → list/list.styles.d.ts} +1 -1
  58. package/list/list.styles.d.ts.map +1 -0
  59. package/list/list.styles.js +7 -0
  60. package/list/list.styles.js.map +1 -0
  61. package/menu/menu-item.d.ts +2 -0
  62. package/menu/menu-item.d.ts.map +1 -1
  63. package/menu/menu-item.js +6 -1
  64. package/menu/menu-item.js.map +1 -1
  65. package/menu/menu.d.ts +1 -1
  66. package/menu/menu.d.ts.map +1 -1
  67. package/menu/menu.js +8 -4
  68. package/menu/menu.js.map +1 -1
  69. package/navigation/drawer-item.d.ts +1 -0
  70. package/navigation/drawer-item.d.ts.map +1 -1
  71. package/navigation/drawer-item.js +5 -1
  72. package/navigation/drawer-item.js.map +1 -1
  73. package/navigation/drawer-item.styles.d.ts.map +1 -1
  74. package/navigation/drawer-item.styles.js +3 -0
  75. package/navigation/drawer-item.styles.js.map +1 -1
  76. package/navigation/drawer.styles.js +1 -1
  77. package/navigation/drawer.styles.js.map +1 -1
  78. package/package.json +3 -3
  79. package/radio/radio-list-item.d.ts +11 -0
  80. package/radio/radio-list-item.d.ts.map +1 -0
  81. package/radio/radio-list-item.js +16 -0
  82. package/radio/radio-list-item.js.map +1 -0
  83. package/radio/radio.d.ts +24 -0
  84. package/radio/radio.d.ts.map +1 -0
  85. package/radio/radio.js +136 -0
  86. package/radio/radio.js.map +1 -0
  87. package/radio/radio.styles.d.ts +2 -0
  88. package/radio/radio.styles.d.ts.map +1 -0
  89. package/radio/radio.styles.js +97 -0
  90. package/radio/radio.styles.js.map +1 -0
  91. package/ripple/ripple.styles.js +1 -1
  92. package/ripple/ripple.styles.js.map +1 -1
  93. package/scss/_colors.scss +2 -0
  94. package/scss/_css-vars.scss +26 -12
  95. package/scss/_functions.scss +4 -0
  96. package/scss/_global.scss +23 -0
  97. package/scss/_layout.scss +5 -0
  98. package/scss/_reboot.scss +495 -0
  99. package/scss/_utilities.scss +3 -0
  100. package/scss/_variables.scss +32 -4
  101. package/scss/{text-bg → colors}/_text.scss +1 -22
  102. package/scss/layout/_container.scss +13 -0
  103. package/scss/layout/_grid.scss +6 -0
  104. package/scss/layout/_margin-and-gutters.scss +37 -0
  105. package/scss/mixins/_breakpoints.scss +51 -1
  106. package/scss/mixins/_text-bg.scss +4 -6
  107. package/scss/mixins/_typo.scss +18 -0
  108. package/scss/table/_table.scss +47 -0
  109. package/scss/universal-material.scss +11 -4
  110. package/scss/utilities/_divider.scss +13 -0
  111. package/scss/utilities/_spacing.scss +23 -0
  112. package/scss/utilities/_text.scss +21 -0
  113. package/shared/base.styles.js +5 -5
  114. package/shared/base.styles.js.map +1 -1
  115. package/shared/button-wrapper.d.ts +2 -1
  116. package/shared/button-wrapper.d.ts.map +1 -1
  117. package/shared/button-wrapper.js +8 -2
  118. package/shared/button-wrapper.js.map +1 -1
  119. package/shared/button-wrapper.styles.js +2 -2
  120. package/shared/button-wrapper.styles.js.map +1 -1
  121. package/shared/selection-control/selection-control-list-item.d.ts +5 -0
  122. package/shared/selection-control/selection-control-list-item.d.ts.map +1 -0
  123. package/shared/selection-control/selection-control-list-item.js +25 -0
  124. package/shared/selection-control/selection-control-list-item.js.map +1 -0
  125. package/shared/selection-control/selection-control.d.ts +25 -0
  126. package/shared/selection-control/selection-control.d.ts.map +1 -0
  127. package/shared/selection-control/selection-control.js +93 -0
  128. package/shared/selection-control/selection-control.js.map +1 -0
  129. package/shared/selection-control/selection-control.styles.d.ts +2 -0
  130. package/shared/selection-control/selection-control.styles.d.ts.map +1 -0
  131. package/shared/selection-control/selection-control.styles.js +67 -0
  132. package/shared/selection-control/selection-control.styles.js.map +1 -0
  133. package/snackbar/snackbar.d.ts +1 -1
  134. package/snackbar/snackbar.d.ts.map +1 -1
  135. package/snackbar/snackbar.js +1 -1
  136. package/snackbar/snackbar.js.map +1 -1
  137. package/switch/switch-list-item.d.ts +11 -0
  138. package/switch/switch-list-item.d.ts.map +1 -0
  139. package/switch/switch-list-item.js +16 -0
  140. package/switch/switch-list-item.js.map +1 -0
  141. package/switch/switch.d.ts +14 -0
  142. package/switch/switch.d.ts.map +1 -0
  143. package/switch/switch.js +33 -0
  144. package/switch/switch.js.map +1 -0
  145. package/switch/switch.styles.d.ts +2 -0
  146. package/switch/switch.styles.d.ts.map +1 -0
  147. package/switch/switch.styles.js +142 -0
  148. package/switch/switch.styles.js.map +1 -0
  149. package/text-field/text-field.d.ts +23 -0
  150. package/text-field/text-field.d.ts.map +1 -0
  151. package/text-field/text-field.js +91 -0
  152. package/text-field/text-field.js.map +1 -0
  153. package/text-field/text-field.styles.d.ts +2 -0
  154. package/text-field/text-field.styles.d.ts.map +1 -0
  155. package/text-field/text-field.styles.js +5 -0
  156. package/text-field/text-field.styles.js.map +1 -0
  157. package/theme/index.d.ts +1 -1
  158. package/theme/index.d.ts.map +1 -1
  159. package/theme/index.js +1 -1
  160. package/theme/index.js.map +1 -1
  161. package/theme/theme-builder.d.ts.map +1 -1
  162. package/theme/theme-builder.js +3 -1
  163. package/theme/theme-builder.js.map +1 -1
  164. package/container/container.d.ts +0 -12
  165. package/container/container.d.ts.map +0 -1
  166. package/container/container.js.map +0 -1
  167. package/container/container.styles.d.ts.map +0 -1
  168. package/container/container.styles.js +0 -12
  169. package/container/container.styles.js.map +0 -1
  170. package/container/grid-base.d.ts +0 -11
  171. package/container/grid-base.d.ts.map +0 -1
  172. package/container/grid-base.js +0 -33
  173. package/container/grid-base.js.map +0 -1
  174. package/container/grid-base.styles.d.ts.map +0 -1
  175. package/container/grid-base.styles.js +0 -114
  176. package/container/grid-base.styles.js.map +0 -1
  177. package/container/grid.d.ts +0 -32
  178. package/container/grid.d.ts.map +0 -1
  179. package/container/grid.js +0 -106
  180. package/container/grid.js.map +0 -1
  181. package/container/grid.styles.d.ts.map +0 -1
  182. package/container/grid.styles.js +0 -134
  183. package/container/grid.styles.js.map +0 -1
  184. package/divider/divider.d.ts +0 -14
  185. package/divider/divider.d.ts.map +0 -1
  186. package/divider/divider.js +0 -27
  187. package/divider/divider.js.map +0 -1
  188. package/divider/divider.styles.d.ts.map +0 -1
  189. package/divider/divider.styles.js +0 -15
  190. package/divider/divider.styles.js.map +0 -1
  191. package/scss/_common.scss +0 -12
  192. package/scss/data-table/_data-table.scss +0 -33
  193. package/scss/data-table/_variables.scss +0 -24
  194. /package/scss/{text-bg → colors}/_text-bg.scss +0 -0
@@ -0,0 +1,57 @@
1
+ import { PropertyValues } from '@lit/reactive-element';
2
+ import { HTMLTemplateResult, LitElement } from 'lit';
3
+ export declare class UmField extends LitElement {
4
+ static styles: import("lit").CSSResult[];
5
+ variant: 'filled' | 'outlined';
6
+ empty: boolean;
7
+ disabled: boolean;
8
+ invalid: boolean;
9
+ /**
10
+ * Whether the field has a leading icon or not
11
+ *
12
+ * _Note:_ Readonly
13
+ */
14
+ hasLeadingIcon: boolean;
15
+ /**
16
+ * Whether the field has a trailing icon or not
17
+ *
18
+ * _Note:_ Readonly
19
+ */
20
+ hasTrailingIcon: boolean;
21
+ /**
22
+ * Whether the field has an error text or not
23
+ *
24
+ * _Note:_ Readonly
25
+ */
26
+ hasErrorText: boolean;
27
+ /**
28
+ * Whether the field has a counter or not
29
+ *
30
+ * _Note:_ Readonly
31
+ */
32
+ hasCounter: boolean;
33
+ private readonly assignedLeadingIcons;
34
+ private readonly assignedTrailingIcons;
35
+ private readonly assignedErrorTexts;
36
+ private readonly assignedCounters;
37
+ counter: HTMLElement | undefined;
38
+ label: HTMLElement;
39
+ private control;
40
+ private labelSizeObserver;
41
+ protected render(): HTMLTemplateResult;
42
+ firstUpdated(changedProperties: PropertyValues): void;
43
+ connectedCallback(): void;
44
+ disconnectedCallback(): void;
45
+ private handleControlInput;
46
+ private handleLeadingIconSlotChange;
47
+ private handleTrailingIconSlotChange;
48
+ private handleErrorTextSlotChange;
49
+ private handleCounterSlotChange;
50
+ private setLabelWidthProperties;
51
+ }
52
+ declare global {
53
+ interface HTMLElementTagNameMap {
54
+ 'u-field': UmField;
55
+ }
56
+ }
57
+ //# sourceMappingURL=field.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"field.d.ts","sourceRoot":"","sources":["../../src/field/field.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAQ,kBAAkB,EAAE,UAAU,EAAE,MAAM,KAAK,CAAC;AAO3D,qBACa,OAAQ,SAAQ,UAAU;IACrC,OAAgB,MAAM,4BAAwB;IAEnB,OAAO,EAAE,QAAQ,GAAG,UAAU,CAAmC;IAClD,KAAK,UAAQ;IACb,QAAQ,UAAS;IACjB,OAAO,UAAS;IAE1D;;;;OAIG;IACsE,cAAc,UAAS;IAEhG;;;;OAIG;IACuE,eAAe,UAAS;IAElG;;;;OAIG;IACoE,YAAY,UAAS;IAE5F;;;;OAIG;IACiE,UAAU,UAAS;IAGvF,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAiB;IAGtD,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAiB;IAGvD,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAiB;IAGpD,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAiB;IAE/B,OAAO,EAAE,WAAW,GAAG,SAAS,CAAC;IACnC,KAAK,EAAG,WAAW,CAAC;IAErC,OAAO,CAAC,OAAO,CAAiC;IAChD,OAAO,CAAC,iBAAiB,CAA+B;cAErC,MAAM,IAAI,kBAAkB;IA8BtC,YAAY,CAAC,iBAAiB,EAAE,cAAc;IAS9C,iBAAiB;IAOjB,oBAAoB;IAS7B,OAAO,CAAC,kBAAkB,CAEzB;IAED,OAAO,CAAC,2BAA2B;IASnC,OAAO,CAAC,4BAA4B;IAIpC,OAAO,CAAC,yBAAyB;IAIjC,OAAO,CAAC,uBAAuB;IAI/B,OAAO,CAAC,uBAAuB;CAMhC;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,SAAS,EAAE,OAAO,CAAC;KACpB;CACF"}
package/field/field.js ADDED
@@ -0,0 +1,167 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ 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;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ import { html, LitElement } from 'lit';
8
+ import { customElement, property, query, queryAssignedElements } from 'lit/decorators.js';
9
+ import { config } from '../config.js';
10
+ import { styles as baseStyles } from '../shared/base.styles.js';
11
+ import { styles } from './field.styles.js';
12
+ let UmField = class UmField extends LitElement {
13
+ constructor() {
14
+ super(...arguments);
15
+ this.variant = config.fields.defaultAppearance;
16
+ this.empty = true;
17
+ this.disabled = false;
18
+ this.invalid = false;
19
+ /**
20
+ * Whether the field has a leading icon or not
21
+ *
22
+ * _Note:_ Readonly
23
+ */
24
+ this.hasLeadingIcon = false;
25
+ /**
26
+ * Whether the field has a trailing icon or not
27
+ *
28
+ * _Note:_ Readonly
29
+ */
30
+ this.hasTrailingIcon = false;
31
+ /**
32
+ * Whether the field has an error text or not
33
+ *
34
+ * _Note:_ Readonly
35
+ */
36
+ this.hasErrorText = false;
37
+ /**
38
+ * Whether the field has a counter or not
39
+ *
40
+ * _Note:_ Readonly
41
+ */
42
+ this.hasCounter = false;
43
+ this.control = null;
44
+ this.labelSizeObserver = null;
45
+ this.handleControlInput = () => {
46
+ this.empty = !this.control?.value;
47
+ };
48
+ }
49
+ render() {
50
+ return html `
51
+ <div class="field">
52
+ <slot
53
+ class="icon leading-icon"
54
+ name="leading-icon"
55
+ @slotchange="${this.handleLeadingIconSlotChange}">
56
+ </slot>
57
+ <slot class="label" name="label"></slot>
58
+ <slot class="input"></slot>
59
+ <slot
60
+ class="icon trailing-icon"
61
+ name="trailing-icon"
62
+ @slotchange="${this.handleTrailingIconSlotChange}">
63
+ </slot>
64
+ </div>
65
+ <div class="supporting-text">
66
+ <slot
67
+ class="error-text"
68
+ name="error-text"
69
+ @slotchange="${this.handleErrorTextSlotChange}"></slot>
70
+ <slot class="supporting-text-slot" name="supporting-text" id="supporting-text"></slot>
71
+ <slot
72
+ class="counter"
73
+ name="counter"
74
+ @slotchange="${this.handleCounterSlotChange}"></slot>
75
+ </div>
76
+ `;
77
+ }
78
+ firstUpdated(changedProperties) {
79
+ super.firstUpdated(changedProperties);
80
+ this.hasLeadingIcon = !!this.assignedLeadingIcons.length;
81
+ this.labelSizeObserver = new ResizeObserver(() => this.setLabelWidthProperties());
82
+ this.labelSizeObserver.observe(this.label);
83
+ this.setLabelWidthProperties();
84
+ }
85
+ connectedCallback() {
86
+ super.connectedCallback();
87
+ this.control = this.querySelector('input, select, button, textarea');
88
+ this.control?.addEventListener('input', this.handleControlInput);
89
+ this.empty = !this.control?.value;
90
+ }
91
+ disconnectedCallback() {
92
+ super.disconnectedCallback();
93
+ this.control?.removeEventListener('input', this.handleControlInput);
94
+ this.control = null;
95
+ this.labelSizeObserver.disconnect();
96
+ this.labelSizeObserver = null;
97
+ }
98
+ handleLeadingIconSlotChange() {
99
+ this.label.style.transition = 'none';
100
+ this.hasLeadingIcon = this.assignedLeadingIcons.length > 0;
101
+ setTimeout(() => {
102
+ this.label.style.transition = '';
103
+ });
104
+ }
105
+ handleTrailingIconSlotChange() {
106
+ this.hasTrailingIcon = this.assignedTrailingIcons.length > 0;
107
+ }
108
+ handleErrorTextSlotChange() {
109
+ this.hasErrorText = this.assignedErrorTexts.length > 0;
110
+ }
111
+ handleCounterSlotChange() {
112
+ this.hasCounter = this.assignedCounters.length > 0;
113
+ }
114
+ setLabelWidthProperties() {
115
+ const width = this.label.offsetWidth;
116
+ this.style.setProperty('--u-field-label-width', `${width}px`);
117
+ this.style.setProperty('--u-field-label-half-width', `${width / 2}px`);
118
+ }
119
+ };
120
+ UmField.styles = [baseStyles, styles];
121
+ __decorate([
122
+ property({ reflect: true })
123
+ ], UmField.prototype, "variant", void 0);
124
+ __decorate([
125
+ property({ type: Boolean, reflect: true })
126
+ ], UmField.prototype, "empty", void 0);
127
+ __decorate([
128
+ property({ type: Boolean, reflect: true })
129
+ ], UmField.prototype, "disabled", void 0);
130
+ __decorate([
131
+ property({ type: Boolean, reflect: true })
132
+ ], UmField.prototype, "invalid", void 0);
133
+ __decorate([
134
+ property({ type: Boolean, attribute: 'has-leading-icon', reflect: true })
135
+ ], UmField.prototype, "hasLeadingIcon", void 0);
136
+ __decorate([
137
+ property({ type: Boolean, attribute: 'has-trailing-icon', reflect: true })
138
+ ], UmField.prototype, "hasTrailingIcon", void 0);
139
+ __decorate([
140
+ property({ type: Boolean, attribute: 'has-error-text', reflect: true })
141
+ ], UmField.prototype, "hasErrorText", void 0);
142
+ __decorate([
143
+ property({ type: Boolean, attribute: 'has-counter', reflect: true })
144
+ ], UmField.prototype, "hasCounter", void 0);
145
+ __decorate([
146
+ queryAssignedElements({ slot: 'leading-icon', flatten: true })
147
+ ], UmField.prototype, "assignedLeadingIcons", void 0);
148
+ __decorate([
149
+ queryAssignedElements({ slot: 'trailing-icon', flatten: true })
150
+ ], UmField.prototype, "assignedTrailingIcons", void 0);
151
+ __decorate([
152
+ queryAssignedElements({ slot: 'error-text', flatten: true })
153
+ ], UmField.prototype, "assignedErrorTexts", void 0);
154
+ __decorate([
155
+ queryAssignedElements({ slot: 'counter', flatten: true })
156
+ ], UmField.prototype, "assignedCounters", void 0);
157
+ __decorate([
158
+ query('.counter')
159
+ ], UmField.prototype, "counter", void 0);
160
+ __decorate([
161
+ query('.label')
162
+ ], UmField.prototype, "label", void 0);
163
+ UmField = __decorate([
164
+ customElement('u-field')
165
+ ], UmField);
166
+ export { UmField };
167
+ //# sourceMappingURL=field.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"field.js","sourceRoot":"","sources":["../../src/field/field.ts"],"names":[],"mappings":"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","sourcesContent":["import { PropertyValues } from '@lit/reactive-element';\nimport { html, HTMLTemplateResult, LitElement } from 'lit';\nimport { customElement, property, query, queryAssignedElements } from 'lit/decorators.js';\n\nimport { config } from '../config.js';\nimport { styles as baseStyles } from '../shared/base.styles.js';\nimport { styles } from './field.styles.js';\n\n@customElement('u-field')\nexport class UmField extends LitElement {\n static override styles = [baseStyles, styles];\n\n @property({reflect: true}) variant: 'filled' | 'outlined' = config.fields.defaultAppearance;\n @property({type: Boolean, reflect: true}) empty = true;\n @property({type: Boolean, reflect: true}) disabled = false;\n @property({type: Boolean, reflect: true}) invalid = false;\n\n /**\n * Whether the field has a leading icon or not\n *\n * _Note:_ Readonly\n */\n @property({type: Boolean, attribute: 'has-leading-icon', reflect: true}) hasLeadingIcon = false;\n\n /**\n * Whether the field has a trailing icon or not\n *\n * _Note:_ Readonly\n */\n @property({type: Boolean, attribute: 'has-trailing-icon', reflect: true}) hasTrailingIcon = false;\n\n /**\n * Whether the field has an error text or not\n *\n * _Note:_ Readonly\n */\n @property({type: Boolean, attribute: 'has-error-text', reflect: true}) hasErrorText = false;\n\n /**\n * Whether the field has a counter or not\n *\n * _Note:_ Readonly\n */\n @property({type: Boolean, attribute: 'has-counter', reflect: true}) hasCounter = false;\n\n @queryAssignedElements({slot: 'leading-icon', flatten: true})\n private readonly assignedLeadingIcons!: HTMLElement[];\n\n @queryAssignedElements({slot: 'trailing-icon', flatten: true})\n private readonly assignedTrailingIcons!: HTMLElement[];\n\n @queryAssignedElements({slot: 'error-text', flatten: true})\n private readonly assignedErrorTexts!: HTMLElement[];\n\n @queryAssignedElements({slot: 'counter', flatten: true})\n private readonly assignedCounters!: HTMLElement[];\n\n @query('.counter') counter: HTMLElement | undefined;\n @query('.label') label!: HTMLElement;\n\n private control: HTMLInputElement | null = null;\n private labelSizeObserver: ResizeObserver | null = null;\n\n protected override render(): HTMLTemplateResult {\n return html`\n <div class=\"field\">\n <slot\n class=\"icon leading-icon\"\n name=\"leading-icon\"\n @slotchange=\"${this.handleLeadingIconSlotChange}\">\n </slot>\n <slot class=\"label\" name=\"label\"></slot>\n <slot class=\"input\"></slot>\n <slot\n class=\"icon trailing-icon\"\n name=\"trailing-icon\"\n @slotchange=\"${this.handleTrailingIconSlotChange}\">\n </slot>\n </div>\n <div class=\"supporting-text\">\n <slot\n class=\"error-text\"\n name=\"error-text\"\n @slotchange=\"${this.handleErrorTextSlotChange}\"></slot>\n <slot class=\"supporting-text-slot\" name=\"supporting-text\" id=\"supporting-text\"></slot>\n <slot\n class=\"counter\"\n name=\"counter\"\n @slotchange=\"${this.handleCounterSlotChange}\"></slot>\n </div>\n `;\n }\n\n override firstUpdated(changedProperties: PropertyValues) {\n super.firstUpdated(changedProperties);\n this.hasLeadingIcon = !!this.assignedLeadingIcons.length;\n\n this.labelSizeObserver = new ResizeObserver(() => this.setLabelWidthProperties())\n this.labelSizeObserver.observe(this.label);\n this.setLabelWidthProperties();\n }\n\n override connectedCallback() {\n super.connectedCallback();\n this.control = <HTMLInputElement | null>this.querySelector('input, select, button, textarea');\n this.control?.addEventListener('input', this.handleControlInput);\n this.empty = !this.control?.value;\n }\n\n override disconnectedCallback() {\n super.disconnectedCallback();\n this.control?.removeEventListener('input', this.handleControlInput);\n this.control = null;\n\n this.labelSizeObserver!.disconnect();\n this.labelSizeObserver = null;\n }\n\n private handleControlInput = () => {\n this.empty = !this.control?.value;\n }\n\n private handleLeadingIconSlotChange() {\n this.label.style.transition = 'none';\n this.hasLeadingIcon = this.assignedLeadingIcons.length > 0;\n\n setTimeout(() => {\n this.label.style.transition = '';\n });\n }\n\n private handleTrailingIconSlotChange() {\n this.hasTrailingIcon = this.assignedTrailingIcons.length > 0;\n }\n\n private handleErrorTextSlotChange() {\n this.hasErrorText = this.assignedErrorTexts.length > 0;\n }\n\n private handleCounterSlotChange() {\n this.hasCounter = this.assignedCounters.length > 0;\n }\n\n private setLabelWidthProperties() {\n\n const width = this.label.offsetWidth;\n this.style.setProperty('--u-field-label-width', `${width}px`);\n this.style.setProperty('--u-field-label-half-width', `${width / 2}px`);\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'u-field': UmField;\n }\n}\n"]}
@@ -1,2 +1,2 @@
1
1
  export declare const styles: import("lit").CSSResult;
2
- //# sourceMappingURL=divider.styles.d.ts.map
2
+ //# sourceMappingURL=field.styles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"field.styles.d.ts","sourceRoot":"","sources":["../../src/field/field.styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,MAAM,yBA8RlB,CAAC"}
@@ -0,0 +1,289 @@
1
+ import { css } from 'lit';
2
+ export const styles = css `
3
+ :host {
4
+ --_control-line-height: var(--u-field-control-line-height, 1.5rem);
5
+ --_label-line-height: var(--u-field-label-line-height, 1rem);
6
+ --_field-icon-size: var(--u-field-icon-size, 1.5rem);
7
+ --_field-control-padding: var(--u-field-control-padding, 16px);
8
+ --_field-control-inline-padding: var(--u-field-control-inline-padding, var(--_field-control-padding));
9
+ --_field-control-block-padding: var(--u-field-control-block-padding, var(--_field-control-padding));
10
+ --_field-min-height: var(--u-field-min-height, 56px);
11
+ --_field-placeholder-color: var(--u-field-placeholder-color, var(--u-color-on-surface-variant, rgb(73, 69, 79)));
12
+ --_disabled-color: var(--u-field-disabled-color, rgba(var(--u-color-on-surface-rgb, ), var(--u-field-disabled-opacity, .38)));
13
+ --_disabled-background-color: var(--u-filled-field-disabled-background-color, rgba(var(--u-color-on-surface-rgb, ), var(--u-filled-field-background-disabled-opacity, .12)));
14
+ --_color-primary: var(--u-color-primary, rgb(103, 80, 164));
15
+ --_color-error: var(--u-field-error-color, var(--u-color-error, rgb(179, 38, 30)));
16
+ --_active-indicator-opacity: 1;
17
+ --_vertical-padding: var(--u-field-vertical-padding, 8px);
18
+ --_icon-size: var(--u-field-icon-size, 1.5rem);
19
+ --_icon-padding: var(--u-field-icon-padding, 12px);
20
+ --_icon-color: var(--u-icon-color, var(--u-color-on-surface-variant, rgb(73, 69, 79)));
21
+ --_focus-border-width: var(--u-text-field-focus-border-width, 2px);
22
+ --_field-control-leading-padding: var(--_field-control-inline-padding);
23
+ --_field-control-trailing-padding: var(--_field-control-inline-padding);
24
+ --_outlined-label-margin: var(--u-outlined-field-label-margin, 12px);
25
+ --_outlined-label-padding: var(--u-outlined-field-label-padding, 4px);
26
+ --u-label-input-start: auto;
27
+ --u-label-input-span-leading-offset: 0;
28
+ --u-label-input-span-trailing-offset: 0;
29
+ --u-text-field-horizontal-padding: 12px;
30
+ }
31
+
32
+ .field {
33
+ display: block;
34
+ position: relative;
35
+ }
36
+ .field::before, .field::after {
37
+ content: "";
38
+ position: absolute;
39
+ top: 0;
40
+ left: 0;
41
+ width: 100%;
42
+ height: 100%;
43
+ box-sizing: border-box;
44
+ pointer-events: none;
45
+ }
46
+ .field::before {
47
+ background: var(--u-color-on-surface, rgb(29, 27, 32));
48
+ transition: opacity 150ms;
49
+ opacity: 0;
50
+ }
51
+ .field::after {
52
+ border-width: var(--u-field-border-width, 1px);
53
+ border-color: var(--u-field-border-color, var(--u-color-on-surface-variant, rgb(73, 69, 79)));
54
+ }
55
+
56
+ @media (hover: hover) {
57
+ :host([variant=filled]:not([disabled]):not([invalid]):hover) .field::before {
58
+ opacity: var(--u-state-hover-opacity, 0.08);
59
+ }
60
+ :host(:not([disabled]):not([invalid]):not(:focus-within):hover) .field::after {
61
+ border-color: var(--u-field-hover-border-color, var(--u-color-on-surface, rgb(29, 27, 32)));
62
+ }
63
+ }
64
+ .icon {
65
+ position: absolute;
66
+ width: var(--_icon-size);
67
+ height: 100%;
68
+ top: 0;
69
+ display: flex;
70
+ justify-content: center;
71
+ align-items: center;
72
+ color: var(--_icon-color);
73
+ font-size: var(--_icon-size);
74
+ line-height: var(--_icon-size);
75
+ }
76
+ .icon::slotted(*) {
77
+ flex-shrink: 0;
78
+ }
79
+
80
+ .leading-icon {
81
+ inset-inline-start: var(--_icon-padding);
82
+ }
83
+
84
+ .trailing-icon {
85
+ inset-inline-end: var(--_icon-padding);
86
+ }
87
+
88
+ .label {
89
+ font-family: var(--u-font-family, var(--u-font-family, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", "Liberation Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"));
90
+ line-height: var(--u-field-label-line-height, var(--u-body-l-line-height, 1.5rem));
91
+ font-size: var(--u-field-label-font-size, var(--u-body-l-font-size, 1rem));
92
+ letter-spacing: var(--u-field-label-letter-spacing, var(--u-body-l-letter-spacing, 0.03125rem));
93
+ font-weight: var(--u-field-label-font-weight, var(--u-body-l-font-weight, var(--u-font-weight-regular, 400)));
94
+ font-size: var(--u-field-label-font-size, var(--u-body-s-font-size, 0.75rem));
95
+ display: block;
96
+ position: absolute;
97
+ inset-inline-start: var(--_field-control-leading-padding);
98
+ margin-bottom: 0;
99
+ line-height: var(--_label-line-height);
100
+ color: var(--u-field-label-color, var(--u-color-on-surface-variant, rgb(73, 69, 79)));
101
+ transition: inset 200ms, font-size 200ms;
102
+ }
103
+
104
+ .input {
105
+ display: block;
106
+ color: var(--u-on-surface-color);
107
+ }
108
+ .input:focus {
109
+ outline: 0;
110
+ }
111
+ .input::slotted(*) {
112
+ font-family: var(--u-font-family, var(--u-font-family, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", "Liberation Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"));
113
+ line-height: var(--u-field-control-line-height, var(--u-body-l-line-height, 1.5rem));
114
+ font-size: var(--u-field-control-font-size, var(--u-body-l-font-size, 1rem));
115
+ letter-spacing: var(--u-field-control-letter-spacing, var(--u-body-l-letter-spacing, 0.03125rem));
116
+ font-weight: var(--u-field-control-font-weight, var(--u-body-l-font-weight, var(--u-font-weight-regular, 400)));
117
+ width: 100%;
118
+ color: var(--u-field-input-text-color, var(--u-color-on-surface, rgb(29, 27, 32)));
119
+ min-height: var(--_field-min-height);
120
+ line-height: var(--_control-line-height);
121
+ padding-block: 0;
122
+ padding-inline: var(--_field-control-leading-padding) var(--_field-control-trailing-padding);
123
+ appearance: none;
124
+ background: transparent;
125
+ border: none;
126
+ outline: 0 !important;
127
+ }
128
+ .input, .input::slotted(select), .input::slotted(:is(input, textarea))::placeholder {
129
+ transition: color 150ms 100ms;
130
+ }
131
+ .input::slotted(:is(input, textarea))::placeholder {
132
+ color: var(--_field-placeholder-color);
133
+ }
134
+
135
+ .supporting-text {
136
+ font-family: var(--u-font-family, var(--u-font-family, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", "Liberation Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"));
137
+ line-height: var(--u-field-supporting-text-line-height, var(--u-body-s-line-height, 1rem));
138
+ font-size: var(--u-field-supporting-text-font-size, var(--u-body-s-font-size, 0.75rem));
139
+ letter-spacing: var(--u-field-supporting-text-letter-spacing, var(--u-body-s-letter-spacing, 0.0333333333rem));
140
+ font-weight: var(--u-field-supporting-text-font-weight, var(--u-body-s-font-weight, var(--u-font-weight-regular, 400)));
141
+ display: flex;
142
+ color: var(--u-field-supporting-text, var(--u-color-on-surface-variant, rgb(73, 69, 79)));
143
+ padding-inline: 16px;
144
+ gap: 16px;
145
+ }
146
+ .supporting-text .supporting-text-slot {
147
+ display: block;
148
+ }
149
+ .supporting-text ::slotted(*) {
150
+ display: inline-block;
151
+ margin-top: 4px;
152
+ }
153
+
154
+ .error-text {
155
+ display: none;
156
+ }
157
+
158
+ .counter {
159
+ display: none;
160
+ margin-inline-start: auto;
161
+ }
162
+
163
+ :host([has-counter]) .counter {
164
+ display: block;
165
+ }
166
+
167
+ :host([has-leading-icon]) {
168
+ --_field-control-leading-padding: calc(var(--_icon-padding) + var(--_icon-size) + var(--_field-control-inline-padding)) ;
169
+ }
170
+
171
+ :host([has-trailing-icon]) {
172
+ --_field-control-trailing-padding: calc(var(--_icon-padding) + var(--_icon-size) + var(--_field-control-inline-padding)) ;
173
+ }
174
+
175
+ :host(:focus-within) {
176
+ --u-field-border-width: var(--_focus-border-width);
177
+ }
178
+ :host(:focus-within) .field::after {
179
+ border-color: var(--u-field-focused-border-color, var(--_color-primary));
180
+ }
181
+ :host(:focus-within) .label {
182
+ color: var(--u-field-label-focused-color, var(--_color-primary));
183
+ }
184
+
185
+ :host([invalid]) .field::after {
186
+ border-color: var(--u-field-error-border-color, var(--_color-error));
187
+ }
188
+ :host([invalid]) .label {
189
+ color: var(--u-field-label-error-color, var(--_color-error));
190
+ }
191
+ :host([invalid]) .supporting-text {
192
+ color: var(--u-field-supporting-text-error-color, var(--_color-error));
193
+ }
194
+ :host([invalid]) .trailing-icon {
195
+ --u-standard-icon-button-color: var(--u-field-trailing-icon-error-color, var(--_color-error));
196
+ color: var(--u-field-trailing-icon-error-color, var(--_color-error));
197
+ }
198
+ :host([invalid]) .leading-icon {
199
+ --u-standard-icon-button-color: var(--u-field-leading-icon-error-color, var(--_color-error));
200
+ color: var(--u-field-leading-icon-error-color, var(--_icon-color));
201
+ }
202
+
203
+ :host([invalid][has-error-text]) .error-text {
204
+ display: block;
205
+ }
206
+ :host([invalid][has-error-text]) .supporting-text-slot {
207
+ display: none;
208
+ }
209
+
210
+ :host([disabled]) .field::after {
211
+ border-color: var(--u-field-disabled-border-color, var(--_disabled-color));
212
+ }
213
+ :host([disabled]) .supporting-text {
214
+ color: var(--u-field-supporting-text-disabled-color, var(--_disabled-color));
215
+ }
216
+ :host([disabled]) .label {
217
+ color: var(--u-field-label-disabled-color, var(--_disabled-color));
218
+ }
219
+ :host([disabled]) .input::slotted(*) {
220
+ color: var(--u-field-input-disabled-color, var(--_disabled-color));
221
+ }
222
+ :host([disabled]) .input::slotted(:is(input, textarea))::placeholder {
223
+ color: var(--u-field-input-disabled-color, var(--_disabled-color));
224
+ }
225
+ :host([disabled]) .trailing-icon {
226
+ color: var(--u-field-trailing-icon-disabled-color, var(--_disabled-color));
227
+ }
228
+ :host([disabled]) .leading-icon {
229
+ color: var(--u-field-leading-icon-disabled-color, var(--_disabled-color));
230
+ }
231
+
232
+ :host([variant=filled]) .field {
233
+ border-radius: var(--u-field-filled-border-radius, 4px 4px 0 0);
234
+ background-color: var(--u-color-surface-variant);
235
+ }
236
+ :host([variant=filled]) .field::after {
237
+ border-bottom-style: solid;
238
+ }
239
+ :host([variant=filled]) .label {
240
+ top: var(--_vertical-padding);
241
+ }
242
+ :host([variant=filled]) .input::slotted(:is(input, textarea, select, button)) {
243
+ display: block;
244
+ border-top: calc(var(--_vertical-padding) + var(--_label-line-height)) solid transparent;
245
+ border-bottom: var(--_vertical-padding) solid transparent;
246
+ }
247
+
248
+ :host([variant=filled][disabled]) .field {
249
+ background-color: var(--u-filled-field-disabled-background-color, rgba(var(--u-color-on-surface-rgb, ), var(--u-filled-field-background-disabled-opacity, 0.12)));
250
+ }
251
+
252
+ :host([variant=outlined]) .field::after {
253
+ --_mid-point: calc(var(--u-field-label-half-width) + var(--_outlined-label-margin) + var(--_outlined-label-padding));
254
+ border-radius: var(--u-outlined-field-shape-corder, var(--u-shape-corner-small, 8px));
255
+ border-style: solid;
256
+ clip-path: polygon(0 0, var(--_mid-point) 0, var(--_mid-point) var(--_focus-border-width), var(--_mid-point) var(--_focus-border-width), var(--_mid-point) 0, 100% 0, 100% 100%, 0 100%);
257
+ transition: clip-path 100ms;
258
+ }
259
+ :host([variant=outlined]) .label {
260
+ top: calc(var(--_label-line-height) / -2);
261
+ }
262
+
263
+ :host([variant=outlined]:focus-within) .field::after,
264
+ :host([variant=outlined]:not([empty])) .field::after {
265
+ --_end-point: calc(var(--u-field-label-width) + var(--_outlined-label-margin) + (var(--_outlined-label-padding) * 2));
266
+ clip-path: polygon(0 0, var(--_outlined-label-margin) 0, var(--_outlined-label-margin) var(--_focus-border-width), var(--_end-point) var(--_focus-border-width), var(--_end-point) 0, 100% 0, 100% 100%, 0 100%);
267
+ }
268
+ :host([variant=outlined]:focus-within) .label,
269
+ :host([variant=outlined]:not([empty])) .label {
270
+ inset-inline-start: calc(var(--_outlined-label-margin) + var(--_outlined-label-padding));
271
+ }
272
+
273
+ :host([empty]) ::slotted(select) {
274
+ color: var(--_field-placeholder-color);
275
+ }
276
+
277
+ :host([empty]:not(:focus-within)) .label {
278
+ font-size: var(--u-field-label-font-size, var(--u-body-l-font-size, 1rem));
279
+ pointer-events: none;
280
+ top: calc(var(--_field-min-height) / 2 - var(--_label-line-height) / 2);
281
+ }
282
+ :host([empty]:not(:focus-within)) .input,
283
+ :host([empty]:not(:focus-within)) ::slotted(:is(input, textarea))::placeholder,
284
+ :host([empty]:not(:focus-within)) ::slotted(select) {
285
+ color: transparent;
286
+ transition: color 150ms;
287
+ }
288
+ `;
289
+ //# sourceMappingURL=field.styles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"field.styles.js","sourceRoot":"","sources":["../../src/field/field.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8RzB,CAAC","sourcesContent":["import { css } from 'lit';\n\nexport const styles = css `\n :host {\n --_control-line-height: var(--u-field-control-line-height, 1.5rem);\n --_label-line-height: var(--u-field-label-line-height, 1rem);\n --_field-icon-size: var(--u-field-icon-size, 1.5rem);\n --_field-control-padding: var(--u-field-control-padding, 16px);\n --_field-control-inline-padding: var(--u-field-control-inline-padding, var(--_field-control-padding));\n --_field-control-block-padding: var(--u-field-control-block-padding, var(--_field-control-padding));\n --_field-min-height: var(--u-field-min-height, 56px);\n --_field-placeholder-color: var(--u-field-placeholder-color, var(--u-color-on-surface-variant, rgb(73, 69, 79)));\n --_disabled-color: var(--u-field-disabled-color, rgba(var(--u-color-on-surface-rgb, ), var(--u-field-disabled-opacity, .38)));\n --_disabled-background-color: var(--u-filled-field-disabled-background-color, rgba(var(--u-color-on-surface-rgb, ), var(--u-filled-field-background-disabled-opacity, .12)));\n --_color-primary: var(--u-color-primary, rgb(103, 80, 164));\n --_color-error: var(--u-field-error-color, var(--u-color-error, rgb(179, 38, 30)));\n --_active-indicator-opacity: 1;\n --_vertical-padding: var(--u-field-vertical-padding, 8px);\n --_icon-size: var(--u-field-icon-size, 1.5rem);\n --_icon-padding: var(--u-field-icon-padding, 12px);\n --_icon-color: var(--u-icon-color, var(--u-color-on-surface-variant, rgb(73, 69, 79)));\n --_focus-border-width: var(--u-text-field-focus-border-width, 2px);\n --_field-control-leading-padding: var(--_field-control-inline-padding);\n --_field-control-trailing-padding: var(--_field-control-inline-padding);\n --_outlined-label-margin: var(--u-outlined-field-label-margin, 12px);\n --_outlined-label-padding: var(--u-outlined-field-label-padding, 4px);\n --u-label-input-start: auto;\n --u-label-input-span-leading-offset: 0;\n --u-label-input-span-trailing-offset: 0;\n --u-text-field-horizontal-padding: 12px;\n }\n\n .field {\n display: block;\n position: relative;\n }\n .field::before, .field::after {\n content: \"\";\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n box-sizing: border-box;\n pointer-events: none;\n }\n .field::before {\n background: var(--u-color-on-surface, rgb(29, 27, 32));\n transition: opacity 150ms;\n opacity: 0;\n }\n .field::after {\n border-width: var(--u-field-border-width, 1px);\n border-color: var(--u-field-border-color, var(--u-color-on-surface-variant, rgb(73, 69, 79)));\n }\n\n @media (hover: hover) {\n :host([variant=filled]:not([disabled]):not([invalid]):hover) .field::before {\n opacity: var(--u-state-hover-opacity, 0.08);\n }\n :host(:not([disabled]):not([invalid]):not(:focus-within):hover) .field::after {\n border-color: var(--u-field-hover-border-color, var(--u-color-on-surface, rgb(29, 27, 32)));\n }\n }\n .icon {\n position: absolute;\n width: var(--_icon-size);\n height: 100%;\n top: 0;\n display: flex;\n justify-content: center;\n align-items: center;\n color: var(--_icon-color);\n font-size: var(--_icon-size);\n line-height: var(--_icon-size);\n }\n .icon::slotted(*) {\n flex-shrink: 0;\n }\n\n .leading-icon {\n inset-inline-start: var(--_icon-padding);\n }\n\n .trailing-icon {\n inset-inline-end: var(--_icon-padding);\n }\n\n .label {\n font-family: var(--u-font-family, var(--u-font-family, system-ui, -apple-system, \"Segoe UI\", Roboto, \"Helvetica Neue\", \"Noto Sans\", \"Liberation Sans\", Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\"));\n line-height: var(--u-field-label-line-height, var(--u-body-l-line-height, 1.5rem));\n font-size: var(--u-field-label-font-size, var(--u-body-l-font-size, 1rem));\n letter-spacing: var(--u-field-label-letter-spacing, var(--u-body-l-letter-spacing, 0.03125rem));\n font-weight: var(--u-field-label-font-weight, var(--u-body-l-font-weight, var(--u-font-weight-regular, 400)));\n font-size: var(--u-field-label-font-size, var(--u-body-s-font-size, 0.75rem));\n display: block;\n position: absolute;\n inset-inline-start: var(--_field-control-leading-padding);\n margin-bottom: 0;\n line-height: var(--_label-line-height);\n color: var(--u-field-label-color, var(--u-color-on-surface-variant, rgb(73, 69, 79)));\n transition: inset 200ms, font-size 200ms;\n }\n\n .input {\n display: block;\n color: var(--u-on-surface-color);\n }\n .input:focus {\n outline: 0;\n }\n .input::slotted(*) {\n font-family: var(--u-font-family, var(--u-font-family, system-ui, -apple-system, \"Segoe UI\", Roboto, \"Helvetica Neue\", \"Noto Sans\", \"Liberation Sans\", Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\"));\n line-height: var(--u-field-control-line-height, var(--u-body-l-line-height, 1.5rem));\n font-size: var(--u-field-control-font-size, var(--u-body-l-font-size, 1rem));\n letter-spacing: var(--u-field-control-letter-spacing, var(--u-body-l-letter-spacing, 0.03125rem));\n font-weight: var(--u-field-control-font-weight, var(--u-body-l-font-weight, var(--u-font-weight-regular, 400)));\n width: 100%;\n color: var(--u-field-input-text-color, var(--u-color-on-surface, rgb(29, 27, 32)));\n min-height: var(--_field-min-height);\n line-height: var(--_control-line-height);\n padding-block: 0;\n padding-inline: var(--_field-control-leading-padding) var(--_field-control-trailing-padding);\n appearance: none;\n background: transparent;\n border: none;\n outline: 0 !important;\n }\n .input, .input::slotted(select), .input::slotted(:is(input, textarea))::placeholder {\n transition: color 150ms 100ms;\n }\n .input::slotted(:is(input, textarea))::placeholder {\n color: var(--_field-placeholder-color);\n }\n\n .supporting-text {\n font-family: var(--u-font-family, var(--u-font-family, system-ui, -apple-system, \"Segoe UI\", Roboto, \"Helvetica Neue\", \"Noto Sans\", \"Liberation Sans\", Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\"));\n line-height: var(--u-field-supporting-text-line-height, var(--u-body-s-line-height, 1rem));\n font-size: var(--u-field-supporting-text-font-size, var(--u-body-s-font-size, 0.75rem));\n letter-spacing: var(--u-field-supporting-text-letter-spacing, var(--u-body-s-letter-spacing, 0.0333333333rem));\n font-weight: var(--u-field-supporting-text-font-weight, var(--u-body-s-font-weight, var(--u-font-weight-regular, 400)));\n display: flex;\n color: var(--u-field-supporting-text, var(--u-color-on-surface-variant, rgb(73, 69, 79)));\n padding-inline: 16px;\n gap: 16px;\n }\n .supporting-text .supporting-text-slot {\n display: block;\n }\n .supporting-text ::slotted(*) {\n display: inline-block;\n margin-top: 4px;\n }\n\n .error-text {\n display: none;\n }\n\n .counter {\n display: none;\n margin-inline-start: auto;\n }\n\n :host([has-counter]) .counter {\n display: block;\n }\n\n :host([has-leading-icon]) {\n --_field-control-leading-padding: calc(var(--_icon-padding) + var(--_icon-size) + var(--_field-control-inline-padding)) ;\n }\n\n :host([has-trailing-icon]) {\n --_field-control-trailing-padding: calc(var(--_icon-padding) + var(--_icon-size) + var(--_field-control-inline-padding)) ;\n }\n\n :host(:focus-within) {\n --u-field-border-width: var(--_focus-border-width);\n }\n :host(:focus-within) .field::after {\n border-color: var(--u-field-focused-border-color, var(--_color-primary));\n }\n :host(:focus-within) .label {\n color: var(--u-field-label-focused-color, var(--_color-primary));\n }\n\n :host([invalid]) .field::after {\n border-color: var(--u-field-error-border-color, var(--_color-error));\n }\n :host([invalid]) .label {\n color: var(--u-field-label-error-color, var(--_color-error));\n }\n :host([invalid]) .supporting-text {\n color: var(--u-field-supporting-text-error-color, var(--_color-error));\n }\n :host([invalid]) .trailing-icon {\n --u-standard-icon-button-color: var(--u-field-trailing-icon-error-color, var(--_color-error));\n color: var(--u-field-trailing-icon-error-color, var(--_color-error));\n }\n :host([invalid]) .leading-icon {\n --u-standard-icon-button-color: var(--u-field-leading-icon-error-color, var(--_color-error));\n color: var(--u-field-leading-icon-error-color, var(--_icon-color));\n }\n\n :host([invalid][has-error-text]) .error-text {\n display: block;\n }\n :host([invalid][has-error-text]) .supporting-text-slot {\n display: none;\n }\n\n :host([disabled]) .field::after {\n border-color: var(--u-field-disabled-border-color, var(--_disabled-color));\n }\n :host([disabled]) .supporting-text {\n color: var(--u-field-supporting-text-disabled-color, var(--_disabled-color));\n }\n :host([disabled]) .label {\n color: var(--u-field-label-disabled-color, var(--_disabled-color));\n }\n :host([disabled]) .input::slotted(*) {\n color: var(--u-field-input-disabled-color, var(--_disabled-color));\n }\n :host([disabled]) .input::slotted(:is(input, textarea))::placeholder {\n color: var(--u-field-input-disabled-color, var(--_disabled-color));\n }\n :host([disabled]) .trailing-icon {\n color: var(--u-field-trailing-icon-disabled-color, var(--_disabled-color));\n }\n :host([disabled]) .leading-icon {\n color: var(--u-field-leading-icon-disabled-color, var(--_disabled-color));\n }\n\n :host([variant=filled]) .field {\n border-radius: var(--u-field-filled-border-radius, 4px 4px 0 0);\n background-color: var(--u-color-surface-variant);\n }\n :host([variant=filled]) .field::after {\n border-bottom-style: solid;\n }\n :host([variant=filled]) .label {\n top: var(--_vertical-padding);\n }\n :host([variant=filled]) .input::slotted(:is(input, textarea, select, button)) {\n display: block;\n border-top: calc(var(--_vertical-padding) + var(--_label-line-height)) solid transparent;\n border-bottom: var(--_vertical-padding) solid transparent;\n }\n\n :host([variant=filled][disabled]) .field {\n background-color: var(--u-filled-field-disabled-background-color, rgba(var(--u-color-on-surface-rgb, ), var(--u-filled-field-background-disabled-opacity, 0.12)));\n }\n\n :host([variant=outlined]) .field::after {\n --_mid-point: calc(var(--u-field-label-half-width) + var(--_outlined-label-margin) + var(--_outlined-label-padding));\n border-radius: var(--u-outlined-field-shape-corder, var(--u-shape-corner-small, 8px));\n border-style: solid;\n clip-path: polygon(0 0, var(--_mid-point) 0, var(--_mid-point) var(--_focus-border-width), var(--_mid-point) var(--_focus-border-width), var(--_mid-point) 0, 100% 0, 100% 100%, 0 100%);\n transition: clip-path 100ms;\n }\n :host([variant=outlined]) .label {\n top: calc(var(--_label-line-height) / -2);\n }\n\n :host([variant=outlined]:focus-within) .field::after,\n :host([variant=outlined]:not([empty])) .field::after {\n --_end-point: calc(var(--u-field-label-width) + var(--_outlined-label-margin) + (var(--_outlined-label-padding) * 2));\n clip-path: polygon(0 0, var(--_outlined-label-margin) 0, var(--_outlined-label-margin) var(--_focus-border-width), var(--_end-point) var(--_focus-border-width), var(--_end-point) 0, 100% 0, 100% 100%, 0 100%);\n }\n :host([variant=outlined]:focus-within) .label,\n :host([variant=outlined]:not([empty])) .label {\n inset-inline-start: calc(var(--_outlined-label-margin) + var(--_outlined-label-padding));\n }\n\n :host([empty]) ::slotted(select) {\n color: var(--_field-placeholder-color);\n }\n\n :host([empty]:not(:focus-within)) .label {\n font-size: var(--u-field-label-font-size, var(--u-body-l-font-size, 1rem));\n pointer-events: none;\n top: calc(var(--_field-min-height) / 2 - var(--_label-line-height) / 2);\n }\n :host([empty]:not(:focus-within)) .input,\n :host([empty]:not(:focus-within)) ::slotted(:is(input, textarea))::placeholder,\n :host([empty]:not(:focus-within)) ::slotted(select) {\n color: transparent;\n transition: color 150ms;\n }\n`;\n"]}
package/index.d.ts CHANGED
@@ -5,10 +5,16 @@ import './button/fab.js';
5
5
  import './button/icon-button.js';
6
6
  import './card/card.js';
7
7
  import './checkbox/checkbox.js';
8
- import './container/container.js';
9
- import './container/grid.js';
10
- import './divider/divider.js';
8
+ import './checkbox/checkbox-list-item.js';
9
+ import './radio/radio.js';
10
+ import './radio/radio-list-item.js';
11
+ import './switch/switch.js';
12
+ import './switch/switch-list-item.js';
11
13
  import './elevation/elevation.js';
14
+ import './field/field.js';
15
+ import './text-field/text-field.js';
16
+ import './list/list.js';
17
+ import './list/list-item.js';
12
18
  import './menu/menu.js';
13
19
  import './menu/menu-item.js';
14
20
  import './navigation/drawer.js';
@@ -16,27 +22,30 @@ import './navigation/drawer-item.js';
16
22
  import './navigation/side-navigation.js';
17
23
  import './ripple/ripple.js';
18
24
  import './snackbar/snackbar.js';
19
- export * from './app-bar/top-app-bar';
20
- export * from './button/button';
21
- export * from './button/button-base';
22
- export * from './button/button-set';
23
- export * from './button/fab';
24
- export * from './button/icon-button';
25
- export * from './card/card';
26
- export * from './card/card-content';
27
- export * from './card/card-media';
28
- export * from './checkbox/checkbox';
29
- export * from './container/grid-base';
30
- export * from './container/grid';
31
- export * from './container/container';
32
- export * from './divider/divider';
33
- export * from './elevation/elevation';
34
- export * from './menu/menu';
35
- export * from './menu/menu-item';
36
- export * from './navigation/drawer';
37
- export * from './navigation/drawer-item';
38
- export * from './navigation/side-navigation';
39
- export * from './ripple/ripple';
40
- export * from './snackbar/snackbar';
41
- export * from './theme/theme-builder';
25
+ export * from './app-bar/top-app-bar.js';
26
+ export * from './button/button.js';
27
+ export * from './button/button-base.js';
28
+ export * from './button/button-set.js';
29
+ export * from './button/fab.js';
30
+ export * from './button/icon-button.js';
31
+ export * from './card/card.js';
32
+ export * from './card/card-content.js';
33
+ export * from './card/card-media.js';
34
+ export * from './checkbox/checkbox.js';
35
+ export * from './radio/radio.js';
36
+ export * from './switch/switch.js';
37
+ export * from './switch/switch-list-item.js';
38
+ export * from './elevation/elevation.js';
39
+ export * from './field/field.js';
40
+ export * from './text-field/text-field.js';
41
+ export * from './list/list.js';
42
+ export * from './list/list-item.js';
43
+ export * from './menu/menu.js';
44
+ export * from './menu/menu-item.js';
45
+ export * from './navigation/drawer.js';
46
+ export * from './navigation/drawer-item.js';
47
+ export * from './navigation/side-navigation.js';
48
+ export * from './ripple/ripple.js';
49
+ export * from './snackbar/snackbar.js';
50
+ export * from './theme/theme-builder.js';
42
51
  //# sourceMappingURL=index.d.ts.map
package/index.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,0BAA0B,CAAC;AAClC,OAAO,oBAAoB,CAAC;AAC5B,OAAO,wBAAwB,CAAC;AAChC,OAAO,iBAAiB,CAAC;AACzB,OAAO,yBAAyB,CAAC;AACjC,OAAO,gBAAgB,CAAC;AACxB,OAAO,wBAAwB,CAAC;AAChC,OAAO,0BAA0B,CAAC;AAClC,OAAO,qBAAqB,CAAC;AAC7B,OAAO,sBAAsB,CAAC;AAC9B,OAAO,0BAA0B,CAAC;AAClC,OAAO,gBAAgB,CAAC;AACxB,OAAO,qBAAqB,CAAC;AAC7B,OAAO,wBAAwB,CAAC;AAChC,OAAO,6BAA6B,CAAC;AACrC,OAAO,iCAAiC,CAAC;AACzC,OAAO,oBAAoB,CAAC;AAC5B,OAAO,wBAAwB,CAAC;AAEhC,cAAc,uBAAuB,CAAC;AACtC,cAAc,iBAAiB,CAAC;AAChC,cAAc,sBAAsB,CAAC;AACrC,cAAc,qBAAqB,CAAC;AACpC,cAAc,cAAc,CAAC;AAC7B,cAAc,sBAAsB,CAAC;AACrC,cAAc,aAAa,CAAC;AAC5B,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,kBAAkB,CAAC;AACjC,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC;AACtC,cAAc,aAAa,CAAC;AAC5B,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,0BAA0B,CAAC;AACzC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,0BAA0B,CAAC;AAClC,OAAO,oBAAoB,CAAC;AAC5B,OAAO,wBAAwB,CAAC;AAChC,OAAO,iBAAiB,CAAC;AACzB,OAAO,yBAAyB,CAAC;AACjC,OAAO,gBAAgB,CAAC;AACxB,OAAO,wBAAwB,CAAC;AAChC,OAAO,kCAAkC,CAAC;AAC1C,OAAO,kBAAkB,CAAC;AAC1B,OAAO,4BAA4B,CAAC;AACpC,OAAO,oBAAoB,CAAC;AAC5B,OAAO,8BAA8B,CAAC;AACtC,OAAO,0BAA0B,CAAC;AAClC,OAAO,kBAAkB,CAAC;AAC1B,OAAO,4BAA4B,CAAC;AACpC,OAAO,gBAAgB,CAAC;AACxB,OAAO,qBAAqB,CAAC;AAC7B,OAAO,gBAAgB,CAAC;AACxB,OAAO,qBAAqB,CAAC;AAC7B,OAAO,wBAAwB,CAAC;AAChC,OAAO,6BAA6B,CAAC;AACrC,OAAO,iCAAiC,CAAC;AACzC,OAAO,oBAAoB,CAAC;AAC5B,OAAO,wBAAwB,CAAC;AAEhC,cAAc,0BAA0B,CAAC;AACzC,cAAc,oBAAoB,CAAC;AACnC,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,iBAAiB,CAAC;AAChC,cAAc,yBAAyB,CAAC;AACxC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,wBAAwB,CAAC;AACvC,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AACvC,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,0BAA0B,CAAC;AACzC,cAAc,kBAAkB,CAAC;AACjC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,gBAAgB,CAAC;AAC/B,cAAc,qBAAqB,CAAC;AACpC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,qBAAqB,CAAC;AACpC,cAAc,wBAAwB,CAAC;AACvC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,iCAAiC,CAAC;AAChD,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC;AACvC,cAAc,0BAA0B,CAAC"}