@vonage/vivid 3.2.0 → 3.4.0

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 (130) hide show
  1. package/custom-elements.json +366 -1
  2. package/data-grid/index.js +7 -1047
  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.d.ts +1 -0
  8. package/index.js +33 -31
  9. package/layout/index.js +1 -1
  10. package/lib/accordion/definition.d.ts +1 -0
  11. package/lib/action-group/action-group.d.ts +1 -2
  12. package/lib/action-group/definition.d.ts +1 -0
  13. package/lib/avatar/avatar.d.ts +2 -3
  14. package/lib/avatar/definition.d.ts +1 -0
  15. package/lib/badge/badge.d.ts +3 -4
  16. package/lib/badge/definition.d.ts +1 -0
  17. package/lib/banner/definition.d.ts +1 -0
  18. package/lib/button/button.d.ts +3 -4
  19. package/lib/button/definition.d.ts +1 -0
  20. package/lib/calendar-event/calendar-event.d.ts +2 -3
  21. package/lib/calendar-event/definition.d.ts +1 -0
  22. package/lib/combobox/combobox.d.ts +1 -2
  23. package/lib/combobox/definition.d.ts +1 -0
  24. package/lib/components.d.ts +1 -0
  25. package/lib/dialog/definition.d.ts +1 -0
  26. package/lib/dialog/dialog.d.ts +1 -2
  27. package/lib/fab/definition.d.ts +1 -0
  28. package/lib/fab/fab.d.ts +1 -2
  29. package/lib/icon/definition.d.ts +1 -0
  30. package/lib/icon/icon.d.ts +1 -2
  31. package/lib/layout/definition.d.ts +1 -0
  32. package/lib/layout/layout.d.ts +3 -4
  33. package/lib/listbox/definition.d.ts +1 -0
  34. package/lib/menu/definition.d.ts +1 -0
  35. package/lib/note/definition.d.ts +1 -0
  36. package/lib/number-field/definition.d.ts +1 -0
  37. package/lib/number-field/number-field.d.ts +2 -3
  38. package/lib/option/option.d.ts +3 -0
  39. package/lib/popup/definition.d.ts +2 -0
  40. package/lib/progress/definition.d.ts +1 -0
  41. package/lib/progress-ring/definition.d.ts +1 -0
  42. package/lib/select/definition.d.ts +1 -0
  43. package/lib/select/select.d.ts +3 -3
  44. package/lib/switch/definition.d.ts +1 -0
  45. package/lib/text-area/definition.d.ts +1 -0
  46. package/lib/text-area/text-area.d.ts +1 -2
  47. package/lib/text-field/definition.d.ts +1 -0
  48. package/lib/text-field/text-field.d.ts +2 -3
  49. package/listbox/index.js +1 -1
  50. package/menu/index.js +2 -2
  51. package/menu-item/index.js +1 -1
  52. package/nav/index.js +1 -1
  53. package/nav-disclosure/index.js +1 -1
  54. package/nav-item/index.js +1 -1
  55. package/note/index.js +1 -1
  56. package/number-field/index.js +2 -2
  57. package/package.json +1 -1
  58. package/progress/index.js +1 -1
  59. package/progress-ring/index.js +1 -1
  60. package/radio/index.js +1 -1
  61. package/radio-group/index.js +1 -1
  62. package/select/index.js +1 -1
  63. package/shared/definition.js +1 -1
  64. package/shared/definition11.js +1 -1
  65. package/shared/definition12.js +1 -1
  66. package/shared/definition13.js +1 -1
  67. package/shared/definition14.js +1 -1
  68. package/shared/definition16.js +1 -1
  69. package/shared/definition17.js +1 -1
  70. package/shared/definition18.js +2 -2
  71. package/shared/definition19.js +11 -1
  72. package/shared/definition2.js +1 -1
  73. package/shared/definition20.js +1035 -203
  74. package/shared/definition21.js +206 -67
  75. package/shared/definition22.js +68 -77
  76. package/shared/definition23.js +76 -47
  77. package/shared/definition24.js +46 -32
  78. package/shared/definition25.js +35 -49
  79. package/shared/definition26.js +48 -338
  80. package/shared/definition27.js +267 -282
  81. package/shared/definition28.js +356 -14
  82. package/shared/definition29.js +13 -67
  83. package/shared/definition30.js +65 -21
  84. package/shared/definition31.js +21 -39
  85. package/shared/definition32.js +31 -432
  86. package/shared/definition33.js +432 -76
  87. package/shared/definition34.js +76 -59
  88. package/shared/definition35.js +67 -35
  89. package/shared/definition36.js +31 -422
  90. package/shared/definition37.js +357 -555
  91. package/shared/definition38.js +624 -74
  92. package/shared/definition39.js +70 -573
  93. package/shared/definition4.js +1 -1
  94. package/shared/definition40.js +527 -81
  95. package/shared/definition41.js +127 -47
  96. package/shared/definition42.js +51 -16
  97. package/shared/definition43.js +17 -425
  98. package/shared/definition44.js +367 -209
  99. package/shared/definition45.js +248 -85
  100. package/shared/definition46.js +110 -68
  101. package/shared/definition47.js +65 -111
  102. package/shared/definition48.js +68 -440
  103. package/shared/definition49.js +305 -0
  104. package/shared/definition5.js +1 -1
  105. package/shared/definition6.js +1 -1
  106. package/shared/definition7.js +1 -1
  107. package/shared/definition8.js +1 -1
  108. package/shared/definition9.js +1 -1
  109. package/shared/enums.js +1 -1
  110. package/shared/form-elements.js +1 -1
  111. package/shared/patterns/form-elements/form-elements.d.ts +2 -2
  112. package/shared/text-field.js +1 -1
  113. package/shared/tree-item.js +151 -0
  114. package/side-drawer/index.js +1 -1
  115. package/slider/index.js +1 -1
  116. package/styles/core/all.css +1 -1
  117. package/styles/core/theme.css +1 -1
  118. package/styles/core/typography.css +1 -1
  119. package/styles/tokens/theme-dark.css +4 -4
  120. package/styles/tokens/theme-light.css +4 -4
  121. package/switch/index.js +1 -1
  122. package/tab/index.js +1 -1
  123. package/tab-panel/index.js +1 -1
  124. package/tabs/index.js +3 -3
  125. package/text-area/index.js +1 -1
  126. package/text-field/index.js +1 -1
  127. package/tooltip/index.js +1 -1
  128. package/tree-item/index.js +3 -72
  129. package/tree-view/index.js +2 -1
  130. package/vivid.api.json +4526 -336
