@vonage/vivid 3.36.0 → 3.38.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 (168) hide show
  1. package/accordion/index.js +3 -4
  2. package/accordion-item/index.js +3 -2
  3. package/alert/index.js +5 -4
  4. package/avatar/index.js +1 -1
  5. package/badge/index.js +2 -1
  6. package/banner/index.js +4 -3
  7. package/breadcrumb/index.js +0 -1
  8. package/breadcrumb-item/index.js +3 -2
  9. package/button/index.js +4 -3
  10. package/card/index.js +2 -3
  11. package/checkbox/index.js +3 -4
  12. package/combobox/index.js +7 -8
  13. package/custom-elements.json +386 -758
  14. package/data-grid/index.js +2 -3
  15. package/date-picker/index.js +10 -9
  16. package/date-range-picker/index.js +36 -0
  17. package/dialog/index.js +6 -7
  18. package/divider/index.js +1 -1
  19. package/elevation/index.js +1 -1
  20. package/empty-state/index.js +2 -3
  21. package/fab/index.js +4 -3
  22. package/file-picker/index.js +6 -4
  23. package/focus/index.js +1 -1
  24. package/header/index.js +2 -2
  25. package/icon/index.js +1 -1
  26. package/index.js +44 -42
  27. package/layout/index.js +1 -1
  28. package/lib/components.d.ts +1 -0
  29. package/lib/date-picker/date-picker.d.ts +5 -15
  30. package/lib/date-range-picker/date-range-picker.d.ts +16 -0
  31. package/lib/date-range-picker/definition.d.ts +3 -0
  32. package/lib/file-picker/file-picker.d.ts +8 -5
  33. package/lib/file-picker/file-picker.form-associated.d.ts +10 -0
  34. package/lib/file-picker/locale.d.ts +6 -0
  35. package/lib/number-field/number-field.d.ts +6 -2
  36. package/lib/tag-group/tag-group.d.ts +1 -0
  37. package/lib/tree-item/tree-item.template.d.ts +1 -1
  38. package/listbox/index.js +4 -5
  39. package/locales/en-GB.js +27 -3
  40. package/locales/en-US.js +27 -3
  41. package/locales/ja-JP.js +25 -1
  42. package/locales/zh-CN.js +25 -1
  43. package/menu/index.js +8 -9
  44. package/menu-item/index.js +4 -5
  45. package/nav/index.js +1 -1
  46. package/nav-disclosure/index.js +4 -3
  47. package/nav-item/index.js +4 -3
  48. package/note/index.js +3 -2
  49. package/number-field/index.js +6 -5
  50. package/option/index.js +4 -3
  51. package/package.json +1 -1
  52. package/pagination/index.js +5 -5
  53. package/popup/index.js +6 -5
  54. package/progress/index.js +1 -1
  55. package/progress-ring/index.js +1 -1
  56. package/radio/index.js +2 -2
  57. package/radio-group/index.js +2 -3
  58. package/select/index.js +8 -9
  59. package/shared/affix.js +5 -1
  60. package/shared/apply-mixins.js +1 -1
  61. package/shared/children.js +2 -2
  62. package/shared/date-picker/calendar/dateRange.d.ts +5 -0
  63. package/shared/date-picker/calendar/presentationDateRange.d.ts +5 -0
  64. package/shared/date-picker/date-picker-base.d.ts +20 -0
  65. package/shared/date-picker/date-picker-base.form-associated.d.ts +10 -0
  66. package/shared/date-picker/date-picker-base.template.d.ts +4 -0
  67. package/{lib → shared}/date-picker/locale.d.ts +6 -0
  68. package/shared/definition.js +5 -5
  69. package/shared/definition10.js +9 -14
  70. package/shared/definition11.js +1 -1
  71. package/shared/definition12.js +1 -1
  72. package/shared/definition13.js +3 -3
  73. package/shared/definition14.js +3 -3
  74. package/shared/definition15.js +5 -5
  75. package/shared/definition16.js +4 -5
  76. package/shared/definition17.js +59 -6016
  77. package/shared/definition18.js +350 -213
  78. package/shared/definition19.js +251 -67
  79. package/shared/definition2.js +2 -3
  80. package/shared/definition20.js +66 -58
  81. package/shared/definition21.js +43 -83
  82. package/shared/definition22.js +75 -2298
  83. package/shared/definition23.js +2361 -45
  84. package/shared/definition24.js +63 -27
  85. package/shared/definition25.js +24 -51
  86. package/shared/definition26.js +36 -806
  87. package/shared/definition27.js +820 -49
  88. package/shared/definition28.js +52 -89
  89. package/shared/definition29.js +88 -24
  90. package/shared/definition3.js +1 -1
  91. package/shared/definition30.js +25 -12
  92. package/shared/definition31.js +12 -53
  93. package/shared/definition32.js +29 -441
  94. package/shared/definition33.js +427 -197
  95. package/shared/definition34.js +260 -174
  96. package/shared/definition35.js +187 -69
  97. package/shared/definition36.js +68 -55
  98. package/shared/definition37.js +61 -422
  99. package/shared/definition38.js +435 -35
  100. package/shared/definition39.js +30 -679
  101. package/shared/definition4.js +3 -3
  102. package/shared/definition40.js +661 -77
  103. package/shared/definition41.js +77 -557
  104. package/shared/definition42.js +559 -106
  105. package/shared/definition43.js +105 -136
  106. package/shared/definition44.js +153 -17
  107. package/shared/definition45.js +16 -79
  108. package/shared/definition46.js +53 -475
  109. package/shared/definition47.js +506 -20
  110. package/shared/definition48.js +22 -121
  111. package/shared/definition49.js +115 -262
  112. package/shared/definition5.js +2 -2
  113. package/shared/definition50.js +248 -120
  114. package/shared/definition51.js +139 -123
  115. package/shared/definition52.js +84 -74
  116. package/shared/definition53.js +114 -70
  117. package/shared/definition54.js +81 -292
  118. package/shared/definition55.js +302 -13
  119. package/shared/definition56.js +11 -41
  120. package/shared/definition57.js +20 -154
  121. package/shared/definition58.js +181 -0
  122. package/shared/definition6.js +5 -5
  123. package/shared/definition7.js +4 -4
  124. package/shared/definition8.js +3 -3
  125. package/shared/definition9.js +1 -2
  126. package/shared/index.js +1 -1
  127. package/shared/index2.js +1 -1
  128. package/shared/listbox.js +1 -1
  129. package/shared/localization/Locale.d.ts +3 -1
  130. package/shared/localized.js +9 -0
  131. package/shared/patterns/affix.d.ts +3 -1
  132. package/shared/presentationDate.js +6133 -0
  133. package/shared/ref.js +1 -1
  134. package/shared/slotted.js +73 -3
  135. package/shared/text-anchor.template.js +4 -4
  136. package/shared/text-field.js +1 -1
  137. package/side-drawer/index.js +1 -1
  138. package/slider/index.js +2 -2
  139. package/split-button/index.js +4 -3
  140. package/style.css +265 -197
  141. package/styles/core/all.css +44 -13
  142. package/styles/core/theme.css +1 -1
  143. package/styles/core/typography.css +44 -13
  144. package/styles/tokens/theme-dark.css +4 -4
  145. package/styles/tokens/theme-light.css +4 -4
  146. package/styles/tokens/vivid-2-compat.css +1 -1
  147. package/switch/index.js +4 -3
  148. package/tab/index.js +4 -3
  149. package/tab-panel/index.js +1 -1
  150. package/tabs/index.js +6 -7
  151. package/tag/index.js +4 -3
  152. package/tag-group/index.js +1 -1
  153. package/text-anchor/index.js +1 -0
  154. package/text-area/index.js +4 -3
  155. package/text-field/index.js +4 -5
  156. package/toggletip/index.js +7 -6
  157. package/tooltip/index.js +7 -6
  158. package/tree-item/index.js +4 -5
  159. package/tree-view/index.js +1 -2
  160. package/vivid.api.json +105 -0
  161. package/lib/date-picker/date-picker.template.d.ts +0 -4
  162. package/shared/node-observation.js +0 -74
  163. /package/{lib → shared}/date-picker/calendar/calendarGrid.d.ts +0 -0
  164. /package/{lib → shared}/date-picker/calendar/dateStr.d.ts +0 -0
  165. /package/{lib → shared}/date-picker/calendar/month.d.ts +0 -0
  166. /package/{lib → shared}/date-picker/calendar/monthPickerGrid.d.ts +0 -0
  167. /package/{lib → shared}/date-picker/calendar/presentationDate.d.ts +0 -0
  168. /package/{lib → shared}/date-picker/calendar/year.d.ts +0 -0
