@vonage/vivid 3.0.0-next.135 → 3.0.0-next.136

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 (75) hide show
  1. package/combobox/index.js +2 -1
  2. package/custom-elements.json +111 -0
  3. package/index.js +11 -9
  4. package/lib/components.d.ts +1 -0
  5. package/lib/number-field/number-field.d.ts +2 -2
  6. package/lib/select/definition.d.ts +3 -0
  7. package/lib/select/index.d.ts +1 -0
  8. package/lib/select/select.d.ts +17 -0
  9. package/lib/select/select.template.d.ts +4 -0
  10. package/lib/text-area/text-area.d.ts +2 -2
  11. package/lib/text-field/text-field.d.ts +2 -2
  12. package/listbox/index.js +1 -0
  13. package/note/index.js +1 -0
  14. package/number-field/index.js +3 -3
  15. package/option/index.js +1 -0
  16. package/package.json +1 -1
  17. package/select/index.js +34 -0
  18. package/shared/definition.js +1 -1
  19. package/shared/definition11.js +1 -1
  20. package/shared/definition12.js +1 -1
  21. package/shared/definition13.js +1 -1
  22. package/shared/definition14.js +1 -1
  23. package/shared/definition16.js +1 -1
  24. package/shared/definition17.js +2 -10
  25. package/shared/definition19.js +2 -2
  26. package/shared/definition2.js +1 -1
  27. package/shared/definition20.js +1 -1
  28. package/shared/definition21.js +1 -1
  29. package/shared/definition22.js +1 -1
  30. package/shared/definition23.js +1 -1
  31. package/shared/definition25.js +2 -2
  32. package/shared/definition27.js +1 -1
  33. package/shared/definition29.js +1 -1
  34. package/shared/definition30.js +1 -1
  35. package/shared/definition31.js +3 -2
  36. package/shared/definition32.js +1 -1
  37. package/shared/definition33.js +1 -1
  38. package/shared/definition34.js +1 -1
  39. package/shared/definition35.js +1 -1
  40. package/shared/definition36.js +618 -70
  41. package/shared/definition37.js +66 -572
  42. package/shared/definition38.js +526 -81
  43. package/shared/definition39.js +127 -47
  44. package/shared/definition4.js +1 -1
  45. package/shared/definition40.js +51 -16
  46. package/shared/definition41.js +17 -425
  47. package/shared/definition42.js +367 -207
  48. package/shared/definition43.js +248 -86
  49. package/shared/definition44.js +110 -68
  50. package/shared/definition45.js +77 -0
  51. package/shared/definition5.js +1 -1
  52. package/shared/definition6.js +1 -1
  53. package/shared/definition7.js +1 -1
  54. package/shared/definition8.js +1 -1
  55. package/shared/definition9.js +1 -1
  56. package/shared/form-elements.js +19 -13
  57. package/shared/patterns/focus.d.ts +1 -1
  58. package/shared/patterns/form-elements/form-elements.d.ts +20 -8
  59. package/shared/select.options.js +10 -0
  60. package/shared/text-field.js +1 -1
  61. package/side-drawer/index.js +1 -1
  62. package/slider/index.js +1 -1
  63. package/styles/core/all.css +1 -1
  64. package/styles/core/theme.css +1 -1
  65. package/styles/core/typography.css +1 -1
  66. package/styles/tokens/theme-dark.css +4 -4
  67. package/styles/tokens/theme-light.css +4 -4
  68. package/switch/index.js +2 -1
  69. package/tab/index.js +1 -1
  70. package/tab-panel/index.js +1 -1
  71. package/tabs/index.js +3 -3
  72. package/text-area/index.js +1 -1
  73. package/text-field/index.js +1 -1
  74. package/tooltip/index.js +1 -1
  75. package/vivid.api.json +105 -0
@@ -1,119 +1,281 @@
1
- import { _ as __decorate, a as attr, b as __metadata, h as html, r as registerFactory } from './index.js';
2
- import { f as focusRegistries } from './definition4.js';
1
+ import { F as FoundationElement, _ as __decorate, a as attr, Z as nullableNumberConverter, N as observable, b as __metadata, h as html, r as registerFactory } from './index.js';
3
2
  import { i as iconRegistries } from './definition3.js';
4
- import { b as AffixIcon, a as affixIconTemplateFactory } from './affix.js';
3
+ import { f as focusRegistries } from './definition4.js';
4
+ import './affix.js';
5
5
  import './focus.js';
6
- import { f as formElements, g as getFeedbackTemplate } from './form-elements.js';
7
- import { T as TextField$1 } from './text-field2.js';
6
+ import { f as formElements, F as FormElementSuccessText, a as FormElementHelperText, b as FormElementCharCount, g as getFeedbackTemplate } from './form-elements.js';
7
+ import { D as DelegatesARIATextbox } from './text-field2.js';
8
8
  import { a as applyMixins } from './apply-mixins.js';
9
- import { c as css_248z } from './text-field.js';
9
+ import { F as FormAssociated } from './form-associated.js';
10
10
  import { f as focusTemplateFactory } from './focus2.js';
11
11
  import { w as when } from './when.js';
12
12
  import { r as ref } from './ref.js';
13
13
  import { c as classNames } from './class-names.js';
14
14
 
