@vonage/vivid 4.12.1 → 4.14.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 (523) hide show
  1. package/custom-elements.json +7489 -4858
  2. package/elevation/index.cjs +1 -1
  3. package/elevation/index.js +1 -1
  4. package/index.cjs +70 -136
  5. package/index.d.ts +0 -1
  6. package/index.js +60 -62
  7. package/lib/accordion/accordion.d.ts +2 -2
  8. package/lib/accordion/accordion.template.d.ts +1 -2
  9. package/lib/accordion/definition.d.ts +1 -1
  10. package/lib/accordion-item/accordion-item.d.ts +2 -2
  11. package/lib/accordion-item/accordion-item.template.d.ts +2 -3
  12. package/lib/accordion-item/definition.d.ts +1 -1
  13. package/lib/action-group/action-group.d.ts +2 -2
  14. package/lib/action-group/action-group.template.d.ts +1 -3
  15. package/lib/action-group/definition.d.ts +1 -1
  16. package/lib/alert/alert.d.ts +2 -2
  17. package/lib/alert/alert.template.d.ts +2 -3
  18. package/lib/alert/definition.d.ts +1 -1
  19. package/lib/audio-player/audio-player.d.ts +2 -2
  20. package/lib/audio-player/audio-player.template.d.ts +2 -3
  21. package/lib/audio-player/definition.d.ts +1 -3
  22. package/lib/avatar/avatar.d.ts +2 -2
  23. package/lib/avatar/avatar.template.d.ts +2 -3
  24. package/lib/avatar/definition.d.ts +1 -1
  25. package/lib/badge/badge.d.ts +2 -2
  26. package/lib/badge/badge.template.d.ts +2 -3
  27. package/lib/badge/definition.d.ts +1 -3
  28. package/lib/banner/banner.d.ts +2 -2
  29. package/lib/banner/banner.template.d.ts +2 -3
  30. package/lib/banner/definition.d.ts +1 -1
  31. package/lib/breadcrumb/breadcrumb.d.ts +2 -2
  32. package/lib/breadcrumb/breadcrumb.template.d.ts +3 -4
  33. package/lib/breadcrumb/definition.d.ts +1 -1
  34. package/lib/breadcrumb-item/breadcrumb-item.d.ts +2 -2
  35. package/lib/breadcrumb-item/breadcrumb-item.template.d.ts +2 -3
  36. package/lib/breadcrumb-item/definition.d.ts +1 -1
  37. package/lib/button/button.d.ts +2 -2
  38. package/lib/button/button.template.d.ts +2 -4
  39. package/lib/button/definition.d.ts +1 -1
  40. package/lib/calendar/calendar.d.ts +2 -2
  41. package/lib/calendar/calendar.template.d.ts +1 -3
  42. package/lib/calendar/definition.d.ts +1 -1
  43. package/lib/calendar-event/calendar-event.d.ts +2 -2
  44. package/lib/calendar-event/calendar-event.template.d.ts +1 -3
  45. package/lib/calendar-event/definition.d.ts +1 -1
  46. package/lib/card/card.d.ts +2 -2
  47. package/lib/card/card.template.d.ts +2 -3
  48. package/lib/card/definition.d.ts +1 -1
  49. package/lib/checkbox/checkbox.form-associated.d.ts +3 -2
  50. package/lib/checkbox/checkbox.template.d.ts +2 -3
  51. package/lib/checkbox/definition.d.ts +1 -1
  52. package/lib/combobox/combobox.d.ts +17 -2
  53. package/lib/combobox/combobox.options.d.ts +7 -0
  54. package/lib/combobox/combobox.template.d.ts +2 -3
  55. package/lib/combobox/definition.d.ts +1 -2
  56. package/lib/data-grid/data-grid-cell.d.ts +16 -13
  57. package/lib/data-grid/data-grid-cell.template.d.ts +2 -3
  58. package/lib/data-grid/data-grid-row.d.ts +19 -2
  59. package/lib/data-grid/data-grid-row.template.d.ts +2 -2
  60. package/lib/data-grid/data-grid.d.ts +45 -4
  61. package/lib/data-grid/data-grid.template.d.ts +2 -2
  62. package/lib/data-grid/definition.d.ts +1 -6
  63. package/lib/date-picker/definition.d.ts +1 -3
  64. package/lib/date-range-picker/definition.d.ts +1 -3
  65. package/lib/dial-pad/definition.d.ts +1 -3
  66. package/lib/dial-pad/dial-pad.d.ts +2 -2
  67. package/lib/dial-pad/dial-pad.template.d.ts +2 -3
  68. package/lib/dialog/definition.d.ts +1 -1
  69. package/lib/dialog/dialog.d.ts +2 -2
  70. package/lib/dialog/dialog.template.d.ts +2 -3
  71. package/lib/divider/definition.d.ts +1 -1
  72. package/lib/divider/divider.d.ts +2 -2
  73. package/lib/divider/divider.template.d.ts +1 -3
  74. package/lib/elevation/definition.d.ts +1 -1
  75. package/lib/elevation/elevation.d.ts +2 -2
  76. package/lib/elevation/elevation.template.d.ts +1 -3
  77. package/lib/empty-state/definition.d.ts +1 -3
  78. package/lib/empty-state/empty-state.d.ts +2 -2
  79. package/lib/empty-state/empty-state.template.d.ts +2 -3
  80. package/lib/fab/definition.d.ts +1 -3
  81. package/lib/fab/fab.template.d.ts +2 -3
  82. package/lib/file-picker/definition.d.ts +1 -3
  83. package/lib/file-picker/file-picker.d.ts +6 -0
  84. package/lib/file-picker/file-picker.form-associated.d.ts +3 -2
  85. package/lib/file-picker/file-picker.template.d.ts +2 -3
  86. package/lib/header/definition.d.ts +1 -3
  87. package/lib/header/header.d.ts +2 -2
  88. package/lib/header/header.template.d.ts +2 -3
  89. package/lib/icon/definition.d.ts +1 -3
  90. package/lib/icon/icon.d.ts +2 -2
  91. package/lib/icon/icon.template.d.ts +1 -3
  92. package/lib/layout/definition.d.ts +1 -3
  93. package/lib/layout/layout.d.ts +2 -2
  94. package/lib/layout/layout.template.d.ts +1 -3
  95. package/lib/listbox/definition.d.ts +1 -3
  96. package/lib/listbox/listbox.template.d.ts +1 -3
  97. package/lib/menu/definition.d.ts +1 -11
  98. package/lib/menu/menu.d.ts +16 -3
  99. package/lib/menu/menu.template.d.ts +3 -3
  100. package/lib/menu-item/definition.d.ts +1 -3
  101. package/lib/menu-item/menu-item.d.ts +10 -2
  102. package/lib/menu-item/menu-item.template.d.ts +2 -3
  103. package/lib/nav/definition.d.ts +1 -3
  104. package/lib/nav/nav.d.ts +2 -2
  105. package/lib/nav/nav.template.d.ts +1 -3
  106. package/lib/nav-disclosure/definition.d.ts +1 -3
  107. package/lib/nav-disclosure/nav-disclosure.d.ts +2 -2
  108. package/lib/nav-disclosure/nav-disclosure.template.d.ts +2 -3
  109. package/lib/nav-item/definition.d.ts +1 -3
  110. package/lib/nav-item/nav-item.template.d.ts +2 -3
  111. package/lib/note/definition.d.ts +1 -3
  112. package/lib/note/note.d.ts +2 -2
  113. package/lib/note/note.template.d.ts +2 -3
  114. package/lib/number-field/definition.d.ts +1 -4
  115. package/lib/number-field/number-field.form-associated.d.ts +3 -2
  116. package/lib/number-field/number-field.template.d.ts +2 -3
  117. package/lib/option/definition.d.ts +1 -3
  118. package/lib/option/option.d.ts +28 -7
  119. package/lib/option/option.template.d.ts +2 -3
  120. package/lib/pagination/definition.d.ts +1 -3
  121. package/lib/pagination/pagination.d.ts +2 -2
  122. package/lib/pagination/pagination.template.d.ts +2 -3
  123. package/lib/popup/definition.d.ts +1 -3
  124. package/lib/popup/popup.template.d.ts +2 -3
  125. package/lib/progress/definition.d.ts +1 -3
  126. package/lib/progress/progress.d.ts +1 -1
  127. package/lib/progress/progress.template.d.ts +1 -4
  128. package/lib/progress-ring/definition.d.ts +1 -3
  129. package/lib/progress-ring/progress-ring.d.ts +1 -1
  130. package/lib/progress-ring/progress-ring.template.d.ts +1 -3
  131. package/lib/radio/definition.d.ts +1 -3
  132. package/lib/radio/radio.form-associated.d.ts +3 -2
  133. package/lib/radio/radio.template.d.ts +1 -3
  134. package/lib/radio-group/definition.d.ts +1 -11
  135. package/lib/radio-group/radio-group.d.ts +2 -2
  136. package/lib/radio-group/radio-group.template.d.ts +2 -3
  137. package/lib/range-slider/definition.d.ts +1 -3
  138. package/lib/range-slider/range-slider.form-associated.d.ts +3 -2
  139. package/lib/range-slider/range-slider.template.d.ts +2 -3
  140. package/lib/searchable-select/definition.d.ts +1 -4
  141. package/lib/searchable-select/option-tag.template.d.ts +2 -3
  142. package/lib/searchable-select/searchable-select.form-associated.d.ts +3 -2
  143. package/lib/searchable-select/searchable-select.template.d.ts +2 -3
  144. package/lib/select/definition.d.ts +1 -3
  145. package/lib/select/select.d.ts +14 -4
  146. package/lib/select/select.form-associated.d.ts +11 -0
  147. package/lib/select/select.template.d.ts +2 -3
  148. package/lib/selectable-box/definition.d.ts +1 -3
  149. package/lib/selectable-box/selectable-box.d.ts +2 -2
  150. package/lib/selectable-box/selectable-box.template.d.ts +2 -3
  151. package/lib/side-drawer/definition.d.ts +1 -3
  152. package/lib/side-drawer/side-drawer.d.ts +2 -2
  153. package/lib/side-drawer/side-drawer.template.d.ts +1 -3
  154. package/lib/slider/definition.d.ts +1 -3
  155. package/lib/slider/slider.form-associated.d.ts +3 -2
  156. package/lib/slider/slider.template.d.ts +3 -4
  157. package/lib/split-button/definition.d.ts +1 -1
  158. package/lib/split-button/split-button.d.ts +2 -2
  159. package/lib/split-button/split-button.template.d.ts +2 -3
  160. package/lib/switch/definition.d.ts +1 -3
  161. package/lib/switch/switch.d.ts +5 -2
  162. package/lib/switch/switch.form-associated.d.ts +11 -0
  163. package/lib/switch/switch.template.d.ts +1 -3
  164. package/lib/tab/definition.d.ts +1 -3
  165. package/lib/tab/tab.d.ts +2 -2
  166. package/lib/tab/tab.template.d.ts +2 -2
  167. package/lib/tab-panel/definition.d.ts +1 -3
  168. package/lib/tab-panel/tab-panel.d.ts +2 -2
  169. package/lib/tab-panel/tab-panel.template.d.ts +1 -1
  170. package/lib/tabs/definition.d.ts +1 -3
  171. package/lib/tabs/tabs.d.ts +6 -4
  172. package/lib/tabs/tabs.template.d.ts +1 -1
  173. package/lib/tag/definition.d.ts +1 -4
  174. package/lib/tag/tag.d.ts +2 -2
  175. package/lib/tag/tag.template.d.ts +2 -3
  176. package/lib/tag-group/definition.d.ts +1 -3
  177. package/lib/tag-group/tag-group.d.ts +2 -2
  178. package/lib/tag-group/tag-group.template.d.ts +1 -3
  179. package/lib/text-anchor/definition.d.ts +1 -3
  180. package/lib/text-anchor/text-anchor.d.ts +4 -3
  181. package/lib/text-anchor/text-anchor.template.d.ts +2 -3
  182. package/lib/text-area/definition.d.ts +1 -3
  183. package/lib/text-area/text-area.d.ts +25 -3
  184. package/lib/text-area/text-area.form-associated.d.ts +11 -0
  185. package/lib/text-area/text-area.template.d.ts +2 -3
  186. package/lib/text-field/definition.d.ts +1 -3
  187. package/lib/text-field/text-field.d.ts +28 -3
  188. package/lib/text-field/text-field.form-associated.d.ts +11 -0
  189. package/lib/text-field/text-field.template.d.ts +2 -3
  190. package/lib/time-picker/definition.d.ts +1 -3
  191. package/lib/time-picker/time-picker.form-associated.d.ts +3 -2
  192. package/lib/time-picker/time-picker.template.d.ts +2 -2
  193. package/lib/toggletip/definition.d.ts +1 -3
  194. package/lib/toggletip/toggletip.d.ts +2 -2
  195. package/lib/toggletip/toggletip.template.d.ts +2 -3
  196. package/lib/tooltip/definition.d.ts +1 -3
  197. package/lib/tooltip/tooltip.d.ts +2 -2
  198. package/lib/tooltip/tooltip.template.d.ts +2 -3
  199. package/lib/tree-item/definition.d.ts +1 -3
  200. package/lib/tree-item/tree-item.d.ts +11 -2
  201. package/lib/tree-item/tree-item.template.d.ts +3 -3
  202. package/lib/tree-view/definition.d.ts +1 -3
  203. package/lib/tree-view/tree-view.d.ts +16 -2
  204. package/lib/tree-view/tree-view.template.d.ts +1 -1
  205. package/lib/video-player/definition.d.ts +1 -3
  206. package/lib/video-player/video-player.d.ts +2 -2
  207. package/lib/video-player/video-player.template.d.ts +1 -3
  208. package/listbox/index.cjs +37 -39
  209. package/listbox/index.js +37 -39
  210. package/menu/index.cjs +1 -1
  211. package/menu/index.js +1 -1
  212. package/nav/index.cjs +1 -1
  213. package/nav/index.js +1 -1
  214. package/nav-disclosure/index.cjs +1 -1
  215. package/nav-disclosure/index.js +1 -1
  216. package/nav-item/index.cjs +1 -1
  217. package/nav-item/index.js +1 -1
  218. package/note/index.cjs +1 -1
  219. package/note/index.js +1 -1
  220. package/number-field/index.cjs +1 -1
  221. package/number-field/index.js +1 -1
  222. package/option/index.cjs +1 -1
  223. package/option/index.js +1 -1
  224. package/package.json +1 -1
  225. package/pagination/index.cjs +1 -1
  226. package/pagination/index.js +1 -1
  227. package/popup/index.cjs +1 -1
  228. package/popup/index.js +1 -1
  229. package/progress/index.cjs +1 -1
  230. package/progress/index.js +1 -1
  231. package/progress-ring/index.cjs +1 -1
  232. package/progress-ring/index.js +1 -1
  233. package/radio/index.cjs +1 -1
  234. package/radio/index.js +1 -1
  235. package/radio-group/index.cjs +1 -1
  236. package/radio-group/index.js +1 -1
  237. package/range-slider/index.cjs +1 -1
  238. package/range-slider/index.js +1 -1
  239. package/searchable-select/index.cjs +1 -1
  240. package/searchable-select/index.js +1 -1
  241. package/select/index.cjs +1 -1
  242. package/select/index.js +1 -1
  243. package/selectable-box/index.cjs +1 -1
  244. package/selectable-box/index.js +1 -1
  245. package/shared/affix.cjs +10 -10
  246. package/shared/affix.js +2 -2
  247. package/shared/anchor.cjs +59 -0
  248. package/shared/anchor.js +57 -0
  249. package/shared/anchored.cjs +6 -6
  250. package/shared/anchored.js +2 -2
  251. package/shared/apply-mixins.cjs +15 -17
  252. package/shared/apply-mixins.js +15 -17
  253. package/shared/apply-mixins2.cjs +25 -0
  254. package/shared/apply-mixins2.js +23 -0
  255. package/shared/applyMixinsWithObservables.cjs +4 -4
  256. package/shared/applyMixinsWithObservables.js +2 -2
  257. package/shared/aria-global.cjs +86 -67
  258. package/shared/aria-global.js +86 -67
  259. package/shared/aria-global2.cjs +68 -86
  260. package/shared/aria-global2.js +68 -86
  261. package/shared/base-progress.cjs +70 -63
  262. package/shared/base-progress.js +69 -62
  263. package/shared/breadcrumb-item.cjs +7 -58
  264. package/shared/breadcrumb-item.js +4 -55
  265. package/shared/button.cjs +178 -0
  266. package/shared/button.js +176 -0
  267. package/shared/calendar-event.cjs +10 -9
  268. package/shared/calendar-event.js +3 -2
  269. package/shared/children.cjs +2 -2
  270. package/shared/children.js +1 -1
  271. package/shared/date-picker/date-picker-base.form-associated.d.ts +3 -2
  272. package/shared/date-picker/date-picker-base.template.d.ts +2 -3
  273. package/shared/defineVividComponent.cjs +2612 -0
  274. package/shared/defineVividComponent.js +2592 -0
  275. package/shared/definition.cjs +26 -24
  276. package/shared/definition.js +17 -14
  277. package/shared/definition10.cjs +15 -12
  278. package/shared/definition10.js +15 -11
  279. package/shared/definition11.cjs +53 -249
  280. package/shared/definition11.js +25 -219
  281. package/shared/definition12.cjs +18 -14
  282. package/shared/definition12.js +17 -12
  283. package/shared/definition13.cjs +20 -19
  284. package/shared/definition13.js +11 -9
  285. package/shared/definition14.cjs +36 -38
  286. package/shared/definition14.js +16 -17
  287. package/shared/definition15.cjs +28 -26
  288. package/shared/definition15.js +17 -14
  289. package/shared/definition16.cjs +478 -611
  290. package/shared/definition16.js +471 -603
  291. package/shared/definition17.cjs +934 -1113
  292. package/shared/definition17.js +913 -1091
  293. package/shared/definition18.cjs +16 -20
  294. package/shared/definition18.js +19 -22
  295. package/shared/definition19.cjs +26 -30
  296. package/shared/definition19.js +21 -24
  297. package/shared/definition2.cjs +20 -22
  298. package/shared/definition2.js +21 -22
  299. package/shared/definition20.cjs +53 -53
  300. package/shared/definition20.js +36 -35
  301. package/shared/definition21.cjs +43 -46
  302. package/shared/definition21.js +19 -21
  303. package/shared/definition22.cjs +16 -13
  304. package/shared/definition22.js +15 -11
  305. package/shared/definition23.cjs +22 -20
  306. package/shared/definition23.js +15 -12
  307. package/shared/definition24.cjs +20 -172
  308. package/shared/definition24.js +17 -168
  309. package/shared/definition25.cjs +48 -28
  310. package/shared/definition25.js +43 -22
  311. package/shared/definition26.cjs +17 -14
  312. package/shared/definition26.js +15 -11
  313. package/shared/definition27.cjs +265 -12
  314. package/shared/definition27.js +262 -10
  315. package/shared/definition28.cjs +19 -16
  316. package/shared/definition28.js +15 -11
  317. package/shared/definition29.cjs +478 -604
  318. package/shared/definition29.js +450 -578
  319. package/shared/definition3.cjs +21 -16
  320. package/shared/definition3.js +17 -11
  321. package/shared/definition30.cjs +100 -75
  322. package/shared/definition30.js +99 -73
  323. package/shared/definition31.cjs +24 -97
  324. package/shared/definition31.js +25 -97
  325. package/shared/definition32.cjs +10 -25
  326. package/shared/definition32.js +9 -23
  327. package/shared/definition33.cjs +53 -14
  328. package/shared/definition33.js +52 -12
  329. package/shared/definition34.cjs +641 -34
  330. package/shared/definition34.js +638 -30
  331. package/shared/definition35.cjs +205 -377
  332. package/shared/definition35.js +200 -373
  333. package/shared/definition36.cjs +204 -104
  334. package/shared/definition36.js +199 -97
  335. package/shared/definition37.cjs +79 -206
  336. package/shared/definition37.js +75 -202
  337. package/shared/definition38.cjs +50 -56
  338. package/shared/definition38.js +48 -52
  339. package/shared/definition39.cjs +260 -56
  340. package/shared/definition39.js +259 -54
  341. package/shared/definition4.cjs +33 -35
  342. package/shared/definition4.js +20 -21
  343. package/shared/definition40.cjs +112 -229
  344. package/shared/definition40.js +109 -226
  345. package/shared/definition41.cjs +627 -36
  346. package/shared/definition41.js +626 -34
  347. package/shared/definition42.cjs +975 -487
  348. package/shared/definition42.js +972 -482
  349. package/shared/definition43.cjs +725 -932
  350. package/shared/definition43.js +713 -918
  351. package/shared/definition44.cjs +116 -734
  352. package/shared/definition44.js +114 -731
  353. package/shared/definition45.cjs +93 -116
  354. package/shared/definition45.js +93 -115
  355. package/shared/definition46.cjs +469 -89
  356. package/shared/definition46.js +466 -86
  357. package/shared/definition47.cjs +119 -479
  358. package/shared/definition47.js +116 -474
  359. package/shared/definition48.cjs +114 -120
  360. package/shared/definition48.js +112 -117
  361. package/shared/definition49.cjs +18 -160
  362. package/shared/definition49.js +16 -157
  363. package/shared/definition5.cjs +48 -49
  364. package/shared/definition5.js +19 -19
  365. package/shared/definition50.cjs +112 -15
  366. package/shared/definition50.js +110 -12
  367. package/shared/definition51.cjs +847 -84
  368. package/shared/definition51.js +843 -79
  369. package/shared/definition52.cjs +31 -859
  370. package/shared/definition52.js +29 -856
  371. package/shared/definition53.cjs +126 -28
  372. package/shared/definition53.js +124 -25
  373. package/shared/definition54.cjs +268 -107
  374. package/shared/definition54.js +262 -100
  375. package/shared/definition55.cjs +63 -298
  376. package/shared/definition55.js +61 -295
  377. package/shared/definition56.cjs +799 -311
  378. package/shared/definition56.js +795 -306
  379. package/shared/definition57.cjs +108 -825
  380. package/shared/definition57.js +106 -822
  381. package/shared/definition58.cjs +74 -100
  382. package/shared/definition58.js +70 -95
  383. package/shared/definition59.cjs +181 -106
  384. package/shared/definition59.js +175 -101
  385. package/shared/definition6.cjs +23 -21
  386. package/shared/definition6.js +15 -12
  387. package/shared/definition60.cjs +273 -70
  388. package/shared/definition60.js +273 -69
  389. package/shared/definition61.cjs +66157 -271
  390. package/shared/definition61.js +66156 -269
  391. package/shared/definition62.cjs +36 -66174
  392. package/shared/definition62.js +33 -66171
  393. package/shared/definition63.cjs +2154 -27
  394. package/shared/definition63.js +2151 -25
  395. package/shared/definition7.cjs +19 -15
  396. package/shared/definition7.js +14 -10
  397. package/shared/definition8.cjs +26 -27
  398. package/shared/definition8.js +17 -17
  399. package/shared/definition9.cjs +21 -21
  400. package/shared/definition9.js +18 -17
  401. package/shared/design-system/createRegisterFunction.d.ts +2 -0
  402. package/shared/design-system/defineVividComponent.d.ts +15 -0
  403. package/shared/direction.cjs +10 -1
  404. package/shared/direction.js +10 -1
  405. package/shared/dom.cjs +0 -13
  406. package/shared/dom.js +1 -13
  407. package/shared/form-associated.cjs +422 -457
  408. package/shared/form-associated.js +422 -457
  409. package/shared/form-associated2.cjs +383 -0
  410. package/shared/form-associated2.js +381 -0
  411. package/shared/form-elements.cjs +15 -42
  412. package/shared/form-elements.js +2 -29
  413. package/shared/foundation/anchor/anchor.d.ts +1 -0
  414. package/shared/foundation/button/button.d.ts +3 -2
  415. package/shared/foundation/button/button.template.d.ts +2 -4
  416. package/shared/foundation/form-associated/form-associated.d.ts +51 -0
  417. package/shared/foundation/listbox/listbox.d.ts +22 -0
  418. package/shared/foundation/progress/base-progress.d.ts +9 -0
  419. package/shared/foundation/utilities/apply-mixins.d.ts +1 -0
  420. package/shared/foundation/vivid-element/vivid-element.d.ts +3 -0
  421. package/shared/foundation-element.cjs +1417 -0
  422. package/shared/foundation-element.js +1414 -0
  423. package/shared/index.cjs +7 -5097
  424. package/shared/index.js +7 -5079
  425. package/shared/key-codes.cjs +10 -0
  426. package/shared/key-codes.js +6 -1
  427. package/shared/key-codes2.cjs +50 -6
  428. package/shared/key-codes2.js +50 -4
  429. package/shared/listbox.cjs +409 -981
  430. package/shared/listbox.js +410 -979
  431. package/shared/listbox2.cjs +1268 -0
  432. package/shared/listbox2.js +1265 -0
  433. package/shared/localized.cjs +2 -2
  434. package/shared/localized.js +1 -1
  435. package/shared/numbers.cjs +12 -0
  436. package/shared/numbers.js +12 -1
  437. package/shared/patterns/affix.d.ts +2 -2
  438. package/shared/patterns/chevron.d.ts +2 -2
  439. package/shared/patterns/form-elements/form-elements.d.ts +2 -2
  440. package/shared/presentationDate.cjs +56 -55
  441. package/shared/presentationDate.js +8 -7
  442. package/shared/ref.cjs +2 -2
  443. package/shared/ref.js +1 -1
  444. package/shared/repeat.cjs +22 -22
  445. package/shared/repeat.js +1 -1
  446. package/shared/slider.template.cjs +5 -5
  447. package/shared/slider.template.js +2 -2
  448. package/shared/slotted.cjs +4 -4
  449. package/shared/slotted.js +1 -1
  450. package/shared/strings.cjs +0 -26
  451. package/shared/strings.js +1 -25
  452. package/shared/strings2.cjs +37 -0
  453. package/shared/strings2.js +33 -0
  454. package/shared/text-anchor.cjs +8 -89
  455. package/shared/text-anchor.js +5 -86
  456. package/shared/text-anchor.template.cjs +2 -2
  457. package/shared/text-anchor.template.js +1 -1
  458. package/shared/text-field2.cjs +539 -194
  459. package/shared/text-field2.js +539 -194
  460. package/shared/vivid-element.cjs +8 -0
  461. package/shared/vivid-element.js +6 -0
  462. package/side-drawer/index.cjs +1 -1
  463. package/side-drawer/index.js +1 -1
  464. package/slider/index.cjs +1 -1
  465. package/slider/index.js +1 -1
  466. package/split-button/index.cjs +1 -1
  467. package/split-button/index.js +1 -1
  468. package/styles/core/all.css +21 -1
  469. package/styles/core/theme.css +21 -1
  470. package/styles/core/typography.css +1 -1
  471. package/styles/tokens/theme-dark.css +4 -4
  472. package/styles/tokens/theme-light.css +4 -4
  473. package/styles/tokens/vivid-2-compat.css +1 -1
  474. package/switch/index.cjs +1 -1
  475. package/switch/index.js +1 -1
  476. package/tab/index.cjs +1 -1
  477. package/tab/index.js +1 -1
  478. package/tab-panel/index.cjs +1 -1
  479. package/tab-panel/index.js +1 -1
  480. package/tabs/index.cjs +1 -1
  481. package/tabs/index.js +1 -1
  482. package/tag/index.cjs +1 -1
  483. package/tag/index.js +1 -1
  484. package/tag-group/index.cjs +1 -1
  485. package/tag-group/index.js +1 -1
  486. package/text-anchor/index.cjs +10 -7
  487. package/text-anchor/index.js +10 -7
  488. package/text-area/index.cjs +1 -1
  489. package/text-area/index.js +1 -1
  490. package/text-field/index.cjs +1 -1
  491. package/text-field/index.js +1 -1
  492. package/time-picker/index.cjs +1 -1
  493. package/time-picker/index.js +1 -1
  494. package/toggletip/index.cjs +1 -1
  495. package/toggletip/index.js +1 -1
  496. package/tooltip/index.cjs +1 -1
  497. package/tooltip/index.js +1 -1
  498. package/tree-item/index.cjs +1 -1
  499. package/tree-item/index.js +1 -1
  500. package/tree-view/index.cjs +1 -1
  501. package/tree-view/index.js +1 -1
  502. package/video-player/index.cjs +1 -1
  503. package/video-player/index.js +1 -1
  504. package/vivid.api.json +2848 -7818
  505. package/shared/Reflector.cjs +0 -71
  506. package/shared/Reflector.js +0 -69
  507. package/shared/definition64.cjs +0 -2164
  508. package/shared/definition64.js +0 -2159
  509. package/shared/design-system/index.d.ts +0 -3
  510. package/shared/icon.cjs +0 -261
  511. package/shared/icon.js +0 -258
  512. package/shared/index2.cjs +0 -11
  513. package/shared/index2.js +0 -9
  514. package/shared/listbox-option.cjs +0 -204
  515. package/shared/listbox-option.js +0 -201
  516. package/shared/radio.cjs +0 -126
  517. package/shared/radio.js +0 -124
  518. package/shared/select.options.cjs +0 -12
  519. package/shared/select.options.js +0 -10
  520. package/shared/start-end.cjs +0 -52
  521. package/shared/start-end.js +0 -50
  522. package/shared/tree-item.cjs +0 -154
  523. package/shared/tree-item.js +0 -151
