@fluid-topics/ft-text-field 0.3.11 → 0.3.13

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.
@@ -0,0 +1,16 @@
1
+ export declare const FtTextFieldCssVariables: {
2
+ fontSize: import("@fluid-topics/ft-wc-utils").FtCssVariable;
3
+ labelSize: import("@fluid-topics/ft-wc-utils").FtCssVariable;
4
+ verticalSpacing: import("@fluid-topics/ft-wc-utils").FtCssVariable;
5
+ horizontalSpacing: import("@fluid-topics/ft-wc-utils").FtCssVariable;
6
+ helperColor: import("@fluid-topics/ft-wc-utils").FtCssVariable;
7
+ colorPrimary: import("@fluid-topics/ft-wc-utils").FtCssVariable;
8
+ colorOnSurface: import("@fluid-topics/ft-wc-utils").FtCssVariable;
9
+ colorOnSurfaceDisabled: import("@fluid-topics/ft-wc-utils").FtCssVariable;
10
+ borderRadiusS: import("@fluid-topics/ft-wc-utils").FtCssVariable;
11
+ colorError: import("@fluid-topics/ft-wc-utils").FtCssVariable;
12
+ prefixColor: import("@fluid-topics/ft-wc-utils").FtCssVariable;
13
+ iconColor: import("@fluid-topics/ft-wc-utils").FtCssVariable;
14
+ };
15
+ export declare const styles: import("lit").CSSResult;
16
+ //# sourceMappingURL=ft-text-field.css.d.ts.map
@@ -0,0 +1,145 @@
1
+ import { css } from "lit";
2
+ import { designSystemVariables, FtCssVariableFactory, setVariable } from "@fluid-topics/ft-wc-utils";
3
+ import { FtTypographyBody1CssVariables } from "@fluid-topics/ft-typography/build/ft-typography.css";
4
+ import { FtInputLabelCssVariables } from "@fluid-topics/ft-input-label/build/ft-input-label.css";
5
+ import { FtRippleCssVariables } from "@fluid-topics/ft-ripple/build/ft-ripple.css";
6
+ export const FtTextFieldCssVariables = {
7
+ fontSize: FtCssVariableFactory.create("--ft-text-field-font-size", "SIZE", "14px"),
8
+ labelSize: FtCssVariableFactory.create("--ft-text-field-label-size", "SIZE", "11px"),
9
+ verticalSpacing: FtCssVariableFactory.create("--ft-text-field-vertical-spacing", "SIZE", "4px"),
10
+ horizontalSpacing: FtCssVariableFactory.create("--ft-text-field-horizontal-spacing", "SIZE", "16px"),
11
+ helperColor: FtCssVariableFactory.extend("--ft-text-field-helper-color", designSystemVariables.colorOnSurfaceMedium),
12
+ colorPrimary: FtCssVariableFactory.external(designSystemVariables.colorPrimary, "Design system"),
13
+ colorOnSurface: FtCssVariableFactory.external(designSystemVariables.colorOnSurface, "Design system"),
14
+ colorOnSurfaceDisabled: FtCssVariableFactory.external(designSystemVariables.colorOnSurfaceDisabled, "Design system"),
15
+ borderRadiusS: FtCssVariableFactory.external(designSystemVariables.borderRadiusS, "Design system"),
16
+ colorError: FtCssVariableFactory.external(designSystemVariables.colorError, "Design system"),
17
+ prefixColor: FtCssVariableFactory.extend("--ft-text-field-prefix-color", designSystemVariables.colorOnSurfaceMedium),
18
+ iconColor: FtCssVariableFactory.extend("--ft-text-field-icon-color", designSystemVariables.colorOnSurfaceMedium),
19
+ };
20
+ // language=CSS
21
+ export const styles = css `
22
+ *:focus {
23
+ outline: none;
24
+ }
25
+
26
+ .ft-text-field {
27
+ display: flex;
28
+ flex-direction: column;
29
+ align-items: stretch;
30
+ }
31
+
32
+ ft-input-label {
33
+ ${setVariable(FtInputLabelCssVariables.fontSize, FtTextFieldCssVariables.fontSize)};
34
+ ${setVariable(FtInputLabelCssVariables.raisedFontSize, FtTextFieldCssVariables.labelSize)};
35
+ ${setVariable(FtInputLabelCssVariables.verticalSpacing, FtTextFieldCssVariables.verticalSpacing)};
36
+ ${setVariable(FtInputLabelCssVariables.horizontalSpacing, css `calc(${FtTextFieldCssVariables.horizontalSpacing} - 4px)`)};
37
+ }
38
+
39
+ .ft-text-field--main-panel {
40
+ position: relative;
41
+ display: flex;
42
+ height: calc(4 * ${FtTextFieldCssVariables.verticalSpacing} + ${FtTextFieldCssVariables.labelSize} + ${FtTextFieldCssVariables.fontSize});
43
+ }
44
+
45
+ .ft-text-field--input-panel {
46
+ flex-grow: 1;
47
+ position: relative;
48
+ display: flex;
49
+ align-items: center;
50
+ overflow: hidden;
51
+ }
52
+
53
+ .ft-text-field--input-panel ft-ripple {
54
+ ${setVariable(FtRippleCssVariables.opacityContentOnSurfaceHover, "0.08")};
55
+ ${setVariable(FtRippleCssVariables.opacityContentOnSurfacePressed, "0.04")};
56
+ }
57
+
58
+ .ft-text-field--input-wrapper {
59
+ flex-grow: 1;
60
+ flex-shrink: 1;
61
+
62
+ display: flex;
63
+ align-items: center;
64
+
65
+ ${setVariable(FtTypographyBody1CssVariables.fontSize, FtTextFieldCssVariables.fontSize)};
66
+ ${setVariable(FtTypographyBody1CssVariables.lineHeight, FtTextFieldCssVariables.fontSize)};
67
+
68
+ padding: 0 ${FtTextFieldCssVariables.horizontalSpacing};
69
+ }
70
+
71
+ .ft-text-field--filled:not(.ft-text-field--no-label) .ft-text-field--input-wrapper {
72
+ align-items: flex-end;
73
+ padding: 0 ${FtTextFieldCssVariables.horizontalSpacing} ${FtTextFieldCssVariables.verticalSpacing} ${FtTextFieldCssVariables.horizontalSpacing};
74
+ }
75
+
76
+ .ft-text-field--prefix {
77
+ display: none;
78
+ color: ${FtTextFieldCssVariables.prefixColor}
79
+ }
80
+
81
+ .ft-text-field--with-prefix.ft-text-field--raised-label .ft-text-field--prefix {
82
+ display: block;
83
+ }
84
+
85
+ .ft-text-field--input {
86
+ display: block;
87
+ position: relative;
88
+ flex-grow: 1;
89
+ flex-shrink: 1;
90
+ min-width: 0; /* flex sets this to auto an prevents input from shrinking properly */
91
+
92
+ color: ${FtTextFieldCssVariables.colorOnSurface};
93
+ padding: calc(2 * ${FtTextFieldCssVariables.verticalSpacing}) 0;
94
+ border: none;
95
+ background: none;
96
+ }
97
+
98
+ .ft-text-field--filled:not(.ft-text-field--no-label) .ft-text-field--input {
99
+ padding-bottom: 0;
100
+ padding-top: calc(${FtTextFieldCssVariables.labelSize} + 2 * ${FtTextFieldCssVariables.verticalSpacing});
101
+ }
102
+
103
+ .ft-text-field--input::-webkit-calendar-picker-indicator,
104
+ .ft-text-field--input::-webkit-list-button {
105
+ display: none !important;
106
+ }
107
+
108
+ .ft-text-field--disabled .ft-text-field--input {
109
+ color: ${FtTextFieldCssVariables.colorOnSurfaceDisabled};
110
+ }
111
+
112
+ .ft-text-field:not(.ft-text-field--disabled) .ft-text-field--input-panel {
113
+ cursor: pointer;
114
+ }
115
+
116
+ .ft-text-field:not(.ft-text-field--disabled):focus-within ft-input-label {
117
+ ${setVariable(FtInputLabelCssVariables.borderColor, FtTextFieldCssVariables.colorPrimary)};
118
+ ${setVariable(FtInputLabelCssVariables.textColor, FtTextFieldCssVariables.colorPrimary)};
119
+ }
120
+
121
+ .ft-text-field--filled .ft-text-field--input-panel {
122
+ border-radius: ${FtTextFieldCssVariables.borderRadiusS} ${FtTextFieldCssVariables.borderRadiusS} 0 0;
123
+ }
124
+
125
+ .ft-text-field--outlined .ft-text-field--input-panel {
126
+ border-radius: ${FtTextFieldCssVariables.borderRadiusS};
127
+ }
128
+
129
+ .ft-text-field--helper-text {
130
+ padding: 0 12px 0 ${FtTextFieldCssVariables.horizontalSpacing};
131
+ color: ${FtTextFieldCssVariables.helperColor};
132
+ }
133
+
134
+ .ft-text-field--in-error .ft-text-field--input,
135
+ .ft-text-field--in-error .ft-text-field--helper-text,
136
+ .ft-text-field--in-error .ft-text-field--prefix {
137
+ color: ${FtTextFieldCssVariables.colorError};
138
+ }
139
+
140
+ .ft-text-field--icon {
141
+ padding-right: ${FtTextFieldCssVariables.horizontalSpacing};
142
+ color: ${FtTextFieldCssVariables.iconColor};
143
+ }
144
+ `;
145
+ //# sourceMappingURL=ft-text-field.css.js.map
@@ -1,30 +1,6 @@
1
1
  import { PropertyValues } from "lit";