15
- let TextField = class TextField extends TextField$1 {};
16
- __decorate([attr, __metadata("design:type", String)], TextField.prototype, "appearance", void 0);
17
- __decorate([attr, __metadata("design:type", String)], TextField.prototype, "shape", void 0);
18
- __decorate([attr, __metadata("design:type", String)], TextField.prototype, "autoComplete", void 0);
19
- TextField = __decorate([formElements], TextField);
20
- applyMixins(TextField, AffixIcon);
15
+ class _TextArea extends FoundationElement {
16
+ }
17
+ /**
18
+ * A form-associated base class for the {@link @microsoft/fast-foundation#(TextArea:class)} component.
19
+ *
20
+ * @internal
21
+ */
22
+ class FormAssociatedTextArea extends FormAssociated(_TextArea) {
23
+ constructor() {
24
+ super(...arguments);
25
+ this.proxy = document.createElement("textarea");
26
+ }
27
+ }
28
+
29
+ /**
30
+ * Resize mode for a TextArea
31
+ * @public
32
+ */
33
+ const TextAreaResize = {
34
+ /**
35
+ * No resize.
36
+ */
37
+ none: "none",
38
+ /**
39
+ * Resize vertically and horizontally.
40
+ */
41
+ both: "both",
42
+ /**
43
+ * Resize horizontally.
44
+ */
45
+ horizontal: "horizontal",
46
+ /**
47
+ * Resize vertically.
48
+ */
49
+ vertical: "vertical",
50
+ };
51
+
52
+ /**
53
+ * A Text Area Custom HTML Element.
54
+ * Based largely on the {@link https://developer.mozilla.org/en-US/docs/Web/HTML/Element/textarea | <textarea> element }.
55
+ *
56
+ * @slot - The default slot for the label
57
+ * @csspart label - The label
58
+ * @csspart root - The element wrapping the control
59
+ * @csspart control - The textarea element
60
+ * @fires change - Emits a custom 'change' event when the textarea emits a change event
61
+ *
62
+ * @public
63
+ */
64
+ class TextArea$1 extends FormAssociatedTextArea {
65
+ constructor() {
66
+ super(...arguments);
67
+ /**
68
+ * The resize mode of the element.
69
+ * @public
70
+ * @remarks
71
+ * HTML Attribute: resize
72
+ */
73
+ this.resize = TextAreaResize.none;
74
+ /**
75
+ * Sizes the element horizontally by a number of character columns.
76
+ *
77
+ * @public
78
+ * @remarks
79
+ * HTML Attribute: cols
80
+ */
81
+ this.cols = 20;
82
+ /**
83
+ * @internal
84
+ */
85
+ this.handleTextInput = () => {
86
+ this.value = this.control.value;
87
+ };
88
+ }
89
+ readOnlyChanged() {
90
+ if (this.proxy instanceof HTMLTextAreaElement) {
91
+ this.proxy.readOnly = this.readOnly;
92
+ }
93
+ }
94
+ autofocusChanged() {
95
+ if (this.proxy instanceof HTMLTextAreaElement) {
96
+ this.proxy.autofocus = this.autofocus;
97
+ }
98
+ }
99
+ listChanged() {
100
+ if (this.proxy instanceof HTMLTextAreaElement) {
101
+ this.proxy.setAttribute("list", this.list);
102
+ }
103
+ }
104
+ maxlengthChanged() {
105
+ if (this.proxy instanceof HTMLTextAreaElement) {
106
+ this.proxy.maxLength = this.maxlength;
107
+ }
108
+ }
109
+ minlengthChanged() {
110
+ if (this.proxy instanceof HTMLTextAreaElement) {
111
+ this.proxy.minLength = this.minlength;
112
+ }
113
+ }
114
+ spellcheckChanged() {
115
+ if (this.proxy instanceof HTMLTextAreaElement) {
116
+ this.proxy.spellcheck = this.spellcheck;
117
+ }
118
+ }
119
+ /**
120
+ * Selects all the text in the text area
121
+ *
122
+ * @public
123
+ */
124
+ select() {
125
+ this.control.select();
126
+ /**
127
+ * The select event does not permeate the shadow DOM boundary.
128
+ * This fn effectively proxies the select event,
129
+ * emitting a `select` event whenever the internal
130
+ * control emits a `select` event
131
+ */
132
+ this.$emit("select");
133
+ }
134
+ /**
135
+ * Change event handler for inner control.
136
+ * @remarks
137
+ * "Change" events are not `composable` so they will not
138
+ * permeate the shadow DOM boundary. This fn effectively proxies
139
+ * the change event, emitting a `change` event whenever the internal
140
+ * control emits a `change` event
141
+ * @internal
142
+ */
143
+ handleChange() {
144
+ this.$emit("change");
145
+ }
146
+ /** {@inheritDoc (FormAssociated:interface).validate} */
147
+ validate() {
148
+ super.validate(this.control);
149
+ }
150
+ }
151
+ __decorate([
152
+ attr({ mode: "boolean" })
153
+ ], TextArea$1.prototype, "readOnly", void 0);
154
+ __decorate([
155
+ attr
156
+ ], TextArea$1.prototype, "resize", void 0);
157
+ __decorate([
158
+ attr({ mode: "boolean" })
159
+ ], TextArea$1.prototype, "autofocus", void 0);
160
+ __decorate([
161
+ attr({ attribute: "form" })
162
+ ], TextArea$1.prototype, "formId", void 0);
163
+ __decorate([
164
+ attr
165
+ ], TextArea$1.prototype, "list", void 0);
166
+ __decorate([
167
+ attr({ converter: nullableNumberConverter })
168
+ ], TextArea$1.prototype, "maxlength", void 0);
169
+ __decorate([
170
+ attr({ converter: nullableNumberConverter })
171
+ ], TextArea$1.prototype, "minlength", void 0);
172
+ __decorate([
173
+ attr
174
+ ], TextArea$1.prototype, "name", void 0);
175
+ __decorate([
176
+ attr
177
+ ], TextArea$1.prototype, "placeholder", void 0);
178
+ __decorate([
179
+ attr({ converter: nullableNumberConverter, mode: "fromView" })
180
+ ], TextArea$1.prototype, "cols", void 0);
181
+ __decorate([
182
+ attr({ converter: nullableNumberConverter, mode: "fromView" })
183
+ ], TextArea$1.prototype, "rows", void 0);
184
+ __decorate([
185
+ attr({ mode: "boolean" })
186
+ ], TextArea$1.prototype, "spellcheck", void 0);
187
+ __decorate([
188
+ observable
189
+ ], TextArea$1.prototype, "defaultSlottedNodes", void 0);
190
+ applyMixins(TextArea$1, DelegatesARIATextbox);
191
+
192
+ var css_248z = "/**\n * Do not edit directly\n * Generated on Tue, 17 Jan 2023 16:12:43 GMT\n */\n:host {\n display: inline-block;\n}\n\n.base {\n display: inline-grid;\n width: 100%;\n gap: 4px;\n grid-template-columns: 1fr max-content;\n}\n.base {\n --_appearance-color-text: var(--vvd-color-canvas-text);\n --_appearance-color-fill: var(--_connotation-color-backdrop);\n --_appearance-color-outline: var(--_connotation-color-intermediate);\n}\n.base.appearance-ghost {\n --_appearance-color-text: var(--_connotation-color-primary);\n --_appearance-color-fill: transparent;\n --_appearance-color-outline: transparent;\n}\n.base:where(:hover, .hover):where(:not(:disabled, .disabled, .readonly)) {\n --_appearance-color-text: var(--vvd-color-canvas-text);\n --_appearance-color-fill: var(--_connotation-color-backdrop);\n --_appearance-color-outline: var(--_connotation-color-firm);\n}\n.base:where(:hover, .hover):where(:not(:disabled, .disabled, .readonly)).appearance-ghost {\n --_appearance-color-text: var(--_connotation-color-primary);\n --_appearance-color-fill: var(--_connotation-color-faint);\n --_appearance-color-outline: transparent;\n}\n.base:where(:disabled, .disabled) {\n --_appearance-color-text: var(--vvd-color-neutral-400);\n --_appearance-color-fill: var(--vvd-color-neutral-200);\n --_appearance-color-outline: var(--vvd-color-neutral-400);\n}\n.base:where(:disabled, .disabled).appearance-ghost {\n --_appearance-color-text: var(--vvd-color-neutral-400);\n --_appearance-color-fill: transparent;\n --_appearance-color-outline: transparent;\n}\n.base:where(.readonly):where(:not(:disabled, .disabled)) {\n --_appearance-color-text: var(--vvd-color-canvas-text);\n --_appearance-color-fill: var(--vvd-color-neutral-100);\n --_appearance-color-outline: var(--vvd-color-neutral-400);\n}\n.base:where(.readonly):where(:not(:disabled, .disabled)).appearance-ghost {\n --_appearance-color-text: var(--vvd-color-neutral-400);\n --_appearance-color-fill: transparent;\n --_appearance-color-outline: transparent;\n}\n.base.connotation-success {\n --_connotation-color-primary: var(--vvd-color-success-500);\n --_connotation-color-backdrop: var(--vvd-color-success-50);\n --_connotation-color-intermediate: var(--vvd-color-success-500);\n --_connotation-color-firm: var(--vvd-color-success-600);\n --_connotation-color-faint: var(--vvd-color-success-50);\n --_connotation-color-soft: var(--vvd-color-success-100);\n}\n.base.connotation-alert {\n --_connotation-color-primary: var(--vvd-color-alert-500);\n --_connotation-color-backdrop: var(--vvd-color-alert-50);\n --_connotation-color-intermediate: var(--vvd-color-alert-500);\n --_connotation-color-firm: var(--vvd-color-alert-600);\n --_connotation-color-faint: var(--vvd-color-alert-50);\n --_connotation-color-soft: var(--vvd-color-alert-100);\n}\n.base:not(.connotation-success, .connotation-alert) {\n --_connotation-color-primary: var(--vvd-color-canvas-text);\n --_connotation-color-backdrop: var(--vvd-color-canvas);\n --_connotation-color-intermediate: var(--vvd-color-neutral-500);\n --_connotation-color-firm: var(--vvd-color-canvas-text);\n --_connotation-color-faint: var(--vvd-color-neutral-50);\n --_connotation-color-soft: var(--vvd-color-neutral-100);\n}\n@supports (user-select: none) {\n .base {\n user-select: none;\n }\n}\n.base:not(.disabled) {\n --_low-ink-color: var(--vvd-color-neutral-600);\n}\n.base.disabled {\n --_low-ink-color: var(--_appearance-color-text);\n pointer-events: none;\n}\n\n.label {\n color: var(--vvd-color-canvas-text);\n contain: inline-size;\n font: var(--vvd-typography-base);\n grid-column: 1/3;\n grid-row: 1;\n line-height: 20px;\n}\n\n.fieldset {\n position: relative;\n display: flex;\n align-items: center;\n border-radius: 6px;\n grid-column: 1/3;\n}\n\n.control {\n width: 100%;\n padding: 8px 16px;\n border: 0 none;\n background-color: var(--_appearance-color-fill);\n border-radius: inherit;\n box-shadow: inset 0 0 0 1px var(--_appearance-color-outline);\n color: var(--_appearance-color-text);\n font: var(--vvd-typography-base);\n min-block-size: calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density, 0), 2)));\n transition: box-shadow 0.2s, background-color 0.2s, color 0.2s;\n}\n.control:disabled {\n cursor: not-allowed;\n opacity: 1; /* 2. correct opacity on iOS */\n -webkit-text-fill-color: var(--_appearance-color-text); /* 1. sets text fill to current `color` for safari */\n}\n.control::placeholder, .control:disabled::placeholder {\n opacity: 1; /* 2. correct opacity on iOS */\n -webkit-text-fill-color: var(--_low-ink-color); /* 1. sets text fill to current `color` for safari */\n}\n@supports selector(:focus-visible) {\n .control:focus {\n outline: none;\n }\n}\n\n.focus-indicator {\n --focus-stroke-gap-color: transparent;\n pointer-events: none;\n}\n.fieldset:not(:focus-visible, :focus-within) > .focus-indicator {\n display: none;\n}";
193
+
194
+ let TextArea = class TextArea extends TextArea$1 {};
195
+ __decorate([attr, __metadata("design:type", String)], TextArea.prototype, "wrap", void 0);
196
+ TextArea = __decorate([formElements], TextArea);
197
+ applyMixins(TextArea, FormElementCharCount, FormElementHelperText, FormElementSuccessText);
21
198
 