@@ -1,17 +1,194 @@
1
- import { a as attr, o as observable, h as html, r as registerFactory } from './index.js';
2
- import { f as focusRegistries } from './definition55.js';
3
- import { a as iconRegistries } from './definition24.js';
4
- import { A as AffixIcon, a as affixIconTemplateFactory } from './affix.js';
1
+ import { F as FoundationElement, _ as __decorate, a as attr, n as nullableNumberConverter, o as observable, h as html, r as registerFactory } from './index.js';
2
+ import { a as iconRegistries } from './definition25.js';
3
+ import { f as focusRegistries } from './definition56.js';
4
+ import './affix.js';
5
5
  import { e as errorText, f as formElements, F as FormElementSuccessText, a as FormElementHelperText, b as FormElementCharCount, g as getFeedbackTemplate } from './index2.js';
6
- import { T as TextField$1 } from './text-field2.js';
6
+ import { D as DelegatesARIATextbox } from './text-field2.js';
7
7
  import { a as applyMixins } from './apply-mixins.js';
8
- import { s as styles } from './text-field.js';
9
- import { f as focusTemplateFactory } from './focus2.js';
8
+ import { F as FormAssociated } from './form-associated.js';
10
9
  import { w as when } from './when.js';
11
- import { s as slotted } from './slotted.js';
12
10
  import { r as ref } from './ref.js';