2
2
  import { ElementDefinitionsMap, FtLitElement } from "@fluid-topics/ft-wc-utils";
3
- export interface FtTextFieldProperties {
4
- label: string;
5
- value?: string;
6
- helper?: string;
7
- outlined?: boolean;
8
- disabled?: boolean;
9
- error?: boolean;
10
- prefix?: string;
11
- icon?: string;
12
- iconVariant?: string;
13
- }
14
- export declare const FtTextFieldCssVariables: {
15
- fontSize: import("@fluid-topics/ft-wc-utils").FtCssVariable;
16
- labelSize: import("@fluid-topics/ft-wc-utils").FtCssVariable;
17
- verticalSpacing: import("@fluid-topics/ft-wc-utils").FtCssVariable;
18
- horizontalSpacing: import("@fluid-topics/ft-wc-utils").FtCssVariable;
19
- helperColor: import("@fluid-topics/ft-wc-utils").FtCssVariable;
20
- colorPrimary: import("@fluid-topics/ft-wc-utils").FtCssVariable;
21
- colorOnSurface: import("@fluid-topics/ft-wc-utils").FtCssVariable;
22
- colorOnSurfaceDisabled: import("@fluid-topics/ft-wc-utils").FtCssVariable;
23
- borderRadiusS: import("@fluid-topics/ft-wc-utils").FtCssVariable;
24
- colorError: import("@fluid-topics/ft-wc-utils").FtCssVariable;
25
- prefixColor: import("@fluid-topics/ft-wc-utils").FtCssVariable;
26
- iconColor: import("@fluid-topics/ft-wc-utils").FtCssVariable;
27
- };
3
+ import { FtTextFieldProperties } from "./ft-text-field.properties";
28
4
  export declare class FtTextField extends FtLitElement implements FtTextFieldProperties {
29
5
  static elementDefinitions: ElementDefinitionsMap;
30
6
  static styles: import("lit").CSSResult[];
@@ -4,28 +4,15 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
4
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
5
  return c > 3 && r && Object.defineProperty(target, key, r), r;
6
6
  };
