@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,14 +1,15 @@
1
1
  'use strict';
2
2
 
3
- const index = require('./index.cjs');
4
3
  const definition$1 = require('./definition11.cjs');
5
- const definition = require('./definition63.cjs');
4
+ const definition = require('./definition62.cjs');
5
+ const defineVividComponent = require('./defineVividComponent.cjs');
6
6
  const definition$2 = require('./definition27.cjs');
7
7
  const enums = require('./enums.cjs');
8
8
  const affix = require('./affix.cjs');
9
- const index$1 = require('./index2.cjs');
10
- const localized = require('./localized.cjs');
11
9
  const applyMixins = require('./apply-mixins.cjs');
10
+ const index = require('./index.cjs');
11
+ const vividElement = require('./vivid-element.cjs');
12
+ const localized = require('./localized.cjs');
12
13
  const when = require('./when.cjs');
13
14
  const classNames = require('./class-names.cjs');
14
15
 
@@ -31,7 +32,7 @@ const connotationIconMap = /* @__PURE__ */ new Map([
31
32
  [enums.Connotation.Announcement, "sparkles-line"],
32
33
  [enums.Connotation.Alert, "error-line"]
33
34
  ]);
34
- class Alert extends index.FoundationElement {
35
+ class Alert extends vividElement.VividElement {
35
36
  constructor() {
36
37
  super(...arguments);
37
38
  this.dismissButtonAriaLabel = null;
@@ -40,7 +41,7 @@ class Alert extends index.FoundationElement {
40
41
  this.timeoutms = 0;
41
42
  this.open = false;
42
43
  this.#closeOnEscape = (e) => {
43
- if (this.open && this.removable && index$1.handleEscapeKeyAndStopPropogation(e)) {
44
+ if (this.open && this.removable && index.handleEscapeKeyAndStopPropogation(e)) {
44
45
  this.open = false;
45
46
  }
46
47
  };
@@ -105,37 +106,37 @@ class Alert extends index.FoundationElement {
105
106
  #onTransitionEnd;
106
107
  }
107
108
  __decorateClass([
108
- index.attr({ attribute: "dismiss-button-aria-label" })
109
+ defineVividComponent.attr({ attribute: "dismiss-button-aria-label" })
109
110
  ], Alert.prototype, "dismissButtonAriaLabel");
110
111
  __decorateClass([
111
- index.attr({ mode: "boolean" })
112
+ defineVividComponent.attr({ mode: "boolean" })
112
113
  ], Alert.prototype, "removable");
113
114
  __decorateClass([
114
- index.attr({ mode: "fromView" })
115
+ defineVividComponent.attr({ mode: "fromView" })
115
116
  ], Alert.prototype, "placement");
116
117
  __decorateClass([
117
- index.attr
118
+ defineVividComponent.attr
118
119
  ], Alert.prototype, "headline");
119
120
  __decorateClass([
120
- index.attr
121
+ defineVividComponent.attr
121
122
  ], Alert.prototype, "text");
122
123
  __decorateClass([
123
- index.attr
124
+ defineVividComponent.attr
124
125
  ], Alert.prototype, "icon");
125
126
  __decorateClass([
126
- index.attr({
127
+ defineVividComponent.attr({
127
128
  mode: "fromView",
128
- converter: index.nullableNumberConverter
129
+ converter: defineVividComponent.nullableNumberConverter
129
130
  })
130
131
  ], Alert.prototype, "timeoutms");
131
132
  __decorateClass([
132
- index.attr
133
+ defineVividComponent.attr
133
134
  ], Alert.prototype, "connotation");
134
135
  __decorateClass([
135
- index.attr
136
+ defineVividComponent.attr
136
137
  ], Alert.prototype, "strategy");
137
138
  __decorateClass([
138
- index.attr({ mode: "boolean" })
139
+ defineVividComponent.attr({ mode: "boolean" })
139
140
  ], Alert.prototype, "open");
140
141
  applyMixins.applyMixins(Alert, affix.AffixIcon);
141
142
  applyMixins.applyMixins(Alert, localized.Localized);
@@ -149,10 +150,10 @@ const getControlClasses = ({ open, placement, strategy }) => classNames.classNam
149
150
  );
150
151
  function renderIcon(context) {
151
152
  const affixIconTemplate = affix.affixIconTemplateFactory(context);
152
- return index.html`${(x) => affixIconTemplate(x.conditionedIcon, affix.IconWrapper.Slot)}`;
153
+ return defineVividComponent.html`${(x) => affixIconTemplate(x.conditionedIcon, affix.IconWrapper.Slot)}`;
153
154
  }
154
155
  function renderDismissButton(buttonTag) {
155
- return index.html`
156
+ return defineVividComponent.html`
156
157
  <${buttonTag}
157
158
  aria-label="${(x) => x.dismissButtonAriaLabel || x.locale.alert.dismissButtonLabel}"
158
159
  size="condensed"
@@ -164,7 +165,7 @@ function renderDismissButton(buttonTag) {
164
165
  const AlertTemplate = (context) => {
165
166
  const elevationTag = context.tagFor(definition.Elevation);
166
167
  const buttonTag = context.tagFor(definition$1.Button);
167
- return index.html`
168
+ return defineVividComponent.html`
168
169
  <${elevationTag} class="elevation" dp='8' exportparts="vvd-theme-alternate">
169
170
  <div
170
171
  class="${getControlClasses}"
@@ -176,9 +177,9 @@ const AlertTemplate = (context) => {
176
177
  <div class="alert-text">
177
178
  ${when.when(
178
179
  (x) => x.headline,
179
- index.html`<header class="headline">${(x) => x.headline}</header>`
180
+ defineVividComponent.html`<header class="headline">${(x) => x.headline}</header>`
180
181
  )}
181
- ${when.when((x) => x.text, index.html`<div class="main-text">${(x) => x.text}</div>`)}
182
+ ${when.when((x) => x.text, defineVividComponent.html`<div class="main-text">${(x) => x.text}</div>`)}
182
183
  <slot name="main"></slot>
183
184
  </div>
184
185
  <slot class="action-items" name="action-items"></slot>
@@ -189,19 +190,16 @@ const AlertTemplate = (context) => {
189
190
  `;
190
191
  };
191
192
 
192
- const alertDefinition = Alert.compose({
193
- baseName: "alert",
194
- template: AlertTemplate,
195
- styles
196
- });
197
- const alertRegistries = [
198
- alertDefinition(),
199
- ...definition$2.iconRegistries,
200
- ...definition$1.buttonRegistries,
201
- ...definition.elevationRegistries
202
- ];
203
- const registerAlert = index.registerFactory(alertRegistries);
193
+ const alertDefinition = defineVividComponent.defineVividComponent(
194
+ "alert",
195
+ Alert,
196
+ AlertTemplate,
197
+ [definition$2.iconDefinition, definition$1.buttonDefinition, definition.elevationDefinition],
198
+ {
199
+ styles
200
+ }
201
+ );
202
+ const registerAlert = defineVividComponent.createRegisterFunction(alertDefinition);
204
203
 
205
204
  exports.alertDefinition = alertDefinition;
206
- exports.alertRegistries = alertRegistries;
207
205
  exports.registerAlert = registerAlert;
@@ -1,12 +1,13 @@
1
- import { F as FoundationElement, a as attr, n as nullableNumberConverter, h as html, r as registerFactory } from './index.js';
2
- import { B as Button$1, a as buttonRegistries } from './definition11.js';
3
- import { E as Elevation, e as elevationRegistries } from './definition63.js';
4
- import { a as iconRegistries } from './definition27.js';
1
+ import { B as Button, b as buttonDefinition } from './definition11.js';
2
+ import { E as Elevation, e as elevationDefinition } from './definition62.js';
3
+ import { a as attr, n as nullableNumberConverter, h as html, d as defineVividComponent, f as createRegisterFunction } from './defineVividComponent.js';
4
+ import { i as iconDefinition } from './definition27.js';
5
5
  import { C as Connotation } from './enums.js';
6
6
  import { A as AffixIcon, a as affixIconTemplateFactory, I as IconWrapper } from './affix.js';
7
- import { h as handleEscapeKeyAndStopPropogation } from './index2.js';
8
- import { L as Localized } from './localized.js';
9
7
  import { a as applyMixins } from './apply-mixins.js';
8
+ import { h as handleEscapeKeyAndStopPropogation } from './index.js';
9
+ import { V as VividElement } from './vivid-element.js';
10
+ import { L as Localized } from './localized.js';
10
11
  import { w as when } from './when.js';
11
12
  import { c as classNames } from './class-names.js';
12
13
 
@@ -29,7 +30,7 @@ const connotationIconMap = /* @__PURE__ */ new Map([
29
30
  [Connotation.Announcement, "sparkles-line"],
30
31
  [Connotation.Alert, "error-line"]
31
32
  ]);
32
- class Alert extends FoundationElement {
33
+ class Alert extends VividElement {
33
34
  constructor() {
34
35
  super(...arguments);
35
36
  this.dismissButtonAriaLabel = null;
@@ -161,7 +162,7 @@ function renderDismissButton(buttonTag) {
161
162
  }
162
163
  const AlertTemplate = (context) => {
163
164
  const elevationTag = context.tagFor(Elevation);
164
- const buttonTag = context.tagFor(Button$1);
165
+ const buttonTag = context.tagFor(Button);
165
166
  return html`
166
167
  <${elevationTag} class="elevation" dp='8' exportparts="vvd-theme-alternate">
167
168
  <div
@@ -187,17 +188,15 @@ const AlertTemplate = (context) => {
187
188
  `;
188
189
  };
189
190
 
190
- const alertDefinition = Alert.compose({
191
- baseName: "alert",
192
- template: AlertTemplate,
193
- styles
194
- });
195
- const alertRegistries = [
196
- alertDefinition(),
197
- ...iconRegistries,
198
- ...buttonRegistries,
199
- ...elevationRegistries
200
- ];
201
- const registerAlert = registerFactory(alertRegistries);
191
+ const alertDefinition = defineVividComponent(
192
+ "alert",
193
+ Alert,
194
+ AlertTemplate,
195
+ [iconDefinition, buttonDefinition, elevationDefinition],
196
+ {
197
+ styles
198
+ }
199
+ );
200
+ const registerAlert = createRegisterFunction(alertDefinition);
202
201
 
203
- export { alertDefinition as a, alertRegistries as b, registerAlert as r };
202
+ export { alertDefinition as a, registerAlert as r };
@@ -1,13 +1,22 @@
1
1
  'use strict';
2
2
 
3
- const index = require('./index.cjs');
3
+ const defineVividComponent = require('./defineVividComponent.cjs');
4
+ const formAssociated = require('./form-associated.cjs');
5
+ const vividElement = require('./vivid-element.cjs');
4
6
  const keyCodes = require('./key-codes.cjs');
5
- const aria = require('./aria.cjs');
6
- const radio = require('./radio.cjs');
7
- const slotted = require('./slotted.cjs');
8
7
  const when = require('./when.cjs');
8
+ const classNames = require('./class-names.cjs');
9
9
 
10
- const styles = ".positioning-region{display:flex;flex-wrap:wrap;gap:8px}.positioning-region.vertical{flex-direction:column}label+.positioning-region{margin-block-start:8px}label{color:var(--vvd-color-canvas-text);font:var(--vvd-typography-base)}";
10
+ const styles = ":host(:focus-visible){outline:none}:host([disabled]){cursor:not-allowed}.base.connotation-cta{--_connotation-color-primary: var(--vvd-radio-cta-primary, var(--vvd-color-cta-500));--_connotation-color-primary-text: var(--vvd-radio-cta-primary-text, var(--vvd-color-canvas));--_connotation-color-primary-increment: var(--vvd-radio-cta-primary-increment, var(--vvd-color-cta-600));--_connotation-color-intermediate: var(--vvd-radio-cta-intermediate, var(--vvd-color-cta-500));--_connotation-color-firm: var(--vvd-radio-cta-firm, var(--vvd-color-cta-600));--_connotation-color-fierce: var(--vvd-radio-cta-fierce, var(--vvd-color-cta-700))}.base:not(.connotation-cta){--_connotation-color-primary: var(--vvd-radio-accent-primary, var(--vvd-color-canvas-text));--_connotation-color-primary-text: var(--vvd-radio-accent-primary-text, var(--vvd-color-canvas));--_connotation-color-primary-increment: var(--vvd-radio-accent-primary-increment, var(--vvd-color-neutral-800));--_connotation-color-intermediate: var(--vvd-radio-accent-intermediate, var(--vvd-color-neutral-500));--_connotation-color-firm: var(--vvd-radio-accent-firm, var(--vvd-color-canvas-text));--_connotation-color-fierce: var(--vvd-radio-accent-fierce, var(--vvd-color-neutral-700))}.base{--_appearance-color-text: var(--vvd-color-canvas-text);--_appearance-color-fill: var(--vvd-color-canvas);--_appearance-color-outline: var(--_connotation-color-intermediate)}.base:where(.hover,:hover):where(:not(.disabled,:disabled,.readonly)){--_appearance-color-text: var(--vvd-color-canvas-text);--_appearance-color-fill: var(--vvd-color-canvas);--_appearance-color-outline: var(--_connotation-color-fierce)}.base:where(.checked,:checked):where(:not(.disabled,:disabled)){--_appearance-color-text: var(--_connotation-color-primary-text);--_appearance-color-fill: var(--_connotation-color-primary);--_appearance-color-outline: var(--_connotation-color-primary)}.base:where(.checked,:checked):where(.hover,:hover):where(:not(.disabled,:disabled,.readonly)){--_appearance-color-text: var(--_connotation-color-primary-text);--_appearance-color-fill: var(--_connotation-color-primary-increment);--_appearance-color-outline: var(--_connotation-color-primary-increment)}.base:where(.disabled,:disabled){--_appearance-color-text: var(--vvd-color-neutral-300);--_appearance-color-fill: var(--vvd-color-neutral-100);--_appearance-color-outline: var(--vvd-color-neutral-300)}.base:where(.readonly):where(:not(.disabled,:disabled)){--_appearance-color-text: var(--vvd-color-canvas-text);--_appearance-color-fill: var(--vvd-color-neutral-200);--_appearance-color-outline: var(--vvd-color-neutral-400)}.base{display:inline-flex;align-items:center;cursor:pointer;gap:8px}@supports (user-select: none){.base{user-select:none}}.base.disabled{pointer-events:none}.control{position:relative;flex-shrink:0;border-radius:50%;block-size:calc(1px*(20 + 4*clamp(-1,var(--vvd-size-density, 0),2)));box-shadow:inset 0 0 0 2px var(--_appearance-color-outline);inline-size:calc(1px*(20 + 4*clamp(-1,var(--vvd-size-density, 0),2)))}.base:not(.checked) .control{background-color:var(--_appearance-color-fill)}.control:after{position:absolute;border-radius:inherit;background-color:var(--_appearance-color-outline);content:\"\";inset:5px;opacity:1;transition:opacity .2s}.base:not(.checked) .control:after{opacity:0}:host(:focus-visible) .control{--focus-inset: -3px;--focus-stroke-gap-color: transparent}:host(:focus-visible) .control:before{box-shadow:inset 0 0 0 3px var(--focus-stroke-gap-color, currentColor);outline:2px solid var(--focus-stroke-color, var(--vvd-color-canvas-text));outline-offset:calc(-2px - var(--focus-inset, 0px));position:absolute;display:block;border-radius:inherit;block-size:calc(1px*(20 + 4*clamp(-1,var(--vvd-size-density, 0),2)));content:\"\";inline-size:calc(1px*(20 + 4*clamp(-1,var(--vvd-size-density, 0),2)))}label{color:var(--vvd-color-canvas-text);cursor:pointer;font:var(--vvd-typography-base)}.focus-indicator{--focus-inset: -3px;--focus-stroke-gap-color: transparent;border-radius:50%}:host(:not(:focus-visible)) .focus-indicator{display:none}";
11
+
12
+ class _Radio extends vividElement.VividElement {
13
+ }
14
+ class FormAssociatedRadio extends formAssociated.CheckableFormAssociated(_Radio) {
15
+ constructor() {
16
+ super(...arguments);
17
+ this.proxy = document.createElement("input");
18
+ }
19
+ }
11
20
 
12
21
  var __defProp = Object.defineProperty;
13
22
  var __decorateClass = (decorators, target, key, kind) => {
@@ -18,272 +27,146 @@ var __decorateClass = (decorators, target, key, kind) => {
18
27
  if (result) __defProp(target, key, result);
19
28
  return result;
20
29
  };
21
- class RadioGroup extends index.FoundationElement {
30
+ class Radio extends FormAssociatedRadio {
22
31
  constructor() {
23
- super(...arguments);
24
- this.orientation = // eslint-disable-next-line @nrwl/nx/workspace/no-attribute-default-value
25
- aria.Orientation.horizontal;
26
- this.slottedRadioButtons = [];
27
- this.radioChangeHandler = (e) => {
28
- const changedRadio = e.target;
29
- if (changedRadio.checked) {
30
- this.slottedRadioButtons.forEach((radio) => {
31
- if (radio !== changedRadio) {
32
- radio.checked = false;
33
- }
34
- });
35
- this.value = changedRadio.value;
36
- this.#setTabRovingTarget(changedRadio);
37
- }
38
- e.stopPropagation();
39
- };
40
- this.moveToRadioByIndex = (group, index) => {
41
- const radio = group[index];
42
- if (!this.isInsideToolbar && !radio.readOnly) {
43
- radio.checked = true;
44
- }
45
- radio.focus();
46
- };
47
- this.moveRightOffGroup = () => {
48
- this.nextElementSibling?.focus();
49
- };
50
- this.moveLeftOffGroup = () => {
51
- this.previousElementSibling?.focus();
52
- };
53
- this.moveRight = (e) => {
54
- const radio = e.target;
55
- const group = this.#focusableRadioButtons;
56
- let index = 0;
57
- index = group.indexOf(radio) + 1;
58
- if (index === group.length && this.isInsideToolbar && e.key === keyCodes.keyArrowRight) {
59
- this.moveRightOffGroup();
60
- return;
61
- }
62
- if (index === group.length) {
63
- index = 0;
64
- }
65
- this.moveToRadioByIndex(group, index);
66
- };
67
- this.moveLeft = (e) => {
68
- const radio = e.target;
69
- const group = this.#focusableRadioButtons;
70
- let index = group.indexOf(radio) - 1;
71
- if (this.isInsideToolbar && e.key === keyCodes.keyArrowLeft && index < 0) {
72
- this.moveLeftOffGroup();
73
- return;
74
- }
75
- index = index < 0 ? group.length - 1 : index;
76
- this.moveToRadioByIndex(group, index);
77
- };
32
+ super();
33
+ this.ariaLabel = null;
78
34
  /**
79
- * keyboard handling per https://w3c.github.io/aria-practices/#for-radio-groups-not-contained-in-a-toolbar
80
- * navigation is different when there is an ancestor with role='toolbar'
35
+ * The element's value to be included in form submission when checked.
36
+ * Default to "on" to reach parity with input[type="radio"]
81
37
  *
82
38
  * @internal
83
39
  */
84
- this.keydownHandler = (e) => {
40
+ this.initialValue = "on";
41
+ this.defaultSlottedNodes = [];
42
+ /**
43
+ * @internal
44
+ */
45
+ this.keypressHandler = (e) => {
85
46
  switch (e.key) {
86
- case keyCodes.keyEnter:
87
- this.checkFocusedRadio(e.target);
88
- break;
89
- case keyCodes.keyArrowRight:
90
- case keyCodes.keyArrowDown:
91
- this.moveRight(e);
92
- break;
93
- case keyCodes.keyArrowLeft:
94
- case keyCodes.keyArrowUp:
95
- this.moveLeft(e);
96
- break;
97
- default:
98
- return true;
47
+ case keyCodes.keySpace:
48
+ if (!this.checked && !this.readOnly) {
49
+ this.checked = true;
50
+ }
51
+ return;
99
52
  }
53
+ return true;
100
54
  };
55
+ this.proxy.setAttribute("type", "radio");
101
56
  }
57
+ // Map to proxy element
102
58
  /**
103
59
  * @internal
104
60
  */
105
61
  readOnlyChanged() {
106
- this.slottedRadioButtons.forEach((radio) => {
107
- if (this.readOnly) {
108
- radio.readOnly = true;
109
- } else {
110
- radio.readOnly = false;
111
- }
112
- });
113
- }
114
- /**
115
- * @internal
116
- */
117
- disabledChanged() {
118
- this.slottedRadioButtons.forEach((radio) => {
119
- if (this.disabled) {
120
- radio.disabled = true;
121
- } else {
122
- radio.disabled = false;
123
- }
124
- });
125
- }
126
- nameChanged() {
127
- this.slottedRadioButtons.forEach((radio) => {
128
- radio.setAttribute("name", this.name);
129
- });
62
+ if (this.proxy instanceof HTMLInputElement) {
63
+ this.proxy.readOnly = this.readOnly;
64
+ }
130
65
  }
131
66
  /**
132
67
  * @internal
133
68
  */
134
- valueChanged() {
135
- this.slottedRadioButtons.forEach((radio) => {
136
- if (radio.value === this.value) {
137
- radio.checked = true;
69
+ defaultCheckedChanged() {
70
+ if (this.$fastController.isConnected && !this.dirtyChecked) {
71
+ if (!this.isInsideRadioGroup()) {
72
+ this.checked = this.defaultChecked;
73
+ this.dirtyChecked = false;
138
74
  }
139
- });
140
- this.$emit("change");
141
- }
142
- get #focusableRadioButtons() {
143
- return this.slottedRadioButtons.filter((radio) => !radio.disabled);
144
- }
145
- /**
146
- * @internal
147
- */
148
- slottedRadioButtonsChanged() {
149
- if (this.slottedRadioButtons && this.slottedRadioButtons.length > 0) {
150
- this.setupRadioButtons();
151
75
  }
152
76
  }
153
- get isInsideToolbar() {
154
- return !!this.closest('[role="toolbar"]');
155
- }
156
77
  /**
157
78
  * @internal
158
79
  */
159
80
  connectedCallback() {
160
81
  super.connectedCallback();
161
- this.setupRadioButtons();
162
- }
163
- disconnectedCallback() {
164
- this.slottedRadioButtons.forEach((radio) => {
165
- radio.removeEventListener(
166
- "change",
167
- this.radioChangeHandler
168
- );
169
- });
170
- }
171
- setupRadioButtons() {
172
- let foundMatchingVal = false;
173
- for (const radio of this.slottedRadioButtons) {
174
- if (this.name !== void 0) {
175
- radio.setAttribute("name", this.name);
82
+ this.validate();
83
+ if (this.parentElement.getAttribute("role") !== "radiogroup" && this.getAttribute("tabindex") === null) {
84
+ if (!this.disabled) {
85
+ this.setAttribute("tabindex", "0");
176
86
  }
177
- if (this.disabled) {
178
- radio.disabled = true;
179
- }
180
- if (this.readOnly) {
181
- radio.readOnly = true;
182
- }
183
- if (this.value && this.value === radio.value) {
184
- radio.checked = true;
185
- this.#setTabRovingTarget(radio);
186
- foundMatchingVal = true;
187
- } else {
188
- radio.checked = false;
189
- }
190
- radio.addEventListener(
191
- "change",
192
- this.radioChangeHandler
193
- );
194
87
  }
195
- if (this.value === void 0 && this.slottedRadioButtons.length > 0) {
196
- const checkedRadios = this.slottedRadioButtons.filter(
197
- (radio) => radio.hasAttribute("checked")
198
- );
199
- if (checkedRadios.length > 0 && !foundMatchingVal) {
200
- const lastCheckedRadio = checkedRadios[checkedRadios.length - 1];
201
- lastCheckedRadio.checked = true;
202
- this.#setTabRovingTarget(lastCheckedRadio);
203
- } else {
204
- this.#setTabRovingTarget(this.slottedRadioButtons[0]);
88
+ if (this.checkedAttribute) {
89
+ if (!this.dirtyChecked) {
90
+ if (!this.isInsideRadioGroup()) {
91
+ this.checked = this.defaultChecked;
92
+ this.dirtyChecked = false;
93
+ }
205
94
  }
206
95
  }
207
96
  }
97
+ isInsideRadioGroup() {
98
+ const parent = this.closest(
99
+ "[role=radiogroup]"
100
+ );
101
+ return parent !== null;
102
+ }
208
103
  /**
209
104
  * @internal
210
105
  */
211
- focusInHandler(e) {
212
- this.#setTabRovingTarget(e.target);
213
- }
214
- #setTabRovingTarget(radio) {
215
- radio.setAttribute("tabindex", "0");
216
- for (const slottedRadio of this.slottedRadioButtons) {
217
- if (slottedRadio !== radio) {
218
- slottedRadio.setAttribute("tabindex", "-1");
219
- }
220
- }
221
- }
222
- checkFocusedRadio(target) {
223
- if (!target.readOnly) {
224
- target.checked = true;
106
+ clickHandler(_) {
107
+ if (!this.disabled && !this.readOnly && !this.checked) {
108
+ this.checked = true;
225
109
  }
226
110
  }
227
111
  }
228
112
  __decorateClass([
229
- index.attr
230
- ], RadioGroup.prototype, "label");
231
- __decorateClass([
232
- index.attr({ attribute: "readonly", mode: "boolean" })
233
- ], RadioGroup.prototype, "readOnly");
113
+ defineVividComponent.attr({ attribute: "aria-label" })
114
+ ], Radio.prototype, "ariaLabel");
234
115
  __decorateClass([
235
- index.attr({ attribute: "disabled", mode: "boolean" })
236
- ], RadioGroup.prototype, "disabled");
116
+ defineVividComponent.attr
117
+ ], Radio.prototype, "label");
237
118
  __decorateClass([
238
- index.attr
239
- ], RadioGroup.prototype, "name");
119
+ defineVividComponent.attr
120
+ ], Radio.prototype, "connotation");
240
121
  __decorateClass([
241
- index.attr
242
- ], RadioGroup.prototype, "value");
122
+ defineVividComponent.attr({ attribute: "readonly", mode: "boolean" })
123
+ ], Radio.prototype, "readOnly");
243
124
  __decorateClass([
244
- index.attr
245
- ], RadioGroup.prototype, "orientation");
125
+ defineVividComponent.observable
126
+ ], Radio.prototype, "name");
246
127
  __decorateClass([
247
- index.observable
248
- ], RadioGroup.prototype, "slottedRadioButtons");
128
+ defineVividComponent.observable
129
+ ], Radio.prototype, "defaultSlottedNodes");
249
130
 
250
- const RadioGroupTemplate = (context) => {
251
- return index.html`
252
- <template
253
- role="radiogroup"
254
- aria-disabled="${(x) => x.disabled}"
255
- aria-readonly="${(x) => x.readOnly}"
256
- aria-orientation="${(x) => x.orientation}"
257
- @keydown="${(x, c) => x.keydownHandler(c.event)}"
258
- @focusin="${(x, c) => x.focusInHandler(c.event)}"
259
- >
260
- ${when.when(
261
- (x) => x.label,
262
- index.html`<label>${(x) => x.label}</label>`
263
- )}
131
+ const getClasses = ({ connotation, checked, readOnly, disabled }) => classNames.classNames(
132
+ "base",
133
+ [`connotation-${connotation}`, Boolean(connotation)],
134
+ ["checked", Boolean(checked)],
135
+ ["readonly", Boolean(readOnly)],
136
+ ["disabled", Boolean(disabled)]
137
+ );
138
+ const RadioTemplate = defineVividComponent.html`<template
139
+ role="${(x) => x.ariaLabel ? "presentation" : null}"
140
+ >
141
+ <div
142
+ class="${getClasses}"
143
+ role="radio"
144
+ aria-label="${(x) => x.ariaLabel}"
145
+ aria-checked="${(x) => x.checked}"
146
+ aria-required="${(x) => x.required}"
147
+ aria-disabled="${(x) => x.disabled}"
148
+ @keypress="${(x, c) => x.keypressHandler(c.event)}"
149
+ @click="${(x, c) => x.clickHandler(c.event)}"
150
+ >
151
+ <div class="control"></div>
152
+ ${when.when(
153
+ (x) => x.label,
154
+ defineVividComponent.html`<label class="label">${(x) => x.label}</label>`
155
+ )}
156
+ </div>
157
+ </template>`;
264
158
 
265
- <div
266
- class="positioning-region ${(x) => x.orientation === aria.Orientation.horizontal ? "horizontal" : "vertical"}"
267
- >
268
- <slot
269
- ${slotted.slotted({
270
- property: "slottedRadioButtons",
271
- filter: slotted.elements(context.tagFor(radio.Radio))
272
- })}
273
- ></slot>
274
- </div>
275
- </template>
276
- `;
277
- };
278
-
279
- const radioGroupDefinition = RadioGroup.compose({
280
- baseName: "radio-group",
281
- template: RadioGroupTemplate,
282
- styles
283
- });
284
- const radioGroupRegistries = [radioGroupDefinition()];
285
- const registerRadioGroup = index.registerFactory(radioGroupRegistries);
159
+ const radioDefinition = defineVividComponent.defineVividComponent(
160
+ "radio",
161
+ Radio,
162
+ RadioTemplate,
163
+ [],
164
+ {
165
+ styles
166
+ }
167
+ );
168
+ const registerRadio = defineVividComponent.createRegisterFunction(radioDefinition);
286
169
 
287
- exports.radioGroupDefinition = radioGroupDefinition;
288
- exports.radioGroupRegistries = radioGroupRegistries;
289
- exports.registerRadioGroup = registerRadioGroup;
170
+ exports.Radio = Radio;
171
+ exports.radioDefinition = radioDefinition;
172
+ exports.registerRadio = registerRadio;