@vonage/vivid 3.50.1 → 3.52.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 (262) hide show
  1. package/alert/index.cjs +1 -1
  2. package/alert/index.js +1 -1
  3. package/appearance-ui/index.cjs +19 -11
  4. package/appearance-ui/index.js +19 -11
  5. package/audio-player/index.cjs +2 -1
  6. package/audio-player/index.js +2 -1
  7. package/card/index.cjs +1 -1
  8. package/card/index.js +1 -1
  9. package/combobox/index.cjs +2 -5
  10. package/combobox/index.js +2 -5
  11. package/custom-elements.json +1626 -613
  12. package/date-picker/index.cjs +3 -6
  13. package/date-picker/index.js +3 -6
  14. package/date-range-picker/index.cjs +2 -5
  15. package/date-range-picker/index.js +2 -5
  16. package/dialog/index.cjs +1 -1
  17. package/dialog/index.js +1 -1
  18. package/elevation/index.cjs +1 -1
  19. package/elevation/index.js +1 -1
  20. package/file-picker/index.cjs +0 -2
  21. package/file-picker/index.js +0 -2
  22. package/header/index.cjs +1 -1
  23. package/header/index.js +1 -1
  24. package/index.cjs +60 -58
  25. package/index.js +22 -23
  26. package/lib/avatar/definition.d.ts +1 -1
  27. package/lib/button/button.d.ts +8 -0
  28. package/lib/button/definition.d.ts +1 -1
  29. package/lib/calendar-event/definition.d.ts +1 -1
  30. package/lib/components.d.ts +1 -0
  31. package/lib/layout/definition.d.ts +1 -1
  32. package/lib/menu-item/menu-item.d.ts +3 -0
  33. package/lib/range-slider/definition.d.ts +3 -0
  34. package/lib/range-slider/locale.d.ts +4 -0
  35. package/lib/range-slider/range-slider.d.ts +32 -0
  36. package/lib/range-slider/range-slider.form-associated.d.ts +10 -0
  37. package/lib/range-slider/range-slider.template.d.ts +4 -0
  38. package/lib/range-slider/utils/lerp.d.ts +2 -0
  39. package/lib/range-slider/utils/roundToStepValue.d.ts +1 -0
  40. package/lib/slider/slider.template.d.ts +1 -0
  41. package/lib/split-button/definition.d.ts +1 -1
  42. package/listbox/index.cjs +23 -22
  43. package/listbox/index.js +23 -22
  44. package/locales/en-GB.cjs +4 -0
  45. package/locales/en-GB.js +4 -0
  46. package/locales/en-US.cjs +4 -0
  47. package/locales/en-US.js +4 -0
  48. package/locales/ja-JP.cjs +5 -1
  49. package/locales/ja-JP.js +5 -1
  50. package/locales/zh-CN.cjs +4 -0
  51. package/locales/zh-CN.js +4 -0
  52. package/menu/index.cjs +3 -3
  53. package/menu/index.js +3 -3
  54. package/menu-item/index.cjs +2 -2
  55. package/menu-item/index.js +2 -2
  56. package/number-field/index.cjs +0 -2
  57. package/number-field/index.js +0 -2
  58. package/package.json +34 -34
  59. package/popup/index.cjs +2 -2
  60. package/popup/index.js +2 -2
  61. package/range-slider/index.cjs +22 -0
  62. package/range-slider/index.js +20 -0
  63. package/select/index.cjs +3 -3
  64. package/select/index.js +3 -3
  65. package/selectable-box/index.cjs +1 -1
  66. package/selectable-box/index.js +1 -1
  67. package/shared/Reflector.cjs +5 -1
  68. package/shared/Reflector.js +5 -1
  69. package/shared/affix.cjs +11 -4
  70. package/shared/affix.js +12 -4
  71. package/shared/anchored.cjs +26 -1
  72. package/shared/anchored.js +27 -3
  73. package/shared/definition.cjs +8 -3
  74. package/shared/definition.js +8 -3
  75. package/shared/definition10.cjs +5 -5
  76. package/shared/definition10.js +5 -5
  77. package/shared/definition11.cjs +129 -46
  78. package/shared/definition11.js +130 -47
  79. package/shared/definition12.cjs +12 -14
  80. package/shared/definition12.js +12 -14
  81. package/shared/definition13.cjs +118 -75
  82. package/shared/definition13.js +118 -75
  83. package/shared/definition14.cjs +33 -32
  84. package/shared/definition14.js +33 -32
  85. package/shared/definition15.cjs +20 -7
  86. package/shared/definition15.js +20 -7
  87. package/shared/definition16.cjs +37 -42
  88. package/shared/definition16.js +36 -41
  89. package/shared/definition17.cjs +125 -65
  90. package/shared/definition17.js +126 -66
  91. package/shared/definition18.cjs +30 -14
  92. package/shared/definition18.js +30 -14
  93. package/shared/definition19.cjs +116 -80
  94. package/shared/definition19.js +116 -80
  95. package/shared/definition2.cjs +10 -5
  96. package/shared/definition2.js +10 -5
  97. package/shared/definition20.cjs +16 -15
  98. package/shared/definition20.js +16 -15
  99. package/shared/definition21.cjs +6 -10
  100. package/shared/definition21.js +6 -10
  101. package/shared/definition22.cjs +14 -18
  102. package/shared/definition22.js +14 -18
  103. package/shared/definition23.cjs +34 -35
  104. package/shared/definition23.js +34 -35
  105. package/shared/definition24.cjs +116 -69
  106. package/shared/definition24.js +116 -69
  107. package/shared/definition25.cjs +2 -4
  108. package/shared/definition25.js +2 -4
  109. package/shared/definition26.cjs +9 -8
  110. package/shared/definition26.js +9 -8
  111. package/shared/definition27.cjs +7 -5
  112. package/shared/definition27.js +7 -5
  113. package/shared/definition28.cjs +209 -143
  114. package/shared/definition28.js +209 -143
  115. package/shared/definition29.cjs +13 -4
  116. package/shared/definition29.js +13 -4
  117. package/shared/definition3.cjs +7 -10
  118. package/shared/definition3.js +7 -10
  119. package/shared/definition30.cjs +7 -5
  120. package/shared/definition30.js +7 -5
  121. package/shared/definition31.cjs +2 -4
  122. package/shared/definition31.js +2 -4
  123. package/shared/definition32.cjs +1 -3
  124. package/shared/definition32.js +1 -3
  125. package/shared/definition33.cjs +7 -10
  126. package/shared/definition33.js +7 -10
  127. package/shared/definition34.cjs +76 -59
  128. package/shared/definition34.js +76 -59
  129. package/shared/definition35.cjs +19 -20
  130. package/shared/definition35.js +19 -20
  131. package/shared/definition36.cjs +30 -14
  132. package/shared/definition36.js +30 -14
  133. package/shared/definition37.cjs +33 -46
  134. package/shared/definition37.js +33 -46
  135. package/shared/definition38.cjs +31 -33
  136. package/shared/definition38.js +31 -33
  137. package/shared/definition39.cjs +13 -4
  138. package/shared/definition39.js +13 -4
  139. package/shared/definition4.cjs +23 -11
  140. package/shared/definition4.js +23 -11
  141. package/shared/definition40.cjs +19 -14
  142. package/shared/definition40.js +19 -14
  143. package/shared/definition41.cjs +534 -635
  144. package/shared/definition41.js +534 -635
  145. package/shared/definition42.cjs +674 -106
  146. package/shared/definition42.js +673 -105
  147. package/shared/definition43.cjs +122 -79
  148. package/shared/definition43.js +120 -77
  149. package/shared/definition44.cjs +72 -567
  150. package/shared/definition44.js +71 -565
  151. package/shared/definition45.cjs +520 -118
  152. package/shared/definition45.js +518 -117
  153. package/shared/definition46.cjs +117 -130
  154. package/shared/definition46.js +116 -129
  155. package/shared/definition47.cjs +152 -18
  156. package/shared/definition47.js +151 -17
  157. package/shared/definition48.cjs +20 -77
  158. package/shared/definition48.js +19 -76
  159. package/shared/definition49.cjs +52 -495
  160. package/shared/definition49.js +51 -494
  161. package/shared/definition5.cjs +20 -17
  162. package/shared/definition5.js +20 -17
  163. package/shared/definition50.cjs +525 -24
  164. package/shared/definition50.js +524 -23
  165. package/shared/definition51.cjs +28 -119
  166. package/shared/definition51.js +26 -118
  167. package/shared/definition52.cjs +113 -266
  168. package/shared/definition52.js +113 -265
  169. package/shared/definition53.cjs +285 -245
  170. package/shared/definition53.js +285 -245
  171. package/shared/definition54.cjs +285 -751
  172. package/shared/definition54.js +284 -750
  173. package/shared/definition55.cjs +828 -95
  174. package/shared/definition55.js +827 -94
  175. package/shared/definition56.cjs +127 -76
  176. package/shared/definition56.js +127 -76
  177. package/shared/definition57.cjs +125 -71
  178. package/shared/definition57.js +124 -70
  179. package/shared/definition58.cjs +73 -287
  180. package/shared/definition58.js +74 -288
  181. package/shared/definition59.cjs +298 -40
  182. package/shared/definition59.js +297 -39
  183. package/shared/definition6.cjs +3 -4
  184. package/shared/definition6.js +3 -4
  185. package/shared/definition60.cjs +24 -1784
  186. package/shared/definition60.js +23 -1783
  187. package/shared/definition61.cjs +1819 -11
  188. package/shared/definition61.js +1818 -11
  189. package/shared/definition7.cjs +7 -5
  190. package/shared/definition7.js +7 -5
  191. package/shared/definition8.cjs +25 -18
  192. package/shared/definition8.js +25 -18
  193. package/shared/definition9.cjs +6 -9
  194. package/shared/definition9.js +6 -9
  195. package/shared/icon.cjs +7 -2
  196. package/shared/icon.js +7 -2
  197. package/shared/index2.cjs +1 -1
  198. package/shared/index2.js +1 -1
  199. package/shared/key-codes2.cjs +8 -0
  200. package/shared/key-codes2.js +5 -1
  201. package/shared/localization/Locale.d.ts +2 -0
  202. package/shared/patterns/anchored.d.ts +4 -0
  203. package/shared/patterns/index.d.ts +0 -1
  204. package/shared/presentationDate.cjs +126 -78
  205. package/shared/presentationDate.js +126 -78
  206. package/shared/slider.template.cjs +71 -0
  207. package/shared/slider.template.js +67 -0
  208. package/shared/text-anchor.template.cjs +30 -35
  209. package/shared/text-anchor.template.js +30 -35
  210. package/shared/text-field.cjs +1 -1
  211. package/shared/text-field.js +1 -1
  212. package/side-drawer/index.cjs +1 -1
  213. package/side-drawer/index.js +1 -1
  214. package/slider/index.cjs +2 -1
  215. package/slider/index.js +2 -1
  216. package/split-button/index.cjs +1 -1
  217. package/split-button/index.js +1 -1
  218. package/styles/core/all.css +1 -1
  219. package/styles/core/theme.css +1 -1
  220. package/styles/core/typography.css +1 -1
  221. package/styles/fonts/spezia-variable.css +39 -13
  222. package/styles/tokens/theme-dark.css +4 -4
  223. package/styles/tokens/theme-light.css +4 -4
  224. package/styles/tokens/vivid-2-compat.css +4 -2
  225. package/switch/index.cjs +1 -1
  226. package/switch/index.js +1 -1
  227. package/tab/index.cjs +1 -1
  228. package/tab/index.js +1 -1
  229. package/tab-panel/index.cjs +1 -1
  230. package/tab-panel/index.js +1 -1
  231. package/tabs/index.cjs +3 -3
  232. package/tabs/index.js +3 -3
  233. package/tag/index.cjs +1 -1
  234. package/tag/index.js +1 -1
  235. package/tag-group/index.cjs +1 -1
  236. package/tag-group/index.js +1 -1
  237. package/text-area/index.cjs +1 -1
  238. package/text-area/index.js +1 -1
  239. package/text-field/index.cjs +1 -4
  240. package/text-field/index.js +1 -4
  241. package/time-picker/index.cjs +4 -7
  242. package/time-picker/index.js +4 -7
  243. package/toggletip/index.cjs +3 -3
  244. package/toggletip/index.js +3 -3
  245. package/tooltip/index.cjs +3 -3
  246. package/tooltip/index.js +3 -3
  247. package/tree-item/index.cjs +1 -1
  248. package/tree-item/index.js +1 -1
  249. package/tree-view/index.cjs +1 -1
  250. package/tree-view/index.js +1 -1
  251. package/vivid.api.json +117 -1
  252. package/focus/index.cjs +0 -7
  253. package/focus/index.js +0 -5
  254. package/lib/focus/definition.d.ts +0 -3
  255. package/lib/focus/focus.d.ts +0 -3
  256. package/lib/focus/focus.template.d.ts +0 -4
  257. package/lib/popup/popup.d.ts +0 -21
  258. package/shared/focus.cjs +0 -8
  259. package/shared/focus.js +0 -6
  260. package/shared/focus2.cjs +0 -11
  261. package/shared/focus2.js +0 -9
  262. package/shared/patterns/focus.d.ts +0 -3
