@vonage/vivid 3.51.0 → 3.53.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 (340) hide show
  1. package/README.md +1 -1
  2. package/accordion/index.cjs +1 -1
  3. package/accordion/index.js +1 -1
  4. package/accordion-item/index.cjs +1 -1
  5. package/accordion-item/index.js +1 -1
  6. package/alert/index.cjs +3 -3
  7. package/alert/index.js +3 -3
  8. package/appearance-ui/index.cjs +19 -11
  9. package/appearance-ui/index.js +19 -11
  10. package/audio-player/index.cjs +4 -3
  11. package/audio-player/index.js +4 -3
  12. package/avatar/index.cjs +1 -1
  13. package/avatar/index.js +1 -1
  14. package/badge/index.cjs +1 -1
  15. package/badge/index.js +1 -1
  16. package/banner/index.cjs +2 -2
  17. package/banner/index.js +2 -2
  18. package/breadcrumb-item/index.cjs +1 -1
  19. package/breadcrumb-item/index.js +1 -1
  20. package/button/index.cjs +2 -2
  21. package/button/index.js +2 -2
  22. package/card/index.cjs +2 -2
  23. package/card/index.js +2 -2
  24. package/checkbox/index.cjs +3 -2
  25. package/checkbox/index.js +3 -2
  26. package/combobox/index.cjs +5 -8
  27. package/combobox/index.js +5 -8
  28. package/custom-elements.json +2310 -769
  29. package/data-grid/index.cjs +1 -1
  30. package/data-grid/index.js +1 -1
  31. package/date-picker/index.cjs +7 -9
  32. package/date-picker/index.js +7 -9
  33. package/date-range-picker/index.cjs +7 -9
  34. package/date-range-picker/index.js +7 -9
  35. package/dial-pad/index.cjs +33 -0
  36. package/dial-pad/index.js +31 -0
  37. package/dialog/index.cjs +4 -4
  38. package/dialog/index.js +4 -4
  39. package/divider/index.cjs +1 -1
  40. package/divider/index.js +1 -1
  41. package/elevation/index.cjs +1 -1
  42. package/elevation/index.js +1 -1
  43. package/empty-state/index.cjs +2 -2
  44. package/empty-state/index.js +2 -2
  45. package/fab/index.cjs +2 -2
  46. package/fab/index.js +2 -2
  47. package/file-picker/index.cjs +4 -5
  48. package/file-picker/index.js +4 -5
  49. package/header/index.cjs +2 -2
  50. package/header/index.js +2 -2
  51. package/icon/index.cjs +1 -1
  52. package/icon/index.js +1 -1
  53. package/index.cjs +135 -123
  54. package/index.js +48 -46
  55. package/layout/index.cjs +1 -1
  56. package/layout/index.js +1 -1
  57. package/lib/avatar/definition.d.ts +1 -1
  58. package/lib/button/button.d.ts +1 -0
  59. package/lib/button/definition.d.ts +1 -1
  60. package/lib/calendar-event/definition.d.ts +1 -1
  61. package/lib/components.d.ts +3 -0
  62. package/lib/dial-pad/definition.d.ts +3 -0
  63. package/lib/dial-pad/dial-pad.d.ts +14 -0
  64. package/lib/dial-pad/dial-pad.template.d.ts +4 -0
  65. package/lib/dial-pad/locale.d.ts +18 -0
  66. package/lib/enums.d.ts +6 -0
  67. package/lib/layout/definition.d.ts +1 -1
  68. package/lib/menu-item/menu-item.d.ts +3 -0
  69. package/lib/range-slider/definition.d.ts +3 -0
  70. package/lib/range-slider/locale.d.ts +4 -0
  71. package/lib/range-slider/range-slider.d.ts +32 -0
  72. package/lib/range-slider/range-slider.form-associated.d.ts +10 -0
  73. package/lib/range-slider/range-slider.template.d.ts +4 -0
  74. package/lib/range-slider/utils/lerp.d.ts +2 -0
  75. package/lib/range-slider/utils/roundToStepValue.d.ts +1 -0
  76. package/lib/slider/slider.template.d.ts +1 -0
  77. package/lib/split-button/definition.d.ts +1 -1
  78. package/lib/text-anchor/definition.d.ts +1 -0
  79. package/lib/text-anchor/text-anchor.d.ts +5 -0
  80. package/lib/video-player/definition.d.ts +3 -0
  81. package/lib/video-player/locale.d.ts +1 -0
  82. package/lib/video-player/video-player.d.ts +17 -0
  83. package/lib/video-player/video-player.template.d.ts +4 -0
  84. package/listbox/index.cjs +25 -24
  85. package/listbox/index.js +25 -24
  86. package/locales/en-GB.cjs +34 -0
  87. package/locales/en-GB.js +34 -0
  88. package/locales/en-US.cjs +202 -0
  89. package/locales/en-US.js +202 -0
  90. package/locales/ja-JP.cjs +202 -1
  91. package/locales/ja-JP.js +202 -1
  92. package/locales/zh-CN.cjs +203 -0
  93. package/locales/zh-CN.js +203 -0
  94. package/menu/index.cjs +7 -7
  95. package/menu/index.js +7 -7
  96. package/menu-item/index.cjs +4 -4
  97. package/menu-item/index.js +4 -4
  98. package/nav/index.cjs +1 -1
  99. package/nav/index.js +1 -1
  100. package/nav-disclosure/index.cjs +2 -2
  101. package/nav-disclosure/index.js +2 -2
  102. package/nav-item/index.cjs +2 -2
  103. package/nav-item/index.js +2 -2
  104. package/note/index.cjs +2 -2
  105. package/note/index.js +2 -2
  106. package/number-field/index.cjs +5 -6
  107. package/number-field/index.js +5 -6
  108. package/option/index.cjs +2 -2
  109. package/option/index.js +2 -2
  110. package/package.json +34 -34
  111. package/pagination/index.cjs +3 -3
  112. package/pagination/index.js +3 -3
  113. package/popup/index.cjs +4 -4
  114. package/popup/index.js +4 -4
  115. package/progress/index.cjs +1 -1
  116. package/progress/index.js +1 -1
  117. package/progress-ring/index.cjs +1 -1
  118. package/progress-ring/index.js +1 -1
  119. package/radio/index.cjs +1 -1
  120. package/radio/index.js +1 -1
  121. package/radio-group/index.cjs +1 -1
  122. package/radio-group/index.js +1 -1
  123. package/range-slider/index.cjs +22 -0
  124. package/range-slider/index.js +20 -0
  125. package/select/index.cjs +7 -6
  126. package/select/index.js +7 -6
  127. package/selectable-box/index.cjs +5 -4
  128. package/selectable-box/index.js +5 -4
  129. package/shared/Reflector.cjs +5 -1
  130. package/shared/Reflector.js +5 -1
  131. package/shared/affix.cjs +11 -4
  132. package/shared/affix.js +12 -4
  133. package/shared/anchored.cjs +8 -2
  134. package/shared/anchored.js +8 -2
  135. package/shared/applyMixinsWithObservables.cjs +15 -0
  136. package/shared/applyMixinsWithObservables.js +13 -0
  137. package/shared/definition.cjs +9 -4
  138. package/shared/definition.js +9 -4
  139. package/shared/definition10.cjs +5 -5
  140. package/shared/definition10.js +5 -5
  141. package/shared/definition11.cjs +77 -49
  142. package/shared/definition11.js +78 -50
  143. package/shared/definition12.cjs +12 -14
  144. package/shared/definition12.js +12 -14
  145. package/shared/definition13.cjs +118 -75
  146. package/shared/definition13.js +118 -75
  147. package/shared/definition14.cjs +34 -33
  148. package/shared/definition14.js +34 -33
  149. package/shared/definition15.cjs +24 -12
  150. package/shared/definition15.js +24 -12
  151. package/shared/definition16.cjs +38 -43
  152. package/shared/definition16.js +38 -43
  153. package/shared/definition17.cjs +126 -66
  154. package/shared/definition17.js +127 -67
  155. package/shared/definition18.cjs +31 -15
  156. package/shared/definition18.js +31 -15
  157. package/shared/definition19.cjs +117 -81
  158. package/shared/definition19.js +117 -81
  159. package/shared/definition2.cjs +10 -5
  160. package/shared/definition2.js +10 -5
  161. package/shared/definition20.cjs +187 -227
  162. package/shared/definition20.js +183 -223
  163. package/shared/definition21.cjs +262 -69
  164. package/shared/definition21.js +261 -67
  165. package/shared/definition22.cjs +66 -61
  166. package/shared/definition22.js +64 -60
  167. package/shared/definition23.cjs +42 -77
  168. package/shared/definition23.js +41 -76
  169. package/shared/definition24.cjs +65 -2350
  170. package/shared/definition24.js +64 -2349
  171. package/shared/definition25.cjs +2402 -48
  172. package/shared/definition25.js +2401 -47
  173. package/shared/definition26.cjs +62 -28
  174. package/shared/definition26.js +61 -27
  175. package/shared/definition27.cjs +28 -54
  176. package/shared/definition27.js +27 -53
  177. package/shared/definition28.cjs +39 -819
  178. package/shared/definition28.js +38 -817
  179. package/shared/definition29.cjs +893 -54
  180. package/shared/definition29.js +893 -55
  181. package/shared/definition3.cjs +7 -10
  182. package/shared/definition3.js +7 -10
  183. package/shared/definition30.cjs +69 -85
  184. package/shared/definition30.js +68 -84
  185. package/shared/definition31.cjs +86 -23
  186. package/shared/definition31.js +86 -23
  187. package/shared/definition32.cjs +24 -14
  188. package/shared/definition32.js +23 -13
  189. package/shared/definition33.cjs +11 -53
  190. package/shared/definition33.js +10 -52
  191. package/shared/definition34.cjs +28 -500
  192. package/shared/definition34.js +28 -500
  193. package/shared/definition35.cjs +447 -194
  194. package/shared/definition35.js +447 -192
  195. package/shared/definition36.cjs +258 -188
  196. package/shared/definition36.js +255 -187
  197. package/shared/definition37.cjs +204 -78
  198. package/shared/definition37.js +203 -76
  199. package/shared/definition38.cjs +55 -51
  200. package/shared/definition38.js +52 -49
  201. package/shared/definition39.cjs +65 -423
  202. package/shared/definition39.js +64 -422
  203. package/shared/definition4.cjs +24 -12
  204. package/shared/definition4.js +24 -12
  205. package/shared/definition40.cjs +447 -35
  206. package/shared/definition40.js +444 -32
  207. package/shared/definition41.cjs +35 -678
  208. package/shared/definition41.js +34 -677
  209. package/shared/definition42.cjs +544 -99
  210. package/shared/definition42.js +543 -98
  211. package/shared/definition43.cjs +696 -77
  212. package/shared/definition43.js +695 -76
  213. package/shared/definition44.cjs +113 -563
  214. package/shared/definition44.js +112 -561
  215. package/shared/definition45.cjs +77 -117
  216. package/shared/definition45.js +75 -115
  217. package/shared/definition46.cjs +474 -86
  218. package/shared/definition46.js +474 -87
  219. package/shared/definition47.cjs +140 -23
  220. package/shared/definition47.js +139 -22
  221. package/shared/definition48.cjs +132 -57
  222. package/shared/definition48.js +131 -56
  223. package/shared/definition49.cjs +18 -524
  224. package/shared/definition49.js +17 -523
  225. package/shared/definition5.cjs +20 -17
  226. package/shared/definition5.js +20 -17
  227. package/shared/definition50.cjs +73 -25
  228. package/shared/definition50.js +72 -24
  229. package/shared/definition51.cjs +506 -99
  230. package/shared/definition51.js +505 -99
  231. package/shared/definition52.cjs +29 -277
  232. package/shared/definition52.js +28 -276
  233. package/shared/definition53.cjs +97 -256
  234. package/shared/definition53.js +97 -255
  235. package/shared/definition54.cjs +287 -769
  236. package/shared/definition54.js +287 -769
  237. package/shared/definition55.cjs +305 -105
  238. package/shared/definition55.js +304 -104
  239. package/shared/definition56.cjs +841 -81
  240. package/shared/definition56.js +840 -80
  241. package/shared/definition57.cjs +153 -69
  242. package/shared/definition57.js +152 -68
  243. package/shared/definition58.cjs +138 -299
  244. package/shared/definition58.js +137 -298
  245. package/shared/definition59.cjs +72 -27
  246. package/shared/definition59.js +71 -26
  247. package/shared/definition6.cjs +4 -5
  248. package/shared/definition6.js +4 -5
  249. package/shared/definition60.cjs +279 -1780
  250. package/shared/definition60.js +278 -1779
  251. package/shared/definition61.cjs +65870 -11
  252. package/shared/definition61.js +65869 -11
  253. package/shared/definition62.cjs +50 -0
  254. package/shared/definition62.js +46 -0
  255. package/shared/definition63.cjs +1828 -0
  256. package/shared/definition63.js +1824 -0
  257. package/shared/definition7.cjs +8 -6
  258. package/shared/definition7.js +8 -6
  259. package/shared/definition8.cjs +27 -20
  260. package/shared/definition8.js +27 -20
  261. package/shared/definition9.cjs +7 -10
  262. package/shared/definition9.js +7 -10
  263. package/shared/enums.cjs +8 -0
  264. package/shared/enums.js +8 -1
  265. package/shared/icon.cjs +7 -2
  266. package/shared/icon.js +7 -2
  267. package/shared/index2.cjs +67 -38
  268. package/shared/index2.js +67 -38
  269. package/shared/key-codes2.cjs +8 -0
  270. package/shared/key-codes2.js +5 -1
  271. package/shared/listbox.cjs +1 -1
  272. package/shared/listbox.js +1 -1
  273. package/shared/localization/Locale.d.ts +6 -0
  274. package/shared/patterns/form-elements/form-elements.d.ts +2 -3
  275. package/shared/patterns/index.d.ts +0 -1
  276. package/shared/presentationDate.cjs +140 -81
  277. package/shared/presentationDate.js +140 -81
  278. package/shared/slider.template.cjs +71 -0
  279. package/shared/slider.template.js +67 -0
  280. package/shared/text-anchor.cjs +6 -0
  281. package/shared/text-anchor.js +6 -0
  282. package/shared/text-anchor.template.cjs +33 -33
  283. package/shared/text-anchor.template.js +33 -33
  284. package/shared/text-field.cjs +1 -1
  285. package/shared/text-field.js +1 -1
  286. package/shared/utils/applyMixinsWithObservables.d.ts +1 -0
  287. package/side-drawer/index.cjs +1 -1
  288. package/side-drawer/index.js +1 -1
  289. package/slider/index.cjs +2 -1
  290. package/slider/index.js +2 -1
  291. package/split-button/index.cjs +2 -2
  292. package/split-button/index.js +2 -2
  293. package/style.css +1 -0
  294. package/styles/core/all.css +1 -1
  295. package/styles/core/theme.css +1 -1
  296. package/styles/core/typography.css +1 -1
  297. package/styles/fonts/spezia-variable.css +39 -13
  298. package/styles/tokens/theme-dark.css +4 -4
  299. package/styles/tokens/theme-light.css +4 -4
  300. package/styles/tokens/vivid-2-compat.css +4 -2
  301. package/switch/index.cjs +2 -2
  302. package/switch/index.js +2 -2
  303. package/tab/index.cjs +2 -2
  304. package/tab/index.js +2 -2
  305. package/tab-panel/index.cjs +1 -1
  306. package/tab-panel/index.js +1 -1
  307. package/tabs/index.cjs +4 -4
  308. package/tabs/index.js +4 -4
  309. package/tag/index.cjs +2 -2
  310. package/tag/index.js +2 -2
  311. package/tag-group/index.cjs +1 -1
  312. package/tag-group/index.js +1 -1
  313. package/text-area/index.cjs +4 -3
  314. package/text-area/index.js +4 -3
  315. package/text-field/index.cjs +4 -6
  316. package/text-field/index.js +4 -6
  317. package/time-picker/index.cjs +8 -10
  318. package/time-picker/index.js +8 -10
  319. package/toggletip/index.cjs +5 -5
  320. package/toggletip/index.js +5 -5
  321. package/tooltip/index.cjs +5 -5
  322. package/tooltip/index.js +5 -5
  323. package/tree-item/index.cjs +2 -2
  324. package/tree-item/index.js +2 -2
  325. package/tree-view/index.cjs +1 -1
  326. package/tree-view/index.js +1 -1
  327. package/video-player/index.cjs +17 -0
  328. package/video-player/index.js +15 -0
  329. package/vivid.api.json +428 -1
  330. package/focus/index.cjs +0 -7
  331. package/focus/index.js +0 -5
  332. package/lib/focus/definition.d.ts +0 -3
  333. package/lib/focus/focus.d.ts +0 -3
  334. package/lib/focus/focus.template.d.ts +0 -4
  335. package/lib/popup/popup.d.ts +0 -21
  336. package/shared/focus.cjs +0 -8
  337. package/shared/focus.js +0 -6
  338. package/shared/focus2.cjs +0 -11
  339. package/shared/focus2.js +0 -9
  340. package/shared/patterns/focus.d.ts +0 -3
