@vonage/vivid 3.0.0-next.129 → 3.0.0-next.130

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 (83) hide show
  1. package/combobox/index.js +33 -0
  2. package/custom-elements.json +102 -0
  3. package/dialog/index.js +1 -1
  4. package/divider/index.js +1 -1
  5. package/fab/index.js +1 -1
  6. package/header/index.js +1 -1
  7. package/index.js +30 -26
  8. package/layout/index.js +1 -1
  9. package/lib/combobox/combobox.d.ts +14 -0
  10. package/lib/combobox/combobox.template.d.ts +4 -0
  11. package/lib/combobox/definition.d.ts +3 -0
  12. package/lib/combobox/index.d.ts +1 -0
  13. package/lib/components.d.ts +1 -0
  14. package/listbox/index.js +3 -2
  15. package/menu/index.js +3 -3
  16. package/menu-item/index.js +1 -1
  17. package/nav/index.js +1 -1
  18. package/nav-disclosure/index.js +1 -1
  19. package/nav-item/index.js +1 -1
  20. package/note/index.js +1 -1
  21. package/number-field/index.js +4 -3
  22. package/option/index.js +1 -1
  23. package/package.json +1 -1
  24. package/popup/index.js +1 -1
  25. package/progress/index.js +1 -1
  26. package/progress-ring/index.js +1 -1
  27. package/radio/index.js +1 -1
  28. package/radio-group/index.js +1 -1
  29. package/shared/definition.js +1 -1
  30. package/shared/definition11.js +1 -1
  31. package/shared/definition12.js +1 -1
  32. package/shared/definition13.js +1 -1
  33. package/shared/definition14.js +1 -1
  34. package/shared/definition16.js +1 -1
  35. package/shared/definition17.js +709 -198
  36. package/shared/definition18.js +1630 -64
  37. package/shared/definition19.js +242 -68
  38. package/shared/definition2.js +1 -1
  39. package/shared/definition20.js +205 -40
  40. package/shared/definition21.js +67 -33
  41. package/shared/definition22.js +70 -1038
  42. package/shared/definition23.js +44 -247
  43. package/shared/definition24.js +35 -339
  44. package/shared/definition25.js +46 -1632
  45. package/shared/definition26.js +268 -271
  46. package/shared/definition27.js +344 -14
  47. package/shared/definition28.js +13 -67
  48. package/shared/definition29.js +65 -21
  49. package/shared/definition30.js +20 -45
  50. package/shared/definition31.js +40 -78
  51. package/shared/definition32.js +76 -59
  52. package/shared/definition33.js +67 -35
  53. package/shared/definition34.js +31 -421
  54. package/shared/definition35.js +418 -69
  55. package/shared/definition36.js +66 -572
  56. package/shared/definition37.js +526 -81
  57. package/shared/definition38.js +85 -217
  58. package/shared/definition39.js +246 -85
  59. package/shared/definition4.js +1 -1
  60. package/shared/definition40.js +110 -68
  61. package/shared/definition41.js +77 -0
  62. package/shared/definition5.js +1 -1
  63. package/shared/definition6.js +1 -1
  64. package/shared/definition7.js +1 -1
  65. package/shared/definition8.js +1 -1
  66. package/shared/definition9.js +1 -1
  67. package/shared/form-elements.js +3 -225
  68. package/shared/listbox.js +1002 -0
  69. package/shared/patterns/form-elements/form-elements.d.ts +2 -2
  70. package/shared/text-field.js +3 -0
  71. package/shared/text-field2.js +225 -0
  72. package/side-drawer/index.js +1 -1
  73. package/slider/index.js +1 -1
  74. package/styles/core/all.css +1 -1
  75. package/styles/core/theme.css +1 -1
  76. package/styles/core/typography.css +1 -1
  77. package/styles/tokens/theme-dark.css +4 -4
  78. package/styles/tokens/theme-light.css +4 -4
  79. package/switch/index.js +1 -1
  80. package/text-area/index.js +2 -1
  81. package/text-field/index.js +3 -1
  82. package/tooltip/index.js +2 -2
  83. package/vivid.api.json +123 -0