@@ -1,86 +1,195 @@
1
1
  'use strict';
2
2
 
3
3
  const index = require('./index.cjs');
4
- const definition$1 = require('./definition61.cjs');
5
4
  const definition = require('./definition26.cjs');
6
- const affix = require('./affix.cjs');
5
+ require('./affix.cjs');
7
6
  const index$1 = require('./index2.cjs');
8
7
  const Reflector = require('./Reflector.cjs');
9
- const icon = require('./icon.cjs');
10
8
  const textField = require('./text-field2.cjs');
11
9
  const applyMixins = require('./apply-mixins.cjs');
12
- const textField$1 = require('./text-field.cjs');
13
- const focus = require('./focus2.cjs');
10
+ const formAssociated = require('./form-associated.cjs');
14
11
  const when = require('./when.cjs');
15
- const slotted = require('./slotted.cjs');
12
+ const ref = require('./ref.cjs');
16
13
  const classNames = require('./class-names.cjs');
17
14
 
18
- // Unique ID creation requires a high quality random # generator. In the browser we therefore
19
- // require the crypto API and do not support built-in fallback to lower quality random number
20
- // generators (like Math.random()).
21
- let getRandomValues;
22
- const rnds8 = new Uint8Array(16);
23
- function rng() {
24
- // lazy load so that environments that need to polyfill have a chance to do so
25
- if (!getRandomValues) {
26
- // getRandomValues needs to be invoked in a context where "this" is a Crypto implementation.
27
- getRandomValues = typeof crypto !== 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto);
28
-
29
- if (!getRandomValues) {
30
- throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');
31
- }
32
- }
33
-
34
- return getRandomValues(rnds8);
15
+ class _TextArea extends index.FoundationElement {
35
16
  }