13
11
  import { c as classNames } from './class-names.js';
14
12
 
13
+ class _TextArea extends FoundationElement {
14
+ }
15
+ /**
16
+ * A form-associated base class for the {@link @microsoft/fast-foundation#(TextArea:class)} component.
17
+ *
18
+ * @internal
19
+ */
20
+ class FormAssociatedTextArea extends FormAssociated(_TextArea) {
21
+ constructor() {
22
+ super(...arguments);
23
+ this.proxy = document.createElement("textarea");
24
+ }
25
+ }
26
+
27
+ /**
28
+ * Resize mode for a TextArea
29
+ * @public
30
+ */
31
+ const TextAreaResize = {
32
+ /**
33
+ * No resize.
34
+ */
35
+ none: "none",
36
+ /**
37
+ * Resize vertically and horizontally.
38
+ */
39
+ both: "both",
40
+ /**
41
+ * Resize horizontally.
42
+ */
43
+ horizontal: "horizontal",
44
+ /**
45
+ * Resize vertically.
46
+ */
47
+ vertical: "vertical",
48
+ };
49
+
50
+ /**
51
+ * A Text Area Custom HTML Element.
52
+ * Based largely on the {@link https://developer.mozilla.org/en-US/docs/Web/HTML/Element/textarea | <textarea> element }.
53
+ *
54
+ * @slot - The default slot for the label
55
+ * @csspart label - The label
56
+ * @csspart root - The element wrapping the control
57
+ * @csspart control - The textarea element
58
+ * @fires change - Emits a custom 'change' event when the textarea emits a change event
59
+ *
60
+ * @public
61
+ */
62
+ let TextArea$1 = class TextArea extends FormAssociatedTextArea {
63
+ constructor() {
64
+ super(...arguments);
65
+ /**
66
+ * The resize mode of the element.
67
+ * @public
68
+ * @remarks
69
+ * HTML Attribute: resize
70
+ */
71
+ this.resize = TextAreaResize.none;
72
+ /**
73
+ * Sizes the element horizontally by a number of character columns.
74
+ *
75
+ * @public
76
+ * @remarks
77
+ * HTML Attribute: cols
78
+ */
79
+ this.cols = 20;
80
+ /**
81
+ * @internal
82
+ */
83
+ this.handleTextInput = () => {
84
+ this.value = this.control.value;
85
+ };
86
+ }
87
+ readOnlyChanged() {
88
+ if (this.proxy instanceof HTMLTextAreaElement) {
89
+ this.proxy.readOnly = this.readOnly;
90
+ }
91
+ }
92
+ autofocusChanged() {
93
+ if (this.proxy instanceof HTMLTextAreaElement) {
94
+ this.proxy.autofocus = this.autofocus;
95
+ }
96
+ }
97
+ listChanged() {
98
+ if (this.proxy instanceof HTMLTextAreaElement) {
99
+ this.proxy.setAttribute("list", this.list);
100
+ }
101
+ }
102
+ maxlengthChanged() {
103
+ if (this.proxy instanceof HTMLTextAreaElement) {
104
+ this.proxy.maxLength = this.maxlength;
105
+ }
106
+ }
107
+ minlengthChanged() {
108
+ if (this.proxy instanceof HTMLTextAreaElement) {
109
+ this.proxy.minLength = this.minlength;
110
+ }
111
+ }
112
+ spellcheckChanged() {
113
+ if (this.proxy instanceof HTMLTextAreaElement) {
114
+ this.proxy.spellcheck = this.spellcheck;
115
+ }
116
+ }
117
+ /**
118
+ * Selects all the text in the text area
119
+ *
120
+ * @public
121
+ */
122
+ select() {
123
+ this.control.select();
124
+ /**
125
+ * The select event does not permeate the shadow DOM boundary.
126
+ * This fn effectively proxies the select event,
127
+ * emitting a `select` event whenever the internal
128
+ * control emits a `select` event
129
+ */
130
+ this.$emit("select");
131
+ }
132
+ /**
133
+ * Change event handler for inner control.
134
+ * @remarks
135
+ * "Change" events are not `composable` so they will not
136
+ * permeate the shadow DOM boundary. This fn effectively proxies
137
+ * the change event, emitting a `change` event whenever the internal
138
+ * control emits a `change` event
139
+ * @internal
140
+ */
141
+ handleChange() {
142
+ this.$emit("change");
143
+ }
144
+ /** {@inheritDoc (FormAssociated:interface).validate} */
145
+ validate() {
146
+ super.validate(this.control);
147
+ }
148
+ };
149
+ __decorate([
150
+ attr({ mode: "boolean" })
151
+ ], TextArea$1.prototype, "readOnly", void 0);
152
+ __decorate([
153
+ attr
154
+ ], TextArea$1.prototype, "resize", void 0);
155
+ __decorate([
156
+ attr({ mode: "boolean" })
157
+ ], TextArea$1.prototype, "autofocus", void 0);
158
+ __decorate([
159
+ attr({ attribute: "form" })
160
+ ], TextArea$1.prototype, "formId", void 0);
161
+ __decorate([
162
+ attr
163
+ ], TextArea$1.prototype, "list", void 0);
164
+ __decorate([
165
+ attr({ converter: nullableNumberConverter })
166
+ ], TextArea$1.prototype, "maxlength", void 0);
167
+ __decorate([
168
+ attr({ converter: nullableNumberConverter })
169
+ ], TextArea$1.prototype, "minlength", void 0);
170
+ __decorate([
171
+ attr
172
+ ], TextArea$1.prototype, "name", void 0);
173
+ __decorate([
174
+ attr
175
+ ], TextArea$1.prototype, "placeholder", void 0);
176
+ __decorate([
177
+ attr({ converter: nullableNumberConverter, mode: "fromView" })
178
+ ], TextArea$1.prototype, "cols", void 0);
179
+ __decorate([
180
+ attr({ converter: nullableNumberConverter, mode: "fromView" })
181
+ ], TextArea$1.prototype, "rows", void 0);
182
+ __decorate([
183
+ attr({ mode: "boolean" })
184
+ ], TextArea$1.prototype, "spellcheck", void 0);
185
+ __decorate([
186
+ observable
187
+ ], TextArea$1.prototype, "defaultSlottedNodes", void 0);
188
+ applyMixins(TextArea$1, DelegatesARIATextbox);
189
+
190
+ const styles = "/**\n * Do not edit directly\n * Generated on Fri, 13 Oct 2023 14:45:50 GMT\n */\n:host {\n display: inline-block;\n}\n\n.base {\n display: inline-grid;\n grid-template-columns: 1fr max-content;\n inline-size: 100%;\n row-gap: 4px;\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-300);\n --_appearance-color-fill: var(--vvd-color-neutral-100);\n --_appearance-color-outline: var(--vvd-color-neutral-300);\n}\n.base:where(:disabled, .disabled).appearance-ghost {\n --_appearance-color-text: var(--vvd-color-neutral-300);\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-200);\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-600);\n --_appearance-color-fill: transparent;\n --_appearance-color-outline: transparent;\n}\n.base.connotation-success {\n /* @cssprop [--vvd-text-area-success-primary=var(--vvd-color-success-500)] */\n --_connotation-color-primary: var(--vvd-text-area-success-primary, var(--vvd-color-success-500));\n /* @cssprop [--vvd-text-area-success-backdrop=var(--vvd-color-success-50)] */\n --_connotation-color-backdrop: var(--vvd-text-area-success-backdrop, var(--vvd-color-success-50));\n /* @cssprop [--vvd-text-area-success-intermediate=var(--vvd-color-success-500)] */\n --_connotation-color-intermediate: var(--vvd-text-area-success-intermediate, var(--vvd-color-success-500));\n /* @cssprop [--vvd-text-area-success-firm=var(--vvd-color-success-600)] */\n --_connotation-color-firm: var(--vvd-text-area-success-firm, var(--vvd-color-success-600));\n /* @cssprop [--vvd-text-area-success-faint=var(--vvd-color-success-50)] */\n --_connotation-color-faint: var(--vvd-text-area-success-faint, var(--vvd-color-success-50));\n /* @cssprop [--vvd-text-area-success-soft=var(--vvd-color-success-100)] */\n --_connotation-color-soft: var(--vvd-text-area-success-soft, var(--vvd-color-success-100));\n}\n.base.connotation-alert {\n /* @cssprop [--vvd-text-area-alert-primary=var(--vvd-color-alert-500)] */\n --_connotation-color-primary: var(--vvd-text-area-alert-primary, var(--vvd-color-alert-500));\n /* @cssprop [--vvd-text-area-alert-backdrop=var(--vvd-color-alert-50)] */\n --_connotation-color-backdrop: var(--vvd-text-area-alert-backdrop, var(--vvd-color-alert-50));\n /* @cssprop [--vvd-text-area-alert-intermediate=var(--vvd-color-alert-500)] */\n --_connotation-color-intermediate: var(--vvd-text-area-alert-intermediate, var(--vvd-color-alert-500));\n /* @cssprop [--vvd-text-area-alert-firm=var(--vvd-color-alert-600)] */\n --_connotation-color-firm: var(--vvd-text-area-alert-firm, var(--vvd-color-alert-600));\n /* @cssprop [--vvd-text-area-alert-faint=var(--vvd-color-alert-50)] */\n --_connotation-color-faint: var(--vvd-text-area-alert-faint, var(--vvd-color-alert-50));\n /* @cssprop [--vvd-text-area-alert-soft=var(--vvd-color-alert-100)] */\n --_connotation-color-soft: var(--vvd-text-area-alert-soft, var(--vvd-color-alert-100));\n}\n.base:not(.connotation-success, .connotation-alert) {\n /* @cssprop [--vvd-text-area-accent-primary=var(--vvd-color-canvas-text)] */\n --_connotation-color-primary: var(--vvd-text-area-accent-primary, var(--vvd-color-canvas-text));\n /* @cssprop [--vvd-text-area-accent-backdrop=var(--vvd-color-canvas)] */\n --_connotation-color-backdrop: var(--vvd-text-area-accent-backdrop, var(--vvd-color-canvas));\n /* @cssprop [--vvd-text-area-accent-intermediate=var(--vvd-color-neutral-500)] */\n --_connotation-color-intermediate: var(--vvd-text-area-accent-intermediate, var(--vvd-color-neutral-500));\n /* @cssprop [--vvd-text-area-accent-firm=var(--vvd-color-canvas-text)] */\n --_connotation-color-firm: var(--vvd-text-area-accent-firm, var(--vvd-color-canvas-text));\n /* @cssprop [--vvd-text-area-accent-faint=var(--vvd-color-neutral-50)] */\n --_connotation-color-faint: var(--vvd-text-area-accent-faint, var(--vvd-color-neutral-50));\n /* @cssprop [--vvd-text-area-accent-soft=var(--vvd-color-neutral-100)] */\n --_connotation-color-soft: var(--vvd-text-area-accent-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 cursor: not-allowed;\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/2;\n grid-row: 1;\n line-height: 20px;\n}\n\n.char-count {\n color: var(--_low-ink-color);\n font: var(--vvd-typography-base);\n grid-column: 2/-1;\n}\n\n.control {\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: 6px;\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 grid-column: 1/-1;\n min-block-size: calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density, 0), 2)));\n resize: none;\n transition: box-shadow 0.2s, background-color 0.2s, color 0.2s;\n}\n.control:disabled {\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.control:focus {\n outline: 2px solid var(--focus-stroke-color, currentColor);\n outline-offset: -2px;\n}\n:host([resize=both]) .control {\n resize: both;\n}\n:host([resize=horizontal]) .control {\n resize: horizontal;\n}\n:host([resize=vertical]) .control {\n resize: vertical;\n}";
191
+
15
192
  var __defProp = Object.defineProperty;