@@ -1,12 +1,84 @@
1
1
  'use strict';
2
2
 
3
3
  const index = require('./index.cjs');
4
- const definition = require('./definition60.cjs');
5
- const anchored = require('./anchored.cjs');
4
+ const definition = require('./definition27.cjs');
5
+ const affix = require('./affix.cjs');
6
+ const index$1 = require('./index2.cjs');
7
+ const Reflector = require('./Reflector.cjs');
8
+ const applyMixinsWithObservables = require('./applyMixinsWithObservables.cjs');
9
+ const icon = require('./icon.cjs');
10
+ const textField = require('./text-field2.cjs');
11
+ const textField$1 = require('./text-field.cjs');
6
12
  const when = require('./when.cjs');
13
+ const slotted = require('./slotted.cjs');
7
14
  const classNames = require('./class-names.cjs');
8
15
 
9
- const styles = ":host{display:var(--_popup-display, inline)}:host([slotted-anchor]){--_popup-display: contents}.content-wrapper{width:var(--toggletip-inline-size, auto);padding:16px}.headline{font:var(--vvd-typography-base-bold)}.action-items{display:flex;justify-content:flex-end;gap:10px}::slotted([slot=action-items]){margin-block-start:16px}\n";
16
+ // Unique ID creation requires a high quality random # generator. In the browser we therefore
17
+ // require the crypto API and do not support built-in fallback to lower quality random number
18
+ // generators (like Math.random()).
19
+ let getRandomValues;
20
+ const rnds8 = new Uint8Array(16);
21
+ function rng() {
22
+ // lazy load so that environments that need to polyfill have a chance to do so
23
+ if (!getRandomValues) {
24
+ // getRandomValues needs to be invoked in a context where "this" is a Crypto implementation.
25
+ getRandomValues = typeof crypto !== 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto);
26
+
27
+ if (!getRandomValues) {
28
+ throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');
29
+ }
30
+ }
31
+
32
+ return getRandomValues(rnds8);
33
+ }
34
+
35
+ /**
36
+ * Convert array of 16 byte values to UUID string format of the form:
37
+ * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
38
+ */
39
+
40
+ const byteToHex = [];
41
+
42
+ for (let i = 0; i < 256; ++i) {
43
+ byteToHex.push((i + 0x100).toString(16).slice(1));
44
+ }
45
+
46
+ function unsafeStringify(arr, offset = 0) {
47
+ // Note: Be careful editing this code! It's been tuned for performance
48
+ // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434
49
+ 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]];
50
+ }
51
+
52
+ const randomUUID = typeof crypto !== 'undefined' && crypto.randomUUID && crypto.randomUUID.bind(crypto);
53
+ const native = {
54
+ randomUUID
55
+ };
56
+
57
+ function v4(options, buf, offset) {
58
+ if (native.randomUUID && !buf && !options) {
59
+ return native.randomUUID();
60
+ }
61
+
62
+ options = options || {};
63
+ const rnds = options.random || (options.rng || rng)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`
64
+
65
+ rnds[6] = rnds[6] & 0x0f | 0x40;
66
+ rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided
67
+
68
+ if (buf) {
69
+ offset = offset || 0;
70
+
71
+ for (let i = 0; i < 16; ++i) {
72
+ buf[offset + i] = rnds[i];
73
+ }
74
+
75
+ return buf;
76
+ }
77
+
78
+ return unsafeStringify(rnds);
79
+ }
80
+
81
+ const generateRandomId = () => v4();
10
82
 
11
83
  var __defProp = Object.defineProperty;
12
84
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
@@ -19,132 +91,260 @@ var __decorateClass = (decorators, target, key, kind) => {
19
91
  __defProp(target, key, result);
20
92
  return result;
21
93
  };
22
- let Toggletip = class extends index.FoundationElement {
94
+ var __accessCheck = (obj, member, msg) => {
95
+ if (!member.has(obj))
96
+ throw TypeError("Cannot " + msg);
97
+ };
98
+ var __privateGet = (obj, member, getter) => {
99
+ __accessCheck(obj, member, "read from private field");
100
+ return getter ? getter.call(obj) : member.get(obj);
101
+ };
102
+ var __privateAdd = (obj, member, value) => {
103
+ if (member.has(obj))
104
+ throw TypeError("Cannot add the same private member more than once");
105
+ member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
106
+ };
107
+ var __privateSet = (obj, member, value, setter) => {
108
+ __accessCheck(obj, member, "write to private field");
109
+ setter ? setter.call(obj, value) : member.set(obj, value);
110
+ return value;
111
+ };
112
+ var __privateMethod = (obj, member, method) => {
113
+ __accessCheck(obj, member, "access private method");
114
+ return method;
115
+ };
116
+ var _handleLabelChange, handleLabelChange_fn, _reflectToInput;
117
+ const safariWorkaroundClassName = "_vvd-3-text-field-safari-workaround";
118
+ const getSafariWorkaroundStyleSheet = icon.memoizeWith(
119
+ () => "",
120
+ () => {
121
+ const styleSheet = new CSSStyleSheet();
122
+ const supportsReplaceSync = "replaceSync" in styleSheet;
123
+ if (supportsReplaceSync) {
124
+ styleSheet.replaceSync(`
125
+ .${safariWorkaroundClassName}::placeholder {
126
+ opacity: 1 !important;
127
+ -webkit-text-fill-color: var(--_low-ink-color) !important;
128
+ }`);
129
+ }
130
+ return styleSheet;
131
+ }
132
+ );
133
+ const installSafariWorkaroundStyle = (forElement) => {
134
+ const root = forElement.getRootNode();
135
+ const workaroundStyleSheet = getSafariWorkaroundStyleSheet();
136
+ const supportsAdoptedStyleSheets = "adoptedStyleSheets" in root;
137
+ if (!supportsAdoptedStyleSheets) {
138
+ return;
139
+ }
140
+ if (!root.adoptedStyleSheets.includes(workaroundStyleSheet)) {
141
+ root.adoptedStyleSheets = [
142
+ ...root.adoptedStyleSheets,
143
+ workaroundStyleSheet
144
+ ];
145
+ }
146
+ };
147
+ exports.TextField = class TextField extends textField.TextField {
23
148
  constructor() {
24
149
  super(...arguments);
25
- this.#ANCHOR_ARIA_LABEL_SUFFIX = " ; Show more information";
26
- this.alternate = false;
27
- this.placement = "right";
28
- this.open = false;
29
- this.#openIfClosed = () => {
30
- if (!this.open)
31
- index.DOM.queueUpdate(() => this.open = true);
32
- };
33
- this.#closeOnClickOutside = (e) => {
34
- const clickedOutside = !this.contains(e.target);
35
- const clickedOnAnchor = this._anchorEl?.contains(e.target);
36
- if (clickedOutside || clickedOnAnchor)
37
- this.open = false;
38
- };
39
- this.#closeOnEscape = (e) => {
40
- if (e.key === "Escape")
41
- this.open = false;
42
- };
150
+ __privateAdd(this, _handleLabelChange);
151
+ /**
152
+ * @internal
153
+ */
154
+ this._labelEl = null;
155
+ __privateAdd(this, _reflectToInput, void 0);
43
156
  }
44
- #ANCHOR_ARIA_LABEL_SUFFIX;
45
- openChanged(oldValue, newValue) {
46
- if (oldValue === void 0)
47
- return;
48
- if (newValue) {
49
- this.setAttribute("role", "status");
50
- } else {
51
- this.removeAttribute("role");
52
- }
53
- this.#updateListeners();
54
- if (this._anchorEl) {
55
- this.#updateAnchor(this._anchorEl);
157
+ /**
158
+ * @internal
159
+ */
160
+ labelChanged() {
161
+ if (this._labelEl) {
162
+ __privateMethod(this, _handleLabelChange, handleLabelChange_fn).call(this, this._labelEl);
56
163
  }
57
164
  }
58
165
  connectedCallback() {
59
166
  super.connectedCallback();
60
- this.#updateListeners();
167
+ if (!this.control) {
168
+ const uniqueId = this.id || generateRandomId();
169
+ const controlId = `vvd-text-field-control-${uniqueId}`;
170
+ const input = document.createElement("input");
171
+ input.slot = "_control";
172
+ input.id = controlId;
173
+ input.className = safariWorkaroundClassName;
174
+ this.control = input;
175
+ __privateSet(this, _reflectToInput, new Reflector.Reflector(this, input));
176
+ __privateGet(this, _reflectToInput).booleanAttribute("autofocus", "autofocus");
177
+ __privateGet(this, _reflectToInput).booleanAttribute("disabled", "disabled");
178
+ __privateGet(this, _reflectToInput).booleanAttribute("readOnly", "readonly");
179
+ __privateGet(this, _reflectToInput).booleanAttribute("required", "required");
180
+ __privateGet(this, _reflectToInput).booleanAttribute("spellcheck", "spellcheck");
181
+ __privateGet(this, _reflectToInput).attribute("list", "list");
182
+ __privateGet(this, _reflectToInput).attribute("maxlength", "maxlength");
183
+ __privateGet(this, _reflectToInput).attribute("minlength", "minlength");
184
+ __privateGet(this, _reflectToInput).attribute("pattern", "pattern");
185
+ __privateGet(this, _reflectToInput).attribute("placeholder", "placeholder");
186
+ __privateGet(this, _reflectToInput).attribute("size", "size");
187
+ __privateGet(this, _reflectToInput).attribute("autoComplete", "autocomplete");
188
+ __privateGet(this, _reflectToInput).attribute("type", "type");
189
+ __privateGet(this, _reflectToInput).attribute("ariaAtomic", "aria-atomic");
190
+ __privateGet(this, _reflectToInput).attribute("ariaBusy", "aria-busy");
191
+ __privateGet(this, _reflectToInput).attribute("ariaCurrent", "aria-current");
192
+ __privateGet(this, _reflectToInput).attribute("ariaDetails", "aria-details");
193
+ __privateGet(this, _reflectToInput).attribute("ariaDisabled", "aria-disabled");
194
+ __privateGet(this, _reflectToInput).attribute("ariaHaspopup", "aria-haspopup");
195
+ __privateGet(this, _reflectToInput).attribute("ariaHidden", "aria-hidden");
196
+ __privateGet(this, _reflectToInput).attribute("ariaInvalid", "aria-invalid");
197
+ __privateGet(this, _reflectToInput).attribute("ariaKeyshortcuts", "aria-keyshortcuts");
198
+ __privateGet(this, _reflectToInput).attribute("ariaLabel", "aria-label");
199
+ __privateGet(this, _reflectToInput).attribute("ariaLive", "aria-live");
200
+ __privateGet(this, _reflectToInput).attribute("ariaRelevant", "aria-relevant");
201
+ __privateGet(this, _reflectToInput).attribute(
202
+ "ariaRoledescription",
203
+ "aria-roledescription"
204
+ );
205
+ __privateGet(this, _reflectToInput).property("value", "value", true);
206
+ input.addEventListener("input", () => {
207
+ this.handleTextInput();
208
+ });
209
+ input.addEventListener("change", () => {
210
+ this.handleChange();
211
+ });
212
+ input.addEventListener("blur", () => {
213
+ this.$emit("blur", void 0, { bubbles: false });
214
+ });
215
+ input.addEventListener("focus", () => {
216
+ this.$emit("focus", void 0, { bubbles: false });
217
+ });
218
+ this.appendChild(input);
219
+ const label = document.createElement("label");
220
+ label.slot = "_label";
221
+ label.htmlFor = controlId;
222
+ this._labelEl = label;
223
+ __privateMethod(this, _handleLabelChange, handleLabelChange_fn).call(this, label);
224
+ installSafariWorkaroundStyle(this);
225
+ }
61
226
  }
62
227
  disconnectedCallback() {
63
228
  super.disconnectedCallback();
64
- this.#updateListeners();
65
- }
66
- /**
67
- * @internal
68
- */
69
- _anchorElChanged(oldValue, newValue) {
70
- if (oldValue)
71
- this.#cleanupAnchor(oldValue);
72
- if (newValue)
73
- this.#setupAnchor(newValue);
229
+ __privateGet(this, _reflectToInput).destroy();
74
230
  }
75
- #setupAnchor(a) {
76
- a.addEventListener("click", this.#openIfClosed, true);
77
- a.ariaLabel = (a.ariaLabel ?? "") + this.#ANCHOR_ARIA_LABEL_SUFFIX;
78
- this.#updateAnchor(a);
231
+ focus() {
232
+ this.control?.focus();
79
233
  }
80
- #updateAnchor(a) {
81
- a.setAttribute("aria-expanded", this.open.toString());
82
- }
83
- #cleanupAnchor(a) {
84
- a.removeEventListener("click", this.#openIfClosed, true);
85
- if (a.ariaLabel)
86
- a.ariaLabel = a.ariaLabel.replace(this.#ANCHOR_ARIA_LABEL_SUFFIX, "");
87
- }
88
- #openIfClosed;
89
- #updateListeners() {
90
- document.removeEventListener("click", this.#closeOnClickOutside);
91
- document.removeEventListener("keydown", this.#closeOnEscape);
92
- if (this.open && this.isConnected) {
93
- document.addEventListener("click", this.#closeOnClickOutside);
94
- document.addEventListener("keydown", this.#closeOnEscape);
234
+ };
235
+ _handleLabelChange = new WeakSet();
236
+ handleLabelChange_fn = function(labelEl) {
237
+ if (!this.label) {
238
+ labelEl.remove();
239
+ } else {
240
+ labelEl.textContent = this.label;
241
+ if (!labelEl.isConnected) {
242
+ this.appendChild(labelEl);
95
243
  }
96
244
  }
97
- #closeOnClickOutside;
98
- #closeOnEscape;
99
245
  };
246
+ _reflectToInput = new WeakMap();
100
247
  __decorateClass([
101
248
  index.attr
102
- ], Toggletip.prototype, "headline", 2);
249
+ ], exports.TextField.prototype, "appearance", 2);
103
250
  __decorateClass([
104
- index.attr({ mode: "boolean" })
105
- ], Toggletip.prototype, "alternate", 2);
251
+ index.attr
252
+ ], exports.TextField.prototype, "shape", 2);
106
253
  __decorateClass([
107
- index.attr({ mode: "fromView" })
108
- ], Toggletip.prototype, "placement", 2);
254
+ index.attr
255
+ ], exports.TextField.prototype, "autoComplete", 2);
256
+ __decorateClass([
257
+ index.observable
258
+ ], exports.TextField.prototype, "actionItemsSlottedContent", 2);
109
259
  __decorateClass([
110
- index.attr({ mode: "boolean" })
111
- ], Toggletip.prototype, "open", 2);
112
- Toggletip = __decorateClass([
113
- anchored.anchored
114
- ], Toggletip);
115
-
116
- const getClasses = (_) => classNames.classNames("control");
117
- const ToggletipTemplate = (context) => {
118
- const popup = context.tagFor(definition.Popup);
119
- const anchorSlotTemplate = anchored.anchorSlotTemplateFactory();
260
+ index.observable
261
+ ], exports.TextField.prototype, "leadingActionItemsSlottedContent", 2);
262
+ exports.TextField = __decorateClass([
263
+ index$1.errorText,
264
+ index$1.formElements
265
+ ], exports.TextField);
266
+ applyMixinsWithObservables.applyMixinsWithObservables(
267
+ exports.TextField,
268
+ affix.AffixIcon,
269
+ index$1.FormElementCharCount,
270
+ index$1.FormElementHelperText,
271
+ index$1.FormElementSuccessText
272
+ );
273
+
274
+ const getStateClasses = ({
275
+ errorValidationMessage,
276
+ disabled,
277
+ value,
278
+ readOnly,
279
+ placeholder,
280
+ appearance,
281
+ shape,
282
+ label,
283
+ successText,
284
+ actionItemsSlottedContent,
285
+ leadingActionItemsSlottedContent,
286
+ icon
287
+ }) => classNames.classNames(
288
+ ["error", Boolean(errorValidationMessage)],
289
+ ["disabled", disabled],
290
+ ["has-value", Boolean(value)],
291
+ ["readonly", readOnly],
292
+ ["placeholder", Boolean(placeholder)],
293
+ [`appearance-${appearance}`, Boolean(appearance)],
294
+ [`shape-${shape}`, Boolean(shape)],
295
+ ["no-label", !label],
296
+ ["has-icon", !!icon],
297
+ ["success", Boolean(successText)],
298
+ ["action-items", !!actionItemsSlottedContent?.length],
299
+ ["leading-action-items", !!leadingActionItemsSlottedContent?.length],
300
+ ["no-leading", !(leadingActionItemsSlottedContent?.length || icon)]
301
+ );
302
+ function renderCharCount() {
120
303
  return index.html`
121
- ${anchorSlotTemplate}
122
- <${popup}
123
- class="${getClasses}"
124
- arrow
125
- :anchor="${(x) => x._anchorEl}"
126
- :open="${(x) => x.open}"
127
- ?alternate="${(x) => !x.alternate}"
128
- placement="${(x) => x.placement}"
129
- exportparts="vvd-theme-alternate"
304
+ <span class="char-count"
305
+ >${(x) => x.value ? x.value.length : 0} / ${(x) => x.maxlength}</span
130
306
  >
131
- <div class="content-wrapper">
132
- ${when.when((x) => x.headline, index.html`<header class="headline">${(x) => x.headline}</header>`)}
133
- <slot></slot>
134
- <footer class="action-items"><slot name="action-items"></slot></footer>
135
- </div>
136
- </${popup}>
137
307
  `;
308
+ }
309
+ const TextfieldTemplate = (context) => {
310
+ const affixIconTemplate = affix.affixIconTemplateFactory(context);
311
+ return index.html` <div class="base ${getStateClasses}">
312
+ ${when.when((x) => x.charCount && x.maxlength, renderCharCount())}
313
+ <slot class="label" name="_label"></slot>
314
+ <div class="fieldset">
315
+ <div class="leading-items-wrapper">
316
+ <slot
317
+ name="leading-action-items"
318
+ ${slotted.slotted("leadingActionItemsSlottedContent")}
319
+ ></slot>
320
+ ${(x) => affixIconTemplate(x.icon)}
321
+ </div>
322
+
323
+ <div class="wrapper">
324
+ <slot class="control" name="_control"></slot>
325
+ </div>
326
+ <div class="action-items-wrapper">
327
+ <slot
328
+ name="action-items"
329
+ ${slotted.slotted("actionItemsSlottedContent")}
330
+ ></slot>
331
+ </div>
332
+ </div>
333
+ ${index$1.getFeedbackTemplate(context)}
334
+ </div>`;
138
335
  };
139
336
 
140
- const toggletipDefinition = Toggletip.compose({
141
- baseName: "toggletip",
142
- template: ToggletipTemplate,
143
- styles
337
+ const textFieldDefinition = exports.TextField.compose({
338
+ baseName: "text-field",
339
+ template: TextfieldTemplate,
340
+ styles: textField$1.styles,
341
+ shadowOptions: {
342
+ delegatesFocus: true
343
+ }
144
344
  });
145
- const toggletipRegistries = [toggletipDefinition(), ...definition.popupRegistries];
146
- const registerToggletip = index.registerFactory(toggletipRegistries);
345
+ const textFieldRegistries = [textFieldDefinition(), ...definition.iconRegistries];
346
+ const registerTextField = index.registerFactory(textFieldRegistries);
147
347
 
148
- exports.registerToggletip = registerToggletip;
149
- exports.toggletipDefinition = toggletipDefinition;
150
- exports.toggletipRegistries = toggletipRegistries;
348
+ exports.registerTextField = registerTextField;
349
+ exports.textFieldDefinition = textFieldDefinition;
350
+ exports.textFieldRegistries = textFieldRegistries;