@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,260 +1,171 @@
1
- import { m as memoizeWith, i as iconDefinition } from './definition28.js';
2
- import { V as VividElement, D as DOM, a as attr, n as nullableNumberConverter, o as observable, H as HTMLDirective, O as Observable, h as html, g as createRegisterFunction, i as defineVividComponent } from './vivid-element.js';
3
- import { a as applyMixinsWithObservables } from './applyMixinsWithObservables.js';
1
+ import { O as Observable, D as DOM, V as VividElement, a as attr, n as nullableNumberConverter, o as observable, h as html, d as createRegisterFunction, f as defineVividComponent } from './vivid-element.js';
2
+ import { a as WithFeedback, f as feedbackMessageDefinition } from './mixins.js';
3
+ import { v as visuallyHiddenDefinition } from './definition66.js';
4
4
  import { D as DelegatesAria, d as delegateAria } from './delegates-aria.js';
5
5
  import { F as FormAssociated } from './form-associated.js';
6
- import { F as FormElementSuccessText, a as FormElementHelperText, b as FormElementCharCount, e as errorText, f as formElements, g as getFeedbackTemplate } from './form-elements.js';
7
- import { b as AffixIcon, a as affixIconTemplateFactory } from './affix.js';
8
- import { s as styles } from './text-field.js';
6
+ import { W as WithCharCount } from './char-count.js';
7
+ import { W as WithErrorText } from './with-error-text.js';
8
+ import { W as WithSuccessText } from './with-success-text.js';
9
+ import { F as FormElement } from './form-element.js';
9
10
  import { c as classNames } from './class-names.js';
10
11
  import { w as when } from './when.js';
11
- import { s as slotted } from './slotted.js';
12
12
  import { r as ref } from './ref.js';
13
13
 
14
- const byteToHex = [];
15
- for (let i = 0; i < 256; ++i) {
16
- byteToHex.push((i + 0x100).toString(16).slice(1));
17
- }
18
- function unsafeStringify(arr, offset = 0) {
19
- return (byteToHex[arr[offset + 0]] +
20
- byteToHex[arr[offset + 1]] +
21
- byteToHex[arr[offset + 2]] +
22
- byteToHex[arr[offset + 3]] +
23
- '-' +
24
- byteToHex[arr[offset + 4]] +
25
- byteToHex[arr[offset + 5]] +
26
- '-' +
27
- byteToHex[arr[offset + 6]] +
28
- byteToHex[arr[offset + 7]] +
29
- '-' +
30
- byteToHex[arr[offset + 8]] +
31
- byteToHex[arr[offset + 9]] +
32
- '-' +
33
- byteToHex[arr[offset + 10]] +
34
- byteToHex[arr[offset + 11]] +
35
- byteToHex[arr[offset + 12]] +
36
- byteToHex[arr[offset + 13]] +
37
- byteToHex[arr[offset + 14]] +
38
- byteToHex[arr[offset + 15]]).toLowerCase();
39
- }
40
-
41
- let getRandomValues;
42
- const rnds8 = new Uint8Array(16);
43
- function rng() {
44
- if (!getRandomValues) {
45
- if (typeof crypto === 'undefined' || !crypto.getRandomValues) {
46
- throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');
47
- }
48
- getRandomValues = crypto.getRandomValues.bind(crypto);
49
- }
50
- return getRandomValues(rnds8);
51
- }
14
+ 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}";
52
15
 
