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