22
199
  let _ = t => t,
23
200
  _t,
24
- _t2,
25
- _t3;
26
- const getStateClasses = ({
201
+ _t2;
202
+ const getClasses = ({
203
+ value,
27
204
  errorValidationMessage,
28
205
  disabled,
29
- value,
30
- readOnly,
31
206
  placeholder,
32
- appearance,
33
- shape,
34
- label,
207
+ readOnly,
35
208
  successText
36
- }) => classNames(['error connotation-alert', Boolean(errorValidationMessage)], ['disabled', disabled], ['has-value', Boolean(value)], ['readonly', readOnly], ['placeholder', Boolean(placeholder)], [`appearance-${appearance}`, Boolean(appearance)], [`shape-${shape}`, Boolean(shape)], ['no-label', !label], ['success connotation-success', Boolean(successText)]);
209
+ }) => classNames('base', ['readonly', readOnly], ['placeholder', Boolean(placeholder)], ['disabled', disabled], ['error connotation-alert', Boolean(errorValidationMessage)], ['has-value', Boolean(value)], ['success connotation-success', !!successText]);
37
210
  function renderLabel() {
38
211
  return html(_t || (_t = _`
39
212
  <label for="control" class="label">
40
213
  ${0}
41
214
  </label>`), x => x.label);
42
215
  }
