@vonage/vivid 4.23.0 → 4.25.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 (396) hide show
  1. package/custom-elements.json +21830 -14295
  2. package/elevation/index.cjs +1 -1
  3. package/elevation/index.js +1 -1
  4. package/index.cjs +112 -150
  5. package/index.js +37 -35
  6. package/lib/accordion-item/accordion-item.d.ts +6 -0
  7. package/lib/action-group/action-group.d.ts +6 -0
  8. package/lib/alert/alert.d.ts +20 -0
  9. package/lib/audio-player/audio-player.d.ts +6 -0
  10. package/lib/badge/badge.d.ts +9 -1
  11. package/lib/banner/banner.d.ts +25 -0
  12. package/lib/breadcrumb/breadcrumb.d.ts +6 -0
  13. package/lib/breadcrumb-item/breadcrumb-item.d.ts +63 -7
  14. package/lib/button/button.d.ts +732 -7
  15. package/lib/button/locale.d.ts +3 -0
  16. package/lib/calendar-event/calendar-event.d.ts +6 -0
  17. package/lib/card/card.d.ts +394 -2
  18. package/lib/card/card.template.d.ts +2 -1
  19. package/lib/checkbox/checkbox.d.ts +1822 -5
  20. package/lib/combobox/combobox.d.ts +1827 -20
  21. package/lib/data-grid/data-grid-cell.d.ts +339 -1
  22. package/lib/data-grid/locale.d.ts +5 -0
  23. package/lib/date-picker/date-picker.d.ts +1676 -207
  24. package/lib/date-range-picker/date-range-picker.d.ts +840 -107
  25. package/lib/date-time-picker/date-time-picker.d.ts +1678 -209
  26. package/lib/dial-pad/dial-pad.d.ts +8 -0
  27. package/lib/dialog/dialog.d.ts +12 -0
  28. package/lib/divider/divider.d.ts +6 -0
  29. package/lib/fab/fab.d.ts +6 -0
  30. package/lib/file-picker/file-picker.d.ts +1510 -32
  31. package/lib/file-picker/locale.d.ts +1 -0
  32. package/lib/header/header.d.ts +6 -0
  33. package/lib/icon/icon.d.ts +1 -0
  34. package/lib/icon/icon.template.d.ts +2 -1
  35. package/lib/menu/menu.d.ts +16 -7
  36. package/lib/menu/name.d.ts +1 -0
  37. package/lib/menu-item/menu-item.d.ts +14 -2
  38. package/lib/nav/nav.d.ts +6 -0
  39. package/lib/nav-disclosure/nav-disclosure.d.ts +13 -0
  40. package/lib/nav-item/nav-item.d.ts +405 -3
  41. package/lib/note/note.d.ts +6 -0
  42. package/lib/number-field/number-field.d.ts +1857 -36
  43. package/lib/option/option.d.ts +12 -0
  44. package/lib/progress/progress.d.ts +6 -0
  45. package/lib/progress-ring/progress-ring.d.ts +6 -0
  46. package/lib/radio/radio.d.ts +1137 -4
  47. package/lib/radio-group/radio-group.d.ts +20 -2
  48. package/lib/range-slider/range-slider.d.ts +752 -5
  49. package/lib/rich-text-editor/definition.d.ts +2 -2
  50. package/lib/rich-text-editor/facades/vivid-prose-mirror.facade.d.ts +3 -1
  51. package/lib/rich-text-editor/locale.d.ts +10 -0
  52. package/lib/rich-text-editor/menubar/menubar.d.ts +340 -1
  53. package/lib/rich-text-editor/rich-text-editor.d.ts +352 -2
  54. package/lib/searchable-select/locale.d.ts +1 -0
  55. package/lib/searchable-select/option-tag.d.ts +6 -0
  56. package/lib/searchable-select/searchable-select.d.ts +1857 -35
  57. package/lib/select/select.d.ts +1843 -28
  58. package/lib/selectable-box/selectable-box.d.ts +6 -0
  59. package/lib/slider/slider.d.ts +384 -2
  60. package/lib/split-button/split-button.d.ts +18 -0
  61. package/lib/switch/switch.d.ts +386 -3
  62. package/lib/tab/tab.d.ts +18 -1
  63. package/lib/tab-panel/tab-panel.d.ts +6 -0
  64. package/lib/tabs/tabs.d.ts +5 -21
  65. package/lib/tag/tag.d.ts +12 -0
  66. package/lib/tag-group/tag-group.d.ts +6 -0
  67. package/lib/text-area/text-area.d.ts +2174 -19
  68. package/lib/text-field/text-field.d.ts +2195 -31
  69. package/lib/time-picker/time-picker.d.ts +839 -106
  70. package/lib/toggletip/toggletip.d.ts +10 -4
  71. package/lib/tooltip/tooltip.d.ts +10 -4
  72. package/lib/tree-item/tree-item.d.ts +12 -0
  73. package/lib/tree-view/tree-view.d.ts +6 -0
  74. package/lib/video-player/video-player.d.ts +6 -0
  75. package/lib/visually-hidden/definition.d.ts +4 -0
  76. package/lib/visually-hidden/visually-hidden.d.ts +3 -0
  77. package/lib/visually-hidden/visually-hidden.template.d.ts +3 -0
  78. package/locales/de-DE.cjs +47 -1
  79. package/locales/de-DE.js +47 -1
  80. package/locales/en-GB.cjs +47 -1
  81. package/locales/en-GB.js +47 -1
  82. package/locales/en-US.cjs +47 -1
  83. package/locales/en-US.js +47 -1
  84. package/locales/ja-JP.cjs +47 -1
  85. package/locales/ja-JP.js +47 -1
  86. package/locales/zh-CN.cjs +47 -1
  87. package/locales/zh-CN.js +47 -1
  88. package/menu/index.cjs +1 -1
  89. package/menu/index.js +1 -1
  90. package/nav/index.cjs +1 -1
  91. package/nav/index.js +1 -1
  92. package/nav-disclosure/index.cjs +1 -1
  93. package/nav-disclosure/index.js +1 -1
  94. package/nav-item/index.cjs +1 -1
  95. package/nav-item/index.js +1 -1
  96. package/note/index.cjs +1 -1
  97. package/note/index.js +1 -1
  98. package/number-field/index.cjs +1 -1
  99. package/number-field/index.js +1 -1
  100. package/option/index.cjs +1 -1
  101. package/option/index.js +1 -1
  102. package/package.json +1 -1
  103. package/pagination/index.cjs +1 -1
  104. package/pagination/index.js +1 -1
  105. package/popup/index.cjs +1 -1
  106. package/popup/index.js +1 -1
  107. package/progress/index.cjs +1 -1
  108. package/progress/index.js +1 -1
  109. package/progress-ring/index.cjs +1 -1
  110. package/progress-ring/index.js +1 -1
  111. package/radio/index.cjs +1 -1
  112. package/radio/index.js +1 -1
  113. package/radio-group/index.cjs +1 -1
  114. package/radio-group/index.js +1 -1
  115. package/range-slider/index.cjs +1 -1
  116. package/range-slider/index.js +1 -1
  117. package/rich-text-editor/index.cjs +1 -1
  118. package/rich-text-editor/index.js +1 -1
  119. package/searchable-select/index.cjs +1 -1
  120. package/searchable-select/index.js +1 -1
  121. package/select/index.cjs +1 -1
  122. package/select/index.js +1 -1
  123. package/selectable-box/index.cjs +1 -1
  124. package/selectable-box/index.js +1 -1
  125. package/shared/affix.cjs +13 -7
  126. package/shared/affix.js +13 -8
  127. package/shared/aria/delegates-aria.d.ts +6 -0
  128. package/shared/aria/host-semantics.d.ts +6 -0
  129. package/shared/breadcrumb-item.cjs +2 -5
  130. package/shared/breadcrumb-item.js +2 -5
  131. package/shared/button.cjs +19 -14
  132. package/shared/button.js +19 -14
  133. package/shared/calendar-picker.template.cjs +3 -3
  134. package/shared/calendar-picker.template.js +1 -1
  135. package/shared/char-count.cjs +92 -0
  136. package/shared/char-count.js +90 -0
  137. package/shared/definition.js +1 -1
  138. package/shared/definition10.js +1 -1
  139. package/shared/definition11.cjs +27 -44
  140. package/shared/definition11.js +28 -45
  141. package/shared/definition12.cjs +1 -1
  142. package/shared/definition12.js +2 -2
  143. package/shared/definition13.js +1 -1
  144. package/shared/definition14.cjs +53 -22
  145. package/shared/definition14.js +54 -23
  146. package/shared/definition15.cjs +31 -36
  147. package/shared/definition15.js +30 -36
  148. package/shared/definition16.cjs +43 -63
  149. package/shared/definition16.js +42 -63
  150. package/shared/definition17.cjs +12 -5
  151. package/shared/definition17.js +12 -5
  152. package/shared/definition18.cjs +10 -14
  153. package/shared/definition18.js +9 -14
  154. package/shared/definition19.cjs +85 -100
  155. package/shared/definition19.js +75 -91
  156. package/shared/definition2.js +1 -1
  157. package/shared/definition20.cjs +15 -20
  158. package/shared/definition20.js +14 -20
  159. package/shared/definition21.cjs +22 -3
  160. package/shared/definition21.js +23 -4
  161. package/shared/definition22.cjs +12 -6
  162. package/shared/definition22.js +13 -7
  163. package/shared/definition23.cjs +5 -38
  164. package/shared/definition23.js +5 -37
  165. package/shared/definition24.cjs +2 -7
  166. package/shared/definition24.js +3 -8
  167. package/shared/definition25.js +1 -1
  168. package/shared/definition26.cjs +160 -163
  169. package/shared/definition26.js +159 -163
  170. package/shared/definition27.cjs +1 -1
  171. package/shared/definition27.js +2 -2
  172. package/shared/definition28.cjs +32 -17
  173. package/shared/definition28.js +33 -18
  174. package/shared/definition29.js +1 -1
  175. package/shared/definition3.js +1 -1
  176. package/shared/definition30.cjs +96 -482
  177. package/shared/definition30.js +99 -482
  178. package/shared/definition31.cjs +334 -57
  179. package/shared/definition31.js +333 -56
  180. package/shared/definition32.cjs +104 -19
  181. package/shared/definition32.js +105 -20
  182. package/shared/definition33.cjs +67 -15
  183. package/shared/definition33.js +66 -14
  184. package/shared/definition34.cjs +15 -50
  185. package/shared/definition34.js +14 -49
  186. package/shared/definition35.cjs +28 -397
  187. package/shared/definition35.js +27 -397
  188. package/shared/definition36.cjs +404 -54
  189. package/shared/definition36.js +404 -55
  190. package/shared/definition37.cjs +57 -234
  191. package/shared/definition37.js +57 -233
  192. package/shared/definition38.cjs +221 -66
  193. package/shared/definition38.js +220 -65
  194. package/shared/definition39.cjs +52 -44
  195. package/shared/definition39.js +51 -43
  196. package/shared/definition4.cjs +31 -24
  197. package/shared/definition4.js +33 -26
  198. package/shared/definition40.cjs +56 -266
  199. package/shared/definition40.js +55 -265
  200. package/shared/definition41.cjs +285 -142
  201. package/shared/definition41.js +285 -142
  202. package/shared/definition42.cjs +156 -564
  203. package/shared/definition42.js +156 -565
  204. package/shared/definition43.cjs +557 -14317
  205. package/shared/definition43.js +556 -14316
  206. package/shared/definition44.cjs +14418 -1085
  207. package/shared/definition44.js +14416 -1085
  208. package/shared/definition45.cjs +1049 -671
  209. package/shared/definition45.js +1050 -672
  210. package/shared/definition46.cjs +848 -113
  211. package/shared/definition46.js +847 -112
  212. package/shared/definition47.cjs +125 -90
  213. package/shared/definition47.js +124 -89
  214. package/shared/definition48.cjs +88 -455
  215. package/shared/definition48.js +87 -454
  216. package/shared/definition49.cjs +466 -109
  217. package/shared/definition49.js +466 -109
  218. package/shared/definition5.cjs +8 -7
  219. package/shared/definition5.js +6 -5
  220. package/shared/definition50.cjs +106 -106
  221. package/shared/definition50.js +105 -105
  222. package/shared/definition51.cjs +136 -15
  223. package/shared/definition51.js +135 -14
  224. package/shared/definition52.cjs +16 -115
  225. package/shared/definition52.js +15 -114
  226. package/shared/definition53.cjs +78 -490
  227. package/shared/definition53.js +77 -488
  228. package/shared/definition54.cjs +445 -23
  229. package/shared/definition54.js +443 -22
  230. package/shared/definition55.cjs +22 -136
  231. package/shared/definition55.js +21 -135
  232. package/shared/definition56.cjs +95 -291
  233. package/shared/definition56.js +95 -292
  234. package/shared/definition57.cjs +192 -480
  235. package/shared/definition57.js +190 -479
  236. package/shared/definition58.cjs +411 -24
  237. package/shared/definition58.js +410 -24
  238. package/shared/definition59.cjs +27 -144
  239. package/shared/definition59.js +27 -143
  240. package/shared/definition6.js +1 -1
  241. package/shared/definition60.cjs +83 -54
  242. package/shared/definition60.js +82 -53
  243. package/shared/definition61.cjs +78 -166
  244. package/shared/definition61.js +77 -164
  245. package/shared/definition62.cjs +143 -232
  246. package/shared/definition62.js +141 -231
  247. package/shared/definition63.cjs +234 -69417
  248. package/shared/definition63.js +233 -69416
  249. package/shared/definition64.cjs +69454 -28
  250. package/shared/definition64.js +69453 -27
  251. package/shared/definition65.cjs +28 -2168
  252. package/shared/definition65.js +27 -2166
  253. package/shared/definition66.cjs +27 -0
  254. package/shared/definition66.js +23 -0
  255. package/shared/definition67.cjs +2195 -0
  256. package/shared/definition67.js +2190 -0
  257. package/shared/definition7.cjs +11 -2
  258. package/shared/definition7.js +12 -3
  259. package/shared/definition8.cjs +24 -11
  260. package/shared/definition8.js +26 -13
  261. package/shared/definition9.cjs +1 -2
  262. package/shared/definition9.js +2 -3
  263. package/shared/delegates-aria.js +1 -1
  264. package/shared/deprecation/replaced-props.d.ts +20 -0
  265. package/shared/divider.cjs +41 -0
  266. package/shared/divider.js +38 -0
  267. package/shared/feedback/feedback-message.d.ts +345 -0
  268. package/shared/feedback/locale.d.ts +4 -0
  269. package/{lib/text-anchor/text-anchor.d.ts → shared/feedback/mixins.d.ts} +62 -39
  270. package/shared/form-associated.cjs +124 -100
  271. package/shared/form-associated.js +125 -101
  272. package/shared/form-element.cjs +84 -0
  273. package/shared/form-element.js +82 -0
  274. package/shared/foundation/button/button.d.ts +378 -2
  275. package/shared/foundation/form-associated/form-associated.d.ts +753 -49
  276. package/shared/foundation/listbox/listbox.d.ts +1 -1
  277. package/shared/foundation/vivid-element/vivid-element.d.ts +14 -0
  278. package/shared/host-semantics.js +1 -1
  279. package/shared/key-codes.js +1 -1
  280. package/shared/linkable.cjs +70 -0
  281. package/shared/linkable.js +68 -0
  282. package/shared/localization/Locale.d.ts +16 -0
  283. package/shared/mixins.cjs +306 -0
  284. package/shared/mixins.js +300 -0
  285. package/shared/patterns/affix.d.ts +16 -1
  286. package/shared/patterns/anchored.d.ts +20 -8
  287. package/shared/patterns/char-count/char-count.d.ts +351 -0
  288. package/shared/patterns/char-count/index.d.ts +1 -0
  289. package/shared/patterns/char-count/locale.d.ts +4 -0
  290. package/shared/patterns/form-elements/form-element.d.ts +744 -0
  291. package/shared/patterns/form-elements/index.d.ts +3 -1
  292. package/shared/patterns/form-elements/with-error-text.d.ts +1122 -0
  293. package/shared/patterns/form-elements/with-success-text.d.ts +341 -0
  294. package/shared/patterns/index.d.ts +2 -0
  295. package/shared/patterns/linkable.d.ts +394 -0
  296. package/shared/patterns/localized.d.ts +6 -0
  297. package/shared/patterns/trapped-focus.d.ts +6 -0
  298. package/shared/picker-field/mixins/calendar-picker.d.ts +420 -52
  299. package/shared/picker-field/mixins/calendar-picker.template.d.ts +420 -52
  300. package/shared/picker-field/mixins/inline-time-picker/inline-time-picker.d.ts +6 -0
  301. package/shared/picker-field/mixins/min-max-calendar-picker.d.ts +843 -107
  302. package/shared/picker-field/mixins/single-date-picker.d.ts +1259 -155
  303. package/shared/picker-field/mixins/single-value-picker.d.ts +417 -49
  304. package/shared/picker-field/mixins/time-selection-picker.d.ts +842 -106
  305. package/shared/picker-field/mixins/time-selection-picker.template.d.ts +839 -103
  306. package/shared/picker-field/picker-field.d.ts +1491 -15
  307. package/shared/picker-field.template.cjs +13 -22
  308. package/shared/picker-field.template.js +14 -23
  309. package/shared/repeat.js +1 -1
  310. package/shared/slider.template.cjs +1 -1
  311. package/shared/slider.template.js +1 -1
  312. package/shared/time-selection-picker.template.cjs +10 -15
  313. package/shared/time-selection-picker.template.js +10 -16
  314. package/shared/vivid-element.cjs +53 -4
  315. package/shared/vivid-element.js +53 -3
  316. package/shared/with-error-text.cjs +56 -0
  317. package/shared/with-error-text.js +54 -0
  318. package/shared/with-success-text.cjs +23 -0
  319. package/shared/with-success-text.js +21 -0
  320. package/side-drawer/index.cjs +1 -1
  321. package/side-drawer/index.js +1 -1
  322. package/slider/index.cjs +1 -1
  323. package/slider/index.js +1 -1
  324. package/split-button/index.cjs +1 -1
  325. package/split-button/index.js +1 -1
  326. package/styles/core/all.css +1 -1
  327. package/styles/core/theme.css +1 -1
  328. package/styles/core/typography.css +1 -1
  329. package/styles/tokens/theme-dark.css +4 -4
  330. package/styles/tokens/theme-light.css +4 -4
  331. package/styles/tokens/vivid-2-compat.css +1 -1
  332. package/switch/index.cjs +1 -1
  333. package/switch/index.js +1 -1
  334. package/tab/index.cjs +1 -1
  335. package/tab/index.js +1 -1
  336. package/tab-panel/index.cjs +1 -1
  337. package/tab-panel/index.js +1 -1
  338. package/tabs/index.cjs +1 -1
  339. package/tabs/index.js +1 -1
  340. package/tag/index.cjs +1 -1
  341. package/tag/index.js +1 -1
  342. package/tag-group/index.cjs +1 -1
  343. package/tag-group/index.js +1 -1
  344. package/text-area/index.cjs +1 -1
  345. package/text-area/index.js +1 -1
  346. package/text-field/index.cjs +1 -1
  347. package/text-field/index.js +1 -1
  348. package/time-picker/index.cjs +1 -1
  349. package/time-picker/index.js +1 -1
  350. package/toggletip/index.cjs +1 -1
  351. package/toggletip/index.js +1 -1
  352. package/tooltip/index.cjs +1 -1
  353. package/tooltip/index.js +1 -1
  354. package/tree-item/index.cjs +1 -1
  355. package/tree-item/index.js +1 -1
  356. package/tree-view/index.cjs +1 -1
  357. package/tree-view/index.js +1 -1
  358. package/video-player/index.cjs +1 -1
  359. package/video-player/index.js +1 -1
  360. package/visually-hidden/index.cjs +5 -0
  361. package/visually-hidden/index.js +3 -0
  362. package/vivid.api.json +762 -1478
  363. package/lib/checkbox/checkbox.form-associated.d.ts +0 -11
  364. package/lib/file-picker/file-picker.form-associated.d.ts +0 -11
  365. package/lib/number-field/number-field.form-associated.d.ts +0 -11
  366. package/lib/radio/radio.form-associated.d.ts +0 -13
  367. package/lib/range-slider/range-slider.form-associated.d.ts +0 -11
  368. package/lib/searchable-select/searchable-select.form-associated.d.ts +0 -11
  369. package/lib/select/select.form-associated.d.ts +0 -11
  370. package/lib/slider/slider.form-associated.d.ts +0 -11
  371. package/lib/switch/switch.form-associated.d.ts +0 -11
  372. package/lib/text-anchor/definition.d.ts +0 -2
  373. package/lib/text-anchor/text-anchor.template.d.ts +0 -3
  374. package/lib/text-area/text-area.form-associated.d.ts +0 -11
  375. package/lib/text-field/text-field.form-associated.d.ts +0 -11
  376. package/shared/anchor.cjs +0 -49
  377. package/shared/anchor.js +0 -47
  378. package/shared/apply-mixins.cjs +0 -23
  379. package/shared/apply-mixins.js +0 -21
  380. package/shared/applyMixinsWithObservables.cjs +0 -15
  381. package/shared/applyMixinsWithObservables.js +0 -13
  382. package/shared/direction.cjs +0 -17
  383. package/shared/direction.js +0 -15
  384. package/shared/form-elements.cjs +0 -209
  385. package/shared/form-elements.js +0 -202
  386. package/shared/foundation/anchor/anchor.d.ts +0 -11
  387. package/shared/foundation/utilities/apply-mixins.d.ts +0 -1
  388. package/shared/patterns/form-elements/form-elements.d.ts +0 -58
  389. package/shared/picker-field/picker-field.form-associated.d.ts +0 -11
  390. package/shared/text-anchor.cjs +0 -38
  391. package/shared/text-anchor.js +0 -36
  392. package/shared/text-anchor.template.cjs +0 -35
  393. package/shared/text-anchor.template.js +0 -33
  394. package/shared/utils/applyMixinsWithObservables.d.ts +0 -1
  395. package/text-anchor/index.cjs +0 -17
  396. package/text-anchor/index.js +0 -15