16
193
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
17
194
  var __decorateClass = (decorators, target, key, kind) => {
@@ -23,56 +200,25 @@ var __decorateClass = (decorators, target, key, kind) => {
23
200
  __defProp(target, key, result);
24
201
  return result;
25
202
  };
26
- let TextField = class extends TextField$1 {
203
+ let TextArea = class extends TextArea$1 {
27
204
  };
28
205
  __decorateClass([
29
206
  attr
30
- ], TextField.prototype, "appearance", 2);
31
- __decorateClass([
32
- attr
33
- ], TextField.prototype, "shape", 2);
34
- __decorateClass([
35
- attr
36
- ], TextField.prototype, "autoComplete", 2);
37
- __decorateClass([
38
- observable
39
- ], TextField.prototype, "actionItemsSlottedContent", 2);
40
- __decorateClass([
41
- observable
42
- ], TextField.prototype, "leadingActionItemsSlottedContent", 2);
43
- TextField = __decorateClass([
207
+ ], TextArea.prototype, "wrap", 2);
208
+ TextArea = __decorateClass([
44
209
  errorText,
45
210
  formElements
46
- ], TextField);
47
- applyMixins(TextField, AffixIcon, FormElementCharCount, FormElementHelperText, FormElementSuccessText);
211
+ ], TextArea);
212
+ applyMixins(TextArea, FormElementCharCount, FormElementHelperText, FormElementSuccessText);
48
213
 