43
- function renderCharCount() {
44
- return html(_t2 || (_t2 = _`
45
- <span class="char-count">${0} / ${0}</span>
46
- `), x => x.value ? x.value.length : 0, x => x.maxlength);
47
- }
48
- const TextfieldTemplate = context => {
49
- const affixIconTemplate = affixIconTemplateFactory(context);
216
+ const TextAreaTemplate = context => {
50
217
  const focusTemplate = focusTemplateFactory(context);
51
- return html(_t3 || (_t3 = _`
52
- <div class="base ${0}">
53
- ${0}
54
- ${0}
55
- <div class="fieldset">
56
- ${0}
57
- <input class="control"
58
- id="control"
59
- @input="${0}"
60
- @change="${0}"
61
- ?autofocus="${0}"
62
- ?disabled="${0}"
63
- list="${0}"
64
- maxlength="${0}"
65
- minlength="${0}"
66
- pattern="${0}"
67
- placeholder="${0}"
68
- ?readonly="${0}"
69
- ?required="${0}"
70
- size="${0}"
71
- autocomplete="${0}"
72
- name="${0}"
73
- ?spellcheck="${0}"
74
- :value="${0}"
75
- type="${0}"
76
- aria-atomic="${0}"
77
- aria-busy="${0}"
78
- aria-controls="${0}"
79
- aria-current="${0}"
80
- aria-describedby="${0}"
81
- aria-details="${0}"
82
- aria-disabled="${0}"
83
- aria-errormessage="${0}"
84
- aria-flowto="${0}"
85
- aria-haspopup="${0}"
86
- aria-hidden="${0}"
87
- aria-invalid="${0}"
88
- aria-keyshortcuts="${0}"
89
- aria-label="${0}"
90
- aria-labelledby="${0}"
91
- aria-live="${0}"
92
- aria-owns="${0}"
93
- aria-relevant="${0}"
94
- aria-roledescription="${0}"
95
- ${0}
96
- />
97
- ${0}
98
- </div>
99
- ${0}
100
- ${0}
101
- ${0}
102
- </div>`), getStateClasses, when(x => x.charCount && x.maxlength, renderCharCount()), when(x => x.label, renderLabel()), x => affixIconTemplate(x.icon), x => x.handleTextInput(), x => x.handleChange(), x => x.autofocus, x => x.disabled, x => x.list, x => x.maxlength, x => x.minlength, x => x.pattern, x => x.placeholder, x => x.readOnly, x => x.required, x => x.size, x => x.autoComplete, x => x.name, x => x.spellcheck, x => x.value, x => x.type, x => x.ariaAtomic, x => x.ariaBusy, x => x.ariaControls, x => x.ariaCurrent, x => x.ariaDescribedby, x => x.ariaDetails, x => x.ariaDisabled, x => x.ariaErrormessage, x => x.ariaFlowto, x => x.ariaHaspopup, x => x.ariaHidden, x => x.ariaInvalid, x => x.ariaKeyshortcuts, x => x.ariaLabel, x => x.ariaLabelledby, x => x.ariaLive, x => x.ariaOwns, x => x.ariaRelevant, x => x.ariaRoledescription, ref('control'), () => focusTemplate, when(x => {
218
+ return html(_t2 || (_t2 = _`
219
+ <div class="${0}">
220
+ ${0}
221
+ <div class="fieldset">
222
+ <textarea class="control"
223
+ ?autofocus="${0}"
224
+ placeholder="${0}"
225
+ name="${0}"
226
+ maxlength="${0}"
227
+ rows="${0}"
228
+ cols="${0}"
229
+ wrap="${0}"
230
+ ?readonly="${0}"
231
+ ?required="${0}"
232
+ ?spellcheck="${0}"
233
+ :value="${0}"
234
+ aria-atomic="${0}"
235
+ aria-busy="${0}"
236
+ aria-controls="${0}"
237
+ aria-current="${0}"
238
+ aria-describedby="${0}"
239
+ aria-details="${0}"
240
+ aria-disabled="${0}"
241
+ aria-errormessage="${0}"
242
+ aria-flowto="${0}"
243
+ aria-haspopup="${0}"
244
+ aria-hidden="${0}"
245
+ aria-invalid="${0}"
246
+ aria-keyshortcuts="${0}"
247
+ aria-label="${0}"
248
+ aria-labelledby="${0}"
249
+ aria-live="${0}"
250
+ aria-owns="${0}"
251
+ aria-relevant="${0}"
252
+ aria-roledescription="${0}"
253
+ @input="${0}"
254
+ @change="${0}"
255
+ ${0}
256
+ >
257
+ </textarea>
258
+ ${0}
259
+ </div>
260
+ ${0}
261
+ ${0}
262
+ ${0}
263
+ </div>
264
+ `), getClasses, when(x => x.label, renderLabel()), x => x.autofocus, x => x.placeholder ? x.placeholder : null, x => x.name ? x.name : null, x => x.maxlength ? x.maxlength : null, x => x.rows ? x.rows : null, x => x.cols ? x.cols : null, x => x.wrap ? x.wrap : null, x => x.readOnly, x => x.required, x => x.spellcheck, x => x.value, x => x.ariaAtomic, x => x.ariaBusy, x => x.ariaControls, x => x.ariaCurrent, x => x.ariaDescribedby, x => x.ariaDetails, x => x.ariaDisabled, x => x.ariaErrormessage, x => x.ariaFlowto, x => x.ariaHaspopup, x => x.ariaHidden, x => x.ariaInvalid, x => x.ariaKeyshortcuts, x => x.ariaLabel, x => x.ariaLabelledby, x => x.ariaLive, x => x.ariaOwns, x => x.ariaRelevant, x => x.ariaRoledescription, x => x.handleTextInput(), x => x.handleChange(), ref('control'), () => focusTemplate, when(x => {
103
265
  var _a;
104
266
  return !x.successText && !x.errorValidationMessage && ((_a = x.helperText) === null || _a === void 0 ? void 0 : _a.length);
105
267
  }, getFeedbackTemplate('helper', context)), when(x => !x.successText && x.errorValidationMessage, getFeedbackTemplate('error', context)), when(x => x.successText, getFeedbackTemplate('success', context)));
106
268
  };
107
269
 
108
- const textFieldDefinition = TextField.compose({
109
- baseName: 'text-field',
110
- template: TextfieldTemplate,
270
+ const textAreaDefinition = TextArea.compose({
271
+ baseName: 'text-area',
272
+ template: TextAreaTemplate,
111
273
  styles: css_248z,
112
274
  shadowOptions: {
113
275
  delegatesFocus: true
114
276
  }
115
277
  });
116
- const textFieldRegistries = [textFieldDefinition(), ...iconRegistries, ...focusRegistries];
117
- const registerTextField = registerFactory(textFieldRegistries);
278
+ const textAreaRegistries = [textAreaDefinition(), ...iconRegistries, ...focusRegistries];
279
+ const registerTextArea = registerFactory(textAreaRegistries);
118
280
 
119
- export { textFieldRegistries as a, registerTextField as r, textFieldDefinition as t };
281
+ export { textAreaRegistries as a, registerTextArea as r, textAreaDefinition as t };
@@ -1,77 +1,119 @@
1
- import { _ as __decorate, a as attr, b as __metadata, Q as __classPrivateFieldGet, h as html, r as registerFactory } from './index.js';
2
- import { P as Popup, p as popupRegistries } from './definition18.js';
1
+ import { _ as __decorate, a as attr, b as __metadata, h as html, r as registerFactory } from './index.js';
2
+ import { f as focusRegistries } from './definition4.js';
3
+ import { i as iconRegistries } from './definition3.js';
4
+ import { b as AffixIcon, a as affixIconTemplateFactory } from './affix.js';
5
+ import './focus.js';
6
+ import { f as formElements, F as FormElementSuccessText, a as FormElementHelperText, b as FormElementCharCount, g as getFeedbackTemplate } from './form-elements.js';
7
+ import { T as TextField$1 } from './text-field2.js';
8
+ import { a as applyMixins } from './apply-mixins.js';
9
+ import { c as css_248z } from './text-field.js';
10
+ import { f as focusTemplateFactory } from './focus2.js';
11
+ import { w as when } from './when.js';
12
+ import { r as ref } from './ref.js';
3
13
  import { c as classNames } from './class-names.js';
4
14
 
5
- var css_248z = "/**\n * Do not edit directly\n * Generated on Mon, 16 Jan 2023 13:29:55 GMT\n */\n.control {\n pointer-events: none;\n}\n\n.tooltip {\n width: var(--tooltip-inline-size, 240px);\n}\n.tooltip-text {\n padding: 8px 12px;\n color: var(--vvd-color-canvas-text);\n font: var(--vvd-typography-base-bold);\n}";
6
-
7
- var _Tooltip_instances, _Tooltip_anchorUpdated, _Tooltip_addEventListener, _Tooltip_removeEventListener, _Tooltip_show, _Tooltip_hide;
8
- class Tooltip extends Popup {
9
- constructor() {
10
- super(...arguments);
11
- _Tooltip_instances.add(this);
12
- _Tooltip_show.set(this, () => {
13
- this.open = true;
14
- });
15
- _Tooltip_hide.set(this, () => {
16
- this.open = false;
17
- });
18
- }
19
- connectedCallback() {
20
- super.connectedCallback();
21
- __classPrivateFieldGet(this, _Tooltip_instances, "m", _Tooltip_anchorUpdated).call(this);
22
- }
23
- disconnectedCallback() {
24
- super.disconnectedCallback();
25
- __classPrivateFieldGet(this, _Tooltip_instances, "m", _Tooltip_removeEventListener).call(this);
26
- }
27
- attributeChangedCallback(name, oldValue, newValue) {
28
- super.attributeChangedCallback(name, oldValue, newValue);
29
- __classPrivateFieldGet(this, _Tooltip_instances, "m", _Tooltip_anchorUpdated).call(this);
30
- }
31
- }
32
- _Tooltip_show = new WeakMap(), _Tooltip_hide = new WeakMap(), _Tooltip_instances = new WeakSet(), _Tooltip_anchorUpdated = function _Tooltip_anchorUpdated() {
33
- __classPrivateFieldGet(this, _Tooltip_instances, "m", _Tooltip_removeEventListener).call(this);
34
- __classPrivateFieldGet(this, _Tooltip_instances, "m", _Tooltip_addEventListener).call(this);
35
- }, _Tooltip_addEventListener = function _Tooltip_addEventListener() {
36
- var _a, _b, _c, _d;
37
- (_a = this.anchorEl) === null || _a === void 0 ? void 0 : _a.addEventListener('mouseover', __classPrivateFieldGet(this, _Tooltip_show, "f"));
38
- (_b = this.anchorEl) === null || _b === void 0 ? void 0 : _b.addEventListener('mouseout', __classPrivateFieldGet(this, _Tooltip_hide, "f"));
39
- (_c = this.anchorEl) === null || _c === void 0 ? void 0 : _c.addEventListener('focusin', __classPrivateFieldGet(this, _Tooltip_show, "f"));
40
- (_d = this.anchorEl) === null || _d === void 0 ? void 0 : _d.addEventListener('focusout', __classPrivateFieldGet(this, _Tooltip_hide, "f"));
41
- }, _Tooltip_removeEventListener = function _Tooltip_removeEventListener() {
42
- var _a, _b, _c, _d;
43
- (_a = this.anchorEl) === null || _a === void 0 ? void 0 : _a.removeEventListener('mouseover', __classPrivateFieldGet(this, _Tooltip_show, "f"));
44
- (_b = this.anchorEl) === null || _b === void 0 ? void 0 : _b.removeEventListener('mouseout', __classPrivateFieldGet(this, _Tooltip_hide, "f"));
45
- (_c = this.anchorEl) === null || _c === void 0 ? void 0 : _c.removeEventListener('focusin', __classPrivateFieldGet(this, _Tooltip_show, "f"));
46
- (_d = this.anchorEl) === null || _d === void 0 ? void 0 : _d.removeEventListener('focusout', __classPrivateFieldGet(this, _Tooltip_hide, "f"));
47
- };
48
- __decorate([attr, __metadata("design:type", String)], Tooltip.prototype, "text", void 0);
15
+ let TextField = class TextField extends TextField$1 {};
16
+ __decorate([attr, __metadata("design:type", String)], TextField.prototype, "appearance", void 0);
17
+ __decorate([attr, __metadata("design:type", String)], TextField.prototype, "shape", void 0);
18
+ __decorate([attr, __metadata("design:type", String)], TextField.prototype, "autoComplete", void 0);
19
+ TextField = __decorate([formElements], TextField);
20
+ applyMixins(TextField, AffixIcon, FormElementCharCount, FormElementHelperText, FormElementSuccessText);
49
21
 
50
22
  let _ = t => t,
51
- _t;
52
- const getClasses = ({
53
- open
54
- }) => classNames('control', ['open', Boolean(open)]);
55
- const TooltipTemplate = context => {
56
- const popupTag = context.tagFor(Popup);
23
+ _t,
24
+ _t2,
25
+ _t3;
26
+ const getStateClasses = ({
27
+ errorValidationMessage,
28
+ disabled,
29
+ value,
30
+ readOnly,
31
+ placeholder,
32
+ appearance,
33
+ shape,
34
+ label,
35
+ successText
36
+ }) => classNames(['error connotation-alert', Boolean(errorValidationMessage)], ['disabled', disabled], ['has-value', Boolean(value)], ['readonly', readOnly], ['placeholder', Boolean(placeholder)], [`appearance-${appearance}`, Boolean(appearance)], [`shape-${shape}`, Boolean(shape)], ['no-label', !label], ['success connotation-success', Boolean(successText)]);
37
+ function renderLabel() {
57
38
  return html(_t || (_t = _`
58
- <${0} class="${0}" arrow alternate
59
- placement=${0} open=${0} anchor=${0}
60
- exportparts="vvd-theme-alternate">
61
- <div class="tooltip" role="tooltip">
62
- <header part="vvd-theme-alternate" class="tooltip-header">
63
- <div class="tooltip-text">${0}</div>
64
- </header>
65
- </div>
66
- </${0}>`), popupTag, getClasses, x => x.placement, x => x.open, x => x.anchor, x => x.text, popupTag);
39
+ <label for="control" class="label">
40
+ ${0}
41
+ </label>`), x => x.label);
42
+ }
43
+ function renderCharCount() {
44
+ return html(_t2 || (_t2 = _`
45
+ <span class="char-count">${0} / ${0}</span>
46
+ `), x => x.value ? x.value.length : 0, x => x.maxlength);
47
+ }
48
+ const TextfieldTemplate = context => {
49
+ const affixIconTemplate = affixIconTemplateFactory(context);
50
+ const focusTemplate = focusTemplateFactory(context);
51
+ return html(_t3 || (_t3 = _`
52
+ <div class="base ${0}">
53
+ ${0}
54
+ ${0}
55
+ <div class="fieldset">
56
+ ${0}
57
+ <input class="control"
58
+ id="control"
59
+ @input="${0}"
60
+ @change="${0}"
61
+ ?autofocus="${0}"
62
+ ?disabled="${0}"
63
+ list="${0}"
64
+ maxlength="${0}"
65
+ minlength="${0}"
66
+ pattern="${0}"
67
+ placeholder="${0}"
68
+ ?readonly="${0}"
69
+ ?required="${0}"
70
+ size="${0}"
71
+ autocomplete="${0}"
72
+ name="${0}"
73
+ ?spellcheck="${0}"
74
+ :value="${0}"
75
+ type="${0}"
76
+ aria-atomic="${0}"
77
+ aria-busy="${0}"
78
+ aria-controls="${0}"
79
+ aria-current="${0}"
80
+ aria-describedby="${0}"
81
+ aria-details="${0}"
82
+ aria-disabled="${0}"
83
+ aria-errormessage="${0}"
84
+ aria-flowto="${0}"
85
+ aria-haspopup="${0}"
86
+ aria-hidden="${0}"
87
+ aria-invalid="${0}"
88
+ aria-keyshortcuts="${0}"
89
+ aria-label="${0}"
90
+ aria-labelledby="${0}"
91
+ aria-live="${0}"
92
+ aria-owns="${0}"
93
+ aria-relevant="${0}"
94
+ aria-roledescription="${0}"
95
+ ${0}
96
+ />
97
+ ${0}
98
+ </div>
99
+ ${0}
100
+ ${0}
101
+ ${0}
102
+ </div>`), getStateClasses, when(x => x.charCount && x.maxlength, renderCharCount()), when(x => x.label, renderLabel()), x => affixIconTemplate(x.icon), x => x.handleTextInput(), x => x.handleChange(), x => x.autofocus, x => x.disabled, x => x.list, x => x.maxlength, x => x.minlength, x => x.pattern, x => x.placeholder, x => x.readOnly, x => x.required, x => x.size, x => x.autoComplete, x => x.name, x => x.spellcheck, x => x.value, x => x.type, x => x.ariaAtomic, x => x.ariaBusy, x => x.ariaControls, x => x.ariaCurrent, x => x.ariaDescribedby, x => x.ariaDetails, x => x.ariaDisabled, x => x.ariaErrormessage, x => x.ariaFlowto, x => x.ariaHaspopup, x => x.ariaHidden, x => x.ariaInvalid, x => x.ariaKeyshortcuts, x => x.ariaLabel, x => x.ariaLabelledby, x => x.ariaLive, x => x.ariaOwns, x => x.ariaRelevant, x => x.ariaRoledescription, ref('control'), () => focusTemplate, when(x => {
103
+ var _a;
104
+ return !x.successText && !x.errorValidationMessage && ((_a = x.helperText) === null || _a === void 0 ? void 0 : _a.length);
105
+ }, getFeedbackTemplate('helper', context)), when(x => !x.successText && x.errorValidationMessage, getFeedbackTemplate('error', context)), when(x => x.successText, getFeedbackTemplate('success', context)));
67
106
  };
68
107
 
69
- const tooltipDefinition = Tooltip.compose({
70
- baseName: 'tooltip',
71
- template: TooltipTemplate,
72
- styles: css_248z
108
+ const textFieldDefinition = TextField.compose({
109
+ baseName: 'text-field',
110
+ template: TextfieldTemplate,
111
+ styles: css_248z,
112
+ shadowOptions: {
113
+ delegatesFocus: true
114
+ }
73
115
  });
74
- const tooltipRegistries = [tooltipDefinition(), ...popupRegistries];
75
- const registerTooltip = registerFactory(tooltipRegistries);
116
+ const textFieldRegistries = [textFieldDefinition(), ...iconRegistries, ...focusRegistries];
117
+ const registerTextField = registerFactory(textFieldRegistries);
76
118
 
77
- export { tooltipRegistries as a, registerTooltip as r, tooltipDefinition as t };
119
+ export { textFieldRegistries as a, registerTextField as r, textFieldDefinition as t };
@@ -0,0 +1,77 @@
1
+ import { _ as __decorate, a as attr, b as __metadata, Q as __classPrivateFieldGet, h as html, r as registerFactory } from './index.js';
2
+ import { P as Popup, p as popupRegistries } from './definition18.js';
3
+ import { c as classNames } from './class-names.js';
4
+
5
+ var css_248z = "/**\n * Do not edit directly\n * Generated on Tue, 17 Jan 2023 16:12:43 GMT\n */\n.control {\n pointer-events: none;\n}\n\n.tooltip {\n width: var(--tooltip-inline-size, 240px);\n}\n.tooltip-text {\n padding: 8px 12px;\n color: var(--vvd-color-canvas-text);\n font: var(--vvd-typography-base-bold);\n}";
6
+
7
+ var _Tooltip_instances, _Tooltip_anchorUpdated, _Tooltip_addEventListener, _Tooltip_removeEventListener, _Tooltip_show, _Tooltip_hide;
8
+ class Tooltip extends Popup {
9
+ constructor() {
10
+ super(...arguments);
11
+ _Tooltip_instances.add(this);
12
+ _Tooltip_show.set(this, () => {
13
+ this.open = true;
14
+ });
15
+ _Tooltip_hide.set(this, () => {
16
+ this.open = false;
17
+ });
18
+ }
19
+ connectedCallback() {
20
+ super.connectedCallback();
21
+ __classPrivateFieldGet(this, _Tooltip_instances, "m", _Tooltip_anchorUpdated).call(this);
22
+ }
23
+ disconnectedCallback() {
24
+ super.disconnectedCallback();
25
+ __classPrivateFieldGet(this, _Tooltip_instances, "m", _Tooltip_removeEventListener).call(this);
26
+ }
27
+ attributeChangedCallback(name, oldValue, newValue) {
28
+ super.attributeChangedCallback(name, oldValue, newValue);
29
+ __classPrivateFieldGet(this, _Tooltip_instances, "m", _Tooltip_anchorUpdated).call(this);
30
+ }
31
+ }
32
+ _Tooltip_show = new WeakMap(), _Tooltip_hide = new WeakMap(), _Tooltip_instances = new WeakSet(), _Tooltip_anchorUpdated = function _Tooltip_anchorUpdated() {
33
+ __classPrivateFieldGet(this, _Tooltip_instances, "m", _Tooltip_removeEventListener).call(this);
34
+ __classPrivateFieldGet(this, _Tooltip_instances, "m", _Tooltip_addEventListener).call(this);
35
+ }, _Tooltip_addEventListener = function _Tooltip_addEventListener() {
36
+ var _a, _b, _c, _d;
37
+ (_a = this.anchorEl) === null || _a === void 0 ? void 0 : _a.addEventListener('mouseover', __classPrivateFieldGet(this, _Tooltip_show, "f"));
38
+ (_b = this.anchorEl) === null || _b === void 0 ? void 0 : _b.addEventListener('mouseout', __classPrivateFieldGet(this, _Tooltip_hide, "f"));
39
+ (_c = this.anchorEl) === null || _c === void 0 ? void 0 : _c.addEventListener('focusin', __classPrivateFieldGet(this, _Tooltip_show, "f"));
40
+ (_d = this.anchorEl) === null || _d === void 0 ? void 0 : _d.addEventListener('focusout', __classPrivateFieldGet(this, _Tooltip_hide, "f"));
41
+ }, _Tooltip_removeEventListener = function _Tooltip_removeEventListener() {
42
+ var _a, _b, _c, _d;
43
+ (_a = this.anchorEl) === null || _a === void 0 ? void 0 : _a.removeEventListener('mouseover', __classPrivateFieldGet(this, _Tooltip_show, "f"));
44
+ (_b = this.anchorEl) === null || _b === void 0 ? void 0 : _b.removeEventListener('mouseout', __classPrivateFieldGet(this, _Tooltip_hide, "f"));
45
+ (_c = this.anchorEl) === null || _c === void 0 ? void 0 : _c.removeEventListener('focusin', __classPrivateFieldGet(this, _Tooltip_show, "f"));
46
+ (_d = this.anchorEl) === null || _d === void 0 ? void 0 : _d.removeEventListener('focusout', __classPrivateFieldGet(this, _Tooltip_hide, "f"));
47
+ };
48
+ __decorate([attr, __metadata("design:type", String)], Tooltip.prototype, "text", void 0);
49
+
50
+ let _ = t => t,
51
+ _t;
52
+ const getClasses = ({
53
+ open
54
+ }) => classNames('control', ['open', Boolean(open)]);
55
+ const TooltipTemplate = context => {
56
+ const popupTag = context.tagFor(Popup);
57
+ return html(_t || (_t = _`
58
+ <${0} class="${0}" arrow alternate
59
+ placement=${0} open=${0} anchor=${0}
60
+ exportparts="vvd-theme-alternate">
61
+ <div class="tooltip" role="tooltip">
62
+ <header part="vvd-theme-alternate" class="tooltip-header">
63
+ <div class="tooltip-text">${0}</div>
64
+ </header>
65
+ </div>
66
+ </${0}>`), popupTag, getClasses, x => x.placement, x => x.open, x => x.anchor, x => x.text, popupTag);
67
+ };
68
+
69
+ const tooltipDefinition = Tooltip.compose({
70
+ baseName: 'tooltip',
71
+ template: TooltipTemplate,
72
+ styles: css_248z
73
+ });
74
+ const tooltipRegistries = [tooltipDefinition(), ...popupRegistries];
75
+ const registerTooltip = registerFactory(tooltipRegistries);
76
+
77
+ export { tooltipRegistries as a, registerTooltip as r, tooltipDefinition as t };
@@ -1,7 +1,7 @@
1
1
  import { F as FoundationElement, _ as __decorate, a as attr, b as __metadata, h as html, r as registerFactory } from './index.js';
2
2
  import { c as classNames } from './class-names.js';
3
3
 
4
- var css_248z = "/**\n * Do not edit directly\n * Generated on Mon, 16 Jan 2023 13:29:55 GMT\n */\n:host {\n display: inline-block;\n}\n\n.base {\n position: relative;\n display: flex;\n box-sizing: border-box;\n align-items: center;\n background-color: var(--_appearance-color-fill);\n inline-size: inherit;\n vertical-align: middle;\n}\n.base {\n --_connotation-color-backdrop: var(--vvd-color-canvas);\n --_connotation-color-primary: var(--vvd-color-canvas-text);\n --_connotation-color-intermediate: var(--vvd-color-neutral-500);\n --_connotation-color-faint: var(--vvd-color-neutral-50);\n}\n.base {\n --_appearance-color-text: var(--vvd-color-canvas-text);\n --_appearance-color-fill: var(--_connotation-color-backdrop);\n --_appearance-color-outline: var(--_connotation-color-intermediate);\n}\n.base.appearance-ghost {\n --_appearance-color-text: var(--_connotation-color-primary);\n --_appearance-color-fill: transparent;\n --_appearance-color-outline: transparent;\n}\n.base::before {\n position: absolute;\n z-index: 1;\n border-radius: inherit;\n box-shadow: inset 0 0 0 1px var(--_appearance-color-outline);\n content: \"\";\n inset: 0;\n pointer-events: none;\n}\n.base:not(.tight) {\n padding: 4px;\n column-gap: 4px;\n}\n\n/* Shape */\n.base:not(.shape-pill) {\n border-radius: 6px;\n}\n\n.base.shape-pill {\n border-radius: 24px;\n}\n\n/* Separator */\n::slotted([role=separator]) {\n align-self: stretch;\n margin-block: 4px;\n}";
4
+ var css_248z = "/**\n * Do not edit directly\n * Generated on Tue, 17 Jan 2023 16:12:43 GMT\n */\n:host {\n display: inline-block;\n}\n\n.base {\n position: relative;\n display: flex;\n box-sizing: border-box;\n align-items: center;\n background-color: var(--_appearance-color-fill);\n inline-size: inherit;\n vertical-align: middle;\n}\n.base {\n --_connotation-color-backdrop: var(--vvd-color-canvas);\n --_connotation-color-primary: var(--vvd-color-canvas-text);\n --_connotation-color-intermediate: var(--vvd-color-neutral-500);\n --_connotation-color-faint: var(--vvd-color-neutral-50);\n}\n.base {\n --_appearance-color-text: var(--vvd-color-canvas-text);\n --_appearance-color-fill: var(--_connotation-color-backdrop);\n --_appearance-color-outline: var(--_connotation-color-intermediate);\n}\n.base.appearance-ghost {\n --_appearance-color-text: var(--_connotation-color-primary);\n --_appearance-color-fill: transparent;\n --_appearance-color-outline: transparent;\n}\n.base::before {\n position: absolute;\n z-index: 1;\n border-radius: inherit;\n box-shadow: inset 0 0 0 1px var(--_appearance-color-outline);\n content: \"\";\n inset: 0;\n pointer-events: none;\n}\n.base:not(.tight) {\n padding: 4px;\n column-gap: 4px;\n}\n\n/* Shape */\n.base:not(.shape-pill) {\n border-radius: 6px;\n}\n\n.base.shape-pill {\n border-radius: 24px;\n}\n\n/* Separator */\n::slotted([role=separator]) {\n align-self: stretch;\n margin-block: 4px;\n}";
5
5
 
6
6
  class ActionGroup extends FoundationElement {
7
7
  constructor() {