@@ -1,262 +1,173 @@
1
1
  'use strict';
2
2
 
3
- const definition = require('./definition28.cjs');
4
3
  const vividElement = require('./vivid-element.cjs');
5
- const applyMixinsWithObservables = require('./applyMixinsWithObservables.cjs');
4
+ const mixins = require('./mixins.cjs');
5
+ const definition = require('./definition66.cjs');
6
6
  const delegatesAria = require('./delegates-aria.cjs');
7
7
  const formAssociated = require('./form-associated.cjs');
8
- const formElements = require('./form-elements.cjs');
9
- const affix = require('./affix.cjs');
10
- const textField = require('./text-field.cjs');
8
+ const charCount = require('./char-count.cjs');
9
+ const withErrorText = require('./with-error-text.cjs');
10
+ const withSuccessText = require('./with-success-text.cjs');
11
+ const formElement = require('./form-element.cjs');
11
12
  const classNames = require('./class-names.cjs');
12
13
  const when = require('./when.cjs');
13
- const slotted = require('./slotted.cjs');
14
14
  const ref = require('./ref.cjs');
15
15
 
16
- const byteToHex = [];
17
- for (let i = 0; i < 256; ++i) {
18
- byteToHex.push((i + 0x100).toString(16).slice(1));
19
- }
20
- function unsafeStringify(arr, offset = 0) {
21
- return (byteToHex[arr[offset + 0]] +
22
- byteToHex[arr[offset + 1]] +
23
- byteToHex[arr[offset + 2]] +
24
- byteToHex[arr[offset + 3]] +
25
- '-' +
26
- byteToHex[arr[offset + 4]] +
27
- byteToHex[arr[offset + 5]] +
28
- '-' +
29
- byteToHex[arr[offset + 6]] +
30
- byteToHex[arr[offset + 7]] +
31
- '-' +
32
- byteToHex[arr[offset + 8]] +
33
- byteToHex[arr[offset + 9]] +
34
- '-' +
35
- byteToHex[arr[offset + 10]] +
36
- byteToHex[arr[offset + 11]] +
37
- byteToHex[arr[offset + 12]] +
38
- byteToHex[arr[offset + 13]] +
39
- byteToHex[arr[offset + 14]] +
40
- byteToHex[arr[offset + 15]]).toLowerCase();
41
- }
42
-
43
- let getRandomValues;
44
- const rnds8 = new Uint8Array(16);
45
- function rng() {
46
- if (!getRandomValues) {
47
- if (typeof crypto === 'undefined' || !crypto.getRandomValues) {
48
- throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');
49
- }
50
- getRandomValues = crypto.getRandomValues.bind(crypto);
51
- }
52
- return getRandomValues(rnds8);
53
- }
16
+ const styles = ":host{display:inline-block}.base{--_appearance-color-text: var(--vvd-color-canvas-text);--_appearance-color-fill: var(--vvd-color-canvas);--_appearance-color-outline: var(--vvd-color-neutral-500)}.base.appearance-ghost{--_appearance-color-text: var(--_connotation-color-firm);--_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(--vvd-color-neutral-700)}.base:where(.hover,:hover):where(:not(.disabled,:disabled,.readonly)).appearance-ghost{--_appearance-color-text: var(--_connotation-color-firm);--_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))}.base{display:inline-grid;grid-template-columns:1fr max-content;inline-size:100%;row-gap:4px}@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{--scrollbar-track-color: transparent;--scrollbar-thumb-color: color-mix(in srgb, var(--vvd-color-neutral-950), transparent 70%)}.control{scrollbar-color:var(--scrollbar-thumb-color) var(--scrollbar-track-color);scrollbar-width:thin}.control ::-webkit-scrollbar{width:4px}.control ::-webkit-scrollbar-track{background:var(--scrollbar-track-color)}.control ::-webkit-scrollbar-thumb{border:0;border-radius:4px;background-color:var(--scrollbar-fallback-track-color, var(--scrollbar-thumb-color))}.control{box-sizing:border-box;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*(32 + 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:0 0 0 4px color-mix(in srgb,var(--vvd-color-cta-500),transparent 85%),inset 0 0 0 3px var(--focus-stroke-gap-color, currentColor);outline:1px solid var(--focus-stroke-color, var(--vvd-color-cta-500));outline-offset:calc(-1px - var(--focus-inset, 0px))}:host([resize=both]) .control{resize:both}:host([resize=horizontal]) .control{resize:horizontal}:host([resize=vertical]) .control{resize:vertical}";
54
17
 