@@ -1,469 +1,434 @@
1
1
  'use strict';
2
2
 
3
- const index = require('./index.cjs');
4
- const keyCodes = require('./key-codes2.cjs');
3
+ const defineVividComponent = require('./defineVividComponent.cjs');
4
+ const keyCodes = require('./key-codes.cjs');
5
5
 
6
6
  const proxySlotName = "form-associated-proxy";
7
7
  const ElementInternalsKey = "ElementInternals";
8
- /**
9
- * @alpha
10
- */
11
- const supportsElementInternals = ElementInternalsKey in window &&
12
- "setFormValue" in window[ElementInternalsKey].prototype;
13
- const InternalsMap = new WeakMap();
14
- /**
15
- * Base function for providing Custom Element Form Association.
16
- *
17
- * @alpha
18
- */
8
+ const supportsElementInternals = ElementInternalsKey in window && "setFormValue" in window[ElementInternalsKey].prototype;
9
+ const InternalsMap = /* @__PURE__ */ new WeakMap();
19
10
  function FormAssociated(BaseCtor) {
20
- const C = class extends BaseCtor {
21
- constructor(...args) {
22
- super(...args);
23
- /**
24
- * Track whether the value has been changed from the initial value
25
- */
26
- this.dirtyValue = false;
27
- /**
28
- * Sets the element's disabled state. A disabled element will not be included during form submission.
29
- *
30
- * @remarks
31
- * HTML Attribute: disabled
32
- */
33
- this.disabled = false;
34
- /**
35
- * These are events that are still fired by the proxy
36
- * element based on user / programmatic interaction.
37
- *
38
- * The proxy implementation should be transparent to
39
- * the app author, so block these events from emitting.
40
- */
41
- this.proxyEventsToBlock = ["change", "click"];
42
- this.proxyInitialized = false;
43
- this.required = false;
44
- this.initialValue = this.initialValue || "";
45
- if (!this.elementInternals) {
46
- // When elementInternals is not supported, formResetCallback is
47
- // bound to an event listener, so ensure the handler's `this`
48
- // context is correct.
49
- this.formResetCallback = this.formResetCallback.bind(this);
50
- }
51
- }
52
- /**
53
- * Must evaluate to true to enable elementInternals.
54
- * Feature detects API support and resolve respectively
55
- *
56
- * @internal
57
- */
58
- static get formAssociated() {
59
- return supportsElementInternals;
60
- }
61
- /**
62
- * Returns the validity state of the element
63
- *
64
- * @alpha
65
- */
66
- get validity() {
67
- return this.elementInternals
68
- ? this.elementInternals.validity
69
- : this.proxy.validity;
70
- }
71
- /**
72
- * Retrieve a reference to the associated form.
73
- * Returns null if not associated to any form.
74
- *
75
- * @alpha
76
- */
77
- get form() {
78
- return this.elementInternals ? this.elementInternals.form : this.proxy.form;
79
- }
80
- /**
81
- * Retrieve the localized validation message,
82
- * or custom validation message if set.
83
- *
84
- * @alpha
85
- */
86
- get validationMessage() {
87
- return this.elementInternals
88
- ? this.elementInternals.validationMessage
89
- : this.proxy.validationMessage;
90
- }
91
- /**
92
- * Whether the element will be validated when the
93
- * form is submitted
94
- */
95
- get willValidate() {
96
- return this.elementInternals
97
- ? this.elementInternals.willValidate
98
- : this.proxy.willValidate;
99
- }
100
- /**
101
- * A reference to all associated label elements
102
- */
103
- get labels() {
104
- if (this.elementInternals) {
105
- return Object.freeze(Array.from(this.elementInternals.labels));
106
- }
107
- else if (this.proxy instanceof HTMLElement &&
108
- this.proxy.ownerDocument &&
109
- this.id) {
110
- // Labels associated by wrapping the element: <label><custom-element></custom-element></label>
111
- const parentLabels = this.proxy.labels;
112
- // Labels associated using the `for` attribute
113
- const forLabels = Array.from(this.proxy.getRootNode().querySelectorAll(`[for='${this.id}']`));
114
- const labels = parentLabels
115
- ? forLabels.concat(Array.from(parentLabels))
116
- : forLabels;
117
- return Object.freeze(labels);
118
- }
119
- else {
120
- return index.emptyArray;
121
- }
122
- }
123
- /**
124
- * Invoked when the `value` property changes
125
- * @param previous - the previous value
126
- * @param next - the new value
127
- *
128
- * @remarks
129
- * If elements extending `FormAssociated` implement a `valueChanged` method
130
- * They must be sure to invoke `super.valueChanged(previous, next)` to ensure
131
- * proper functioning of `FormAssociated`
132
- */
133
- valueChanged(previous, next) {
134
- this.dirtyValue = true;
135
- if (this.proxy instanceof HTMLElement) {
136
- this.proxy.value = this.value;
137
- }
138
- this.currentValue = this.value;
139
- this.setFormValue(this.value);
140
- this.validate();
141
- }
142
- currentValueChanged() {
143
- this.value = this.currentValue;
144
- }
145
- /**
146
- * Invoked when the `initialValue` property changes
147
- *
148
- * @param previous - the previous value
149
- * @param next - the new value
150
- *
151
- * @remarks
152
- * If elements extending `FormAssociated` implement a `initialValueChanged` method
153
- * They must be sure to invoke `super.initialValueChanged(previous, next)` to ensure
154
- * proper functioning of `FormAssociated`
155
- */
156
- initialValueChanged(previous, next) {
157
- // If the value is clean and the component is connected to the DOM
158
- // then set value equal to the attribute value.
159
- if (!this.dirtyValue) {
160
- this.value = this.initialValue;
161
- this.dirtyValue = false;
162
- }
163
- }
164
- /**
165
- * Invoked when the `disabled` property changes
166
- *
167
- * @param previous - the previous value
168
- * @param next - the new value
169
- *
170
- * @remarks
171
- * If elements extending `FormAssociated` implement a `disabledChanged` method
172
- * They must be sure to invoke `super.disabledChanged(previous, next)` to ensure
173
- * proper functioning of `FormAssociated`
174
- */
175
- disabledChanged(previous, next) {
176
- if (this.proxy instanceof HTMLElement) {
177
- this.proxy.disabled = this.disabled;
178
- }
179
- index.DOM.queueUpdate(() => this.classList.toggle("disabled", this.disabled));
180
- }
181
- /**
182
- * Invoked when the `name` property changes
183
- *
184
- * @param previous - the previous value
185
- * @param next - the new value
186
- *
187
- * @remarks
188
- * If elements extending `FormAssociated` implement a `nameChanged` method
189
- * They must be sure to invoke `super.nameChanged(previous, next)` to ensure
190
- * proper functioning of `FormAssociated`
191
- */
192
- nameChanged(previous, next) {
193
- if (this.proxy instanceof HTMLElement) {
194
- this.proxy.name = this.name;
195
- }
196
- }
197
- /**
198
- * Invoked when the `required` property changes
199
- *
200
- * @param previous - the previous value
201
- * @param next - the new value
202
- *
203
- * @remarks
204
- * If elements extending `FormAssociated` implement a `requiredChanged` method
205
- * They must be sure to invoke `super.requiredChanged(previous, next)` to ensure
206
- * proper functioning of `FormAssociated`
207
- */
208
- requiredChanged(prev, next) {
209
- if (this.proxy instanceof HTMLElement) {
210
- this.proxy.required = this.required;
211
- }
212
- index.DOM.queueUpdate(() => this.classList.toggle("required", this.required));
213
- this.validate();
214
- }
215
- /**
216
- * The element internals object. Will only exist
217
- * in browsers supporting the attachInternals API
218
- */
219
- get elementInternals() {
220
- if (!supportsElementInternals) {
221
- return null;
222
- }
223
- let internals = InternalsMap.get(this);
224
- if (!internals) {
225
- internals = this.attachInternals();
226
- InternalsMap.set(this, internals);
227
- }
228
- return internals;
229
- }
230
- /**
231
- * @internal
232
- */
233
- connectedCallback() {
234
- super.connectedCallback();
235
- this.addEventListener("keypress", this._keypressHandler);
236
- if (!this.value) {
237
- this.value = this.initialValue;
238
- this.dirtyValue = false;
239
- }
240
- if (!this.elementInternals) {
241
- this.attachProxy();
242
- if (this.form) {
243
- this.form.addEventListener("reset", this.formResetCallback);
244
- }
245
- }
246
- }
247
- /**
248
- * @internal
249
- */
250
- disconnectedCallback() {
251
- super.disconnectedCallback();
252
- this.proxyEventsToBlock.forEach(name => this.proxy.removeEventListener(name, this.stopPropagation));
253
- if (!this.elementInternals && this.form) {
254
- this.form.removeEventListener("reset", this.formResetCallback);
255
- }
256
- }
257
- /**
258
- * Return the current validity of the element.
259
- */
260
- checkValidity() {
261
- return this.elementInternals
262
- ? this.elementInternals.checkValidity()
263
- : this.proxy.checkValidity();
264
- }
265
- /**
266
- * Return the current validity of the element.
267
- * If false, fires an invalid event at the element.
268
- */
269
- reportValidity() {
270
- return this.elementInternals
271
- ? this.elementInternals.reportValidity()
272
- : this.proxy.reportValidity();
273
- }
274
- /**
275
- * Set the validity of the control. In cases when the elementInternals object is not
276
- * available (and the proxy element is used to report validity), this function will
277
- * do nothing unless a message is provided, at which point the setCustomValidity method
278
- * of the proxy element will be invoked with the provided message.
279
- * @param flags - Validity flags
280
- * @param message - Optional message to supply
281
- * @param anchor - Optional element used by UA to display an interactive validation UI
282
- */
283
- setValidity(flags, message, anchor) {
284
- if (this.elementInternals) {
285
- this.elementInternals.setValidity(flags, message, anchor);
286
- }
287
- else if (typeof message === "string") {
288
- this.proxy.setCustomValidity(message);
289
- }
290
- }
291
- /**
292
- * Invoked when a connected component's form or fieldset has its disabled
293
- * state changed.
294
- * @param disabled - the disabled value of the form / fieldset
295
- */
296
- formDisabledCallback(disabled) {
297
- this.disabled = disabled;
298
- }
299
- formResetCallback() {
300
- this.value = this.initialValue;
301
- this.dirtyValue = false;
302
- }
303
- /**
304
- * Attach the proxy element to the DOM
305
- */
306
- attachProxy() {
307
- var _a;
308
- if (!this.proxyInitialized) {
309
- this.proxyInitialized = true;
310
- this.proxy.style.display = "none";
311
- this.proxyEventsToBlock.forEach(name => this.proxy.addEventListener(name, this.stopPropagation));
312
- // These are typically mapped to the proxy during
313
- // property change callbacks, but during initialization
314
- // on the initial call of the callback, the proxy is
315
- // still undefined. We should find a better way to address this.
316
- this.proxy.disabled = this.disabled;
317
- this.proxy.required = this.required;
318
- if (typeof this.name === "string") {
319
- this.proxy.name = this.name;
320
- }
321
- if (typeof this.value === "string") {
322
- this.proxy.value = this.value;
323
- }
324
- this.proxy.setAttribute("slot", proxySlotName);
325
- this.proxySlot = document.createElement("slot");
326
- this.proxySlot.setAttribute("name", proxySlotName);
327
- }
328
- (_a = this.shadowRoot) === null || _a === void 0 ? void 0 : _a.appendChild(this.proxySlot);
329
- this.appendChild(this.proxy);
330
- }
331
- /**
332
- * Detach the proxy element from the DOM
333
- */
334
- detachProxy() {
335
- var _a;
336
- this.removeChild(this.proxy);
337
- (_a = this.shadowRoot) === null || _a === void 0 ? void 0 : _a.removeChild(this.proxySlot);
338
- }
339
- /** {@inheritDoc (FormAssociated:interface).validate} */
340
- validate(anchor) {
341
- if (this.proxy instanceof HTMLElement) {
342
- this.setValidity(this.proxy.validity, this.proxy.validationMessage, anchor);
343
- }
344
- }
345
- /**
346
- * Associates the provided value (and optional state) with the parent form.
347
- * @param value - The value to set
348
- * @param state - The state object provided to during session restores and when autofilling.
349
- */
350
- setFormValue(value, state) {
351
- if (this.elementInternals) {
352
- this.elementInternals.setFormValue(value, state || value);
353
- }
354
- }
355
- _keypressHandler(e) {
356
- switch (e.key) {
357
- case keyCodes.keyEnter:
358
- if (this.form instanceof HTMLFormElement) {
359
- // Implicit submission
360
- const defaultButton = this.form.querySelector("[type=submit]");
361
- defaultButton === null || defaultButton === void 0 ? void 0 : defaultButton.click();
362
- }
363
- break;
364
- }
365
- }
366
- /**
367
- * Used to stop propagation of proxy element events
368
- * @param e - Event object
369
- */
370
- stopPropagation(e) {
371
- e.stopPropagation();
372
- }
373
- };
374
- index.attr({ mode: "boolean" })(C.prototype, "disabled");
375
- index.attr({ mode: "fromView", attribute: "value" })(C.prototype, "initialValue");
376
- index.attr({ attribute: "current-value" })(C.prototype, "currentValue");
377
- index.attr(C.prototype, "name");
378
- index.attr({ mode: "boolean" })(C.prototype, "required");
379
- index.observable(C.prototype, "value");
380
- return C;
11
+ const C = class extends BaseCtor {
12
+ constructor(...args) {
13
+ super(...args);
14
+ /**
15
+ * Track whether the value has been changed from the initial value
16
+ */
17
+ this.dirtyValue = false;
18
+ /**
19
+ * Sets the element's disabled state. A disabled element will not be included during form submission.
20
+ *
21
+ * @remarks
22
+ * HTML Attribute: disabled
23
+ */
24
+ this.disabled = false;
25
+ /**
26
+ * These are events that are still fired by the proxy
27
+ * element based on user / programmatic interaction.
28
+ *
29
+ * The proxy implementation should be transparent to
30
+ * the app author, so block these events from emitting.
31
+ */
32
+ this.proxyEventsToBlock = ["change", "click"];
33
+ this.proxyInitialized = false;
34
+ this.required = false;
35
+ this.initialValue = this.initialValue || "";
36
+ if (!this.elementInternals) {
37
+ this.formResetCallback = this.formResetCallback.bind(this);
38
+ }
39
+ }
40
+ /**
41
+ * Must evaluate to true to enable elementInternals.
42
+ * Feature detects API support and resolve respectively
43
+ *
44
+ * @internal
45
+ */
46
+ static get formAssociated() {
47
+ return supportsElementInternals;
48
+ }
49
+ /**
50
+ * Returns the validity state of the element
51
+ *
52
+ * @alpha
53
+ */
54
+ get validity() {
55
+ return this.elementInternals ? this.elementInternals.validity : this.proxy.validity;
56
+ }
57
+ /**
58
+ * Retrieve a reference to the associated form.
59
+ * Returns null if not associated to any form.
60
+ *
61
+ * @alpha
62
+ */
63
+ get form() {
64
+ return this.elementInternals ? this.elementInternals.form : this.proxy.form;
65
+ }
66
+ /**
67
+ * Retrieve the localized validation message,
68
+ * or custom validation message if set.
69
+ *
70
+ * @alpha
71
+ */
72
+ get validationMessage() {
73
+ return this.elementInternals ? this.elementInternals.validationMessage : this.proxy.validationMessage;
74
+ }
75
+ /**
76
+ * Whether the element will be validated when the
77
+ * form is submitted
78
+ */
79
+ get willValidate() {
80
+ return this.elementInternals ? this.elementInternals.willValidate : this.proxy.willValidate;
81
+ }
82
+ /**
83
+ * A reference to all associated label elements
84
+ */
85
+ get labels() {
86
+ if (this.elementInternals) {
87
+ return Object.freeze(Array.from(this.elementInternals.labels));
88
+ } else if (this.proxy instanceof HTMLElement && this.proxy.ownerDocument && this.id) {
89
+ const parentLabels = this.proxy.labels;
90
+ const forLabels = Array.from(
91
+ this.proxy.getRootNode().querySelectorAll(`[for='${this.id}']`)
92
+ );
93
+ return Object.freeze(forLabels.concat(Array.from(parentLabels)));
94
+ } else {
95
+ return defineVividComponent.emptyArray;
96
+ }
97
+ }
98
+ /**
99
+ * Invoked when the `value` property changes
100
+ *
101
+ * @remarks
102
+ * If elements extending `FormAssociated` implement a `valueChanged` method
103
+ * They must be sure to invoke `super.valueChanged(previous, next)` to ensure
104
+ * proper functioning of `FormAssociated`
105
+ */
106
+ valueChanged(_previous, _next) {
107
+ this.dirtyValue = true;
108
+ if (this.proxy instanceof HTMLElement) {
109
+ this.proxy.value = this.value;
110
+ }
111
+ this.currentValue = this.value;
112
+ this.setFormValue(this.value);
113
+ this.validate();
114
+ }
115
+ currentValueChanged() {
116
+ this.value = this.currentValue;
117
+ }
118
+ /**
119
+ * Invoked when the `initialValue` property changes
120
+ *
121
+ * @remarks
122
+ * If elements extending `FormAssociated` implement a `initialValueChanged` method
123
+ * They must be sure to invoke `super.initialValueChanged(previous, next)` to ensure
124
+ * proper functioning of `FormAssociated`
125
+ */
126
+ initialValueChanged(_previous, _next) {
127
+ if (!this.dirtyValue) {
128
+ this.value = this.initialValue;
129
+ this.dirtyValue = false;
130
+ }
131
+ }
132
+ /**
133
+ * Invoked when the `disabled` property changes
134
+ *
135
+ * @remarks
136
+ * If elements extending `FormAssociated` implement a `disabledChanged` method
137
+ * They must be sure to invoke `super.disabledChanged(previous, next)` to ensure
138
+ * proper functioning of `FormAssociated`
139
+ */
140
+ disabledChanged(_previous, _next) {
141
+ if (this.proxy instanceof HTMLElement) {
142
+ this.proxy.disabled = this.disabled;
143
+ }
144
+ defineVividComponent.DOM.queueUpdate(() => this.classList.toggle("disabled", this.disabled));
145
+ }
146
+ /**
147
+ * Invoked when the `name` property changes
148
+ *
149
+ * @remarks
150
+ * If elements extending `FormAssociated` implement a `nameChanged` method
151
+ * They must be sure to invoke `super.nameChanged(previous, next)` to ensure
152
+ * proper functioning of `FormAssociated`
153
+ */
154
+ nameChanged(_previous, _next) {
155
+ if (this.proxy instanceof HTMLElement) {
156
+ this.proxy.name = this.name;
157
+ }
158
+ }
159
+ /**
160
+ * Invoked when the `required` property changes
161
+ *
162
+ * @remarks
163
+ * If elements extending `FormAssociated` implement a `requiredChanged` method
164
+ * They must be sure to invoke `super.requiredChanged(previous, next)` to ensure
165
+ * proper functioning of `FormAssociated`
166
+ */
167
+ requiredChanged(_previous, _next) {
168
+ if (this.proxy instanceof HTMLElement) {
169
+ this.proxy.required = this.required;
170
+ }
171
+ defineVividComponent.DOM.queueUpdate(() => this.classList.toggle("required", this.required));
172
+ this.validate();
173
+ }
174
+ /**
175
+ * The element internals object. Will only exist
176
+ * in browsers supporting the attachInternals API
177
+ */
178
+ get elementInternals() {
179
+ if (!supportsElementInternals) {
180
+ return null;
181
+ }
182
+ let internals = InternalsMap.get(this);
183
+ if (!internals) {
184
+ internals = this.attachInternals();
185
+ InternalsMap.set(this, internals);
186
+ }
187
+ return internals;
188
+ }
189
+ /**
190
+ * @internal
191
+ */
192
+ connectedCallback() {
193
+ super.connectedCallback();
194
+ this.addEventListener("keypress", this._keypressHandler);
195
+ if (!this.value) {
196
+ this.value = this.initialValue;
197
+ this.dirtyValue = false;
198
+ }
199
+ if (!this.elementInternals) {
200
+ this.attachProxy();
201
+ if (this.form) {
202
+ this.form.addEventListener("reset", this.formResetCallback);
203
+ }
204
+ }
205
+ }
206
+ /**
207
+ * @internal
208
+ */
209
+ disconnectedCallback() {
210
+ super.disconnectedCallback();
211
+ this.proxyEventsToBlock.forEach(
212
+ (name) => this.proxy.removeEventListener(name, this.stopPropagation)
213
+ );
214
+ if (!this.elementInternals && this.form) {
215
+ this.form.removeEventListener("reset", this.formResetCallback);
216
+ }
217
+ }
218
+ /**
219
+ * Return the current validity of the element.
220
+ */
221
+ checkValidity() {
222
+ return this.elementInternals ? this.elementInternals.checkValidity() : this.proxy.checkValidity();
223
+ }
224
+ /**
225
+ * Return the current validity of the element.
226
+ * If false, fires an invalid event at the element.
227
+ */
228
+ reportValidity() {
229
+ return this.elementInternals ? this.elementInternals.reportValidity() : this.proxy.reportValidity();
230
+ }
231
+ /**
232
+ * Set the validity of the control. In cases when the elementInternals object is not
233
+ * available (and the proxy element is used to report validity), this function will
234
+ * do nothing unless a message is provided, at which point the setCustomValidity method
235
+ * of the proxy element will be invoked with the provided message.
236
+ * @param flags - Validity flags
237
+ * @param message - Optional message to supply
238
+ * @param anchor - Optional element used by UA to display an interactive validation UI
239
+ */
240
+ setValidity(flags, message, anchor) {
241
+ if (this.elementInternals) {
242
+ this.elementInternals.setValidity(flags, message, anchor);
243
+ } else if (typeof message === "string") {
244
+ this.proxy.setCustomValidity(message);
245
+ }
246
+ }
247
+ /**
248
+ * Invoked when a connected component's form or fieldset has its disabled
249
+ * state changed.
250
+ * @param disabled - the disabled value of the form / fieldset
251
+ */
252
+ formDisabledCallback(disabled) {
253
+ this.disabled = disabled;
254
+ }
255
+ formResetCallback() {
256
+ this.value = this.initialValue;
257
+ this.dirtyValue = false;
258
+ }
259
+ /**
260
+ * Attach the proxy element to the DOM
261
+ */
262
+ attachProxy() {
263
+ if (!this.proxyInitialized) {
264
+ this.proxyInitialized = true;
265
+ this.proxy.style.display = "none";
266
+ this.proxyEventsToBlock.forEach(
267
+ (name) => this.proxy.addEventListener(name, this.stopPropagation)
268
+ );
269
+ this.proxy.disabled = this.disabled;
270
+ this.proxy.required = this.required;
271
+ if (typeof this.name === "string") {
272
+ this.proxy.name = this.name;
273
+ }
274
+ if (typeof this.value === "string") {
275
+ this.proxy.value = this.value;
276
+ }
277
+ this.proxy.setAttribute("slot", proxySlotName);
278
+ this.proxySlot = document.createElement("slot");
279
+ this.proxySlot.setAttribute("name", proxySlotName);
280
+ }
281
+ this.shadowRoot.appendChild(this.proxySlot);
282
+ this.appendChild(this.proxy);
283
+ }
284
+ /**
285
+ * Detach the proxy element from the DOM
286
+ */
287
+ detachProxy() {
288
+ this.removeChild(this.proxy);
289
+ this.shadowRoot.removeChild(this.proxySlot);
290
+ }
291
+ /** {@inheritDoc (FormAssociated:interface).validate} */
292
+ validate(anchor) {
293
+ if (this.proxy instanceof HTMLElement && this.elementInternals) {
294
+ const isValid = this.proxy.validity.valid;
295
+ const control = this.control;
296
+ const controlIsInvalidDueToMinOrMaxLength = control && control.validity && !control.validity.valid && (control.validity.tooShort || control.validity.tooLong);
297
+ if (isValid && controlIsInvalidDueToMinOrMaxLength) {
298
+ this.setValidity(control.validity, control.validationMessage, anchor);
299
+ } else {
300
+ this.setValidity(
301
+ this.proxy.validity,
302
+ this.proxy.validationMessage,
303
+ anchor
304
+ );
305
+ }
306
+ }
307
+ }
308
+ /**
309
+ * Associates the provided value (and optional state) with the parent form.
310
+ * @param value - The value to set
311
+ * @param state - The state object provided to during session restores and when autofilling.
312
+ */
313
+ setFormValue(value, state) {
314
+ if (this.elementInternals) {
315
+ this.elementInternals.setFormValue(value, state || value);
316
+ }
317
+ }
318
+ _keypressHandler(e) {
319
+ switch (e.key) {
320
+ case keyCodes.keyEnter:
321
+ if (this.form instanceof HTMLFormElement) {
322
+ const defaultButton = this.form.querySelector(
323
+ "[type=submit]"
324
+ );
325
+ defaultButton?.click();
326
+ }
327
+ break;
328
+ }
329
+ }
330
+ /**
331
+ * Used to stop propagation of proxy element events
332
+ * @param e - Event object
333
+ */
334
+ stopPropagation(e) {
335
+ e.stopPropagation();
336
+ }
337
+ };
338
+ defineVividComponent.attr({ mode: "boolean" })(C.prototype, "disabled");
339
+ defineVividComponent.attr({ mode: "fromView", attribute: "value" })(C.prototype, "initialValue");
340
+ defineVividComponent.attr({ attribute: "current-value" })(C.prototype, "currentValue");
341
+ defineVividComponent.attr(C.prototype, "name");
342
+ defineVividComponent.attr({ mode: "boolean" })(C.prototype, "required");
343
+ defineVividComponent.observable(C.prototype, "value");
344
+ return C;
381
345
  }