53
- const randomUUID = typeof crypto !== 'undefined' && crypto.randomUUID && crypto.randomUUID.bind(crypto);
54
- const native = { randomUUID };
55
-
56
- function v4(options, buf, offset) {
57
- if (native.randomUUID && true && !options) {
58
- return native.randomUUID();
16
+ class Reflector {
17
+ #reflectedProperties = /* @__PURE__ */ new Map();
18
+ #source;
19
+ #target;
20
+ constructor(source, target) {
21
+ this.#source = source;
22
+ this.#target = target;
23
+ }
24
+ attribute(propertyName, attributeName) {
25
+ this.#addReflectedProperty(propertyName, {
26
+ type: "attribute",
27
+ destination: attributeName
28
+ });
29
+ }
30
+ booleanAttribute(propertyName, attributeName) {
31
+ this.#addReflectedProperty(propertyName, {
32
+ type: "boolean-attribute",
33
+ destination: attributeName
34
+ });
35
+ }
36
+ property(propertyName, targetProperty, skipIfEqual = false) {
37
+ this.#addReflectedProperty(propertyName, {
38
+ type: "property",
39
+ destination: targetProperty,
40
+ skipIfEqual
41
+ });
42
+ }
43
+ destroy() {
44
+ const notifier = Observable.getNotifier(this.#source);
45
+ for (const prop of this.#reflectedProperties.keys()) {
46
+ notifier.unsubscribe(this.#propertyChangeHandler, prop);
59
47
  }
60
- options = options || {};
61
- const rnds = options.random ?? options.rng?.() ?? rng();
62
- if (rnds.length < 16) {
63
- throw new Error('Random bytes length must be >= 16');
48
+ this.#reflectedProperties.clear();
49
+ }
50
+ #addReflectedProperty(name, reflected) {
51
+ this.#reflectedProperties.set(name, reflected);
52
+ const notifier = Observable.getNotifier(this.#source);
53
+ notifier.subscribe(this.#propertyChangeHandler, name);
54
+ this.#propertyChangeHandler.handleChange(this.#source, name);
55
+ }
56
+ #propertyChangeHandler = {
57
+ handleChange: (source, propertyName) => {
58
+ const reflectedProperty = this.#reflectedProperties.get(propertyName);
59
+ const value = source[propertyName];
60
+ switch (reflectedProperty.type) {
61
+ case "boolean-attribute":
62
+ DOM.setBooleanAttribute(
63
+ this.#target,
64
+ reflectedProperty.destination,
65
+ Boolean(value)
66
+ );
67
+ break;
68
+ case "attribute":
69
+ DOM.setAttribute(this.#target, reflectedProperty.destination, value);
70
+ break;
71
+ case "property":
72
+ if (reflectedProperty.skipIfEqual && this.#target[reflectedProperty.destination] === value) {
73
+ return;
74
+ }
75
+ this.#target[reflectedProperty.destination] = value;
76
+ break;
77
+ }
64
78
  }
65
- rnds[6] = (rnds[6] & 0x0f) | 0x40;
66
- rnds[8] = (rnds[8] & 0x3f) | 0x80;
67
- return unsafeStringify(rnds);
68
- }
69
-
70
- const generateRandomId = () => v4();
71
-
72
- class _TextField extends VividElement {
73
- }
74
- class FormAssociatedTextField extends FormAssociated(_TextField) {
75
- constructor() {
76
- super(...arguments);
77
- this.proxy = document.createElement("input");
78
- }
79
+ };
79
80
  }
80
81
 
81
82
  var __defProp = Object.defineProperty;
82
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
83
- var __typeError = (msg) => {
84
- throw TypeError(msg);
85
- };
86
83
  var __decorateClass = (decorators, target, key, kind) => {
87
- var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
84
+ var result = void 0 ;
88
85
  for (var i = decorators.length - 1, decorator; i >= 0; i--)
89
86
  if (decorator = decorators[i])
90
- result = (kind ? decorator(target, key, result) : decorator(result)) || result;
91
- if (kind && result) __defProp(target, key, result);
87
+ result = (decorator(target, key, result) ) || result;
88
+ if (result) __defProp(target, key, result);
92
89
  return result;
93
90
  };
94
- var __accessCheck = (obj, member, msg) => member.has(obj) || __typeError("Cannot " + msg);
95
- var __privateGet = (obj, member, getter) => (__accessCheck(obj, member, "read from private field"), getter ? getter.call(obj) : member.get(obj));
96
- 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);
97
- var __privateSet = (obj, member, value, setter) => (__accessCheck(obj, member, "write to private field"), member.set(obj, value), value);
98
- var __privateMethod = (obj, member, method) => (__accessCheck(obj, member, "access private method"), method);
99
- var _randomId, _helperTextSlotMutationObserver, _TextField_instances, updateHelperTextMutationObserver_fn, updateMirroredHelperText_fn;
100
- const TextFieldType = {
91
+ const TextAreaResize = {
101
92
  /**
102
- * A text TextField
93
+ * No resize.
103
94
  */
104
- text: "text"};
105
- const safariWorkaroundClassName = "_vvd-3-text-field-safari-workaround";
106
- const getSafariWorkaroundStyleSheet = memoizeWith(
107
- () => "",
108
- () => {
109
- const styleSheet = new CSSStyleSheet();
110
- const supportsReplaceSync = "replaceSync" in styleSheet;
111
- if (supportsReplaceSync) {
112
- styleSheet.replaceSync(`
113
- .${safariWorkaroundClassName}::placeholder {
114
- opacity: 1 !important;
115
- -webkit-text-fill-color: var(--_low-ink-color) !important;
116
- }`);
117
- }
118
- return styleSheet;
119
- }
120
- );
121
- const installSafariWorkaroundStyleIfNeeded = (forElement) => {
122
- if (forElement._isSafariWorkaroundInstalled) {
123
- return;
124
- }
125
- forElement._isSafariWorkaroundInstalled = true;
126
- const root = forElement.getRootNode();
127
- const workaroundStyleSheet = getSafariWorkaroundStyleSheet();
128
- const supportsAdoptedStyleSheets = "adoptedStyleSheets" in root;
129
- if (!supportsAdoptedStyleSheets) {
130
- return;
131
- }
132
- if (!root.adoptedStyleSheets.includes(workaroundStyleSheet)) {
133
- root.adoptedStyleSheets = [
134
- ...root.adoptedStyleSheets,
135
- workaroundStyleSheet
136
- ];
137
- }
138
- };
139
- let TextField = class extends AffixIcon(
140
- DelegatesAria(FormAssociatedTextField)
95
+ none: "none"};
96
+ class TextArea extends WithFeedback(
97
+ WithCharCount(
98
+ WithErrorText(
99
+ WithSuccessText(FormElement(DelegatesAria(FormAssociated(VividElement))))
100
+ )
101
+ )
141
102
  ) {
142
103
  constructor() {
143
104
  super(...arguments);
144
- __privateAdd(this, _TextField_instances);
105
+ /**
106
+ * @internal
107
+ */
108
+ this.proxy = document.createElement("textarea");
145
109
  // eslint-disable-next-line @nrwl/nx/workspace/no-attribute-default-value
146
- this.type = TextFieldType.text;
147
- __privateAdd(this, _randomId, generateRandomId());
148
- this._mirroredHelperText = "";
149
- __privateAdd(this, _helperTextSlotMutationObserver);
110
+ this.resize = TextAreaResize.none;
111
+ this.cols = 20;
112
+ /**
113
+ * @internal
114
+ */
115
+ this.handleTextInput = () => {
116
+ this.value = this.control.value;
117
+ };
150
118
  }
151
119
  /**
152
120
  * @internal
153
121
  */
154
122
  readOnlyChanged() {
155
- if (this.proxy instanceof HTMLInputElement) {
123
+ if (this.proxy instanceof HTMLTextAreaElement) {
156
124
  this.proxy.readOnly = this.readOnly;
157
- this.validate();
158
125
  }
159
126
  }
160
127
  /**
161
128
  * @internal
162
129
  */
163
130
  autofocusChanged() {
164
- if (this.proxy instanceof HTMLInputElement) {
131
+ if (this.proxy instanceof HTMLTextAreaElement) {
165
132
  this.proxy.autofocus = this.autofocus;
166
- this.validate();
167
- }
168
- }
169
- /**
170
- * @internal
171
- */
172
- placeholderChanged() {
173
- if (this.proxy instanceof HTMLInputElement) {
174
- this.proxy.placeholder = this.placeholder;
175
- }
176
- }
177
- /**
178
- * @internal
179
- */
180
- typeChanged() {
181
- if (this.proxy instanceof HTMLInputElement) {
182
- this.proxy.type = this.type;
183
- this.validate();
184
133
  }
185
134
  }
186
135
  /**
187
136
  * @internal
188
137
  */
189
138
  listChanged() {
190
- if (this.proxy instanceof HTMLInputElement) {
139
+ if (this.proxy instanceof HTMLTextAreaElement) {
191
140
  this.proxy.setAttribute("list", this.list);
192
- this.validate();
193
141
  }
194
142
  }
195
143
  /**
196
144
  * @internal
197
145
  */
198
146
  maxlengthChanged() {
199
- if (this.proxy instanceof HTMLInputElement) {
147
+ if (this.proxy instanceof HTMLTextAreaElement) {
200
148
  this.proxy.maxLength = this.maxlength;
201
- this.validate();
202
149
  }
203
150
  }
204
151
  /**
205
152
  * @internal
206
153
  */
207
154
  minlengthChanged() {
208
- if (this.proxy instanceof HTMLInputElement) {
155
+ if (this.proxy instanceof HTMLTextAreaElement) {
209
156
  this.proxy.minLength = this.minlength;
210
- this.validate();
211
- }
212
- }
213
- /**
214
- * @internal
215
- */
216
- patternChanged() {
217
- if (this.proxy instanceof HTMLInputElement) {
218
- this.proxy.pattern = this.pattern;
219
- this.validate();
220
- }
221
- }
222
- /**
223
- * @internal
224
- */
225
- sizeChanged() {
226
- if (this.proxy instanceof HTMLInputElement) {
227
- this.proxy.size = this.size;
228
157
  }
229
158
  }
230
159
  /**
231
160
  * @internal
232
161
  */
233
162
  spellcheckChanged() {
234
- if (this.proxy instanceof HTMLInputElement) {
163
+ if (this.proxy instanceof HTMLTextAreaElement) {
235
164
  this.proxy.spellcheck = this.spellcheck;
236
165
  }
237
166
  }
238
167
  /**
239
- * @internal
240
- */
241
- valueChanged(previous, next) {
242
- super.valueChanged(previous, next);
243
- this._updateControlValueIfNeeded();
244
- }
245
- /**
246
- * Update the controls value only if it is actually different from the actual value.
247
- * This is important as to not reset the browser's "dirtiness" flag on the input, which is used for min/maxlength
248
- * constraints.
249
- * @internal
250
- */
251
- _updateControlValueIfNeeded() {
252
- if (this.control && this.control.value !== this.value) {
253
- this.control.value = this.value;
254
- }
255
- }
256
- /**
257
- * Selects all the text in the text field
168
+ * Selects all the text in the text area
258
169
  *
259
170
  * @public
260
171
  */
@@ -262,11 +173,13 @@ let TextField = class extends AffixIcon(
262
173
  this.control.select();
263
174
  }
264
175
  /**
265
- * Handles the internal control's `input` event
266
176
  * @internal
267
177
  */
268
- handleTextInput() {
269
- this.value = this.control.value;
178
+ valueChanged(previous, next) {
179
+ super.valueChanged(previous, next);
180
+ if (this.charCount && this.maxlength) {
181
+ this._updateCharCountRemaining();
182
+ }
270
183
  }
271
184
  /**
272
185
  * Change event handler for inner control.
@@ -284,330 +197,128 @@ let TextField = class extends AffixIcon(
284
197
  validate() {
285
198
  super.validate(this.control);
286
199
  }
200
+ #reflectToTextArea;
287
201
  connectedCallback() {
288
202
  super.connectedCallback();
289
- this.proxy.setAttribute("type", this.type);
290
- this.validate();
291
- if (this.autofocus) {
292
- DOM.queueUpdate(() => {
293
- this.focus();
294
- });
295
- }
296
- this._updateControlValueIfNeeded();
297
- __privateMethod(this, _TextField_instances, updateHelperTextMutationObserver_fn).call(this);
298
- installSafariWorkaroundStyleIfNeeded(this);
203
+ this.#reflectToTextArea = new Reflector(this, this.control);
204
+ this.#reflectToTextArea.property("value", "value", true);
205
+ this._renderCharCountRemaining();
299
206
  }
300
207
  disconnectedCallback() {
301
208
  super.disconnectedCallback();
302
- __privateMethod(this, _TextField_instances, updateHelperTextMutationObserver_fn).call(this);
303
- }
304
- focus() {
305
- this.control?.focus();
306
- }
307
- /**
308
- * @internal
309
- */
310
- get _uniqueId() {
311
- return this.id || __privateGet(this, _randomId);
209
+ this.#reflectToTextArea.destroy();
312
210
  }
313
- /**
314
- * @internal
315
- */
316
- helperTextChanged() {
317
- __privateMethod(this, _TextField_instances, updateMirroredHelperText_fn).call(this);
318
- }
319
- /**
320
- * @internal
321
- */
322
- _helperTextSlottedContentChanged() {
323
- __privateMethod(this, _TextField_instances, updateMirroredHelperText_fn).call(this);
324
- __privateMethod(this, _TextField_instances, updateHelperTextMutationObserver_fn).call(this);
325
- }
326
- };
327
- _randomId = new WeakMap();
328
- _helperTextSlotMutationObserver = new WeakMap();
329
- _TextField_instances = new WeakSet();
330
- updateHelperTextMutationObserver_fn = function() {
331
- const usesHelperTextSlot = this._helperTextSlottedContent.length;
332
- const shouldHaveMutationObserver = usesHelperTextSlot && this.isConnected;
333
- if (shouldHaveMutationObserver && !__privateGet(this, _helperTextSlotMutationObserver)) {
334
- __privateSet(this, _helperTextSlotMutationObserver, new MutationObserver((records) => {
335
- if (
336
- // Ignore updates to the mirrored helper text itself
337
- records.some(
338
- (record) => record.target instanceof HTMLElement && record.target.slot !== "_mirrored-helper-text"
339
- )
340
- ) {
341
- __privateMethod(this, _TextField_instances, updateMirroredHelperText_fn).call(this);
342
- }
343
- }));
344
- __privateGet(this, _helperTextSlotMutationObserver).observe(this, {
345
- subtree: true,
346
- childList: true,
347
- characterData: true
348
- });
349
- }
350
- if (!shouldHaveMutationObserver && __privateGet(this, _helperTextSlotMutationObserver)) {
351
- __privateGet(this, _helperTextSlotMutationObserver).disconnect();
352
- __privateSet(this, _helperTextSlotMutationObserver, void 0);
353
- }
354
- };
355
- updateMirroredHelperText_fn = function() {
356
- let helperText = this.helperText ?? "";
357
- if (this._helperTextSlottedContent?.length) {
358
- helperText = this._helperTextSlottedContent.map((node) => node.innerText).join(" ");
359
- }
360
- this._mirroredHelperText = helperText;
361
- };
362
- __decorateClass([
363
- attr({ attribute: "readonly", mode: "boolean" })
364
- ], TextField.prototype, "readOnly", 2);
211
+ }
212
+ // @ts-expect-error Type is incorrectly non-optional
365
213
  __decorateClass([
366
214
  attr({ mode: "boolean" })
367
- ], TextField.prototype, "autofocus", 2);
368
- __decorateClass([
369
- attr
370
- ], TextField.prototype, "placeholder", 2);
371
- __decorateClass([
372
- attr
373
- ], TextField.prototype, "type", 2);
215
+ ], TextArea.prototype, "readOnly");
374
216
  __decorateClass([
375
217
  attr
376
- ], TextField.prototype, "list", 2);
218
+ ], TextArea.prototype, "resize");
219
+ // @ts-expect-error Type is incorrectly non-optional
377
220
  __decorateClass([
378
- attr({ converter: nullableNumberConverter })
379
- ], TextField.prototype, "maxlength", 2);
221
+ attr({ mode: "boolean" })
222
+ ], TextArea.prototype, "autofocus");
223
+ // @ts-expect-error Type is incorrectly non-optional
380
224
  __decorateClass([
381
- attr({ converter: nullableNumberConverter })
382
- ], TextField.prototype, "minlength", 2);
225
+ attr({ attribute: "form" })
226
+ ], TextArea.prototype, "formId");
227
+ // @ts-expect-error Type is incorrectly non-optional
383
228
  __decorateClass([
384
229
  attr
385
- ], TextField.prototype, "pattern", 2);
230
+ ], TextArea.prototype, "list");
386
231
  __decorateClass([
387
232
  attr({ converter: nullableNumberConverter })
388
- ], TextField.prototype, "size", 2);
233
+ ], TextArea.prototype, "maxlength");
234
+ // @ts-expect-error Type is incorrectly non-optional
389
235
  __decorateClass([
390
- attr({ mode: "boolean" })
391
- ], TextField.prototype, "spellcheck", 2);
392
- __decorateClass([
393
- attr
394
- ], TextField.prototype, "appearance", 2);
395
- __decorateClass([
396
- attr
397
- ], TextField.prototype, "shape", 2);
236
+ attr({ converter: nullableNumberConverter })
237
+ ], TextArea.prototype, "minlength");
238
+ // @ts-expect-error Type is incorrectly non-optional
398
239
  __decorateClass([
399
240
  attr
400
- ], TextField.prototype, "autoComplete", 2);
241
+ ], TextArea.prototype, "placeholder");
401
242
  __decorateClass([
402
- attr()
403
- ], TextField.prototype, "scale", 2);
243
+ attr({ converter: nullableNumberConverter, mode: "fromView" })
244
+ ], TextArea.prototype, "cols");
245
+ // @ts-expect-error Type is incorrectly non-optional
404
246
  __decorateClass([
405
- attr({ attribute: "inputmode" })
406
- ], TextField.prototype, "inputMode", 2);
247
+ attr({ converter: nullableNumberConverter, mode: "fromView" })
248
+ ], TextArea.prototype, "rows");
249
+ // @ts-expect-error Type is incorrectly non-optional
407
250
  __decorateClass([
408
- observable
409
- ], TextField.prototype, "actionItemsSlottedContent", 2);
251
+ attr({ mode: "boolean" })
252
+ ], TextArea.prototype, "spellcheck");
410
253
  __decorateClass([
411
254
  observable
412
- ], TextField.prototype, "leadingActionItemsSlottedContent", 2);
255
+ ], TextArea.prototype, "defaultSlottedNodes");
413
256
  __decorateClass([
414
- observable
415
- ], TextField.prototype, "_mirroredHelperText", 2);
416
- TextField = __decorateClass([
417
- errorText,
418
- formElements
419
- ], TextField);
420
- applyMixinsWithObservables(
421
- TextField,
422
- FormElementCharCount,
423
- FormElementHelperText,
424
- FormElementSuccessText
425
- );
426
-
427
- class RenderInLightDomBehaviour {
428
- constructor(templateBinding, isTemplateBindingVolatile) {
429
- this.source = null;
430
- this.templateBindingObserver = Observable.binding(
431
- templateBinding,
432
- this,
433
- isTemplateBindingVolatile
434
- );
435
- }
436
- bind(source, context) {
437
- this.source = source;
438
- this.context = context;
439
- if (!this.insertionPoint) {
440
- this.insertionPoint = document.createComment("");
441
- source.appendChild(this.insertionPoint);
442
- }
443
- this.handleChange();
444
- }
445
- unbind() {
446
- this.source = null;
447
- this.view.unbind();
448
- this.templateBindingObserver.disconnect();
449
- }
450
- /**
451
- * Handles change of the template itself.
452
- */
453
- handleChange() {
454
- this.instantiateTemplate(
455
- this.templateBindingObserver.observe(this.source, this.context)
456
- );
457
- }
458
- instantiateTemplate(template) {
459
- if (this.view) {
460
- this.view.dispose();
461
- }
462
- this.view = template.create();
463
- this.view.bind(this.source, this.context);
464
- this.view.insertBefore(this.insertionPoint);
465
- }
466
- }
467
- class RenderInLightDomDirective extends HTMLDirective {
468
- constructor(templateBinding) {
469
- super();
470
- this.templateBinding = templateBinding;
471
- this.createPlaceholder = DOM.createBlockPlaceholder;
472
- this.isTemplateBindingVolatile = Observable.isVolatileBinding(templateBinding);
473
- }
474
- createBehavior() {
475
- return new RenderInLightDomBehaviour(
476
- this.templateBinding,
477
- this.isTemplateBindingVolatile
478
- );
479
- }
480
- }
481
- function renderInLightDOM(templateOrTemplateBinding) {
482
- const templateBinding = typeof templateOrTemplateBinding === "function" ? templateOrTemplateBinding : () => templateOrTemplateBinding;
483
- return new RenderInLightDomDirective(templateBinding);
484
- }
257
+ attr
258
+ ], TextArea.prototype, "wrap");
485
259
 
