@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,648 +1,509 @@
1
- import { D as DOM, O as Observable, _ as __decorate, a as attr, o as observable, h as html, r as registerFactory } from './index.js';
2
- import { a as iconRegistries } from './definition27.js';
3
- import { P as Popup, p as popupRegistries } from './definition64.js';
4
- import { a as listboxOptionRegistries } from './definition36.js';
1
+ import { i as iconDefinition } from './definition27.js';
2
+ import { P as Popup, p as popupDefinition } from './definition63.js';
3
+ import { l as listboxOptionDefinition } from './definition35.js';
5
4
  import { s as styles$1 } from './text-field.js';
6
- import { b as Listbox, D as DelegatesARIAListbox, a as Listbox$1 } from './listbox.js';
7
- import { S as StartEnd } from './start-end.js';
8
- import { S as SelectPosition } from './select.options.js';
9
- import { a as applyMixins } from './apply-mixins.js';
5
+ import { D as DOM, O as Observable, a as attr, o as observable, h as html, d as defineVividComponent, f as createRegisterFunction } from './defineVividComponent.js';
6
+ import { L as Listbox } from './listbox.js';
10
7
  import { F as FormAssociated } from './form-associated.js';
11
- import { u as uniqueId, l as limit } from './strings.js';
12
8
  import { A as AffixIcon, a as affixIconTemplateFactory } from './affix.js';
9
+ import { u as uniqueId } from './strings.js';
10
+ import { l as limit } from './numbers.js';
11
+ import { a as applyMixins } from './apply-mixins2.js';
13
12
  import { f as formElements } from './form-elements.js';
14
- import { h as handleEscapeKeyAndStopPropogation } from './index2.js';
13
+ import { a as Listbox$1 } from './listbox2.js';
14
+ import { h as handleEscapeKeyAndStopPropogation } from './index.js';
15
15
  import { r as ref } from './ref.js';
16
16
  import { s as slotted } from './slotted.js';
17
17
  import { w as when } from './when.js';
18
18
  import { c as classNames } from './class-names.js';
19
19
 
20
+ const styles = ":host{position:relative}.base{--_text-field-gutter-end: 44px}.base{--_appearance-color-text: var(--vvd-color-canvas-text);--_appearance-color-fill: var(--vvd-color-canvas);--_appearance-color-outline: var(--_connotation-color-intermediate)}.base.appearance-ghost{--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: transparent;--_appearance-color-outline: transparent}.base:where(.hover,:hover):where(:not(.disabled,:disabled,.readonly)){--_appearance-color-text: var(--vvd-color-canvas-text);--_appearance-color-fill: var(--vvd-color-canvas);--_appearance-color-outline: var(--_connotation-color-fierce)}.base:where(.hover,:hover):where(:not(.disabled,:disabled,.readonly)).appearance-ghost{--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: var(--_connotation-color-faint);--_appearance-color-outline: transparent}.base:where(.disabled,:disabled){--_appearance-color-text: var(--vvd-color-neutral-300);--_appearance-color-fill: var(--vvd-color-neutral-100);--_appearance-color-outline: var(--vvd-color-neutral-300)}.base:where(.disabled,:disabled).appearance-ghost{--_appearance-color-text: var(--vvd-color-neutral-300);--_appearance-color-fill: transparent;--_appearance-color-outline: transparent}.base:where(.readonly):where(:not(.disabled,:disabled)){--_appearance-color-text: var(--vvd-color-canvas-text);--_appearance-color-fill: var(--vvd-color-neutral-200);--_appearance-color-outline: var(--vvd-color-neutral-400)}.base:where(.readonly):where(:not(.disabled,:disabled)).appearance-ghost{--_appearance-color-text: var(--vvd-color-neutral-600);--_appearance-color-fill: transparent;--_appearance-color-outline: transparent}.base:where(.error):where(:not(.disabled,:disabled)){--_appearance-color-text: notSet;--_appearance-color-fill: var(--vvd-color-alert-50);--_appearance-color-outline: var(--vvd-color-alert-500)}.base:where(.error):where(:not(.disabled,:disabled)).appearance-ghost{--_appearance-color-text: notSet;--_appearance-color-fill: var(--vvd-color-alert-50);--_appearance-color-outline: transparent}.base:where(.success):where(:not(.disabled,:disabled)){--_appearance-color-text: notSet;--_appearance-color-fill: var(--vvd-color-success-50);--_appearance-color-outline: var(--vvd-color-success-500)}.base:where(.success):where(:not(.disabled,:disabled)).appearance-ghost{--_appearance-color-text: notSet;--_appearance-color-fill: var(--vvd-color-success-50);--_appearance-color-outline: transparent}.icon{inset-inline-end:16px;inset-inline-start:unset}:not(.disabled) .icon{cursor:pointer}.disabled .icon{cursor:not-allowed}.listbox{display:flex;max-height:var(--combobox-height, 408px);flex-direction:column;padding:4px;border-radius:8px;contain:paint;gap:2px;overflow-y:auto}::part(popup-base){inline-size:max-content;min-inline-size:var(--_combobox-fixed-width, 100%)}@supports selector(:has(*)){.fieldset:has(.control:focus-within):after{--focus-stroke-gap-color: transparent;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))}}@supports not selector(:has(*)){.fieldset:focus-within:after{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));--focus-stroke-gap-color: transparent;position:absolute;z-index:1;display:block;border-radius:inherit;content:\"\";inset:0;pointer-events:none}}";
21
+
20
22
  class _Combobox extends Listbox {
21
23
  }
22
- /**
23
- * A form-associated base class for the {@link (Combobox:class)} component.
24
- *
25
- * @internal
26
- */
27
24
  class FormAssociatedCombobox extends FormAssociated(_Combobox) {
28
- constructor() {
29
- super(...arguments);
30
- this.proxy = document.createElement("input");
31
- }
25
+ constructor() {
26
+ super(...arguments);
27
+ this.proxy = document.createElement("input");
28
+ }
32
29
  }