382
- /**
383
- * @alpha
384
- */
385
346
  function CheckableFormAssociated(BaseCtor) {
386
- class C extends FormAssociated(BaseCtor) {
387
- }
388
- class D extends C {
389
- constructor(...args) {
390
- super(args);
391
- /**
392
- * Tracks whether the "checked" property has been changed.
393
- * This is necessary to provide consistent behavior with
394
- * normal input checkboxes
395
- */
396
- this.dirtyChecked = false;
397
- /**
398
- * Provides the default checkedness of the input element
399
- * Passed down to proxy
400
- *
401
- * @public
402
- * @remarks
403
- * HTML Attribute: checked
404
- */
405
- this.checkedAttribute = false;
406
- /**
407
- * The checked state of the control.
408
- *
409
- * @public
410
- */
411
- this.checked = false;
412
- // Re-initialize dirtyChecked because initialization of other values
413
- // causes it to become true
414
- this.dirtyChecked = false;
415
- }
416
- checkedAttributeChanged() {
417
- this.defaultChecked = this.checkedAttribute;
418
- }
419
- /**
420
- * @internal
421
- */
422
- defaultCheckedChanged() {
423
- if (!this.dirtyChecked) {
424
- // Setting this.checked will cause us to enter a dirty state,
425
- // but if we are clean when defaultChecked is changed, we want to stay
426
- // in a clean state, so reset this.dirtyChecked
427
- this.checked = this.defaultChecked;
428
- this.dirtyChecked = false;
429
- }
430
- }
431
- checkedChanged(prev, next) {
432
- if (!this.dirtyChecked) {
433
- this.dirtyChecked = true;
434
- }
435
- this.currentChecked = this.checked;
436
- this.updateForm();
437
- if (this.proxy instanceof HTMLInputElement) {
438
- this.proxy.checked = this.checked;
439
- }
440
- if (prev !== undefined) {
441
- this.$emit("change");
442
- }
443
- this.validate();
444
- }
445
- currentCheckedChanged(prev, next) {
446
- this.checked = this.currentChecked;
447
- }
448
- updateForm() {
449
- const value = this.checked ? this.value : null;
450
- this.setFormValue(value, value);
451
- }
452
- connectedCallback() {
453
- super.connectedCallback();
454
- this.updateForm();
455
- }
456
- formResetCallback() {
457
- super.formResetCallback();
458
- this.checked = !!this.checkedAttribute;
459
- this.dirtyChecked = false;
460
- }
347
+ class C extends FormAssociated(BaseCtor) {
348
+ }
349
+ class D extends C {
350
+ constructor(...args) {
351
+ super(args);
352
+ /**
353
+ * Tracks whether the "checked" property has been changed.
354
+ * This is necessary to provide consistent behavior with
355
+ * normal input checkboxes
356
+ */
357
+ this.dirtyChecked = false;
358
+ /**
359
+ * Provides the default checkedness of the input element
360
+ * Passed down to proxy
361
+ *
362
+ * @public
363
+ * @remarks
364
+ * HTML Attribute: checked
365
+ */
366
+ this.checkedAttribute = false;
367
+ /**
368
+ * The checked state of the control.
369
+ *
370
+ * @public
371
+ */
372
+ this.checked = false;
373
+ this.dirtyChecked = false;
374
+ }
375
+ /**
376
+ * @internal
377
+ */
378
+ checkedAttributeChanged() {
379
+ this.defaultChecked = this.checkedAttribute;
380
+ }
381
+ /**
382
+ * @internal
383
+ */
384
+ defaultCheckedChanged() {
385
+ if (!this.dirtyChecked) {
386
+ this.checked = this.defaultChecked;
387
+ this.dirtyChecked = false;
388
+ }
389
+ }
390
+ checkedChanged(prev, _next) {
391
+ if (!this.dirtyChecked) {
392
+ this.dirtyChecked = true;
393
+ }
394
+ this.currentChecked = this.checked;
395
+ this.updateForm();
396
+ if (this.proxy instanceof HTMLInputElement) {
397
+ this.proxy.checked = this.checked;
398
+ }
399
+ if (prev !== void 0) {
400
+ this.$emit("change");
401
+ }
402
+ this.validate();
403
+ }
404
+ currentCheckedChanged(_prev, _next) {
405
+ this.checked = this.currentChecked;
406
+ }
407
+ updateForm() {
408
+ const value = this.checked ? this.value : null;
409
+ this.setFormValue(value, value);
410
+ }
411
+ connectedCallback() {
412
+ super.connectedCallback();
413
+ this.updateForm();
414
+ }
415
+ formResetCallback() {
416
+ super.formResetCallback();
417
+ this.checked = !!this.checkedAttribute;
418
+ this.dirtyChecked = false;
461
419
  }
462
- index.attr({ attribute: "checked", mode: "boolean" })(D.prototype, "checkedAttribute");
463
- index.attr({ attribute: "current-checked", converter: index.booleanConverter })(D.prototype, "currentChecked");
464
- index.observable(D.prototype, "defaultChecked");
465
- index.observable(D.prototype, "checked");
466
- return D;
420
+ }
421
+ defineVividComponent.attr({ attribute: "checked", mode: "boolean" })(
422
+ D.prototype,
423
+ "checkedAttribute"
424
+ );
425
+ defineVividComponent.attr({ attribute: "current-checked", converter: defineVividComponent.booleanConverter })(
426
+ D.prototype,
427
+ "currentChecked"
428
+ );
429
+ defineVividComponent.observable(D.prototype, "defaultChecked");
430
+ defineVividComponent.observable(D.prototype, "checked");
431
+ return D;
467
432
  }
468
433
 
469
434
  exports.CheckableFormAssociated = CheckableFormAssociated;