36
-
37
17
  /**
38
- * Convert array of 16 byte values to UUID string format of the form:
39
- * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
18
+ * A form-associated base class for the {@link @microsoft/fast-foundation#(TextArea:class)} component.
19
+ *
20
+ * @internal
40
21
  */
41
-
42
- const byteToHex = [];
43
-
44
- for (let i = 0; i < 256; ++i) {
45
- byteToHex.push((i + 0x100).toString(16).slice(1));
46
- }
47
-
48
- function unsafeStringify(arr, offset = 0) {
49
- // Note: Be careful editing this code! It's been tuned for performance
50
- // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434
51
- return byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]];
22
+ class FormAssociatedTextArea extends formAssociated.FormAssociated(_TextArea) {
23
+ constructor() {
24
+ super(...arguments);
25
+ this.proxy = document.createElement("textarea");
26
+ }
52
27
  }
53
28
 
54
- const randomUUID = typeof crypto !== 'undefined' && crypto.randomUUID && crypto.randomUUID.bind(crypto);
55
- const native = {
56
- randomUUID
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",
57
50
  };
58
51
 
59
- function v4(options, buf, offset) {
60
- if (native.randomUUID && !buf && !options) {
61
- return native.randomUUID();
62
- }
63
-
64
- options = options || {};
65
- const rnds = options.random || (options.rng || rng)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`
66
-
67
- rnds[6] = rnds[6] & 0x0f | 0x40;
68
- rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided
69
-
70
- if (buf) {
71
- offset = offset || 0;
72
-
73
- for (let i = 0; i < 16; ++i) {
74
- buf[offset + i] = rnds[i];
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
+ let TextArea$1 = class TextArea 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
+ };
75
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
+ index.__decorate([
152
+ index.attr({ mode: "boolean" })
153
+ ], TextArea$1.prototype, "readOnly", void 0);
154
+ index.__decorate([
155
+ index.attr
156
+ ], TextArea$1.prototype, "resize", void 0);
157
+ index.__decorate([
158
+ index.attr({ mode: "boolean" })
159
+ ], TextArea$1.prototype, "autofocus", void 0);
160
+ index.__decorate([
161
+ index.attr({ attribute: "form" })
162
+ ], TextArea$1.prototype, "formId", void 0);
163
+ index.__decorate([
164
+ index.attr
165
+ ], TextArea$1.prototype, "list", void 0);
166
+ index.__decorate([
167
+ index.attr({ converter: index.nullableNumberConverter })
168
+ ], TextArea$1.prototype, "maxlength", void 0);
169
+ index.__decorate([
170
+ index.attr({ converter: index.nullableNumberConverter })
171
+ ], TextArea$1.prototype, "minlength", void 0);
172
+ index.__decorate([
173
+ index.attr
174
+ ], TextArea$1.prototype, "name", void 0);
175
+ index.__decorate([
176
+ index.attr
177
+ ], TextArea$1.prototype, "placeholder", void 0);
178
+ index.__decorate([
179
+ index.attr({ converter: index.nullableNumberConverter, mode: "fromView" })
180
+ ], TextArea$1.prototype, "cols", void 0);
181
+ index.__decorate([
182
+ index.attr({ converter: index.nullableNumberConverter, mode: "fromView" })
183
+ ], TextArea$1.prototype, "rows", void 0);
184
+ index.__decorate([
185
+ index.attr({ mode: "boolean" })
186
+ ], TextArea$1.prototype, "spellcheck", void 0);
187
+ index.__decorate([
188
+ index.observable
189
+ ], TextArea$1.prototype, "defaultSlottedNodes", void 0);
190
+ applyMixins.applyMixins(TextArea$1, textField.DelegatesARIATextbox);
76
191
 
77
- return buf;
78
- }
79
-
80
- return unsafeStringify(rnds);
81
- }
82
-
83
- const generateRandomId = () => v4();
192
+ const styles = ":host{display:inline-block}.base{display:inline-grid;grid-template-columns:1fr max-content;inline-size:100%;row-gap:4px}.base{--_appearance-color-text: var(--vvd-color-canvas-text);--_appearance-color-fill: var(--vvd-color-canvas);--_appearance-color-outline: var(--_connotation-color-intermediate)}.base.appearance-ghost{--_appearance-color-text: var(--_connotation-color-primary);--_appearance-color-fill: transparent;--_appearance-color-outline: transparent}.base:where(.hover,:hover):where(:not(.disabled,:disabled,.readonly)){--_appearance-color-text: var(--vvd-color-canvas-text);--_appearance-color-fill: var(--vvd-color-canvas);--_appearance-color-outline: var(--_connotation-color-fierce)}.base:where(.hover,:hover):where(:not(.disabled,:disabled,.readonly)).appearance-ghost{--_appearance-color-text: var(--_connotation-color-primary);--_appearance-color-fill: var(--_connotation-color-faint);--_appearance-color-outline: transparent}.base:where(.disabled,:disabled){--_appearance-color-text: var(--vvd-color-neutral-300);--_appearance-color-fill: var(--vvd-color-neutral-100);--_appearance-color-outline: var(--vvd-color-neutral-300)}.base:where(.disabled,:disabled).appearance-ghost{--_appearance-color-text: var(--vvd-color-neutral-300);--_appearance-color-fill: transparent;--_appearance-color-outline: transparent}.base:where(.readonly):where(:not(.disabled,:disabled)){--_appearance-color-text: var(--vvd-color-canvas-text);--_appearance-color-fill: var(--vvd-color-neutral-200);--_appearance-color-outline: var(--vvd-color-neutral-400)}.base:where(.readonly):where(:not(.disabled,:disabled)).appearance-ghost{--_appearance-color-text: var(--vvd-color-neutral-600);--_appearance-color-fill: transparent;--_appearance-color-outline: transparent}.base:where(.error):where(:not(.disabled,:disabled)){--_appearance-color-text: notSet;--_appearance-color-fill: var(--vvd-color-alert-50);--_appearance-color-outline: var(--vvd-color-alert-500)}.base:where(.error):where(:not(.disabled,:disabled)).appearance-ghost{--_appearance-color-text: notSet;--_appearance-color-fill: var(--vvd-color-alert-50);--_appearance-color-outline: transparent}.base:where(.success):where(:not(.disabled,:disabled)){--_appearance-color-text: notSet;--_appearance-color-fill: var(--vvd-color-success-50);--_appearance-color-outline: var(--vvd-color-success-500)}.base:where(.success):where(:not(.disabled,:disabled)).appearance-ghost{--_appearance-color-text: notSet;--_appearance-color-fill: var(--vvd-color-success-50);--_appearance-color-outline: transparent}.base.connotation-success{--_connotation-color-primary: var(--vvd-text-area-success-primary, var(--vvd-color-success-500));--_connotation-color-primary-text: var(--vvd-text-area-success-primary-text, var(--vvd-color-canvas));--_connotation-color-primary-increment: var(--vvd-text-area-success-primary-increment, var(--vvd-color-success-600));--_connotation-color-intermediate: var(--vvd-text-area-success-intermediate, var(--vvd-color-success-500));--_connotation-color-firm: var(--vvd-text-area-success-firm, var(--vvd-color-success-600));--_connotation-color-fierce: var(--vvd-text-area-success-fierce, var(--vvd-color-success-700));--_connotation-color-faint: var(--vvd-text-area-success-faint, var(--vvd-color-success-50));--_connotation-color-soft: var(--vvd-text-area-success-soft, var(--vvd-color-success-100))}.base.connotation-alert{--_connotation-color-primary: var(--vvd-text-area-alert-primary, var(--vvd-color-alert-500));--_connotation-color-primary-text: var(--vvd-text-area-alert-primary-text, var(--vvd-color-canvas));--_connotation-color-primary-increment: var(--vvd-text-area-alert-primary-increment, var(--vvd-color-alert-600));--_connotation-color-intermediate: var(--vvd-text-area-alert-intermediate, var(--vvd-color-alert-500));--_connotation-color-firm: var(--vvd-text-area-alert-firm, var(--vvd-color-alert-600));--_connotation-color-fierce: var(--vvd-text-area-alert-fierce, var(--vvd-color-alert-700));--_connotation-color-faint: var(--vvd-text-area-alert-faint, var(--vvd-color-alert-50));--_connotation-color-soft: var(--vvd-text-area-alert-soft, var(--vvd-color-alert-100))}.base:not(.connotation-success,.connotation-alert){--_connotation-color-primary: var(--vvd-text-area-accent-primary, var(--vvd-color-canvas-text));--_connotation-color-primary-text: var(--vvd-text-area-accent-primary-text, var(--vvd-color-canvas));--_connotation-color-primary-increment: var(--vvd-text-area-accent-primary-increment, var(--vvd-color-neutral-800));--_connotation-color-intermediate: var(--vvd-text-area-accent-intermediate, var(--vvd-color-neutral-500));--_connotation-color-firm: var(--vvd-text-area-accent-firm, var(--vvd-color-canvas-text));--_connotation-color-fierce: var(--vvd-text-area-accent-fierce, var(--vvd-color-neutral-700));--_connotation-color-faint: var(--vvd-text-area-accent-faint, var(--vvd-color-neutral-50));--_connotation-color-soft: var(--vvd-text-area-accent-soft, var(--vvd-color-neutral-100))}@supports (user-select: none){.base{user-select:none}}.base:not(.disabled){--_low-ink-color: var(--vvd-color-neutral-600)}.base.disabled{--_low-ink-color: var(--_appearance-color-text);cursor:not-allowed}.label{color:var(--vvd-color-canvas-text);contain:inline-size;font:var(--vvd-typography-base);grid-column:1/2;grid-row:1;line-height:20px}.char-count{color:var(--_low-ink-color);font:var(--vvd-typography-base);grid-column:2/-1}.control{padding:8px 16px;border:0 none;border-radius:8px;appearance:none;background-color:var(--_appearance-color-fill);box-shadow:inset 0 0 0 1px var(--_appearance-color-outline);color:var(--_appearance-color-text);font:var(--vvd-typography-base);grid-column:1/-1;min-block-size:calc(1px*(40 + 4*clamp(-1,var(--vvd-size-density, 0),2)));resize:none;transition:box-shadow .2s,background-color .2s,color .2s}@supports selector(::-webkit-resizer){.control::-webkit-resizer{background-image:linear-gradient(315deg,transparent 0,transparent 2px,var(--vvd-color-canvas-text) 2px,var(--vvd-color-canvas-text) 3px,transparent 3px,transparent 5px,var(--vvd-color-canvas-text) 5px,var(--vvd-color-canvas-text) 6px,transparent 6px,transparent 8px,transparent 100%);background-repeat:no-repeat;background-size:10px 10px;block-size:10px;inline-size:10px}}.control:disabled{opacity:1;pointer-events:none;-webkit-text-fill-color:var(--_appearance-color-text)}.control::placeholder,.control:disabled::placeholder{opacity:1;pointer-events:none;-webkit-text-fill-color:var(--_low-ink-color)}.control:focus-visible{--focus-stroke-gap-color: transparent;box-shadow:inset 0 0 0 3px var(--focus-stroke-gap-color, currentColor);outline:2px solid var(--focus-stroke-color, var(--vvd-color-canvas-text));outline-offset:calc(-2px - var(--focus-inset, 0px))}:host([resize=both]) .control{resize:both}:host([resize=horizontal]) .control{resize:horizontal}:host([resize=vertical]) .control{resize:vertical}\n";
84
193
 
85
194
  var __defProp = Object.defineProperty;
86
195
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
@@ -93,217 +202,148 @@ var __decorateClass = (decorators, target, key, kind) => {
93
202
  __defProp(target, key, result);
94
203
  return result;
95
204
  };
96
- const safariWorkaroundClassName = "_vvd-3-text-field-safari-workaround";
97
- const getSafariWorkaroundStyleSheet = icon.memoizeWith(() => "", () => {
98
- const styleSheet = new CSSStyleSheet();
99
- const supportsReplaceSync = "replaceSync" in styleSheet;
100
- if (supportsReplaceSync) {
101
- styleSheet.replaceSync(`
102
- .${safariWorkaroundClassName}::placeholder {
103
- opacity: 1 !important;
104
- -webkit-text-fill-color: var(--_low-ink-color) !important;
105
- }`);
106
- }
107
- return styleSheet;
108
- });
109
- const installSafariWorkaroundStyle = (forElement) => {
110
- const root = forElement.getRootNode();
111
- const workaroundStyleSheet = getSafariWorkaroundStyleSheet();
112
- const supportsAdoptedStyleSheets = "adoptedStyleSheets" in root;
113
- if (!supportsAdoptedStyleSheets) {
114
- return;
115
- }
116
- if (!root.adoptedStyleSheets.includes(workaroundStyleSheet)) {
117
- root.adoptedStyleSheets = [...root.adoptedStyleSheets, workaroundStyleSheet];
118
- }
205
+ var __accessCheck = (obj, member, msg) => {
206
+ if (!member.has(obj))
207
+ throw TypeError("Cannot " + msg);
208
+ };
209
+ var __privateGet = (obj, member, getter) => {
210
+ __accessCheck(obj, member, "read from private field");
211
+ return getter ? getter.call(obj) : member.get(obj);
212
+ };
213
+ var __privateAdd = (obj, member, value) => {
214
+ if (member.has(obj))
215
+ throw TypeError("Cannot add the same private member more than once");
216
+ member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
119
217
  };
120
- exports.TextField = class TextField extends textField.TextField {
218
+ var __privateSet = (obj, member, value, setter) => {
219
+ __accessCheck(obj, member, "write to private field");
220
+ setter ? setter.call(obj, value) : member.set(obj, value);
221
+ return value;
222
+ };
223
+ var _reflectToTextArea;
224
+ let TextArea = class extends TextArea$1 {
121
225
  constructor() {
122
226
  super(...arguments);
123
- /**
124
- * @internal
125
- */
126
- this._labelEl = null;
127
- }
128
- /**
129
- * @internal
130
- */
131
- labelChanged() {
132
- if (this._labelEl) {
133
- this.#handleLabelChange(this._labelEl);
134
- }
135
- }
136
- #handleLabelChange(labelEl) {
137
- if (!this.label) {
138
- labelEl.remove();
139
- } else {
140
- labelEl.textContent = this.label;
141
- if (!labelEl.isConnected) {
142
- this.appendChild(labelEl);
143
- }
144
- }
227
+ __privateAdd(this, _reflectToTextArea, void 0);
145
228
  }
146
- #reflectToInput;
147
229
  connectedCallback() {
148
230
  super.connectedCallback();
149
- if (!this.control) {
150
- const uniqueId = this.id || generateRandomId();
151
- const controlId = `vvd-text-field-control-${uniqueId}`;
152
- const input = document.createElement("input");
153
- input.slot = "_control";
154
- input.id = controlId;
155
- input.className = safariWorkaroundClassName;
156
- this.control = input;
157
- this.#reflectToInput = new Reflector.Reflector(this, input);
158
- this.#reflectToInput.booleanAttribute("autofocus", "autofocus");
159
- this.#reflectToInput.booleanAttribute("disabled", "disabled");
160
- this.#reflectToInput.booleanAttribute("readOnly", "readonly");
161
- this.#reflectToInput.booleanAttribute("required", "required");
162
- this.#reflectToInput.booleanAttribute("spellcheck", "spellcheck");
163
- this.#reflectToInput.attribute("list", "list");
164
- this.#reflectToInput.attribute("maxlength", "maxlength");
165
- this.#reflectToInput.attribute("minlength", "minlength");
166
- this.#reflectToInput.attribute("pattern", "pattern");
167
- this.#reflectToInput.attribute("placeholder", "placeholder");
168
- this.#reflectToInput.attribute("size", "size");
169
- this.#reflectToInput.attribute("autoComplete", "autocomplete");
170
- this.#reflectToInput.attribute("type", "type");
171
- this.#reflectToInput.attribute("ariaAtomic", "aria-atomic");
172
- this.#reflectToInput.attribute("ariaBusy", "aria-busy");
173
- this.#reflectToInput.attribute("ariaCurrent", "aria-current");
174
- this.#reflectToInput.attribute("ariaDetails", "aria-details");
175
- this.#reflectToInput.attribute("ariaDisabled", "aria-disabled");
176
- this.#reflectToInput.attribute("ariaHaspopup", "aria-haspopup");
177
- this.#reflectToInput.attribute("ariaHidden", "aria-hidden");
178
- this.#reflectToInput.attribute("ariaInvalid", "aria-invalid");
179
- this.#reflectToInput.attribute("ariaKeyshortcuts", "aria-keyshortcuts");
180
- this.#reflectToInput.attribute("ariaLabel", "aria-label");
181
- this.#reflectToInput.attribute("ariaLive", "aria-live");
182
- this.#reflectToInput.attribute("ariaRelevant", "aria-relevant");
183
- this.#reflectToInput.attribute("ariaRoledescription", "aria-roledescription");
184
- this.#reflectToInput.property("value", "value", true);
185
- input.addEventListener("input", () => {
186
- this.handleTextInput();
187
- });
188
- input.addEventListener("change", () => {
189
- this.handleChange();
190
- });
191
- input.addEventListener("blur", () => {
192
- this.$emit("blur", void 0, { bubbles: false });
193
- });
194
- input.addEventListener("focus", () => {
195
- this.$emit("focus", void 0, { bubbles: false });
196
- });
197
- this.appendChild(input);
198
- const label = document.createElement("label");
199
- label.slot = "_label";
200
- label.htmlFor = controlId;
201
- this._labelEl = label;
202
- this.#handleLabelChange(label);
203
- installSafariWorkaroundStyle(this);
204
- }
231
+ __privateSet(this, _reflectToTextArea, new Reflector.Reflector(this, this.control));
232
+ __privateGet(this, _reflectToTextArea).property("value", "value", true);
205
233
  }
206
234
  disconnectedCallback() {
207
235
  super.disconnectedCallback();
208
- this.#reflectToInput.destroy();
209
- }
210
- focus() {
211
- this.control?.focus();
236
+ __privateGet(this, _reflectToTextArea).destroy();
212
237
  }
213
238
  };
239
+ _reflectToTextArea = new WeakMap();
214
240
  __decorateClass([
215
241
  index.attr
216
- ], exports.TextField.prototype, "appearance", 2);
217
- __decorateClass([
218
- index.attr
219
- ], exports.TextField.prototype, "shape", 2);
220
- __decorateClass([
221
- index.attr
222
- ], exports.TextField.prototype, "autoComplete", 2);
223
- __decorateClass([
224
- index.observable
225
- ], exports.TextField.prototype, "actionItemsSlottedContent", 2);
226
- __decorateClass([
227
- index.observable
228
- ], exports.TextField.prototype, "leadingActionItemsSlottedContent", 2);
229
- exports.TextField = __decorateClass([
242
+ ], TextArea.prototype, "wrap", 2);
243
+ TextArea = __decorateClass([
230
244
  index$1.errorText,
231
245
  index$1.formElements
232
- ], exports.TextField);
233
- applyMixins.applyMixins(exports.TextField, affix.AffixIcon, index$1.FormElementCharCount, index$1.FormElementHelperText, index$1.FormElementSuccessText);
246
+ ], TextArea);
247
+ applyMixins.applyMixins(
248
+ TextArea,
249
+ index$1.FormElementCharCount,
250
+ index$1.FormElementHelperText,
251
+ index$1.FormElementSuccessText
252
+ );
234
253
 
235
- const getStateClasses = ({
254
+ const getClasses = ({
255
+ value,
236
256
  errorValidationMessage,
237
257
  disabled,
238
- value,
239
- readOnly,
240
258
  placeholder,
241
- appearance,
242
- shape,
243
- label,
244
- successText,
245
- actionItemsSlottedContent,
246
- leadingActionItemsSlottedContent,
247
- icon
259
+ readOnly,
260
+ successText
248
261
  }) => classNames.classNames(
249
- ["error", Boolean(errorValidationMessage)],
250
- ["disabled", disabled],
251
- ["has-value", Boolean(value)],
262
+ "base",
252
263
  ["readonly", readOnly],
253
264
  ["placeholder", Boolean(placeholder)],
254
- [`appearance-${appearance}`, Boolean(appearance)],
255
- [`shape-${shape}`, Boolean(shape)],
256
- ["no-label", !label],
257
- ["has-icon", !!icon],
258
- ["success", Boolean(successText)],
259
- ["action-items", !!actionItemsSlottedContent?.length],
260
- ["leading-action-items", !!leadingActionItemsSlottedContent?.length],
261
- ["no-leading", !(leadingActionItemsSlottedContent?.length || icon)]
265
+ ["disabled", disabled],
266
+ ["error", Boolean(errorValidationMessage)],
267
+ ["has-value", Boolean(value)],
268
+ ["success", !!successText]
262
269
  );
270
+ function renderLabel() {
271
+ return index.html` <label for="control" class="label">
272
+ ${(x) => x.label}
273
+ </label>`;
274
+ }
263
275
  function renderCharCount() {
264
276
  return index.html`
265
- <span class="char-count">${(x) => x.value ? x.value.length : 0} / ${(x) => x.maxlength}</span>
277
+ <span class="char-count"
278
+ >${(x) => x.value ? x.value.length : 0} / ${(x) => x.maxlength}</span
279
+ >
266
280
  `;
267
281
  }
268
- const TextfieldTemplate = (context) => {
269
- const affixIconTemplate = affix.affixIconTemplateFactory(context);
270
- const focusTemplate = focus.focusTemplateFactory(context);
282
+ const TextAreaTemplate = (context) => {
271
283
  return index.html`
272
- <div class="base ${getStateClasses}">
273
- ${when.when((x) => x.charCount && x.maxlength, renderCharCount())}
274
- <slot class="label" name="_label"></slot>
275
- <div class="fieldset">
276
- <div class="leading-items-wrapper">
277
- <slot name="leading-action-items" ${slotted.slotted("leadingActionItemsSlottedContent")}></slot>
278
- ${(x) => affixIconTemplate(x.icon)}
279
- </div>
280
-
281
- <div class="wrapper">
282
- <slot class="control" name="_control"></slot>
283
- ${() => focusTemplate}
284
- </div>
285
- <div class="action-items-wrapper">
286
- <slot name="action-items" ${slotted.slotted("actionItemsSlottedContent")}></slot>
287
- </div>
288
-
289
- </div>
290
- ${when.when((x) => !x.successText && !x.errorValidationMessage && x.helperText?.length, index$1.getFeedbackTemplate("helper", context))}
291
- ${when.when((x) => !x.successText && x.errorValidationMessage, index$1.getFeedbackTemplate("error", context))}
292
- ${when.when((x) => x.successText, index$1.getFeedbackTemplate("success", context))}
293
- </div>`;
284
+ <div class="${getClasses}">
285
+ ${when.when((x) => x.charCount && x.maxlength, renderCharCount())}
286
+ ${when.when((x) => x.label, renderLabel())}
287
+ <textarea
288
+ class="control"
289
+ id="control"
290
+ ?autofocus="${(x) => x.autofocus}"
291
+ placeholder="${(x) => x.placeholder ? x.placeholder : null}"
292
+ name="${(x) => x.name ? x.name : null}"
293
+ minlength="${(x) => x.minlength ? x.minlength : null}"
294
+ maxlength="${(x) => x.maxlength ? x.maxlength : null}"
295
+ rows="${(x) => x.rows ? x.rows : null}"
296
+ cols="${(x) => x.cols ? x.cols : null}"
297
+ wrap="${(x) => x.wrap ? x.wrap : null}"
298
+ ?readonly="${(x) => x.readOnly}"
299
+ ?disabled="${(x) => x.disabled}"
300
+ ?required="${(x) => x.required}"
301
+ ?spellcheck="${(x) => x.spellcheck}"
302
+ aria-atomic="${(x) => x.ariaAtomic}"
303
+ aria-busy="${(x) => x.ariaBusy}"
304
+ aria-current="${(x) => x.ariaCurrent}"
305
+ aria-details="${(x) => x.ariaDetails}"
306
+ aria-disabled="${(x) => x.ariaDisabled}"
307
+ aria-errormessage="${(x) => x.ariaErrormessage}"
308
+ aria-haspopup="${(x) => x.ariaHaspopup}"
309
+ aria-hidden="${(x) => x.ariaHidden}"
310
+ aria-invalid="${(x) => x.ariaInvalid}"
311
+ aria-keyshortcuts="${(x) => x.ariaKeyshortcuts}"
312
+ aria-label="${(x) => x.ariaLabel}"
313
+ aria-live="${(x) => x.ariaLive}"
314
+ aria-relevant="${(x) => x.ariaRelevant}"
315
+ aria-roledescription="${(x) => x.ariaRoledescription}"
316
+ @input="${(x) => x.handleTextInput()}"
317
+ @change="${(x) => x.handleChange()}"
318
+ ${ref.ref("control")}
319
+ >
320
+ </textarea>
321
+ ${when.when(
322
+ (x) => !x.successText && !x.errorValidationMessage && x.helperText?.length,
323
+ index$1.getFeedbackTemplate("helper", context)
324
+ )}
325
+ ${when.when(
326
+ (x) => !x.successText && x.errorValidationMessage,
327
+ index$1.getFeedbackTemplate("error", context)
328
+ )}
329
+ ${when.when((x) => x.successText, index$1.getFeedbackTemplate("success", context))}
330
+ </div>
331
+ `;
294
332
  };