49
- const getStateClasses = ({
50
- errorValidationMessage,
51
- disabled,
52
- value,
53
- readOnly,
54
- placeholder,
55
- appearance,
56
- shape,
57
- label,
58
- successText,
59
- actionItemsSlottedContent,
60
- leadingActionItemsSlottedContent,
61
- icon
62
- }) => classNames(
63
- ["error connotation-alert", Boolean(errorValidationMessage)],
64
- ["disabled", disabled],
65
- ["has-value", Boolean(value)],
214
+ const getClasses = ({ value, errorValidationMessage, disabled, placeholder, readOnly, successText }) => classNames(
215
+ "base",
66
216
  ["readonly", readOnly],
67
217
  ["placeholder", Boolean(placeholder)],
68
- [`appearance-${appearance}`, Boolean(appearance)],
69
- [`shape-${shape}`, Boolean(shape)],
70
- ["no-label", !label],
71
- ["has-icon", !!icon],
72
- ["success connotation-success", Boolean(successText)],
73
- ["action-items", !!actionItemsSlottedContent?.length],
74
- ["leading-action-items", !!leadingActionItemsSlottedContent?.length],
75
- ["no-leading", !(leadingActionItemsSlottedContent?.length || icon)]
218
+ ["disabled", disabled],
219
+ ["error connotation-alert", Boolean(errorValidationMessage)],
220
+ ["has-value", Boolean(value)],
221
+ ["success connotation-success", !!successText]
76
222
  );
77
223
  function renderLabel() {
78
224
  return html`
@@ -85,82 +231,64 @@ function renderCharCount() {
85
231
  <span class="char-count">${(x) => x.value ? x.value.length : 0} / ${(x) => x.maxlength}</span>
86
232
  `;
87
233
  }
88
- const TextfieldTemplate = (context) => {
89
- const affixIconTemplate = affixIconTemplateFactory(context);
90
- const focusTemplate = focusTemplateFactory(context);
234
+ const TextAreaTemplate = (context) => {
91
235
  return html`
92
- <div class="base ${getStateClasses}">
93
- ${when((x) => x.charCount && x.maxlength, renderCharCount())}
94
- ${when((x) => x.label, renderLabel())}
95
- <div class="fieldset">
96
- <div class="leading-items-wrapper">
97
- <slot name="leading-action-items" ${slotted("leadingActionItemsSlottedContent")}></slot>
98
- ${(x) => affixIconTemplate(x.icon)}
99
- </div>
100
-
101
- <div class="wrapper">
102
- <input class="control"
103
- id="control"
104
- @input="${(x) => x.handleTextInput()}"
105
- @change="${(x) => x.handleChange()}"
106
- ?autofocus="${(x) => x.autofocus}"
107
- ?disabled="${(x) => x.disabled}"
108
- list="${(x) => x.list}"
109
- maxlength="${(x) => x.maxlength}"
110
- minlength="${(x) => x.minlength}"
111
- pattern="${(x) => x.pattern}"
112
- placeholder="${(x) => x.placeholder}"
113
- ?readonly="${(x) => x.readOnly}"
114
- ?required="${(x) => x.required}"
115
- size="${(x) => x.size}"
116
- autocomplete="${(x) => x.autoComplete}"
117
- name="${(x) => x.name}"
118
- ?spellcheck="${(x) => x.spellcheck}"
119
- :value="${(x) => x.value}"
120
- type="${(x) => x.type}"
121
- aria-atomic="${(x) => x.ariaAtomic}"
122
- aria-busy="${(x) => x.ariaBusy}"
123
- aria-controls="${(x) => x.ariaControls}"
124
- aria-current="${(x) => x.ariaCurrent}"
125
- aria-describedby="${(x) => x.ariaDescribedby}"
126
- aria-details="${(x) => x.ariaDetails}"
127
- aria-disabled="${(x) => x.ariaDisabled}"
128
- aria-errormessage="${(x) => x.ariaErrormessage}"
129
- aria-flowto="${(x) => x.ariaFlowto}"
130
- aria-haspopup="${(x) => x.ariaHaspopup}"
131
- aria-hidden="${(x) => x.ariaHidden}"
132
- aria-invalid="${(x) => x.ariaInvalid}"
133
- aria-keyshortcuts="${(x) => x.ariaKeyshortcuts}"
134
- aria-label="${(x) => x.ariaLabel}"
135
- aria-labelledby="${(x) => x.ariaLabelledby}"
136
- aria-live="${(x) => x.ariaLive}"
137
- aria-owns="${(x) => x.ariaOwns}"
138
- aria-relevant="${(x) => x.ariaRelevant}"
139
- aria-roledescription="${(x) => x.ariaRoledescription}"
140
- ${ref("control")}
141
- />
142
- ${() => focusTemplate}
143
- </div>
144
- <div class="action-items-wrapper">
145
- <slot name="action-items" ${slotted("actionItemsSlottedContent")}></slot>
146
- </div>
147
-
148
- </div>
149
- ${when((x) => !x.successText && !x.errorValidationMessage && x.helperText?.length, getFeedbackTemplate("helper", context))}
150
- ${when((x) => !x.successText && x.errorValidationMessage, getFeedbackTemplate("error", context))}
151
- ${when((x) => x.successText, getFeedbackTemplate("success", context))}
152
- </div>`;
236
+ <div class="${getClasses}">
237
+ ${when((x) => x.charCount && x.maxlength, renderCharCount())}
238
+ ${when((x) => x.label, renderLabel())}
239
+ <textarea class="control" id="control"
240
+ ?autofocus="${(x) => x.autofocus}"
241
+ placeholder="${(x) => x.placeholder ? x.placeholder : null}"
242
+ name="${(x) => x.name ? x.name : null}"
243
+ maxlength="${(x) => x.maxlength ? x.maxlength : null}"
244
+ rows="${(x) => x.rows ? x.rows : null}"
245
+ cols="${(x) => x.cols ? x.cols : null}"
246
+ wrap="${(x) => x.wrap ? x.wrap : null}"
247
+ ?readonly="${(x) => x.readOnly}"
248
+ ?disabled="${(x) => x.disabled}"
249
+ ?required="${(x) => x.required}"
250
+ ?spellcheck="${(x) => x.spellcheck}"
251
+ :value="${(x) => x.value}"
252
+ aria-atomic="${(x) => x.ariaAtomic}"
253
+ aria-busy="${(x) => x.ariaBusy}"
254
+ aria-controls="${(x) => x.ariaControls}"
255
+ aria-current="${(x) => x.ariaCurrent}"
256
+ aria-describedby="${(x) => x.ariaDescribedby}"
257
+ aria-details="${(x) => x.ariaDetails}"
258
+ aria-disabled="${(x) => x.ariaDisabled}"
259
+ aria-errormessage="${(x) => x.ariaErrormessage}"
260
+ aria-flowto="${(x) => x.ariaFlowto}"
261
+ aria-haspopup="${(x) => x.ariaHaspopup}"
262
+ aria-hidden="${(x) => x.ariaHidden}"
263
+ aria-invalid="${(x) => x.ariaInvalid}"
264
+ aria-keyshortcuts="${(x) => x.ariaKeyshortcuts}"
265
+ aria-label="${(x) => x.ariaLabel}"
266
+ aria-labelledby="${(x) => x.ariaLabelledby}"
267
+ aria-live="${(x) => x.ariaLive}"
268
+ aria-owns="${(x) => x.ariaOwns}"
269
+ aria-relevant="${(x) => x.ariaRelevant}"
270
+ aria-roledescription="${(x) => x.ariaRoledescription}"
271
+ @input="${(x) => x.handleTextInput()}"
272
+ @change="${(x) => x.handleChange()}"
273
+ ${ref("control")}
274
+ >
275
+ </textarea>
276
+ ${when((x) => !x.successText && !x.errorValidationMessage && x.helperText?.length, getFeedbackTemplate("helper", context))}
277
+ ${when((x) => !x.successText && x.errorValidationMessage, getFeedbackTemplate("error", context))}
278
+ ${when((x) => x.successText, getFeedbackTemplate("success", context))}
279
+ </div>
280
+ `;
153
281
  };
154
282
 
155
- const textFieldDefinition = TextField.compose({
156
- baseName: "text-field",
157
- template: TextfieldTemplate,
283
+ const textAreaDefinition = TextArea.compose({
284
+ baseName: "text-area",
285
+ template: TextAreaTemplate,
158
286
  styles,
159
287
  shadowOptions: {
160
288
  delegatesFocus: true
161
289
  }
162
290
  });
163
- const textFieldRegistries = [textFieldDefinition(), ...iconRegistries, ...focusRegistries];
164
- const registerTextField = registerFactory(textFieldRegistries);
291
+ const textAreaRegistries = [textAreaDefinition(), ...iconRegistries, ...focusRegistries];
292
+ const registerTextArea = registerFactory(textAreaRegistries);
165
293
 
166
- export { TextField as T, textFieldRegistries as a, registerTextField as r, textFieldDefinition as t };
294
+ export { textAreaRegistries as a, registerTextArea as r, textAreaDefinition as t };