33
30
 
34
- /**
35
- * Autocomplete values for combobox.
36
- * @public
37
- */
38
31
  const ComboboxAutocomplete = {
39
- inline: "inline",
40
- list: "list",
41
- both: "both",
42
- none: "none",
32
+ inline: "inline",
33
+ list: "list",
34
+ both: "both",
35
+ none: "none"
43
36
  };
44
37
 
45
- /**
46
- * A Combobox Custom HTML Element.
47
- * Implements the {@link https://w3c.github.io/aria-practices/#combobox | ARIA combobox }.
48
- *
49
- * @slot start - Content which can be provided before the input
50
- * @slot end - Content which can be provided after the input
51
- * @slot control - Used to replace the input element representing the combobox
52
- * @slot indicator - The visual indicator representing the expanded state
53
- * @slot - The default slot for the options
54
- * @csspart control - The wrapper element containing the input area, including start and end
55
- * @csspart selected-value - The input element representing the selected value
56
- * @csspart indicator - The element wrapping the indicator slot
57
- * @csspart listbox - The wrapper for the listbox slotted options
58
- * @fires change - Fires a custom 'change' event when the value updates
59
- *
60
- * @public
61
- */
62
- let Combobox$1 = class Combobox extends FormAssociatedCombobox {
63
- constructor() {
64
- super(...arguments);
65
- /**
66
- * The internal value property.
67
- *
68
- * @internal
69
- */
70
- this._value = "";
71
- /**
72
- * The collection of currently filtered options.
73
- *
74
- * @public
75
- */
76
- this.filteredOptions = [];
77
- /**
78
- * The current filter value.
79
- *
80
- * @internal
81
- */
82
- this.filter = "";
83
- /**
84
- * The initial state of the position attribute.
85
- *
86
- * @internal
87
- */
88
- this.forcedPosition = false;
89
- /**
90
- * The unique id for the internal listbox element.
91
- *
92
- * @internal
93
- */
94
- this.listboxId = uniqueId("listbox-");
95
- /**
96
- * The max height for the listbox when opened.
97
- *
98
- * @internal
99
- */
100
- this.maxHeight = 0;
101
- /**
102
- * The open attribute.
103
- *
104
- * @public
105
- * @remarks
106
- * HTML Attribute: open
107
- */
108
- this.open = false;
109
- }
110
- /**
111
- * Reset the element to its first selectable option when its parent form is reset.
112
- *
113
- * @internal
114
- */
115
- formResetCallback() {
116
- super.formResetCallback();
117
- this.setDefaultSelectedOption();
118
- this.updateValue();
119
- }
120
- /** {@inheritDoc (FormAssociated:interface).validate} */
121
- validate() {
122
- super.validate(this.control);
123
- }
124
- get isAutocompleteInline() {
125
- return (this.autocomplete === ComboboxAutocomplete.inline || this.isAutocompleteBoth);
126
- }
127
- get isAutocompleteList() {
128
- return this.autocomplete === ComboboxAutocomplete.list || this.isAutocompleteBoth;
129
- }
130
- get isAutocompleteBoth() {
131
- return this.autocomplete === ComboboxAutocomplete.both;
132
- }
38
+ var __defProp = Object.defineProperty;
39
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
40
+ var __decorateClass = (decorators, target, key, kind) => {
41
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
42
+ for (var i = decorators.length - 1, decorator; i >= 0; i--)
43
+ if (decorator = decorators[i])
44
+ result = (kind ? decorator(target, key, result) : decorator(result)) || result;
45
+ if (kind && result) __defProp(target, key, result);
46
+ return result;
47
+ };
48
+ let Combobox = class extends FormAssociatedCombobox {
49
+ constructor() {
50
+ super(...arguments);
133
51
  /**
134
- * Sets focus and synchronize ARIA attributes when the open property changes.
135
- *
136
- * @param prev - the previous open value
137
- * @param next - the current open value
52
+ * The internal value property.
138
53
  *
139
54
  * @internal
140
55
  */
141
- openChanged() {
142
- if (this.open) {
143
- this.ariaControls = this.listboxId;
144
- this.ariaExpanded = "true";
145
- this.setPositioning();
146
- this.focusAndScrollOptionIntoView();
147
- // focus is directed to the element when `open` is changed programmatically
148
- DOM.queueUpdate(() => this.focus());
149
- return;
150
- }
151
- this.ariaControls = "";
152
- this.ariaExpanded = "false";
153
- }
56
+ this._value = "";
154
57
  /**
155
- * The list of options.
58
+ * The collection of currently filtered options.
156
59
  *
157
60
  * @public
158
- * @remarks
159
- * Overrides `Listbox.options`.
160
61
  */
161
- get options() {
162
- Observable.track(this, "options");
163
- return this.filteredOptions.length ? this.filteredOptions : this._options;
164
- }
165
- set options(value) {
166
- this._options = value;
167
- Observable.notify(this, "options");
168
- }
62
+ this.filteredOptions = [];
169
63
  /**
170
- * Updates the placeholder on the proxy element.
64
+ * The current filter value.
65
+ *
171
66
  * @internal
172
67
  */
173
- placeholderChanged() {
174
- if (this.proxy instanceof HTMLInputElement) {
175
- this.proxy.placeholder = this.placeholder;
176
- }
177
- }
178
- positionChanged(prev, next) {
179
- this.positionAttribute = next;
180
- this.setPositioning();
181
- }
68
+ this.filter = "";
69
+ this.fixedDropdown = false;
182
70
  /**
183
- * The value property.
71
+ * The unique id for the internal listbox element.
184
72
  *
185
- * @public
73
+ * @internal
186
74
  */
187
- get value() {
188
- Observable.track(this, "value");
189
- return this._value;
75
+ this.listboxId = uniqueId("listbox-");
76
+ this.maxHeight = 0;
77
+ this.open = false;
78
+ }
79
+ /**
80
+ * Reset the element to its first selectable option when its parent form is reset.
81
+ *
82
+ * @internal
83
+ */
84
+ formResetCallback() {
85
+ super.formResetCallback();
86
+ this.setDefaultSelectedOption();
87
+ this.updateValue();
88
+ }
89
+ /** {@inheritDoc (FormAssociated:interface).validate} */
90
+ validate() {
91
+ super.validate(this.control);
92
+ }
93
+ get isAutocompleteInline() {
94
+ return this.autocomplete === ComboboxAutocomplete.inline || this.isAutocompleteBoth;
95
+ }
96
+ get isAutocompleteList() {
97
+ return this.autocomplete === ComboboxAutocomplete.list || this.isAutocompleteBoth;
98
+ }
99
+ get isAutocompleteBoth() {
100
+ return this.autocomplete === ComboboxAutocomplete.both;
101
+ }
102
+ /**
103
+ * Sets focus and synchronize ARIA attributes when the open property changes.
104
+ *
105
+ * @param prev - the previous open value
106
+ * @param next - the current open value
107
+ *
108
+ * @internal
109
+ */
110
+ openChanged() {
111
+ if (this.open) {
112
+ this.ariaControls = this.listboxId;
113
+ this.ariaExpanded = "true";
114
+ this.focusAndScrollOptionIntoView();
115
+ DOM.queueUpdate(() => this.focus());
116
+ return;
117
+ }
118
+ this.ariaControls = "";
119
+ this.ariaExpanded = "false";
120
+ }
121
+ /**
122
+ * The list of options.
123
+ *
124
+ * @public
125
+ * @remarks
126
+ * Overrides `Listbox.options`.
127
+ */
128
+ get options() {
129
+ Observable.track(this, "options");
130
+ return this.filteredOptions.length ? this.filteredOptions : this._options;
131
+ }
132
+ set options(value) {
133
+ this._options = value;
134
+ Observable.notify(this, "options");
135
+ }
136
+ /**
137
+ * Updates the placeholder on the proxy element.
138
+ * @internal
139
+ */
140
+ placeholderChanged() {
141
+ if (this.proxy instanceof HTMLInputElement) {
142
+ this.proxy.placeholder = this.placeholder;
190
143
  }
191
- set value(next) {
192
- var _a, _b, _c;
193
- const prev = `${this._value}`;
194
- if (this.$fastController.isConnected && this.options) {
195
- const selectedIndex = this.options.findIndex(el => el.text.toLowerCase() === next.toLowerCase());
196
- const prevSelectedValue = (_a = this.options[this.selectedIndex]) === null || _a === void 0 ? void 0 : _a.text;
197
- const nextSelectedValue = (_b = this.options[selectedIndex]) === null || _b === void 0 ? void 0 : _b.text;
198
- this.selectedIndex =
199
- prevSelectedValue !== nextSelectedValue
200
- ? selectedIndex
201
- : this.selectedIndex;
202
- next = ((_c = this.firstSelectedOption) === null || _c === void 0 ? void 0 : _c.text) || next;
203
- }
204
- if (prev !== next) {
205
- this._value = next;
206
- super.valueChanged(prev, next);
207
- Observable.notify(this, "value");
208
- }
144
+ }
145
+ /**
146
+ * The value property.
147
+ *
148
+ * @public
149
+ */
150
+ get value() {
151
+ Observable.track(this, "value");
152
+ return this._value;
153
+ }
154
+ set value(next) {
155
+ const prev = `${this._value}`;
156
+ if (this.$fastController.isConnected && this.options) {
157
+ const selectedIndex = this.options.findIndex(
158
+ (el) => el.text.toLowerCase() === next.toLowerCase()
159
+ );
160
+ const prevSelectedValue = this.options[this.selectedIndex]?.text;
161
+ const nextSelectedValue = this.options[selectedIndex]?.text;
162
+ this.selectedIndex = prevSelectedValue !== nextSelectedValue ? selectedIndex : this.selectedIndex;
163
+ next = this.firstSelectedOption?.text || next;
164
+ }
165
+ if (prev !== next) {
166
+ this._value = next;
167
+ super.valueChanged(prev, next);
168
+ Observable.notify(this, "value");
209
169
  }
210
- /**
211
- * Handle opening and closing the listbox when the combobox is clicked.
212
- *
213
- * @param e - the mouse event
214
- * @internal
215
- */
216
- clickHandler(e) {
217
- const captured = e.target.closest(`option,[role=option]`);
218
- if (this.disabled || (captured === null || captured === void 0 ? void 0 : captured.disabled)) {
219
- return;
220
- }
221
- if (this.open) {
222
- if (e.composedPath()[0] === this.control) {
223
- return;
224
- }
225
- if (captured) {
226
- this.selectedOptions = [captured];
227
- this.control.value = captured.text;
228
- this.clearSelectionRange();
229
- this.updateValue(true);
230
- }
231
- }
232
- this.open = !this.open;
233
- if (this.open) {
234
- this.control.focus();
235
- }
236
- return true;
170
+ }
171
+ /**
172
+ * Handle opening and closing the listbox when the combobox is clicked.
173
+ *
174
+ * @param e - the mouse event
175
+ * @internal
176
+ */
177
+ clickHandler(e) {
178
+ if (this.disabled) {
179
+ return;
180
+ }
181
+ if (this.open) {
182
+ const captured = e.target.closest(
183
+ `option,[role=option]`
184
+ );
185
+ if (!captured || captured.disabled) {
186
+ return;
187
+ }
188
+ this.selectedOptions = [captured];
189
+ this.control.value = captured.text;
190
+ this.clearSelectionRange();
191
+ this.updateValue(true);
237
192
  }
238
- connectedCallback() {
239
- super.connectedCallback();
240
- this.forcedPosition = !!this.positionAttribute;
241
- if (this.value) {
242
- this.initialValue = this.value;
243
- }
193
+ this.open = !this.open;
194
+ if (this.open) {
195
+ this.control.focus();
244
196
  }
245
- /**
246
- * Synchronize the `aria-disabled` property when the `disabled` property changes.
247
- *
248
- * @param prev - The previous disabled value
249
- * @param next - The next disabled value
250
- *
251
- * @internal
252
- */
253
- disabledChanged(prev, next) {
254
- if (super.disabledChanged) {
255
- super.disabledChanged(prev, next);
256
- }
257
- this.ariaDisabled = this.disabled ? "true" : "false";
197
+ return true;
198
+ }
199
+ connectedCallback() {
200
+ super.connectedCallback();
201
+ if (this.value) {
202
+ this.initialValue = this.value;
258
203
  }
259
- /**
260
- * Filter available options by text value.
261
- *
262
- * @public
263
- */
264
- filterOptions() {
265
- if (!this.autocomplete || this.autocomplete === ComboboxAutocomplete.none) {
266
- this.filter = "";
267
- }
268
- const filter = this.filter.toLowerCase();
269
- this.filteredOptions = this._options.filter(o => o.text.toLowerCase().startsWith(this.filter.toLowerCase()));
270
- if (this.isAutocompleteList) {
271
- if (!this.filteredOptions.length && !filter) {
272
- this.filteredOptions = this._options;
273
- }
274
- this._options.forEach(o => {
275
- o.hidden = !this.filteredOptions.includes(o);
276
- });
277
- }
204
+ this._popup.anchor = this._anchor;
205
+ }
206
+ /**
207
+ * Synchronize the `aria-disabled` property when the `disabled` property changes.
208
+ *
209
+ * @param prev - The previous disabled value
210
+ * @param next - The next disabled value
211
+ *
212
+ * @internal
213
+ */
214
+ disabledChanged(prev, next) {
215
+ if (super.disabledChanged) {
216
+ super.disabledChanged(prev, next);
217
+ }
218
+ this.ariaDisabled = this.disabled ? "true" : "false";
219
+ }
220
+ /**
221
+ * Filter available options by text value.
222
+ *
223
+ * @public
224
+ */
225
+ filterOptions() {
226
+ if (!this.autocomplete || this.autocomplete === ComboboxAutocomplete.none) {
227
+ this.filter = "";
228
+ }
229
+ this.filteredOptions = this._options.filter(
230
+ (o) => o.text.toLowerCase().startsWith(this.filter.toLowerCase())
231
+ );
232
+ if (this.isAutocompleteList) {
233
+ this._options.forEach((o) => {
234
+ o.hidden = !this.filteredOptions.includes(o);
235
+ });
278
236
  }
279
- /**
280
- * Focus the control and scroll the first selected option into view.
281
- *
282
- * @internal
283
- * @remarks
284
- * Overrides: `Listbox.focusAndScrollOptionIntoView`
285
- */
286
- focusAndScrollOptionIntoView() {
287
- if (this.contains(document.activeElement)) {
288
- this.control.focus();
289
- if (this.firstSelectedOption) {
290
- requestAnimationFrame(() => {
291
- var _a;
292
- (_a = this.firstSelectedOption) === null || _a === void 0 ? void 0 : _a.scrollIntoView({ block: "nearest" });
293
- });
294
- }
295
- }
237
+ }
238
+ /**
239
+ * Focus the control and scroll the first selected option into view.
240
+ *
241
+ * @internal
242
+ * @remarks
243
+ * Overrides: `Listbox.focusAndScrollOptionIntoView`
244
+ */
245
+ focusAndScrollOptionIntoView() {
246
+ if (this.contains(document.activeElement)) {
247
+ this.control.focus();
248
+ const firstSelectedOption = this.firstSelectedOption;
249
+ if (firstSelectedOption) {
250
+ requestAnimationFrame(() => {
251
+ firstSelectedOption.scrollIntoView({ block: "nearest" });
252
+ });
253
+ }
296
254
  }
297
- /**
298
- * Handle focus state when the element or its children lose focus.
299
- *
300
- * @param e - The focus event
301
- * @internal
302
- */
303
- focusoutHandler(e) {
255
+ }
256
+ /**
257
+ * Handle focus state when the element or its children lose focus.
258
+ *
259
+ * @param e - The focus event
260
+ * @internal
261
+ */
262
+ focusoutHandler(e) {
263
+ this.syncValue();
264
+ if (!this.open) {
265
+ return true;
266
+ }
267
+ const focusTarget = e.relatedTarget;
268
+ if (this.isSameNode(focusTarget)) {
269
+ this.focus();
270
+ return;
271
+ }
272
+ this.open = false;
273
+ }
274
+ /**
275
+ * Handle content changes on the control input.
276
+ *
277
+ * @param e - the input event
278
+ * @internal
279
+ */
280
+ inputHandler(e) {
281
+ this.filter = this.control.value;
282
+ this.filterOptions();
283
+ if (!this.isAutocompleteInline) {
284
+ this.selectedIndex = this.options.map((option) => option.text).indexOf(this.control.value);
285
+ }
286
+ if (e.inputType.includes("deleteContent") || !this.filter.length) {
287
+ return true;
288
+ }
289
+ if (this.isAutocompleteList && !this.open) {
290
+ this.open = true;
291
+ }
292
+ if (this.isAutocompleteInline) {
293
+ if (this.filteredOptions.length) {
294
+ this.selectedOptions = [this.filteredOptions[0]];
295
+ this.selectedIndex = this.options.indexOf(this.firstSelectedOption);
296
+ this.setInlineSelection();
297
+ } else {
298
+ this.selectedIndex = -1;
299
+ }
300
+ }
301
+ return;
302
+ }
303
+ /**
304
+ * Handle keydown actions for listbox navigation.
305
+ *
306
+ * @param e - the keyboard event
307
+ * @internal
308
+ */
309
+ keydownHandler(e) {
310
+ const key = e.key;
311
+ if (e.ctrlKey || e.shiftKey) {
312
+ return true;
313
+ }
314
+ switch (key) {
315
+ case "Enter": {
304
316
  this.syncValue();
305
- if (!this.open) {
306
- return true;
317
+ if (this.isAutocompleteInline) {
318
+ this.filter = this.value;
307
319
  }
308
- const focusTarget = e.relatedTarget;
309
- if (this.isSameNode(focusTarget)) {
310
- this.focus();
311
- return;
320
+ this.open = false;
321
+ this.clearSelectionRange();
322
+ break;
323
+ }
324
+ case "Escape": {
325
+ if (!this.isAutocompleteInline) {
326
+ this.selectedIndex = -1;
312
327
  }
313
- if (!this.options || !this.options.includes(focusTarget)) {
314
- this.open = false;
328
+ if (this.open) {
329
+ this.open = false;
330
+ break;
315
331
  }
316
- }
317
- /**
318
- * Handle content changes on the control input.
319
- *
320
- * @param e - the input event
321
- * @internal
322
- */
323
- inputHandler(e) {
324
- this.filter = this.control.value;
332
+ this.value = "";
333
+ this.control.value = "";
334
+ this.filter = "";
325
335
  this.filterOptions();
326
- if (!this.isAutocompleteInline) {
327
- this.selectedIndex = this.options
328
- .map(option => option.text)
329
- .indexOf(this.control.value);
336
+ break;
337
+ }
338
+ case "Tab": {
339
+ this.setInputToSelection();
340
+ if (!this.open) {
341
+ return true;
330
342
  }
331
- if (e.inputType.includes("deleteContent") || !this.filter.length) {
332
- return true;
343
+ e.preventDefault();
344
+ this.open = false;
345
+ break;
346
+ }
347
+ case "ArrowUp":
348
+ case "ArrowDown": {
349
+ this.filterOptions();
350
+ if (!this.open) {
351
+ this.open = true;
352
+ break;
333
353
  }
334
- if (this.isAutocompleteList && !this.open) {
335
- this.open = true;
354
+ if (this.filteredOptions.length > 0) {
355
+ super.keydownHandler(e);
336
356
  }
337
357
  if (this.isAutocompleteInline) {
338
- if (this.filteredOptions.length) {
339
- this.selectedOptions = [this.filteredOptions[0]];
340
- this.selectedIndex = this.options.indexOf(this.firstSelectedOption);
341
- this.setInlineSelection();
342
- }
343
- else {
344
- this.selectedIndex = -1;
345
- }
346
- }
347
- return;
348
- }
349
- /**
350
- * Handle keydown actions for listbox navigation.
351
- *
352
- * @param e - the keyboard event
353
- * @internal
354
- */
355
- keydownHandler(e) {
356
- const key = e.key;
357
- if (e.ctrlKey || e.shiftKey) {
358
- return true;
359
- }
360
- switch (key) {
361
- case "Enter": {
362
- this.syncValue();
363
- if (this.isAutocompleteInline) {
364
- this.filter = this.value;
365
- }
366
- this.open = false;
367
- this.clearSelectionRange();
368
- break;
369
- }
370
- case "Escape": {
371
- if (!this.isAutocompleteInline) {
372
- this.selectedIndex = -1;
373
- }
374
- if (this.open) {
375
- this.open = false;
376
- break;
377
- }
378
- this.value = "";
379
- this.control.value = "";
380
- this.filter = "";
381
- this.filterOptions();
382
- break;
383
- }
384
- case "Tab": {
385
- this.setInputToSelection();
386
- if (!this.open) {
387
- return true;
388
- }
389
- e.preventDefault();
390
- this.open = false;
391
- break;
392
- }
393
- case "ArrowUp":
394
- case "ArrowDown": {
395
- this.filterOptions();
396
- if (!this.open) {
397
- this.open = true;
398
- break;
399
- }
400
- if (this.filteredOptions.length > 0) {
401
- super.keydownHandler(e);
402
- }
403
- if (this.isAutocompleteInline) {
404
- this.setInlineSelection();
405
- }
406
- break;
407
- }
408
- default: {
409
- return true;
410
- }
411
- }
412
- }
413
- /**
414
- * Handle keyup actions for value input and text field manipulations.
415
- *
416
- * @param e - the keyboard event
417
- * @internal
418
- */
419
- keyupHandler(e) {
420
- const key = e.key;
421
- switch (key) {
422
- case "ArrowLeft":
423
- case "ArrowRight":
424
- case "Backspace":
425
- case "Delete":
426
- case "Home":
427
- case "End": {
428
- this.filter = this.control.value;
429
- this.selectedIndex = -1;
430
- this.filterOptions();
431
- break;
432
- }
433
- }
434
- }
435
- /**
436
- * Ensure that the selectedIndex is within the current allowable filtered range.
437
- *
438
- * @param prev - the previous selected index value
439
- * @param next - the current selected index value
440
- *
441
- * @internal
442
- */
443
- selectedIndexChanged(prev, next) {
444
- if (this.$fastController.isConnected) {
445
- next = limit(-1, this.options.length - 1, next);
446
- // we only want to call the super method when the selectedIndex is in range
447
- if (next !== this.selectedIndex) {
448
- this.selectedIndex = next;
449
- return;
450
- }
451
- super.selectedIndexChanged(prev, next);
452
- }
453
- }
454
- /**
455
- * Move focus to the previous selectable option.
456
- *
457
- * @internal
458
- * @remarks
459
- * Overrides `Listbox.selectPreviousOption`
460
- */
461
- selectPreviousOption() {
462
- if (!this.disabled && this.selectedIndex >= 0) {
463
- this.selectedIndex = this.selectedIndex - 1;
464
- }
465
- }
466
- /**
467
- * Set the default selected options at initialization or reset.
468
- *
469
- * @internal
470
- * @remarks
471
- * Overrides `Listbox.setDefaultSelectedOption`
472
- */
473
- setDefaultSelectedOption() {
474
- if (this.$fastController.isConnected && this.options) {
475
- const selectedIndex = this.options.findIndex(el => el.getAttribute("selected") !== null || el.selected);
476
- this.selectedIndex = selectedIndex;
477
- if (!this.dirtyValue && this.firstSelectedOption) {
478
- this.value = this.firstSelectedOption.text;
479
- }
480
- this.setSelectedOptions();
481
- }
482
- }
483
- /**
484
- * Focus and set the content of the control based on the first selected option.
485
- *
486
- * @internal
487
- */
488
- setInputToSelection() {
489
- if (this.firstSelectedOption) {
490
- this.control.value = this.firstSelectedOption.text;
491
- this.control.focus();
358
+ this.setInlineSelection();
492
359
  }
360
+ break;
361
+ }
362
+ default: {
363
+ return true;
364
+ }
493
365
  }
494
- /**
495
- * Focus, set and select the content of the control based on the first selected option.
496
- *
497
- * @internal
498
- */
499
- setInlineSelection() {
500
- if (this.firstSelectedOption) {
501
- this.setInputToSelection();
502
- this.control.setSelectionRange(this.filter.length, this.control.value.length, "backward");
503
- }
366
+ }
367
+ /**
368
+ * Ensure that the selectedIndex is within the current allowable filtered range.
369
+ *
370
+ * @param prev - the previous selected index value
371
+ * @param next - the current selected index value
372
+ *
373
+ * @internal
374
+ */
375
+ selectedIndexChanged(prev, next) {
376
+ if (this.$fastController.isConnected) {
377
+ next = limit(-1, this.options.length - 1, next);
378
+ if (next !== this.selectedIndex) {
379
+ this.selectedIndex = next;
380
+ return;
381
+ }
382
+ super.selectedIndexChanged(prev, next);
504
383
  }
505
- /**
506
- * Determines if a value update should involve emitting a change event, then updates the value.
507
- *
508
- * @internal
509
- */
510
- syncValue() {
511
- var _a;
512
- const newValue = this.selectedIndex > -1 ? (_a = this.firstSelectedOption) === null || _a === void 0 ? void 0 : _a.text : this.control.value;
513
- this.updateValue(this.value !== newValue);
384
+ }
385
+ /**
386
+ * Move focus to the previous selectable option.
387
+ *
388
+ * @internal
389
+ * @remarks
390
+ * Overrides `Listbox.selectPreviousOption`
391
+ */
392
+ selectPreviousOption() {
393
+ if (!this.disabled && this.selectedIndex >= 0) {
394
+ this.selectedIndex = this.selectedIndex - 1;
514
395
  }
515
- /**
516
- * Calculate and apply listbox positioning based on available viewport space.
517
- *
518
- * @param force - direction to force the listbox to display
519
- * @public
520
- */
521
- setPositioning() {
522
- const currentBox = this.getBoundingClientRect();
523
- const viewportHeight = window.innerHeight;
524
- const availableBottom = viewportHeight - currentBox.bottom;
525
- this.position = this.forcedPosition
526
- ? this.positionAttribute
527
- : currentBox.top > availableBottom
528
- ? SelectPosition.above
529
- : SelectPosition.below;
530
- this.positionAttribute = this.forcedPosition
531
- ? this.positionAttribute
532
- : this.position;
533
- this.maxHeight =
534
- this.position === SelectPosition.above ? ~~currentBox.top : ~~availableBottom;
396
+ }
397
+ /**
398
+ * Set the default selected options at initialization or reset.
399
+ *
400
+ * @internal
401
+ * @remarks
402
+ * Overrides `Listbox.setDefaultSelectedOption`
403
+ */
404
+ setDefaultSelectedOption() {
405
+ if (this.$fastController.isConnected && this.options) {
406
+ const selectedIndex = this.options.findIndex(
407
+ (el) => el.getAttribute("selected") !== null || el.selected
408
+ );
409
+ this.selectedIndex = selectedIndex;
410
+ if (!this.dirtyValue && this.firstSelectedOption) {
411
+ this.value = this.firstSelectedOption.text;
412
+ }
413
+ this.setSelectedOptions();
535
414
  }
536
- /**
537
- * Ensure that the entire list of options is used when setting the selected property.
538
- *
539
- * @param prev - the previous list of selected options
540
- * @param next - the current list of selected options
541
- *
542
- * @internal
543
- * @remarks
544
- * Overrides: `Listbox.selectedOptionsChanged`
545
- */
546
- selectedOptionsChanged(prev, next) {
547
- if (this.$fastController.isConnected) {
548
- this._options.forEach(o => {
549
- o.selected = next.includes(o);
550
- });
551
- }
415
+ }
416
+ /**
417
+ * Focus and set the content of the control based on the first selected option.
418
+ *
419
+ * @internal
420
+ */
421
+ setInputToSelection() {
422
+ if (this.firstSelectedOption) {
423
+ this.control.value = this.firstSelectedOption.text;
424
+ this.control.focus();
552
425
  }
553
- /**
554
- * Synchronize the form-associated proxy and update the value property of the element.
555
- *
556
- * @param prev - the previous collection of slotted option elements
557
- * @param next - the next collection of slotted option elements
558
- *
559
- * @internal
560
- */
561
- slottedOptionsChanged(prev, next) {
562
- super.slottedOptionsChanged(prev, next);
563
- this.updateValue();
426
+ }
427
+ /**
428
+ * Focus, set and select the content of the control based on the first selected option.
429
+ *
430
+ * @internal
431
+ */
432
+ setInlineSelection() {
433
+ if (this.firstSelectedOption) {
434
+ this.setInputToSelection();
435
+ this.control.setSelectionRange(
436
+ this.filter.length,
437
+ this.control.value.length,
438
+ "backward"
439
+ );
564
440
  }
565
- /**
566
- * Sets the value and to match the first selected option.
567
- *
568
- * @param shouldEmit - if true, the change event will be emitted
569
- *
570
- * @internal
571
- */
572
- updateValue(shouldEmit) {
573
- var _a;
574
- if (this.$fastController.isConnected) {
575
- this.value = ((_a = this.firstSelectedOption) === null || _a === void 0 ? void 0 : _a.text) || this.control.value;
576
- this.control.value = this.value;
577
- }
578
- if (shouldEmit) {
579
- this.$emit("change");
580
- }
441
+ }
442
+ /**
443
+ * Determines if a value update should involve emitting a change event, then updates the value.
444
+ *
445
+ * @internal
446
+ */
447
+ syncValue() {
448
+ const newValue = this.firstSelectedOption?.text ?? this.control.value;
449
+ this.updateValue(this.value !== newValue);
450
+ }
451
+ /**
452
+ * Ensure that the entire list of options is used when setting the selected property.
453
+ *
454
+ * @param prev - the previous list of selected options
455
+ * @param next - the current list of selected options
456
+ *
457
+ * @internal
458
+ * @remarks
459
+ * Overrides: `Listbox.selectedOptionsChanged`
460
+ */
461
+ selectedOptionsChanged(_prev, next) {
462
+ if (this.$fastController.isConnected) {
463
+ this._options.forEach((o) => {
464
+ o.selected = next.includes(o);
465
+ });
581
466
  }
582
- /**
583
- * @internal
584
- */
585
- clearSelectionRange() {
586
- const controlValueLength = this.control.value.length;
587
- this.control.setSelectionRange(controlValueLength, controlValueLength);
467
+ }
468
+ /**
469
+ * Synchronize the form-associated proxy and update the value property of the element.
470
+ *
471
+ * @param prev - the previous collection of slotted option elements
472
+ * @param next - the next collection of slotted option elements
473
+ *
474
+ * @internal
475
+ */
476
+ slottedOptionsChanged(prev, next) {
477
+ super.slottedOptionsChanged(prev, next);
478
+ this.updateValue();
479
+ }
480
+ /**
481
+ * Sets the value and to match the first selected option.
482
+ *
483
+ * @param shouldEmit - if true, the change event will be emitted
484
+ *
485
+ * @internal
486
+ */
487
+ updateValue(shouldEmit) {
488
+ if (this.$fastController.isConnected) {
489
+ this.value = this.firstSelectedOption?.text || this.control.value;
490
+ this.control.value = this.value;
491
+ }
492
+ if (shouldEmit) {
493
+ this.$emit("change");
588
494
  }
589
- };
590
- __decorate([
591
- attr({ attribute: "autocomplete", mode: "fromView" })
592
- ], Combobox$1.prototype, "autocomplete", void 0);
593
- __decorate([
594
- observable
595
- ], Combobox$1.prototype, "maxHeight", void 0);
596
- __decorate([
597
- attr({ attribute: "open", mode: "boolean" })
598
- ], Combobox$1.prototype, "open", void 0);
599
- __decorate([
600
- attr
601
- ], Combobox$1.prototype, "placeholder", void 0);
602
- __decorate([
603
- attr({ attribute: "position" })
604
- ], Combobox$1.prototype, "positionAttribute", void 0);
605
- __decorate([
606
- observable
607
- ], Combobox$1.prototype, "position", void 0);
608
- /**
609
- * Includes ARIA states and properties relating to the ARIA combobox role.
610
- *
611
- * @public
612
- */
613
- class DelegatesARIACombobox {
614
- }
615
- __decorate([
616
- observable
617
- ], DelegatesARIACombobox.prototype, "ariaAutoComplete", void 0);
618
- __decorate([
619
- observable
620
- ], DelegatesARIACombobox.prototype, "ariaControls", void 0);
621
- applyMixins(DelegatesARIACombobox, DelegatesARIAListbox);
622
- applyMixins(Combobox$1, StartEnd, DelegatesARIACombobox);
623
-
624
- const styles = ":host{position:relative}.base{--_text-field-gutter-end: 44px}.base{--_appearance-color-text: var(--vvd-color-canvas-text);--_appearance-color-fill: var(--vvd-color-canvas);--_appearance-color-outline: var(--_connotation-color-intermediate)}.base.appearance-ghost{--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: transparent;--_appearance-color-outline: transparent}.base:where(.hover,:hover):where(:not(.disabled,:disabled,.readonly)){--_appearance-color-text: var(--vvd-color-canvas-text);--_appearance-color-fill: var(--vvd-color-canvas);--_appearance-color-outline: var(--_connotation-color-fierce)}.base:where(.hover,:hover):where(:not(.disabled,:disabled,.readonly)).appearance-ghost{--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: var(--_connotation-color-faint);--_appearance-color-outline: transparent}.base:where(.disabled,:disabled){--_appearance-color-text: var(--vvd-color-neutral-300);--_appearance-color-fill: var(--vvd-color-neutral-100);--_appearance-color-outline: var(--vvd-color-neutral-300)}.base:where(.disabled,:disabled).appearance-ghost{--_appearance-color-text: var(--vvd-color-neutral-300);--_appearance-color-fill: transparent;--_appearance-color-outline: transparent}.base:where(.readonly):where(:not(.disabled,:disabled)){--_appearance-color-text: var(--vvd-color-canvas-text);--_appearance-color-fill: var(--vvd-color-neutral-200);--_appearance-color-outline: var(--vvd-color-neutral-400)}.base:where(.readonly):where(:not(.disabled,:disabled)).appearance-ghost{--_appearance-color-text: var(--vvd-color-neutral-600);--_appearance-color-fill: transparent;--_appearance-color-outline: transparent}.base:where(.error):where(:not(.disabled,:disabled)){--_appearance-color-text: notSet;--_appearance-color-fill: var(--vvd-color-alert-50);--_appearance-color-outline: var(--vvd-color-alert-500)}.base:where(.error):where(:not(.disabled,:disabled)).appearance-ghost{--_appearance-color-text: notSet;--_appearance-color-fill: var(--vvd-color-alert-50);--_appearance-color-outline: transparent}.base:where(.success):where(:not(.disabled,:disabled)){--_appearance-color-text: notSet;--_appearance-color-fill: var(--vvd-color-success-50);--_appearance-color-outline: var(--vvd-color-success-500)}.base:where(.success):where(:not(.disabled,:disabled)).appearance-ghost{--_appearance-color-text: notSet;--_appearance-color-fill: var(--vvd-color-success-50);--_appearance-color-outline: transparent}.icon{inset-inline-end:16px;inset-inline-start:unset}:not(.disabled) .icon{cursor:pointer}.disabled .icon{cursor:not-allowed}.listbox{display:flex;max-height:var(--combobox-height, 408px);flex-direction:column;padding:4px;border-radius:8px;contain:paint;gap:2px;overflow-y:auto}::part(popup-base){inline-size:max-content;min-inline-size:var(--_combobox-fixed-width, 100%)}@supports selector(:has(*)){.fieldset:has(.control:focus-within):after{--focus-stroke-gap-color: transparent;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))}}@supports not selector(:has(*)){.fieldset:focus-within:after{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));--focus-stroke-gap-color: transparent;position:absolute;z-index:1;display:block;border-radius:inherit;content:\"\";inset:0;pointer-events:none}}";
625
-
626
- var __defProp = Object.defineProperty;
627
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
628
- var __decorateClass = (decorators, target, key, kind) => {
629
- var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
630
- for (var i = decorators.length - 1, decorator; i >= 0; i--)
631
- if (decorator = decorators[i])
632
- result = (kind ? decorator(target, key, result) : decorator(result)) || result;
633
- if (kind && result) __defProp(target, key, result);
634
- return result;
635
- };
636
- let Combobox = class extends Combobox$1 {
637
- constructor() {
638
- super(...arguments);
639
- this.fixedDropdown = false;
640
495
  }
641
- connectedCallback() {
642
- super.connectedCallback();
643
- this._popup.anchor = this._anchor;
496
+ /**
497
+ * @internal
498
+ */
499
+ clearSelectionRange() {
500
+ const controlValueLength = this.control.value.length;
501
+ this.control.setSelectionRange(controlValueLength, controlValueLength);
644
502
  }
645
503
  };
504
+ __decorateClass([
505
+ attr({ attribute: "autocomplete", mode: "fromView" })
506
+ ], Combobox.prototype, "autocomplete", 2);
646
507
  __decorateClass([
647
508
  attr
648
509
  ], Combobox.prototype, "appearance", 2);
@@ -652,6 +513,16 @@ __decorateClass([
652
513
  __decorateClass([
653
514
  attr({ mode: "boolean", attribute: "fixed-dropdown" })
654
515
  ], Combobox.prototype, "fixedDropdown", 2);
516
+ __decorateClass([
517
+ observable
518
+ ], Combobox.prototype, "maxHeight", 2);
519
+ __decorateClass([
520
+ attr({ attribute: "open", mode: "boolean" })
521
+ ], Combobox.prototype, "open", 2);
522
+ // @ts-expect-error Type is incorrectly non-optional
523
+ __decorateClass([
524
+ attr
525
+ ], Combobox.prototype, "placeholder", 2);
655
526
  Combobox = __decorateClass([
656
527
  formElements
657
528
  ], Combobox);
@@ -699,7 +570,6 @@ function renderInput(context) {
699
570
  ?disabled="${(x) => x.disabled}"
700
571
  :value="${(x) => x.value}"
701
572
  @input="${(x, c) => x.inputHandler(c.event)}"
702
- @keyup="${(x, c) => x.keyupHandler(c.event)}"
703
573
  ${ref("control")}
704
574
  />
705
575
  ${() => affixIconTemplate("chevron-down-line")}
@@ -744,20 +614,18 @@ const comboboxTemplate = (context) => {
744
614
  `;
745
615
  };
746
616
 
747
- const combobox = Combobox.compose({
748
- baseName: "combobox",
749
- template: comboboxTemplate,
750
- styles: [styles$1, styles],
751
- shadowOptions: {
752
- delegatesFocus: true
753
- }
754
- })();
755
- const comboboxRegistries = [
756
- combobox,
757
- ...iconRegistries,
758
- ...popupRegistries,
759
- ...listboxOptionRegistries
760
- ];
761
- const registerCombobox = registerFactory(comboboxRegistries);
617
+ const comboboxDefinition = defineVividComponent(
618
+ "combobox",
619
+ Combobox,
620
+ comboboxTemplate,
621
+ [iconDefinition, popupDefinition, listboxOptionDefinition],
622
+ {
623
+ styles: [styles$1, styles],
624
+ shadowOptions: {
625
+ delegatesFocus: true
626
+ }
627
+ }
628
+ );
629
+ const registerCombobox = createRegisterFunction(comboboxDefinition);
762
630
 
763
- export { comboboxRegistries as a, combobox as c, registerCombobox as r };
631
+ export { comboboxDefinition as c, registerCombobox as r };