295
333
 
296
- const textFieldDefinition = exports.TextField.compose({
297
- baseName: "text-field",
298
- template: TextfieldTemplate,
299
- styles: textField$1.styles,
300
- shadowOptions: {
301
- delegatesFocus: true
334
+ const textAreaDefinition = TextArea.compose(
335
+ {
336
+ baseName: "text-area",
337
+ template: TextAreaTemplate,
338
+ styles,
339
+ shadowOptions: {
340
+ delegatesFocus: true
341
+ }
302
342
  }
303
- });
304
- const textFieldRegistries = [textFieldDefinition(), ...definition.iconRegistries, ...definition$1.focusRegistries];
305
- const registerTextField = index.registerFactory(textFieldRegistries);
343
+ );
344
+ const textAreaRegistries = [textAreaDefinition(), ...definition.iconRegistries];
345
+ const registerTextArea = index.registerFactory(textAreaRegistries);
306
346
 
307
- exports.registerTextField = registerTextField;
308
- exports.textFieldDefinition = textFieldDefinition;
309
- exports.textFieldRegistries = textFieldRegistries;
347
+ exports.registerTextArea = registerTextArea;
348
+ exports.textAreaDefinition = textAreaDefinition;
349
+ exports.textAreaRegistries = textAreaRegistries;