55
- const randomUUID = typeof crypto !== 'undefined' && crypto.randomUUID && crypto.randomUUID.bind(crypto);
56
- const native = { randomUUID };
57
-
58
- function v4(options, buf, offset) {
59
- if (native.randomUUID && true && !options) {
60
- return native.randomUUID();
18
+ class Reflector {
19
+ #reflectedProperties = /* @__PURE__ */ new Map();
20
+ #source;
21
+ #target;
22
+ constructor(source, target) {
23
+ this.#source = source;
24
+ this.#target = target;
25
+ }
26
+ attribute(propertyName, attributeName) {
27
+ this.#addReflectedProperty(propertyName, {
28
+ type: "attribute",
29
+ destination: attributeName
30
+ });
31
+ }
32
+ booleanAttribute(propertyName, attributeName) {
33
+ this.#addReflectedProperty(propertyName, {
34
+ type: "boolean-attribute",
35
+ destination: attributeName
36
+ });
37
+ }
38
+ property(propertyName, targetProperty, skipIfEqual = false) {
39
+ this.#addReflectedProperty(propertyName, {
40
+ type: "property",
41
+ destination: targetProperty,
42
+ skipIfEqual
43
+ });
44
+ }
45
+ destroy() {
46
+ const notifier = vividElement.Observable.getNotifier(this.#source);
47
+ for (const prop of this.#reflectedProperties.keys()) {
48
+ notifier.unsubscribe(this.#propertyChangeHandler, prop);
61
49
  }
62
- options = options || {};
63
- const rnds = options.random ?? options.rng?.() ?? rng();
64
- if (rnds.length < 16) {
65
- throw new Error('Random bytes length must be >= 16');
50
+ this.#reflectedProperties.clear();
51
+ }
52
+ #addReflectedProperty(name, reflected) {
53
+ this.#reflectedProperties.set(name, reflected);
54
+ const notifier = vividElement.Observable.getNotifier(this.#source);
55
+ notifier.subscribe(this.#propertyChangeHandler, name);
56
+ this.#propertyChangeHandler.handleChange(this.#source, name);
57
+ }
58
+ #propertyChangeHandler = {
59
+ handleChange: (source, propertyName) => {
60
+ const reflectedProperty = this.#reflectedProperties.get(propertyName);
61
+ const value = source[propertyName];
62
+ switch (reflectedProperty.type) {
63
+ case "boolean-attribute":
64
+ vividElement.DOM.setBooleanAttribute(
65
+ this.#target,
66
+ reflectedProperty.destination,
67
+ Boolean(value)
68
+ );
69
+ break;
70
+ case "attribute":
71
+ vividElement.DOM.setAttribute(this.#target, reflectedProperty.destination, value);
72
+ break;
73
+ case "property":
74
+ if (reflectedProperty.skipIfEqual && this.#target[reflectedProperty.destination] === value) {
75
+ return;
76
+ }
77
+ this.#target[reflectedProperty.destination] = value;
78
+ break;
79
+ }
66
80
  }
67
- rnds[6] = (rnds[6] & 0x0f) | 0x40;
68
- rnds[8] = (rnds[8] & 0x3f) | 0x80;
69
- return unsafeStringify(rnds);
70
- }
71
-
72
- const generateRandomId = () => v4();
73
-
74
- class _TextField extends vividElement.VividElement {
75
- }
76
- class FormAssociatedTextField extends formAssociated.FormAssociated(_TextField) {
77
- constructor() {
78
- super(...arguments);
79
- this.proxy = document.createElement("input");
80
- }
81
+ };
81
82
  }
82
83
 
83
84
  var __defProp = Object.defineProperty;
84
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
85
- var __typeError = (msg) => {
86
- throw TypeError(msg);
87
- };
88
85
  var __decorateClass = (decorators, target, key, kind) => {
89
- var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
86
+ var result = void 0 ;
90
87
  for (var i = decorators.length - 1, decorator; i >= 0; i--)
91
88
  if (decorator = decorators[i])
92
- result = (kind ? decorator(target, key, result) : decorator(result)) || result;
93
- if (kind && result) __defProp(target, key, result);
89
+ result = (decorator(target, key, result) ) || result;
90
+ if (result) __defProp(target, key, result);
94
91
  return result;
95
92
  };
96
- var __accessCheck = (obj, member, msg) => member.has(obj) || __typeError("Cannot " + msg);
97
- var __privateGet = (obj, member, getter) => (__accessCheck(obj, member, "read from private field"), getter ? getter.call(obj) : member.get(obj));
98
- var __privateAdd = (obj, member, value) => member.has(obj) ? __typeError("Cannot add the same private member more than once") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
99
- var __privateSet = (obj, member, value, setter) => (__accessCheck(obj, member, "write to private field"), member.set(obj, value), value);
100
- var __privateMethod = (obj, member, method) => (__accessCheck(obj, member, "access private method"), method);
101
- var _randomId, _helperTextSlotMutationObserver, _TextField_instances, updateHelperTextMutationObserver_fn, updateMirroredHelperText_fn;
102
- const TextFieldType = {
93
+ const TextAreaResize = {
103
94
  /**
104
- * A text TextField
95
+ * No resize.
105
96
  */
106
- text: "text"};
107
- const safariWorkaroundClassName = "_vvd-3-text-field-safari-workaround";
108
- const getSafariWorkaroundStyleSheet = definition.memoizeWith(
109
- () => "",
110
- () => {
111
- const styleSheet = new CSSStyleSheet();
112
- const supportsReplaceSync = "replaceSync" in styleSheet;
113
- if (supportsReplaceSync) {
114
- styleSheet.replaceSync(`
115
- .${safariWorkaroundClassName}::placeholder {
116
- opacity: 1 !important;
117
- -webkit-text-fill-color: var(--_low-ink-color) !important;
118
- }`);
119
- }
120
- return styleSheet;
121
- }
122
- );
123
- const installSafariWorkaroundStyleIfNeeded = (forElement) => {
124
- if (forElement._isSafariWorkaroundInstalled) {
125
- return;
126
- }
127
- forElement._isSafariWorkaroundInstalled = true;
128
- const root = forElement.getRootNode();
129
- const workaroundStyleSheet = getSafariWorkaroundStyleSheet();
130
- const supportsAdoptedStyleSheets = "adoptedStyleSheets" in root;
131
- if (!supportsAdoptedStyleSheets) {
132
- return;
133
- }
134
- if (!root.adoptedStyleSheets.includes(workaroundStyleSheet)) {
135
- root.adoptedStyleSheets = [
136
- ...root.adoptedStyleSheets,
137
- workaroundStyleSheet
138
- ];
139
- }
140
- };
141
- exports.TextField = class TextField extends affix.AffixIcon(
142
- delegatesAria.DelegatesAria(FormAssociatedTextField)
97
+ none: "none"};
98
+ class TextArea extends mixins.WithFeedback(
99
+ charCount.WithCharCount(
100
+ withErrorText.WithErrorText(
101
+ withSuccessText.WithSuccessText(formElement.FormElement(delegatesAria.DelegatesAria(formAssociated.FormAssociated(vividElement.VividElement))))
102
+ )
103
+ )
143
104
  ) {
144
105
  constructor() {
145
106
  super(...arguments);
146
- __privateAdd(this, _TextField_instances);
107
+ /**
108
+ * @internal
109
+ */
110
+ this.proxy = document.createElement("textarea");
147
111
  // eslint-disable-next-line @nrwl/nx/workspace/no-attribute-default-value
148
- this.type = TextFieldType.text;
149
- __privateAdd(this, _randomId, generateRandomId());
150
- this._mirroredHelperText = "";
151
- __privateAdd(this, _helperTextSlotMutationObserver);
112
+ this.resize = TextAreaResize.none;
113
+ this.cols = 20;
114
+ /**
115
+ * @internal
116
+ */
117
+ this.handleTextInput = () => {
118
+ this.value = this.control.value;
119
+ };
152
120
  }
153
121
  /**
154
122
  * @internal
155
123
  */
156
124
  readOnlyChanged() {
157
- if (this.proxy instanceof HTMLInputElement) {
125
+ if (this.proxy instanceof HTMLTextAreaElement) {
158
126
  this.proxy.readOnly = this.readOnly;
159
- this.validate();
160
127
  }
161
128
  }
162
129
  /**
163
130
  * @internal
164
131
  */
165
132
  autofocusChanged() {
166
- if (this.proxy instanceof HTMLInputElement) {
133
+ if (this.proxy instanceof HTMLTextAreaElement) {
167
134
  this.proxy.autofocus = this.autofocus;
168
- this.validate();
169
- }
170
- }
171
- /**
172
- * @internal
173
- */
174
- placeholderChanged() {
175
- if (this.proxy instanceof HTMLInputElement) {
176
- this.proxy.placeholder = this.placeholder;
177
- }
178
- }
179
- /**
180
- * @internal
181
- */
182
- typeChanged() {
183
- if (this.proxy instanceof HTMLInputElement) {
184
- this.proxy.type = this.type;
185
- this.validate();
186
135
  }
187
136
  }
188
137
  /**
189
138
  * @internal
190
139
  */
191
140
  listChanged() {
192
- if (this.proxy instanceof HTMLInputElement) {
141
+ if (this.proxy instanceof HTMLTextAreaElement) {
193
142
  this.proxy.setAttribute("list", this.list);
194
- this.validate();
195
143
  }
196
144
  }
197
145
  /**
198
146
  * @internal
199
147
  */
200
148
  maxlengthChanged() {
201
- if (this.proxy instanceof HTMLInputElement) {
149
+ if (this.proxy instanceof HTMLTextAreaElement) {
202
150
  this.proxy.maxLength = this.maxlength;
203
- this.validate();
204
151
  }
205
152
  }
206
153
  /**
207
154
  * @internal
208
155
  */
209
156
  minlengthChanged() {
210
- if (this.proxy instanceof HTMLInputElement) {
157
+ if (this.proxy instanceof HTMLTextAreaElement) {
211
158
  this.proxy.minLength = this.minlength;
212
- this.validate();
213
- }
214
- }
215
- /**
216
- * @internal
217
- */
218
- patternChanged() {
219
- if (this.proxy instanceof HTMLInputElement) {
220
- this.proxy.pattern = this.pattern;
221
- this.validate();
222
- }
223
- }
224
- /**
225
- * @internal
226
- */
227
- sizeChanged() {
228
- if (this.proxy instanceof HTMLInputElement) {
229
- this.proxy.size = this.size;
230
159
  }
231
160
  }
232
161
  /**
233
162
  * @internal
234
163
  */
235
164
  spellcheckChanged() {
236
- if (this.proxy instanceof HTMLInputElement) {
165
+ if (this.proxy instanceof HTMLTextAreaElement) {
237
166
  this.proxy.spellcheck = this.spellcheck;
238
167
  }
239
168
  }
240
169
  /**
241
- * @internal
242
- */
243
- valueChanged(previous, next) {
244
- super.valueChanged(previous, next);
245
- this._updateControlValueIfNeeded();
246
- }
247
- /**
248
- * Update the controls value only if it is actually different from the actual value.
249
- * This is important as to not reset the browser's "dirtiness" flag on the input, which is used for min/maxlength
250
- * constraints.
251
- * @internal
252
- */
253
- _updateControlValueIfNeeded() {
254
- if (this.control && this.control.value !== this.value) {
255
- this.control.value = this.value;
256
- }
257
- }
258
- /**
259
- * Selects all the text in the text field
170
+ * Selects all the text in the text area
260
171
  *
261
172
  * @public
262
173
  */
@@ -264,11 +175,13 @@ exports.TextField = class TextField extends affix.AffixIcon(
264
175
  this.control.select();
265
176
  }
266
177
  /**
267
- * Handles the internal control's `input` event
268
178
  * @internal
269
179
  */
270
- handleTextInput() {
271
- this.value = this.control.value;
180
+ valueChanged(previous, next) {
181
+ super.valueChanged(previous, next);
182
+ if (this.charCount && this.maxlength) {
183
+ this._updateCharCountRemaining();
184
+ }
272
185
  }
273
186
  /**
274
187
  * Change event handler for inner control.
@@ -286,338 +199,137 @@ exports.TextField = class TextField extends affix.AffixIcon(
286
199
  validate() {
287
200
  super.validate(this.control);
288
201
  }
202
+ #reflectToTextArea;
289
203
  connectedCallback() {
290
204
  super.connectedCallback();
291
- this.proxy.setAttribute("type", this.type);
292
- this.validate();
293
- if (this.autofocus) {
294
- vividElement.DOM.queueUpdate(() => {
295
- this.focus();
296
- });
297
- }
298
- this._updateControlValueIfNeeded();
299
- __privateMethod(this, _TextField_instances, updateHelperTextMutationObserver_fn).call(this);
300
- installSafariWorkaroundStyleIfNeeded(this);
205
+ this.#reflectToTextArea = new Reflector(this, this.control);
206
+ this.#reflectToTextArea.property("value", "value", true);
207
+ this._renderCharCountRemaining();
301
208
  }
302
209
  disconnectedCallback() {
303
210
  super.disconnectedCallback();
304
- __privateMethod(this, _TextField_instances, updateHelperTextMutationObserver_fn).call(this);
305
- }
306
- focus() {
307
- this.control?.focus();
308
- }
309
- /**
310
- * @internal
311
- */
312
- get _uniqueId() {
313
- return this.id || __privateGet(this, _randomId);
211
+ this.#reflectToTextArea.destroy();
314
212
  }
315
- /**
316
- * @internal
317
- */
318
- helperTextChanged() {
319
- __privateMethod(this, _TextField_instances, updateMirroredHelperText_fn).call(this);
320
- }
321
- /**
322
- * @internal
323
- */
324
- _helperTextSlottedContentChanged() {
325
- __privateMethod(this, _TextField_instances, updateMirroredHelperText_fn).call(this);
326
- __privateMethod(this, _TextField_instances, updateHelperTextMutationObserver_fn).call(this);
327
- }
328
- };
329
- _randomId = new WeakMap();
330
- _helperTextSlotMutationObserver = new WeakMap();
331
- _TextField_instances = new WeakSet();
332
- updateHelperTextMutationObserver_fn = function() {
333
- const usesHelperTextSlot = this._helperTextSlottedContent.length;
334
- const shouldHaveMutationObserver = usesHelperTextSlot && this.isConnected;
335
- if (shouldHaveMutationObserver && !__privateGet(this, _helperTextSlotMutationObserver)) {
336
- __privateSet(this, _helperTextSlotMutationObserver, new MutationObserver((records) => {
337
- if (
338
- // Ignore updates to the mirrored helper text itself
339
- records.some(
340
- (record) => record.target instanceof HTMLElement && record.target.slot !== "_mirrored-helper-text"
341
- )
342
- ) {
343
- __privateMethod(this, _TextField_instances, updateMirroredHelperText_fn).call(this);
344
- }
345
- }));
346
- __privateGet(this, _helperTextSlotMutationObserver).observe(this, {
347
- subtree: true,
348
- childList: true,
349
- characterData: true
350
- });
351
- }
352
- if (!shouldHaveMutationObserver && __privateGet(this, _helperTextSlotMutationObserver)) {
353
- __privateGet(this, _helperTextSlotMutationObserver).disconnect();
354
- __privateSet(this, _helperTextSlotMutationObserver, void 0);
355
- }
356
- };
357
- updateMirroredHelperText_fn = function() {
358
- let helperText = this.helperText ?? "";
359
- if (this._helperTextSlottedContent?.length) {
360
- helperText = this._helperTextSlottedContent.map((node) => node.innerText).join(" ");
361
- }
362
- this._mirroredHelperText = helperText;
363
- };
364
- __decorateClass([
365
- vividElement.attr({ attribute: "readonly", mode: "boolean" })
366
- ], exports.TextField.prototype, "readOnly", 2);
213
+ }
214
+ // @ts-expect-error Type is incorrectly non-optional
367
215
  __decorateClass([
368
216
  vividElement.attr({ mode: "boolean" })
369
- ], exports.TextField.prototype, "autofocus", 2);
370
- __decorateClass([
371
- vividElement.attr
372
- ], exports.TextField.prototype, "placeholder", 2);
373
- __decorateClass([
374
- vividElement.attr
375
- ], exports.TextField.prototype, "type", 2);
217
+ ], TextArea.prototype, "readOnly");
376
218
  __decorateClass([
377
219
  vividElement.attr
378
- ], exports.TextField.prototype, "list", 2);
220
+ ], TextArea.prototype, "resize");
221
+ // @ts-expect-error Type is incorrectly non-optional
379
222
  __decorateClass([
380
- vividElement.attr({ converter: vividElement.nullableNumberConverter })
381
- ], exports.TextField.prototype, "maxlength", 2);
223
+ vividElement.attr({ mode: "boolean" })
224
+ ], TextArea.prototype, "autofocus");
225
+ // @ts-expect-error Type is incorrectly non-optional
382
226
  __decorateClass([
383
- vividElement.attr({ converter: vividElement.nullableNumberConverter })
384
- ], exports.TextField.prototype, "minlength", 2);
227
+ vividElement.attr({ attribute: "form" })
228
+ ], TextArea.prototype, "formId");
229
+ // @ts-expect-error Type is incorrectly non-optional
385
230
  __decorateClass([
386
231
  vividElement.attr
387
- ], exports.TextField.prototype, "pattern", 2);
232
+ ], TextArea.prototype, "list");
388
233
  __decorateClass([
389
234
  vividElement.attr({ converter: vividElement.nullableNumberConverter })
390
- ], exports.TextField.prototype, "size", 2);
235
+ ], TextArea.prototype, "maxlength");
236
+ // @ts-expect-error Type is incorrectly non-optional
391
237
  __decorateClass([
392
- vividElement.attr({ mode: "boolean" })
393
- ], exports.TextField.prototype, "spellcheck", 2);
394
- __decorateClass([
395
- vividElement.attr
396
- ], exports.TextField.prototype, "appearance", 2);
397
- __decorateClass([
398
- vividElement.attr
399
- ], exports.TextField.prototype, "shape", 2);
238
+ vividElement.attr({ converter: vividElement.nullableNumberConverter })
239
+ ], TextArea.prototype, "minlength");
240
+ // @ts-expect-error Type is incorrectly non-optional
400
241
  __decorateClass([
401
242
  vividElement.attr
402
- ], exports.TextField.prototype, "autoComplete", 2);
243
+ ], TextArea.prototype, "placeholder");
403
244
  __decorateClass([
404
- vividElement.attr()
405
- ], exports.TextField.prototype, "scale", 2);
245
+ vividElement.attr({ converter: vividElement.nullableNumberConverter, mode: "fromView" })
246
+ ], TextArea.prototype, "cols");
247
+ // @ts-expect-error Type is incorrectly non-optional
406
248
  __decorateClass([
407
- vividElement.attr({ attribute: "inputmode" })
408
- ], exports.TextField.prototype, "inputMode", 2);
249
+ vividElement.attr({ converter: vividElement.nullableNumberConverter, mode: "fromView" })
250
+ ], TextArea.prototype, "rows");
251
+ // @ts-expect-error Type is incorrectly non-optional
409
252
  __decorateClass([
410
- vividElement.observable
411
- ], exports.TextField.prototype, "actionItemsSlottedContent", 2);
253
+ vividElement.attr({ mode: "boolean" })
254
+ ], TextArea.prototype, "spellcheck");
412
255
  __decorateClass([
413
256
  vividElement.observable
414
- ], exports.TextField.prototype, "leadingActionItemsSlottedContent", 2);
257
+ ], TextArea.prototype, "defaultSlottedNodes");
415
258
  __decorateClass([
416
- vividElement.observable
417
- ], exports.TextField.prototype, "_mirroredHelperText", 2);
418
- exports.TextField = __decorateClass([
419
- formElements.errorText,
420
- formElements.formElements
421
- ], exports.TextField);
422
- applyMixinsWithObservables.applyMixinsWithObservables(
423
- exports.TextField,
424
- formElements.FormElementCharCount,
425
- formElements.FormElementHelperText,
426
- formElements.FormElementSuccessText
427
- );
428
-
429
- class RenderInLightDomBehaviour {
430
- constructor(templateBinding, isTemplateBindingVolatile) {
431
- this.source = null;
432
- this.templateBindingObserver = vividElement.Observable.binding(
433
- templateBinding,
434
- this,
435
- isTemplateBindingVolatile
436
- );
437
- }
438
- bind(source, context) {
439
- this.source = source;
440
- this.context = context;
441
- if (!this.insertionPoint) {
442
- this.insertionPoint = document.createComment("");
443
- source.appendChild(this.insertionPoint);
444
- }
445
- this.handleChange();
446
- }
447
- unbind() {
448
- this.source = null;
449
- this.view.unbind();
450
- this.templateBindingObserver.disconnect();
451
- }
452
- /**
453
- * Handles change of the template itself.
454
- */
455
- handleChange() {
456
- this.instantiateTemplate(
457
- this.templateBindingObserver.observe(this.source, this.context)
458
- );
459
- }
460
- instantiateTemplate(template) {
461
- if (this.view) {
462
- this.view.dispose();
463
- }
464
- this.view = template.create();
465
- this.view.bind(this.source, this.context);
466
- this.view.insertBefore(this.insertionPoint);
467
- }
468
- }
469
- class RenderInLightDomDirective extends vividElement.HTMLDirective {
470
- constructor(templateBinding) {
471
- super();
472
- this.templateBinding = templateBinding;
473
- this.createPlaceholder = vividElement.DOM.createBlockPlaceholder;
474
- this.isTemplateBindingVolatile = vividElement.Observable.isVolatileBinding(templateBinding);
475
- }
476
- createBehavior() {
477
- return new RenderInLightDomBehaviour(
478
- this.templateBinding,
479
- this.isTemplateBindingVolatile
480
- );
481
- }
482
- }
483
- function renderInLightDOM(templateOrTemplateBinding) {
484
- const templateBinding = typeof templateOrTemplateBinding === "function" ? templateOrTemplateBinding : () => templateOrTemplateBinding;
485
- return new RenderInLightDomDirective(templateBinding);
486
- }
259
+ vividElement.attr
260
+ ], TextArea.prototype, "wrap");
487
261
 