@@ -1,119 +1,280 @@
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 { T as TextField$1, f as formElements, g as getFeedbackTemplate } from './form-elements.js';
6
+ import { f as formElements, g as getFeedbackTemplate } from './form-elements.js';
7
+ import { D as DelegatesARIATextbox } from './text-field2.js';
7
8
  import { a as applyMixins } from './apply-mixins.js';
9
+ import { F as FormAssociated } from './form-associated.js';
8
10
  import { f as focusTemplateFactory } from './focus2.js';
9
11
  import { w as when } from './when.js';
10
12
  import { r as ref } from './ref.js';
11
13
  import { c as classNames } from './class-names.js';
12
14
 
13
- let TextField = class TextField extends TextField$1 {};
14
- __decorate([attr, __metadata("design:type", String)], TextField.prototype, "appearance", void 0);
15
- __decorate([attr, __metadata("design:type", String)], TextField.prototype, "shape", void 0);
16
- __decorate([attr, __metadata("design:type", String)], TextField.prototype, "autoComplete", void 0);
17
- TextField = __decorate([formElements], TextField);
18
- 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 Thu, 05 Jan 2023 11:33:10 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}";
19
193
 
20
- var css_248z = "/**\n * Do not edit directly\n * Generated on Mon, 02 Jan 2023 10:04:45 GMT\n */\n:host {\n display: inline-block;\n}\n\n.base {\n --_text-field-gutter: calc(calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density, 0), 2))) / 2.5);\n --_text-field-icon-size: calc(calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density, 0), 2))) / 2);\n display: inline-grid;\n width: 100%;\n gap: 4px;\n grid-template-columns: min-content 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}\n\n.label {\n color: var(--vvd-color-canvas-text);\n contain: inline-size;\n font: var(--vvd-typography-base);\n grid-column: 1/4;\n grid-row: 1;\n}\n.char-count + .label {\n grid-column: 1/3;\n}\n\n.char-count {\n color: var(--_low-ink-color);\n font: var(--vvd-typography-base);\n grid-column: 3/4;\n}\n\n.fieldset {\n position: relative;\n display: flex;\n align-items: center;\n grid-column: 1/4;\n transition: color 0.2s;\n /* Shape */\n}\n.base > .fieldset {\n block-size: calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density, 0), 2)));\n}\n.base:not(.shape-pill) .fieldset {\n border-radius: 6px;\n}\n.base.shape-pill .fieldset {\n border-radius: 24px;\n}\n\n.control {\n width: 100%;\n border: 0 none;\n background-color: var(--_appearance-color-fill);\n block-size: 100%;\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 padding-inline-end: var(--_text-field-gutter);\n padding-inline-start: var(--_text-field-gutter);\n transition: box-shadow 0.2s, background-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.icon {\n position: absolute;\n z-index: 1;\n color: var(--_low-ink-color);\n font-size: var(--_text-field-icon-size);\n inset-inline-start: var(--_text-field-gutter);\n}\n.icon + .control {\n padding-inline-start: calc(var(--_text-field-icon-size) + var(--_text-field-gutter) * 2);\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}";
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);
21
197
 
22
198
  let _ = t => t,
23
199
  _t,