7
- import { css, html } from "lit";
7
+ import { html } from "lit";
8
8
  import { property, query, state } from "lit/decorators.js";
9
9
  import { classMap } from "lit/directives/class-map.js";
10
- import { designSystemVariables, FtCssVariableFactory, FtLitElement, setVariable } from "@fluid-topics/ft-wc-utils";
11
- import { FtTypography, FtTypographyBody1, FtTypographyBody1CssVariables } from "@fluid-topics/ft-typography";
12
- import { FtInputLabel, FtInputLabelCssVariables } from "@fluid-topics/ft-input-label";
13
- import { FtRipple, FtRippleCssVariables } from "@fluid-topics/ft-ripple";
10
+ import { FtLitElement } from "@fluid-topics/ft-wc-utils";
11
+ import { FtTypography, FtTypographyBody1 } from "@fluid-topics/ft-typography";
12
+ import { FtInputLabel } from "@fluid-topics/ft-input-label";
13
+ import { FtRipple } from "@fluid-topics/ft-ripple";
14
14
  import { FtIcon } from "@fluid-topics/ft-icon";
15
- export const FtTextFieldCssVariables = {
16
- fontSize: FtCssVariableFactory.create("--ft-text-field-font-size", "SIZE", "14px"),
17
- labelSize: FtCssVariableFactory.create("--ft-text-field-label-size", "SIZE", "11px"),
18
- verticalSpacing: FtCssVariableFactory.create("--ft-text-field-vertical-spacing", "SIZE", "4px"),
19
- horizontalSpacing: FtCssVariableFactory.create("--ft-text-field-horizontal-spacing", "SIZE", "16px"),
20
- helperColor: FtCssVariableFactory.extend("--ft-text-field-helper-color", designSystemVariables.colorOnSurfaceMedium),
21
- colorPrimary: FtCssVariableFactory.external(designSystemVariables.colorPrimary, "Design system"),
22
- colorOnSurface: FtCssVariableFactory.external(designSystemVariables.colorOnSurface, "Design system"),
23
- colorOnSurfaceDisabled: FtCssVariableFactory.external(designSystemVariables.colorOnSurfaceDisabled, "Design system"),
24
- borderRadiusS: FtCssVariableFactory.external(designSystemVariables.borderRadiusS, "Design system"),
25
- colorError: FtCssVariableFactory.external(designSystemVariables.colorError, "Design system"),
26
- prefixColor: FtCssVariableFactory.extend("--ft-text-field-prefix-color", designSystemVariables.colorOnSurfaceMedium),
27
- iconColor: FtCssVariableFactory.extend("--ft-text-field-icon-color", designSystemVariables.colorOnSurfaceMedium),
28
- };
15
+ import { styles } from "./ft-text-field.css";
29
16
  export class FtTextField extends FtLitElement {
30
17
  constructor() {
31
18
  super(...arguments);
@@ -118,130 +105,7 @@ FtTextField.elementDefinitions = {
118
105
  // language=CSS
119
106
  FtTextField.styles = [
120
107
  FtTypographyBody1,
121
- css `
122
- *:focus {
123
- outline: none;
124
- }
125
-
126
- .ft-text-field {
127
- display: flex;
128
- flex-direction: column;
129
- align-items: stretch;
130
- }
131
-
132
- ft-input-label {
133
- ${setVariable(FtInputLabelCssVariables.fontSize, FtTextFieldCssVariables.fontSize)};
134
- ${setVariable(FtInputLabelCssVariables.raisedFontSize, FtTextFieldCssVariables.labelSize)};
135
- ${setVariable(FtInputLabelCssVariables.verticalSpacing, FtTextFieldCssVariables.verticalSpacing)};
136
- ${setVariable(FtInputLabelCssVariables.horizontalSpacing, css `calc(${FtTextFieldCssVariables.horizontalSpacing} - 4px)`)};
137
- }
138
-
139
- .ft-text-field--main-panel {
140
- position: relative;
141
- display: flex;
142
- height: calc(4 * ${FtTextFieldCssVariables.verticalSpacing} + ${FtTextFieldCssVariables.labelSize} + ${FtTextFieldCssVariables.fontSize});
143
- }
144
-
145
- .ft-text-field--input-panel {
146
- flex-grow: 1;
147
- position: relative;
148
- display: flex;
149
- align-items: center;
150
- overflow: hidden;
151
- }
152
-
153
- .ft-text-field--input-panel ft-ripple {
154
- ${setVariable(FtRippleCssVariables.opacityContentOnSurfaceHover, "0.08")};
155
- ${setVariable(FtRippleCssVariables.opacityContentOnSurfacePressed, "0.04")};
156
- }
157
-
158
- .ft-text-field--input-wrapper {
159
- flex-grow: 1;
160
- flex-shrink: 1;
161
-
162
- display: flex;
163
- align-items: center;
164
-
165
- ${setVariable(FtTypographyBody1CssVariables.fontSize, FtTextFieldCssVariables.fontSize)};
166
- ${setVariable(FtTypographyBody1CssVariables.lineHeight, FtTextFieldCssVariables.fontSize)};
167
-
168
- padding: 0 ${FtTextFieldCssVariables.horizontalSpacing};
169
- }
170
-
171
- .ft-text-field--filled:not(.ft-text-field--no-label) .ft-text-field--input-wrapper {
172
- align-items: flex-end;
173
- padding: 0 ${FtTextFieldCssVariables.horizontalSpacing} ${FtTextFieldCssVariables.verticalSpacing} ${FtTextFieldCssVariables.horizontalSpacing};
174
- }
175
-
176
- .ft-text-field--prefix {
177
- display: none;
178
- color: ${FtTextFieldCssVariables.prefixColor}
179
- }
180
-
181
- .ft-text-field--with-prefix.ft-text-field--raised-label .ft-text-field--prefix {
182
- display: block;
183
- }
184
-
185
- .ft-text-field--input {
186
- display: block;
187
- position: relative;
188
- flex-grow: 1;
189
- flex-shrink: 1;
190
- min-width: 0; /* flex sets this to auto an prevents input from shrinking properly */
191
-
192
- color: ${FtTextFieldCssVariables.colorOnSurface};
193
- padding: calc(2 * ${FtTextFieldCssVariables.verticalSpacing}) 0;
194
- border: none;
195
- background: none;
196
- }
197
-
198
- .ft-text-field--filled:not(.ft-text-field--no-label) .ft-text-field--input {
199
- padding-bottom: 0;
200
- padding-top: calc(${FtTextFieldCssVariables.labelSize} + 2 * ${FtTextFieldCssVariables.verticalSpacing});
201
- }
202
-
203
- .ft-text-field--input::-webkit-calendar-picker-indicator,
204
- .ft-text-field--input::-webkit-list-button {
205
- display: none !important;
206
- }
207
-
208
- .ft-text-field--disabled .ft-text-field--input {
209
- color: ${FtTextFieldCssVariables.colorOnSurfaceDisabled};
210
- }
211
-
212
- .ft-text-field:not(.ft-text-field--disabled) .ft-text-field--input-panel {
213
- cursor: pointer;
214
- }
215
-
216
- .ft-text-field:not(.ft-text-field--disabled):focus-within ft-input-label {
217
- ${setVariable(FtInputLabelCssVariables.borderColor, FtTextFieldCssVariables.colorPrimary)};
218
- ${setVariable(FtInputLabelCssVariables.textColor, FtTextFieldCssVariables.colorPrimary)};
219
- }
220
-
221
- .ft-text-field--filled .ft-text-field--input-panel {
222
- border-radius: ${FtTextFieldCssVariables.borderRadiusS} ${FtTextFieldCssVariables.borderRadiusS} 0 0;
223
- }
224
-
225
- .ft-text-field--outlined .ft-text-field--input-panel {
226
- border-radius: ${FtTextFieldCssVariables.borderRadiusS};
227
- }
228
-
229
- .ft-text-field--helper-text {
230
- padding: 0 12px 0 ${FtTextFieldCssVariables.horizontalSpacing};
231
- color: ${FtTextFieldCssVariables.helperColor};
232
- }
233
-
234
- .ft-text-field--in-error .ft-text-field--input,
235
- .ft-text-field--in-error .ft-text-field--helper-text,
236
- .ft-text-field--in-error .ft-text-field--prefix {
237
- color: ${FtTextFieldCssVariables.colorError};
238
- }
239
-
240
- .ft-text-field--icon {
241
- padding-right: ${FtTextFieldCssVariables.horizontalSpacing};
242
- color: ${FtTextFieldCssVariables.iconColor};
243
- }
244
- `
108
+ styles
245
109
  ];
246
110
  __decorate([
247
111
  property({ type: String })