486
- const getControlId = (id) => `vvd-text-field-control-${id}`;
487
- const getHelperTextId = (id) => `vvd-text-field-helper-text-${id}`;
488
- const getStateClasses = ({
260
+ const getClasses = ({
261
+ value,
489
262
  errorValidationMessage,
490
263
  disabled,
491
- value,
492
- readOnly,
493
264
  placeholder,
494
- appearance,
495
- shape,
496
- label,
497
- successText,
498
- actionItemsSlottedContent,
499
- leadingActionItemsSlottedContent,
500
- icon,
501
- scale
265
+ readOnly,
266
+ successText
502
267
  }) => classNames(
503
- ["error", Boolean(errorValidationMessage)],
504
- ["disabled", disabled],
505
- ["has-value", Boolean(value)],
268
+ "base",
506
269
  ["readonly", readOnly],
507
270
  ["placeholder", Boolean(placeholder)],
508
- [`appearance-${appearance}`, Boolean(appearance)],
509
- [`shape-${shape}`, Boolean(shape)],
510
- ["no-label", !label],
511
- ["has-icon", !!icon],
512
- ["success", Boolean(successText)],
513
- ["action-items", !!actionItemsSlottedContent?.length],
514
- ["leading-action-items", !!leadingActionItemsSlottedContent?.length],
515
- ["no-leading", !(leadingActionItemsSlottedContent?.length || icon)],
516
- [`size-${scale}`, Boolean(scale)]
271
+ ["disabled", disabled],
272
+ ["error", Boolean(errorValidationMessage)],
273
+ ["has-value", Boolean(value)],
274
+ ["success", !!successText]
517
275
  );
518
- function renderCharCount() {
519
- return html`
520
- <span class="char-count"
521
- >${(x) => x.value ? x.value.length : 0} / ${(x) => x.maxlength}</span
522
- >
523
- `;
276
+ function renderLabel() {
277
+ return html` <label for="control" class="label">
278
+ ${(x) => x.label}
279
+ </label>`;
524
280
  }
525
- const TextfieldTemplate = (context) => {
526
- const affixIconTemplate = affixIconTemplateFactory(context);
281
+ const TextAreaTemplate = (context) => {
527
282
  return html`
528
- <div class="base ${getStateClasses}">
529
- ${when((x) => x.charCount && x.maxlength, renderCharCount())}
530
- <slot class="label" name="_label"></slot>
531
- ${renderInLightDOM(html`
532
- ${when(
533
- (x) => x.label,
534
- html`
535
- <label slot="_label" for="${(x) => getControlId(x._uniqueId)}">
536
- ${(x) => x.label}
537
- </label>
538
- `
539
- )}
540
- `)}
541
- <div class="fieldset">
542
- <div class="leading-items-wrapper">
543
- <slot
544
- name="leading-action-items"
545
- ${slotted("leadingActionItemsSlottedContent")}
546
- ></slot>
547
- ${(x) => affixIconTemplate(x.icon)}
548
- </div>
549
- <div class="wrapper">
550
- <slot class="control" name="_control"></slot>
551
- ${renderInLightDOM(
552
- html`<input
553
- slot="_control"
554
- id="${(x) => getControlId(x._uniqueId)}"
555
- class="_vvd-3-text-field-safari-workaround"
556
- @input="${(x) => x.handleTextInput()}"
557
- @change="${(x) => x.handleChange()}"
558
- @blur="${(x) => {
559
- x.$emit("blur", void 0, { bubbles: false });
560
- }}"
561
- @focus="${(x) => {
562
- x.$emit("focus", void 0, { bubbles: false });
563
- }}"
564
- ?autofocus="${(x) => x.autofocus}"
565
- ?disabled="${(x) => x.disabled}"
566
- ?readonly="${(x) => x.readOnly}"
567
- ?required="${(x) => x.required}"
568
- ?spellcheck="${(x) => x.spellcheck}"
569
- list="${(x) => x.list}"
570
- maxlength="${(x) => x.maxlength}"
571
- minlength="${(x) => x.minlength}"
572
- pattern="${(x) => x.pattern}"
573
- placeholder="${(x) => x.placeholder}"
574
- size="${(x) => x.size}"
575
- autocomplete="${(x) => x.autoComplete}"
576
- type="${(x) => x.type}"
577
- inputmode="${(x) => x.inputMode}"
578
- aria-describedby="${(x) => x._mirroredHelperText ? getHelperTextId(x._uniqueId) : null}"
579
- value="${(x) => x.initialValue}"
580
- ${delegateAria()}
581
- ${ref("control")}
582
- />`
283
+ <div class="${getClasses}">
284
+ ${when(
285
+ (x) => x.charCount && x.maxlength,
286
+ (x) => x._getCharCountTemplate(context)
583
287
  )}
584
- </div>
585
- <div class="action-items-wrapper">
586
- <slot
587
- name="action-items"
588
- ${slotted("actionItemsSlottedContent")}
589
- ></slot>
590
- </div>
591
- </div>
592
- ${getFeedbackTemplate(context)}
593
- </div>
594
- <slot name="_mirrored-helper-text"></slot>
595
- ${renderInLightDOM(html`
596
- <div
597
- id="${(x) => getHelperTextId(x._uniqueId)}"
598
- slot="_mirrored-helper-text"
288
+ ${when((x) => x.label, renderLabel())}
289
+ <textarea
290
+ class="control"
291
+ id="control"
292
+ ?autofocus="${(x) => x.autofocus}"
293
+ placeholder="${(x) => x.placeholder ? x.placeholder : null}"
294
+ name="${(x) => x.name ? x.name : null}"
295
+ list="${(x) => x.list}"
296
+ minlength="${(x) => x.minlength ? x.minlength : null}"
297
+ maxlength="${(x) => x.maxlength ? x.maxlength : null}"
298
+ rows="${(x) => x.rows ? x.rows : null}"
299
+ cols="${(x) => x.cols ? x.cols : null}"
300
+ wrap="${(x) => x.wrap ? x.wrap : null}"
301
+ ?readonly="${(x) => x.readOnly}"
302
+ ?disabled="${(x) => x.disabled}"
303
+ ?required="${(x) => x.required}"
304
+ ?spellcheck="${(x) => x.spellcheck}"
305
+ aria-describedby="${(x) => x._feedbackDescribedBy} ${(x) => x.charCount && x.maxlength ? x._charCountDescribedBy : null}"
306
+ ${delegateAria()}
307
+ @input="${(x) => x.handleTextInput()}"
308
+ @change="${(x) => x.handleChange()}"
309
+ ${ref("control")}
599
310
  >
600
- ${(x) => x._mirroredHelperText}
601
- </div>
602
- `)}
311
+ </textarea>
312
+ ${(x) => x._getFeedbackTemplate(context)}
313
+ </div>
603
314
  `;
604
315
  };
605
316
 
606
- const textFieldDefinition = defineVividComponent(
607
- "text-field",
608
- TextField,
609
- TextfieldTemplate,
610
- [iconDefinition],
317
+ const textAreaDefinition = defineVividComponent(
318
+ "text-area",
319
+ TextArea,
320
+ TextAreaTemplate,
321
+ [feedbackMessageDefinition, visuallyHiddenDefinition],
611
322
  {
612
323
  styles,
613
324
  shadowOptions: {
@@ -615,6 +326,6 @@ const textFieldDefinition = defineVividComponent(
615
326
  }
616
327
  }
617
328
  );
618
- const registerTextField = createRegisterFunction(textFieldDefinition);
329
+ const registerTextArea = createRegisterFunction(textAreaDefinition);
619
330
 
620
- export { TextField as T, registerTextField as r, textFieldDefinition as t };
331
+ export { TextArea as T, registerTextArea as r, textAreaDefinition as t };