@@ -1,119 +1,282 @@
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, n as nullableNumberConverter, o 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
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';
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, FormElementCharCount, FormElementHelperText, FormElementSuccessText);
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, 16 Mar 2023 08:36:16 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 appearance: none; /* for box-shadow visibility on IOS */\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 pointer-events: none;\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 pointer-events: none;\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
+ ?disabled="${0}"
232
+ ?required="${0}"
233
+ ?spellcheck="${0}"
234
+ :value="${0}"
235
+ aria-atomic="${0}"
236
+ aria-busy="${0}"
237
+ aria-controls="${0}"
238
+ aria-current="${0}"
239
+ aria-describedby="${0}"
240
+ aria-details="${0}"
241
+ aria-disabled="${0}"
242
+ aria-errormessage="${0}"
243
+ aria-flowto="${0}"
244
+ aria-haspopup="${0}"
245
+ aria-hidden="${0}"
246
+ aria-invalid="${0}"
247
+ aria-keyshortcuts="${0}"
248
+ aria-label="${0}"
249
+ aria-labelledby="${0}"
250
+ aria-live="${0}"
251
+ aria-owns="${0}"
252
+ aria-relevant="${0}"
253
+ aria-roledescription="${0}"
254
+ @input="${0}"
255
+ @change="${0}"
256
+ ${0}
257
+ >
258
+ </textarea>
259
+ ${0}
260
+ </div>
261
+ ${0}
262
+ ${0}
263
+ ${0}
264
+ </div>
265
+ `), 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.disabled, 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
266
  var _a;
104
267
  return !x.successText && !x.errorValidationMessage && ((_a = x.helperText) === null || _a === void 0 ? void 0 : _a.length);
105
268
  }, getFeedbackTemplate('helper', context)), when(x => !x.successText && x.errorValidationMessage, getFeedbackTemplate('error', context)), when(x => x.successText, getFeedbackTemplate('success', context)));
106
269
  };
107
270
 
108
- const textFieldDefinition = TextField.compose({
109
- baseName: 'text-field',
110
- template: TextfieldTemplate,
271
+ const textAreaDefinition = TextArea.compose({
272
+ baseName: 'text-area',
273
+ template: TextAreaTemplate,
111
274
  styles: css_248z,
112
275
  shadowOptions: {
113
276
  delegatesFocus: true
114
277
  }
115
278
  });
116
- const textFieldRegistries = [textFieldDefinition(), ...iconRegistries, ...focusRegistries];
117
- const registerTextField = registerFactory(textFieldRegistries);
279
+ const textAreaRegistries = [textAreaDefinition(), ...iconRegistries, ...focusRegistries];
280
+ const registerTextArea = registerFactory(textAreaRegistries);
118
281
 
119
- export { textFieldRegistries as a, registerTextField as r, textFieldDefinition as t };
282
+ export { textAreaRegistries as a, registerTextArea as r, textAreaDefinition as t };
@@ -1,77 +1,119 @@
1
- import { _ as __decorate, a as attr, b as __metadata, U 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 Sun, 19 Feb 2023 11:52:38 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 };