488
- const getControlId = (id) => `vvd-text-field-control-${id}`;
489
- const getHelperTextId = (id) => `vvd-text-field-helper-text-${id}`;
490
- const getStateClasses = ({
262
+ const getClasses = ({
263
+ value,
491
264
  errorValidationMessage,
492
265
  disabled,
493
- value,
494
- readOnly,
495
266
  placeholder,
496
- appearance,
497
- shape,
498
- label,
499
- successText,
500
- actionItemsSlottedContent,
501
- leadingActionItemsSlottedContent,
502
- icon,
503
- scale
267
+ readOnly,
268
+ successText
504
269
  }) => classNames.classNames(
505
- ["error", Boolean(errorValidationMessage)],
506
- ["disabled", disabled],
507
- ["has-value", Boolean(value)],
270
+ "base",
508
271
  ["readonly", readOnly],
509
272
  ["placeholder", Boolean(placeholder)],
510
- [`appearance-${appearance}`, Boolean(appearance)],
511
- [`shape-${shape}`, Boolean(shape)],
512
- ["no-label", !label],
513
- ["has-icon", !!icon],
514
- ["success", Boolean(successText)],
515
- ["action-items", !!actionItemsSlottedContent?.length],
516
- ["leading-action-items", !!leadingActionItemsSlottedContent?.length],
517
- ["no-leading", !(leadingActionItemsSlottedContent?.length || icon)],
518
- [`size-${scale}`, Boolean(scale)]
273
+ ["disabled", disabled],
274
+ ["error", Boolean(errorValidationMessage)],
275
+ ["has-value", Boolean(value)],
276
+ ["success", !!successText]
519
277
  );
520
- function renderCharCount() {
521
- return vividElement.html`
522
- <span class="char-count"
523
- >${(x) => x.value ? x.value.length : 0} / ${(x) => x.maxlength}</span
524
- >
525
- `;
278
+ function renderLabel() {
279
+ return vividElement.html` <label for="control" class="label">
280
+ ${(x) => x.label}
281
+ </label>`;
526
282
  }
527
- const TextfieldTemplate = (context) => {
528
- const affixIconTemplate = affix.affixIconTemplateFactory(context);
283
+ const TextAreaTemplate = (context) => {
529
284
  return vividElement.html`
530
- <div class="base ${getStateClasses}">
531
- ${when.when((x) => x.charCount && x.maxlength, renderCharCount())}
532
- <slot class="label" name="_label"></slot>
533
- ${renderInLightDOM(vividElement.html`
534
- ${when.when(
535
- (x) => x.label,
536
- vividElement.html`
537
- <label slot="_label" for="${(x) => getControlId(x._uniqueId)}">
538
- ${(x) => x.label}
539
- </label>
540
- `
541
- )}
542
- `)}
543
- <div class="fieldset">
544
- <div class="leading-items-wrapper">
545
- <slot
546
- name="leading-action-items"
547
- ${slotted.slotted("leadingActionItemsSlottedContent")}
548
- ></slot>
549
- ${(x) => affixIconTemplate(x.icon)}
550
- </div>
551
- <div class="wrapper">
552
- <slot class="control" name="_control"></slot>
553
- ${renderInLightDOM(
554
- vividElement.html`<input
555
- slot="_control"
556
- id="${(x) => getControlId(x._uniqueId)}"
557
- class="_vvd-3-text-field-safari-workaround"
558
- @input="${(x) => x.handleTextInput()}"
559
- @change="${(x) => x.handleChange()}"
560
- @blur="${(x) => {
561
- x.$emit("blur", void 0, { bubbles: false });
562
- }}"
563
- @focus="${(x) => {
564
- x.$emit("focus", void 0, { bubbles: false });
565
- }}"
566
- ?autofocus="${(x) => x.autofocus}"
567
- ?disabled="${(x) => x.disabled}"
568
- ?readonly="${(x) => x.readOnly}"
569
- ?required="${(x) => x.required}"
570
- ?spellcheck="${(x) => x.spellcheck}"
571
- list="${(x) => x.list}"
572
- maxlength="${(x) => x.maxlength}"
573
- minlength="${(x) => x.minlength}"
574
- pattern="${(x) => x.pattern}"
575
- placeholder="${(x) => x.placeholder}"
576
- size="${(x) => x.size}"
577
- autocomplete="${(x) => x.autoComplete}"
578
- type="${(x) => x.type}"
579
- inputmode="${(x) => x.inputMode}"
580
- aria-describedby="${(x) => x._mirroredHelperText ? getHelperTextId(x._uniqueId) : null}"
581
- value="${(x) => x.initialValue}"
582
- ${delegatesAria.delegateAria()}
583
- ${ref.ref("control")}
584
- />`
285
+ <div class="${getClasses}">
286
+ ${when.when(
287
+ (x) => x.charCount && x.maxlength,
288
+ (x) => x._getCharCountTemplate(context)
585
289
  )}
586
- </div>
587
- <div class="action-items-wrapper">
588
- <slot
589
- name="action-items"
590
- ${slotted.slotted("actionItemsSlottedContent")}
591
- ></slot>
592
- </div>
593
- </div>
594
- ${formElements.getFeedbackTemplate(context)}
595
- </div>
596
- <slot name="_mirrored-helper-text"></slot>
597
- ${renderInLightDOM(vividElement.html`
598
- <div
599
- id="${(x) => getHelperTextId(x._uniqueId)}"
600
- slot="_mirrored-helper-text"
290
+ ${when.when((x) => x.label, renderLabel())}
291
+ <textarea
292
+ class="control"
293
+ id="control"
294
+ ?autofocus="${(x) => x.autofocus}"
295
+ placeholder="${(x) => x.placeholder ? x.placeholder : null}"
296
+ name="${(x) => x.name ? x.name : null}"
297
+ list="${(x) => x.list}"
298
+ minlength="${(x) => x.minlength ? x.minlength : null}"
299
+ maxlength="${(x) => x.maxlength ? x.maxlength : null}"
300
+ rows="${(x) => x.rows ? x.rows : null}"
301
+ cols="${(x) => x.cols ? x.cols : null}"
302
+ wrap="${(x) => x.wrap ? x.wrap : null}"
303
+ ?readonly="${(x) => x.readOnly}"
304
+ ?disabled="${(x) => x.disabled}"
305
+ ?required="${(x) => x.required}"
306
+ ?spellcheck="${(x) => x.spellcheck}"
307
+ aria-describedby="${(x) => x._feedbackDescribedBy} ${(x) => x.charCount && x.maxlength ? x._charCountDescribedBy : null}"
308
+ ${delegatesAria.delegateAria()}
309
+ @input="${(x) => x.handleTextInput()}"
310
+ @change="${(x) => x.handleChange()}"
311
+ ${ref.ref("control")}
601
312
  >
602
- ${(x) => x._mirroredHelperText}
603
- </div>
604
- `)}
313
+ </textarea>
314
+ ${(x) => x._getFeedbackTemplate(context)}
315
+ </div>
605
316
  `;
606
317
  };
607
318
 
608
- const textFieldDefinition = vividElement.defineVividComponent(
609
- "text-field",
610
- exports.TextField,
611
- TextfieldTemplate,
612
- [definition.iconDefinition],
319
+ const textAreaDefinition = vividElement.defineVividComponent(
320
+ "text-area",
321
+ TextArea,
322
+ TextAreaTemplate,
323
+ [mixins.feedbackMessageDefinition, definition.visuallyHiddenDefinition],
613
324
  {
614
- styles: textField.styles,
325
+ styles,
615
326
  shadowOptions: {
616
327
  delegatesFocus: true
617
328
  }
618
329
  }
619
330
  );
620
- const registerTextField = vividElement.createRegisterFunction(textFieldDefinition);
331
+ const registerTextArea = vividElement.createRegisterFunction(textAreaDefinition);
621
332
 
622
- exports.registerTextField = registerTextField;
623
- exports.textFieldDefinition = textFieldDefinition;
333
+ exports.TextArea = TextArea;
334
+ exports.registerTextArea = registerTextArea;
335
+ exports.textAreaDefinition = textAreaDefinition;