24
- _t2,
25
- _t3;
26
- const getStateClasses = ({
200
+ _t2;
201
+ const getClasses = ({
202
+ value,
27
203
  errorValidationMessage,
28
204
  disabled,
29
- value,
30
- readOnly,
31
205
  placeholder,
32
- appearance,
33
- shape,
34
- label,
206
+ readOnly,
35
207
  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)]);
208
+ }) => classNames('base', ['readonly', readOnly], ['placeholder', Boolean(placeholder)], ['disabled', disabled], ['error connotation-alert', Boolean(errorValidationMessage)], ['has-value', Boolean(value)], ['success connotation-success', !!successText]);
37
209
  function renderLabel() {
38
210
  return html(_t || (_t = _`
39
211
  <label for="control" class="label">
40
212
  ${0}
41
213
  </label>`), x => x.label);
42
214
  }
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);
215
+ const TextAreaTemplate = context => {
50
216
  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 => {
217
+ return html(_t2 || (_t2 = _`
218
+ <div class="${0}">
219
+ ${0}
220
+ <div class="fieldset">
221
+ <textarea class="control"
222
+ ?autofocus="${0}"
223
+ placeholder="${0}"
224
+ name="${0}"
225
+ maxlength="${0}"
226
+ rows="${0}"
227
+ cols="${0}"
228
+ wrap="${0}"
229
+ ?readonly="${0}"
230
+ ?required="${0}"
231
+ ?spellcheck="${0}"
232
+ :value="${0}"
233
+ aria-atomic="${0}"
234
+ aria-busy="${0}"
235
+ aria-controls="${0}"
236
+ aria-current="${0}"
237
+ aria-describedby="${0}"
238
+ aria-details="${0}"
239
+ aria-disabled="${0}"
240
+ aria-errormessage="${0}"
241
+ aria-flowto="${0}"
242
+ aria-haspopup="${0}"
243
+ aria-hidden="${0}"
244
+ aria-invalid="${0}"
245
+ aria-keyshortcuts="${0}"
246
+ aria-label="${0}"
247
+ aria-labelledby="${0}"
248
+ aria-live="${0}"
249
+ aria-owns="${0}"
250
+ aria-relevant="${0}"
251
+ aria-roledescription="${0}"
252
+ @input="${0}"
253
+ @change="${0}"
254
+ ${0}
255
+ >
256
+ </textarea>
257
+ ${0}
258
+ </div>
259
+ ${0}
260
+ ${0}
261
+ ${0}
262
+ </div>
263
+ `), 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
264
  var _a;
104
265
  return !x.successText && !x.errorValidationMessage && ((_a = x.helperText) === null || _a === void 0 ? void 0 : _a.length);
105
266
  }, getFeedbackTemplate('helper', context)), when(x => !x.successText && x.errorValidationMessage, getFeedbackTemplate('error', context)), when(x => x.successText, getFeedbackTemplate('success', context)));
106
267
  };
107
268
 
108
- const textFieldDefinition = TextField.compose({
109
- baseName: 'text-field',
110
- template: TextfieldTemplate,
269
+ const textAreaDefinition = TextArea.compose({
270
+ baseName: 'text-area',
271
+ template: TextAreaTemplate,
111
272
  styles: css_248z,
112
273
  shadowOptions: {
113
274
  delegatesFocus: true
114
275
  }
115
276
  });
116
- const textFieldRegistries = [textFieldDefinition(), ...iconRegistries, ...focusRegistries];
117
- const registerTextField = registerFactory(textFieldRegistries);
277
+ const textAreaRegistries = [textAreaDefinition(), ...iconRegistries, ...focusRegistries];
278
+ const registerTextArea = registerFactory(textAreaRegistries);
118
279
 
119
- export { textFieldRegistries as a, registerTextField as r, textFieldDefinition as t };
280
+ export { textAreaRegistries as a, registerTextArea as r, textAreaDefinition as t };
@@ -1,7 +1,7 @@
1
1
  import { h as html, r as registerFactory } from './index.js';
2
2
  import { F as Focus } from './focus.js';
3
3
 
4
- var css_248z = "/**\n * Do not edit directly\n * Generated on Mon, 02 Jan 2023 10:04:45 GMT\n */\n:host {\n display: contents;\n border-radius: inherit;\n}\n\n.control {\n position: absolute;\n z-index: 1;\n box-sizing: border-box;\n border-radius: inherit;\n box-shadow: inset 0 0 0 3px var(--focus-stroke-gap-color, currentColor);\n inset: var(--focus-inset, 0);\n outline: 2px solid var(--focus-stroke-color, var(--vvd-color-canvas-text));\n outline-offset: -2px;\n}";
4
+ var css_248z = "/**\n * Do not edit directly\n * Generated on Thu, 05 Jan 2023 11:33:10 GMT\n */\n:host {\n display: contents;\n border-radius: inherit;\n}\n\n.control {\n position: absolute;\n z-index: 1;\n box-sizing: border-box;\n border-radius: inherit;\n box-shadow: inset 0 0 0 3px var(--focus-stroke-gap-color, currentColor);\n inset: var(--focus-inset, 0);\n outline: 2px solid var(--focus-stroke-color, var(--vvd-color-canvas-text));\n outline-offset: -2px;\n}";
5
5
 
6
6
  let _ = t => t,
7
7
  _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 './definition25.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, 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, 02 Jan 2023 10:04:45 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);
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 };