@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,10 +1,82 @@
1
- import { a as attr, F as FoundationElement, D as DOM, h as html, r as registerFactory } from './index.js';
2
- import { P as Popup, p as popupRegistries } from './definition60.js';
3
- import { b as anchored, a as anchorSlotTemplateFactory } from './anchored.js';
1
+ import { a as attr, o as observable, h as html, r as registerFactory } from './index.js';
2
+ import { a as iconRegistries } from './definition27.js';
3
+ import { A as AffixIcon, a as affixIconTemplateFactory } from './affix.js';
4
+ import { e as errorText, f as formElements, F as FormElementSuccessText, a as FormElementHelperText, b as FormElementCharCount, g as getFeedbackTemplate } from './index2.js';
5
+ import { R as Reflector } from './Reflector.js';
6
+ import { a as applyMixinsWithObservables } from './applyMixinsWithObservables.js';
7
+ import { m as memoizeWith } from './icon.js';
8
+ import { T as TextField$1 } from './text-field2.js';
9
+ import { s as styles } from './text-field.js';
4
10
  import { w as when } from './when.js';
11
+ import { s as slotted } from './slotted.js';
5
12
  import { c as classNames } from './class-names.js';
6
13
 
7
- 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";
14
+ // Unique ID creation requires a high quality random # generator. In the browser we therefore
15
+ // require the crypto API and do not support built-in fallback to lower quality random number
16
+ // generators (like Math.random()).
17
+ let getRandomValues;
18
+ const rnds8 = new Uint8Array(16);
19
+ function rng() {
20
+ // lazy load so that environments that need to polyfill have a chance to do so
21
+ if (!getRandomValues) {
22
+ // getRandomValues needs to be invoked in a context where "this" is a Crypto implementation.
23
+ getRandomValues = typeof crypto !== 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto);
24
+
25
+ if (!getRandomValues) {
26
+ throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');
27
+ }
28
+ }
29
+
30
+ return getRandomValues(rnds8);
31
+ }
32
+
33
+ /**
34
+ * Convert array of 16 byte values to UUID string format of the form:
35
+ * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
36
+ */
37
+
38
+ const byteToHex = [];
39
+
40
+ for (let i = 0; i < 256; ++i) {
41
+ byteToHex.push((i + 0x100).toString(16).slice(1));
42
+ }
43
+
44
+ function unsafeStringify(arr, offset = 0) {
45
+ // Note: Be careful editing this code! It's been tuned for performance
46
+ // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434
47
+ 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]];
48
+ }
49
+
50
+ const randomUUID = typeof crypto !== 'undefined' && crypto.randomUUID && crypto.randomUUID.bind(crypto);
51
+ const native = {
52
+ randomUUID
53
+ };
54
+
55
+ function v4(options, buf, offset) {
56
+ if (native.randomUUID && !buf && !options) {
57
+ return native.randomUUID();
58
+ }
59
+
60
+ options = options || {};
61
+ const rnds = options.random || (options.rng || rng)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`
62
+
63
+ rnds[6] = rnds[6] & 0x0f | 0x40;
64
+ rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided
65
+
66
+ if (buf) {
67
+ offset = offset || 0;
68
+
69
+ for (let i = 0; i < 16; ++i) {
70
+ buf[offset + i] = rnds[i];
71
+ }
72
+
73
+ return buf;
74
+ }
75
+
76
+ return unsafeStringify(rnds);
77
+ }
78
+
79
+ const generateRandomId = () => v4();
8
80
 
9
81
  var __defProp = Object.defineProperty;
10
82
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
@@ -17,130 +89,258 @@ var __decorateClass = (decorators, target, key, kind) => {
17
89
  __defProp(target, key, result);
18
90
  return result;
19
91
  };
20
- let Toggletip = class extends FoundationElement {
92
+ var __accessCheck = (obj, member, msg) => {
93
+ if (!member.has(obj))
94
+ throw TypeError("Cannot " + msg);
95
+ };
96
+ var __privateGet = (obj, member, getter) => {
97
+ __accessCheck(obj, member, "read from private field");
98
+ return getter ? getter.call(obj) : member.get(obj);
99
+ };
100
+ var __privateAdd = (obj, member, value) => {
101
+ if (member.has(obj))
102
+ throw TypeError("Cannot add the same private member more than once");
103
+ member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
104
+ };
105
+ var __privateSet = (obj, member, value, setter) => {
106
+ __accessCheck(obj, member, "write to private field");
107
+ setter ? setter.call(obj, value) : member.set(obj, value);
108
+ return value;
109
+ };
110
+ var __privateMethod = (obj, member, method) => {
111
+ __accessCheck(obj, member, "access private method");
112
+ return method;
113
+ };
114
+ var _handleLabelChange, handleLabelChange_fn, _reflectToInput;
115
+ const safariWorkaroundClassName = "_vvd-3-text-field-safari-workaround";
116
+ const getSafariWorkaroundStyleSheet = memoizeWith(
117
+ () => "",
118
+ () => {
119
+ const styleSheet = new CSSStyleSheet();
120
+ const supportsReplaceSync = "replaceSync" in styleSheet;
121
+ if (supportsReplaceSync) {
122
+ styleSheet.replaceSync(`
123
+ .${safariWorkaroundClassName}::placeholder {
124
+ opacity: 1 !important;
125
+ -webkit-text-fill-color: var(--_low-ink-color) !important;
126
+ }`);
127
+ }
128
+ return styleSheet;
129
+ }
130
+ );
131
+ const installSafariWorkaroundStyle = (forElement) => {
132
+ const root = forElement.getRootNode();
133
+ const workaroundStyleSheet = getSafariWorkaroundStyleSheet();
134
+ const supportsAdoptedStyleSheets = "adoptedStyleSheets" in root;
135
+ if (!supportsAdoptedStyleSheets) {
136
+ return;
137
+ }
138
+ if (!root.adoptedStyleSheets.includes(workaroundStyleSheet)) {
139
+ root.adoptedStyleSheets = [
140
+ ...root.adoptedStyleSheets,
141
+ workaroundStyleSheet
142
+ ];
143
+ }
144
+ };
145
+ let TextField = class extends TextField$1 {
21
146
  constructor() {
22
147
  super(...arguments);
23
- this.#ANCHOR_ARIA_LABEL_SUFFIX = " ; Show more information";
24
- this.alternate = false;
25
- this.placement = "right";
26
- this.open = false;
27
- this.#openIfClosed = () => {
28
- if (!this.open)
29
- DOM.queueUpdate(() => this.open = true);
30
- };
31
- this.#closeOnClickOutside = (e) => {
32
- const clickedOutside = !this.contains(e.target);
33
- const clickedOnAnchor = this._anchorEl?.contains(e.target);
34
- if (clickedOutside || clickedOnAnchor)
35
- this.open = false;
36
- };
37
- this.#closeOnEscape = (e) => {
38
- if (e.key === "Escape")
39
- this.open = false;
40
- };
148
+ __privateAdd(this, _handleLabelChange);
149
+ /**
150
+ * @internal
151
+ */
152
+ this._labelEl = null;
153
+ __privateAdd(this, _reflectToInput, void 0);
41
154
  }
42
- #ANCHOR_ARIA_LABEL_SUFFIX;
43
- openChanged(oldValue, newValue) {
44
- if (oldValue === void 0)
45
- return;
46
- if (newValue) {
47
- this.setAttribute("role", "status");
48
- } else {
49
- this.removeAttribute("role");
50
- }
51
- this.#updateListeners();
52
- if (this._anchorEl) {
53
- this.#updateAnchor(this._anchorEl);
155
+ /**
156
+ * @internal
157
+ */
158
+ labelChanged() {
159
+ if (this._labelEl) {
160
+ __privateMethod(this, _handleLabelChange, handleLabelChange_fn).call(this, this._labelEl);
54
161
  }
55
162
  }
56
163
  connectedCallback() {
57
164
  super.connectedCallback();
58
- this.#updateListeners();
165
+ if (!this.control) {
166
+ const uniqueId = this.id || generateRandomId();
167
+ const controlId = `vvd-text-field-control-${uniqueId}`;
168
+ const input = document.createElement("input");
169
+ input.slot = "_control";
170
+ input.id = controlId;
171
+ input.className = safariWorkaroundClassName;
172
+ this.control = input;
173
+ __privateSet(this, _reflectToInput, new Reflector(this, input));
174
+ __privateGet(this, _reflectToInput).booleanAttribute("autofocus", "autofocus");
175
+ __privateGet(this, _reflectToInput).booleanAttribute("disabled", "disabled");
176
+ __privateGet(this, _reflectToInput).booleanAttribute("readOnly", "readonly");
177
+ __privateGet(this, _reflectToInput).booleanAttribute("required", "required");
178
+ __privateGet(this, _reflectToInput).booleanAttribute("spellcheck", "spellcheck");
179
+ __privateGet(this, _reflectToInput).attribute("list", "list");
180
+ __privateGet(this, _reflectToInput).attribute("maxlength", "maxlength");
181
+ __privateGet(this, _reflectToInput).attribute("minlength", "minlength");
182
+ __privateGet(this, _reflectToInput).attribute("pattern", "pattern");
183
+ __privateGet(this, _reflectToInput).attribute("placeholder", "placeholder");
184
+ __privateGet(this, _reflectToInput).attribute("size", "size");
185
+ __privateGet(this, _reflectToInput).attribute("autoComplete", "autocomplete");
186
+ __privateGet(this, _reflectToInput).attribute("type", "type");
187
+ __privateGet(this, _reflectToInput).attribute("ariaAtomic", "aria-atomic");
188
+ __privateGet(this, _reflectToInput).attribute("ariaBusy", "aria-busy");
189
+ __privateGet(this, _reflectToInput).attribute("ariaCurrent", "aria-current");
190
+ __privateGet(this, _reflectToInput).attribute("ariaDetails", "aria-details");
191
+ __privateGet(this, _reflectToInput).attribute("ariaDisabled", "aria-disabled");
192
+ __privateGet(this, _reflectToInput).attribute("ariaHaspopup", "aria-haspopup");
193
+ __privateGet(this, _reflectToInput).attribute("ariaHidden", "aria-hidden");
194
+ __privateGet(this, _reflectToInput).attribute("ariaInvalid", "aria-invalid");
195
+ __privateGet(this, _reflectToInput).attribute("ariaKeyshortcuts", "aria-keyshortcuts");
196
+ __privateGet(this, _reflectToInput).attribute("ariaLabel", "aria-label");
197
+ __privateGet(this, _reflectToInput).attribute("ariaLive", "aria-live");
198
+ __privateGet(this, _reflectToInput).attribute("ariaRelevant", "aria-relevant");
199
+ __privateGet(this, _reflectToInput).attribute(
200
+ "ariaRoledescription",
201
+ "aria-roledescription"
202
+ );
203
+ __privateGet(this, _reflectToInput).property("value", "value", true);
204
+ input.addEventListener("input", () => {
205
+ this.handleTextInput();
206
+ });
207
+ input.addEventListener("change", () => {
208
+ this.handleChange();
209
+ });
210
+ input.addEventListener("blur", () => {
211
+ this.$emit("blur", void 0, { bubbles: false });
212
+ });
213
+ input.addEventListener("focus", () => {
214
+ this.$emit("focus", void 0, { bubbles: false });
215
+ });
216
+ this.appendChild(input);
217
+ const label = document.createElement("label");
218
+ label.slot = "_label";
219
+ label.htmlFor = controlId;
220
+ this._labelEl = label;
221
+ __privateMethod(this, _handleLabelChange, handleLabelChange_fn).call(this, label);
222
+ installSafariWorkaroundStyle(this);
223
+ }
59
224
  }
60
225
  disconnectedCallback() {
61
226
  super.disconnectedCallback();
62
- this.#updateListeners();
63
- }
64
- /**
65
- * @internal
66
- */
67
- _anchorElChanged(oldValue, newValue) {
68
- if (oldValue)
69
- this.#cleanupAnchor(oldValue);
70
- if (newValue)
71
- this.#setupAnchor(newValue);
227
+ __privateGet(this, _reflectToInput).destroy();
72
228
  }
73
- #setupAnchor(a) {
74
- a.addEventListener("click", this.#openIfClosed, true);
75
- a.ariaLabel = (a.ariaLabel ?? "") + this.#ANCHOR_ARIA_LABEL_SUFFIX;
76
- this.#updateAnchor(a);
229
+ focus() {
230
+ this.control?.focus();
77
231
  }
78
- #updateAnchor(a) {
79
- a.setAttribute("aria-expanded", this.open.toString());
80
- }
81
- #cleanupAnchor(a) {
82
- a.removeEventListener("click", this.#openIfClosed, true);
83
- if (a.ariaLabel)
84
- a.ariaLabel = a.ariaLabel.replace(this.#ANCHOR_ARIA_LABEL_SUFFIX, "");
85
- }
86
- #openIfClosed;
87
- #updateListeners() {
88
- document.removeEventListener("click", this.#closeOnClickOutside);
89
- document.removeEventListener("keydown", this.#closeOnEscape);
90
- if (this.open && this.isConnected) {
91
- document.addEventListener("click", this.#closeOnClickOutside);
92
- document.addEventListener("keydown", this.#closeOnEscape);
232
+ };
233
+ _handleLabelChange = new WeakSet();
234
+ handleLabelChange_fn = function(labelEl) {
235
+ if (!this.label) {
236
+ labelEl.remove();
237
+ } else {
238
+ labelEl.textContent = this.label;
239
+ if (!labelEl.isConnected) {
240
+ this.appendChild(labelEl);
93
241
  }
94
242
  }
95
- #closeOnClickOutside;
96
- #closeOnEscape;
97
243
  };
244
+ _reflectToInput = new WeakMap();
98
245
  __decorateClass([
99
246
  attr
100
- ], Toggletip.prototype, "headline", 2);
247
+ ], TextField.prototype, "appearance", 2);
101
248
  __decorateClass([
102
- attr({ mode: "boolean" })
103
- ], Toggletip.prototype, "alternate", 2);
249
+ attr
250
+ ], TextField.prototype, "shape", 2);
104
251
  __decorateClass([
105
- attr({ mode: "fromView" })
106
- ], Toggletip.prototype, "placement", 2);
252
+ attr
253
+ ], TextField.prototype, "autoComplete", 2);
254
+ __decorateClass([
255
+ observable
256
+ ], TextField.prototype, "actionItemsSlottedContent", 2);
107
257
  __decorateClass([
108
- attr({ mode: "boolean" })
109
- ], Toggletip.prototype, "open", 2);
110
- Toggletip = __decorateClass([
111
- anchored
112
- ], Toggletip);
113
-
114
- const getClasses = (_) => classNames("control");
115
- const ToggletipTemplate = (context) => {
116
- const popup = context.tagFor(Popup);
117
- const anchorSlotTemplate = anchorSlotTemplateFactory();
258
+ observable
259
+ ], TextField.prototype, "leadingActionItemsSlottedContent", 2);
260
+ TextField = __decorateClass([
261
+ errorText,
262
+ formElements
263
+ ], TextField);
264
+ applyMixinsWithObservables(
265
+ TextField,
266
+ AffixIcon,
267
+ FormElementCharCount,
268
+ FormElementHelperText,
269
+ FormElementSuccessText
270
+ );
271
+
272
+ const getStateClasses = ({
273
+ errorValidationMessage,
274
+ disabled,
275
+ value,
276
+ readOnly,
277
+ placeholder,
278
+ appearance,
279
+ shape,
280
+ label,
281
+ successText,
282
+ actionItemsSlottedContent,
283
+ leadingActionItemsSlottedContent,
284
+ icon
285
+ }) => classNames(
286
+ ["error", Boolean(errorValidationMessage)],
287
+ ["disabled", disabled],
288
+ ["has-value", Boolean(value)],
289
+ ["readonly", readOnly],
290
+ ["placeholder", Boolean(placeholder)],
291
+ [`appearance-${appearance}`, Boolean(appearance)],
292
+ [`shape-${shape}`, Boolean(shape)],
293
+ ["no-label", !label],
294
+ ["has-icon", !!icon],
295
+ ["success", Boolean(successText)],
296
+ ["action-items", !!actionItemsSlottedContent?.length],
297
+ ["leading-action-items", !!leadingActionItemsSlottedContent?.length],
298
+ ["no-leading", !(leadingActionItemsSlottedContent?.length || icon)]
299
+ );
300
+ function renderCharCount() {
118
301
  return html`
119
- ${anchorSlotTemplate}
120
- <${popup}
121
- class="${getClasses}"
122
- arrow
123
- :anchor="${(x) => x._anchorEl}"
124
- :open="${(x) => x.open}"
125
- ?alternate="${(x) => !x.alternate}"
126
- placement="${(x) => x.placement}"
127
- exportparts="vvd-theme-alternate"
302
+ <span class="char-count"
303
+ >${(x) => x.value ? x.value.length : 0} / ${(x) => x.maxlength}</span
128
304
  >
129
- <div class="content-wrapper">
130
- ${when((x) => x.headline, html`<header class="headline">${(x) => x.headline}</header>`)}
131
- <slot></slot>
132
- <footer class="action-items"><slot name="action-items"></slot></footer>
133
- </div>
134
- </${popup}>
135
305
  `;
306
+ }
307
+ const TextfieldTemplate = (context) => {
308
+ const affixIconTemplate = affixIconTemplateFactory(context);
309
+ return html` <div class="base ${getStateClasses}">
310
+ ${when((x) => x.charCount && x.maxlength, renderCharCount())}
311
+ <slot class="label" name="_label"></slot>
312
+ <div class="fieldset">
313
+ <div class="leading-items-wrapper">
314
+ <slot
315
+ name="leading-action-items"
316
+ ${slotted("leadingActionItemsSlottedContent")}
317
+ ></slot>
318
+ ${(x) => affixIconTemplate(x.icon)}
319
+ </div>
320
+
321
+ <div class="wrapper">
322
+ <slot class="control" name="_control"></slot>
323
+ </div>
324
+ <div class="action-items-wrapper">
325
+ <slot
326
+ name="action-items"
327
+ ${slotted("actionItemsSlottedContent")}
328
+ ></slot>
329
+ </div>
330
+ </div>
331
+ ${getFeedbackTemplate(context)}
332
+ </div>`;
136
333
  };
137
334
 
138
- const toggletipDefinition = Toggletip.compose({
139
- baseName: "toggletip",
140
- template: ToggletipTemplate,
141
- styles
335
+ const textFieldDefinition = TextField.compose({
336
+ baseName: "text-field",
337
+ template: TextfieldTemplate,
338
+ styles,
339
+ shadowOptions: {
340
+ delegatesFocus: true
341
+ }
142
342
  });
143
- const toggletipRegistries = [toggletipDefinition(), ...popupRegistries];
144
- const registerToggletip = registerFactory(toggletipRegistries);
343
+ const textFieldRegistries = [textFieldDefinition(), ...iconRegistries];
344
+ const registerTextField = registerFactory(textFieldRegistries);
145
345
 
146
- export { toggletipRegistries as a, registerToggletip as r, toggletipDefinition as t };
346
+ export { TextField as T, textFieldRegistries as a, registerTextField as r, textFieldDefinition as t };