@vonage/vivid 4.13.0 → 4.14.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (516) hide show
  1. package/custom-elements.json +4033 -2662
  2. package/elevation/index.cjs +1 -1
  3. package/elevation/index.js +1 -1
  4. package/index.cjs +70 -136
  5. package/index.d.ts +0 -1
  6. package/index.js +60 -62
  7. package/lib/accordion/accordion.d.ts +2 -2
  8. package/lib/accordion/accordion.template.d.ts +1 -2
  9. package/lib/accordion/definition.d.ts +1 -1
  10. package/lib/accordion-item/accordion-item.d.ts +2 -2
  11. package/lib/accordion-item/accordion-item.template.d.ts +2 -3
  12. package/lib/accordion-item/definition.d.ts +1 -1
  13. package/lib/action-group/action-group.d.ts +2 -2
  14. package/lib/action-group/action-group.template.d.ts +1 -3
  15. package/lib/action-group/definition.d.ts +1 -1
  16. package/lib/alert/alert.d.ts +2 -2
  17. package/lib/alert/alert.template.d.ts +2 -3
  18. package/lib/alert/definition.d.ts +1 -1
  19. package/lib/audio-player/audio-player.d.ts +2 -2
  20. package/lib/audio-player/audio-player.template.d.ts +2 -3
  21. package/lib/audio-player/definition.d.ts +1 -3
  22. package/lib/avatar/avatar.d.ts +2 -2
  23. package/lib/avatar/avatar.template.d.ts +2 -3
  24. package/lib/avatar/definition.d.ts +1 -1
  25. package/lib/badge/badge.d.ts +2 -2
  26. package/lib/badge/badge.template.d.ts +2 -3
  27. package/lib/badge/definition.d.ts +1 -3
  28. package/lib/banner/banner.d.ts +2 -2
  29. package/lib/banner/banner.template.d.ts +2 -3
  30. package/lib/banner/definition.d.ts +1 -1
  31. package/lib/breadcrumb/breadcrumb.d.ts +2 -2
  32. package/lib/breadcrumb/breadcrumb.template.d.ts +3 -4
  33. package/lib/breadcrumb/definition.d.ts +1 -1
  34. package/lib/breadcrumb-item/breadcrumb-item.d.ts +2 -2
  35. package/lib/breadcrumb-item/breadcrumb-item.template.d.ts +2 -3
  36. package/lib/breadcrumb-item/definition.d.ts +1 -1
  37. package/lib/button/button.d.ts +2 -2
  38. package/lib/button/button.template.d.ts +2 -4
  39. package/lib/button/definition.d.ts +1 -1
  40. package/lib/calendar/calendar.d.ts +2 -2
  41. package/lib/calendar/calendar.template.d.ts +1 -3
  42. package/lib/calendar/definition.d.ts +1 -1
  43. package/lib/calendar-event/calendar-event.d.ts +2 -2
  44. package/lib/calendar-event/calendar-event.template.d.ts +1 -3
  45. package/lib/calendar-event/definition.d.ts +1 -1
  46. package/lib/card/card.d.ts +2 -2
  47. package/lib/card/card.template.d.ts +2 -3
  48. package/lib/card/definition.d.ts +1 -1
  49. package/lib/checkbox/checkbox.form-associated.d.ts +3 -2
  50. package/lib/checkbox/checkbox.template.d.ts +2 -3
  51. package/lib/checkbox/definition.d.ts +1 -1
  52. package/lib/combobox/combobox.d.ts +17 -2
  53. package/lib/combobox/combobox.options.d.ts +7 -0
  54. package/lib/combobox/combobox.template.d.ts +2 -3
  55. package/lib/combobox/definition.d.ts +1 -2
  56. package/lib/data-grid/data-grid-cell.d.ts +16 -13
  57. package/lib/data-grid/data-grid-cell.template.d.ts +2 -3
  58. package/lib/data-grid/data-grid-row.d.ts +19 -2
  59. package/lib/data-grid/data-grid-row.template.d.ts +2 -2
  60. package/lib/data-grid/data-grid.d.ts +45 -4
  61. package/lib/data-grid/data-grid.template.d.ts +2 -2
  62. package/lib/data-grid/definition.d.ts +1 -6
  63. package/lib/date-picker/definition.d.ts +1 -3
  64. package/lib/date-range-picker/definition.d.ts +1 -3
  65. package/lib/dial-pad/definition.d.ts +1 -3
  66. package/lib/dial-pad/dial-pad.d.ts +2 -2
  67. package/lib/dial-pad/dial-pad.template.d.ts +2 -3
  68. package/lib/dialog/definition.d.ts +1 -1
  69. package/lib/dialog/dialog.d.ts +2 -2
  70. package/lib/dialog/dialog.template.d.ts +2 -3
  71. package/lib/divider/definition.d.ts +1 -1
  72. package/lib/divider/divider.d.ts +2 -2
  73. package/lib/divider/divider.template.d.ts +1 -3
  74. package/lib/elevation/definition.d.ts +1 -1
  75. package/lib/elevation/elevation.d.ts +2 -2
  76. package/lib/elevation/elevation.template.d.ts +1 -3
  77. package/lib/empty-state/definition.d.ts +1 -3
  78. package/lib/empty-state/empty-state.d.ts +2 -2
  79. package/lib/empty-state/empty-state.template.d.ts +2 -3
  80. package/lib/fab/definition.d.ts +1 -3
  81. package/lib/fab/fab.template.d.ts +2 -3
  82. package/lib/file-picker/definition.d.ts +1 -3
  83. package/lib/file-picker/file-picker.form-associated.d.ts +3 -2
  84. package/lib/file-picker/file-picker.template.d.ts +2 -3
  85. package/lib/header/definition.d.ts +1 -3
  86. package/lib/header/header.d.ts +2 -2
  87. package/lib/header/header.template.d.ts +2 -3
  88. package/lib/icon/definition.d.ts +1 -3
  89. package/lib/icon/icon.d.ts +2 -2
  90. package/lib/icon/icon.template.d.ts +1 -3
  91. package/lib/layout/definition.d.ts +1 -3
  92. package/lib/layout/layout.d.ts +2 -2
  93. package/lib/layout/layout.template.d.ts +1 -3
  94. package/lib/listbox/definition.d.ts +1 -3
  95. package/lib/listbox/listbox.template.d.ts +1 -3
  96. package/lib/menu/definition.d.ts +1 -11
  97. package/lib/menu/menu.d.ts +2 -2
  98. package/lib/menu/menu.template.d.ts +3 -3
  99. package/lib/menu-item/definition.d.ts +1 -3
  100. package/lib/menu-item/menu-item.d.ts +2 -2
  101. package/lib/menu-item/menu-item.template.d.ts +2 -3
  102. package/lib/nav/definition.d.ts +1 -3
  103. package/lib/nav/nav.d.ts +2 -2
  104. package/lib/nav/nav.template.d.ts +1 -3
  105. package/lib/nav-disclosure/definition.d.ts +1 -3
  106. package/lib/nav-disclosure/nav-disclosure.d.ts +2 -2
  107. package/lib/nav-disclosure/nav-disclosure.template.d.ts +2 -3
  108. package/lib/nav-item/definition.d.ts +1 -3
  109. package/lib/nav-item/nav-item.template.d.ts +2 -3
  110. package/lib/note/definition.d.ts +1 -3
  111. package/lib/note/note.d.ts +2 -2
  112. package/lib/note/note.template.d.ts +2 -3
  113. package/lib/number-field/definition.d.ts +1 -4
  114. package/lib/number-field/number-field.form-associated.d.ts +3 -2
  115. package/lib/number-field/number-field.template.d.ts +2 -3
  116. package/lib/option/definition.d.ts +1 -3
  117. package/lib/option/option.d.ts +3 -2
  118. package/lib/option/option.template.d.ts +2 -3
  119. package/lib/pagination/definition.d.ts +1 -3
  120. package/lib/pagination/pagination.d.ts +2 -2
  121. package/lib/pagination/pagination.template.d.ts +2 -3
  122. package/lib/popup/definition.d.ts +1 -3
  123. package/lib/popup/popup.template.d.ts +2 -3
  124. package/lib/progress/definition.d.ts +1 -3
  125. package/lib/progress/progress.d.ts +1 -1
  126. package/lib/progress/progress.template.d.ts +1 -4
  127. package/lib/progress-ring/definition.d.ts +1 -3
  128. package/lib/progress-ring/progress-ring.d.ts +1 -1
  129. package/lib/progress-ring/progress-ring.template.d.ts +1 -3
  130. package/lib/radio/definition.d.ts +1 -3
  131. package/lib/radio/radio.form-associated.d.ts +3 -2
  132. package/lib/radio/radio.template.d.ts +1 -3
  133. package/lib/radio-group/definition.d.ts +1 -11
  134. package/lib/radio-group/radio-group.d.ts +2 -2
  135. package/lib/radio-group/radio-group.template.d.ts +2 -3
  136. package/lib/range-slider/definition.d.ts +1 -3
  137. package/lib/range-slider/range-slider.form-associated.d.ts +3 -2
  138. package/lib/range-slider/range-slider.template.d.ts +2 -3
  139. package/lib/searchable-select/definition.d.ts +1 -4
  140. package/lib/searchable-select/option-tag.template.d.ts +2 -3
  141. package/lib/searchable-select/searchable-select.form-associated.d.ts +3 -2
  142. package/lib/searchable-select/searchable-select.template.d.ts +2 -3
  143. package/lib/select/definition.d.ts +1 -3
  144. package/lib/select/select.d.ts +14 -4
  145. package/lib/select/select.form-associated.d.ts +11 -0
  146. package/lib/select/select.template.d.ts +2 -3
  147. package/lib/selectable-box/definition.d.ts +1 -3
  148. package/lib/selectable-box/selectable-box.d.ts +2 -2
  149. package/lib/selectable-box/selectable-box.template.d.ts +2 -3
  150. package/lib/side-drawer/definition.d.ts +1 -3
  151. package/lib/side-drawer/side-drawer.d.ts +2 -2
  152. package/lib/side-drawer/side-drawer.template.d.ts +1 -3
  153. package/lib/slider/definition.d.ts +1 -3
  154. package/lib/slider/slider.form-associated.d.ts +3 -2
  155. package/lib/slider/slider.template.d.ts +3 -4
  156. package/lib/split-button/definition.d.ts +1 -1
  157. package/lib/split-button/split-button.d.ts +2 -2
  158. package/lib/split-button/split-button.template.d.ts +2 -3
  159. package/lib/switch/definition.d.ts +1 -3
  160. package/lib/switch/switch.form-associated.d.ts +3 -2
  161. package/lib/switch/switch.template.d.ts +1 -3
  162. package/lib/tab/definition.d.ts +1 -3
  163. package/lib/tab/tab.d.ts +2 -2
  164. package/lib/tab/tab.template.d.ts +2 -2
  165. package/lib/tab-panel/definition.d.ts +1 -3
  166. package/lib/tab-panel/tab-panel.d.ts +2 -2
  167. package/lib/tab-panel/tab-panel.template.d.ts +1 -1
  168. package/lib/tabs/definition.d.ts +1 -3
  169. package/lib/tabs/tabs.d.ts +3 -2
  170. package/lib/tabs/tabs.template.d.ts +1 -1
  171. package/lib/tag/definition.d.ts +1 -4
  172. package/lib/tag/tag.d.ts +2 -2
  173. package/lib/tag/tag.template.d.ts +2 -3
  174. package/lib/tag-group/definition.d.ts +1 -3
  175. package/lib/tag-group/tag-group.d.ts +2 -2
  176. package/lib/tag-group/tag-group.template.d.ts +1 -3
  177. package/lib/text-anchor/definition.d.ts +1 -3
  178. package/lib/text-anchor/text-anchor.d.ts +4 -3
  179. package/lib/text-anchor/text-anchor.template.d.ts +2 -3
  180. package/lib/text-area/definition.d.ts +1 -3
  181. package/lib/text-area/text-area.d.ts +1 -1
  182. package/lib/text-area/{text-field.form-associated.d.ts → text-area.form-associated.d.ts} +3 -2
  183. package/lib/text-area/text-area.template.d.ts +2 -3
  184. package/lib/text-field/definition.d.ts +1 -3
  185. package/lib/text-field/text-field.form-associated.d.ts +3 -2
  186. package/lib/text-field/text-field.template.d.ts +2 -3
  187. package/lib/time-picker/definition.d.ts +1 -3
  188. package/lib/time-picker/time-picker.form-associated.d.ts +3 -2
  189. package/lib/time-picker/time-picker.template.d.ts +2 -2
  190. package/lib/toggletip/definition.d.ts +1 -3
  191. package/lib/toggletip/toggletip.d.ts +2 -2
  192. package/lib/toggletip/toggletip.template.d.ts +2 -3
  193. package/lib/tooltip/definition.d.ts +1 -3
  194. package/lib/tooltip/tooltip.d.ts +2 -2
  195. package/lib/tooltip/tooltip.template.d.ts +2 -3
  196. package/lib/tree-item/definition.d.ts +1 -3
  197. package/lib/tree-item/tree-item.d.ts +11 -2
  198. package/lib/tree-item/tree-item.template.d.ts +3 -3
  199. package/lib/tree-view/definition.d.ts +1 -3
  200. package/lib/tree-view/tree-view.d.ts +16 -2
  201. package/lib/tree-view/tree-view.template.d.ts +1 -1
  202. package/lib/video-player/definition.d.ts +1 -3
  203. package/lib/video-player/video-player.d.ts +2 -2
  204. package/lib/video-player/video-player.template.d.ts +1 -3
  205. package/listbox/index.cjs +37 -39
  206. package/listbox/index.js +37 -39
  207. package/menu/index.cjs +1 -1
  208. package/menu/index.js +1 -1
  209. package/nav/index.cjs +1 -1
  210. package/nav/index.js +1 -1
  211. package/nav-disclosure/index.cjs +1 -1
  212. package/nav-disclosure/index.js +1 -1
  213. package/nav-item/index.cjs +1 -1
  214. package/nav-item/index.js +1 -1
  215. package/note/index.cjs +1 -1
  216. package/note/index.js +1 -1
  217. package/number-field/index.cjs +1 -1
  218. package/number-field/index.js +1 -1
  219. package/option/index.cjs +1 -1
  220. package/option/index.js +1 -1
  221. package/package.json +1 -1
  222. package/pagination/index.cjs +1 -1
  223. package/pagination/index.js +1 -1
  224. package/popup/index.cjs +1 -1
  225. package/popup/index.js +1 -1
  226. package/progress/index.cjs +1 -1
  227. package/progress/index.js +1 -1
  228. package/progress-ring/index.cjs +1 -1
  229. package/progress-ring/index.js +1 -1
  230. package/radio/index.cjs +1 -1
  231. package/radio/index.js +1 -1
  232. package/radio-group/index.cjs +1 -1
  233. package/radio-group/index.js +1 -1
  234. package/range-slider/index.cjs +1 -1
  235. package/range-slider/index.js +1 -1
  236. package/searchable-select/index.cjs +1 -1
  237. package/searchable-select/index.js +1 -1
  238. package/select/index.cjs +1 -1
  239. package/select/index.js +1 -1
  240. package/selectable-box/index.cjs +1 -1
  241. package/selectable-box/index.js +1 -1
  242. package/shared/affix.cjs +10 -10
  243. package/shared/affix.js +2 -2
  244. package/shared/anchor.cjs +59 -0
  245. package/shared/anchor.js +57 -0
  246. package/shared/anchored.cjs +6 -6
  247. package/shared/anchored.js +2 -2
  248. package/shared/apply-mixins.cjs +15 -17
  249. package/shared/apply-mixins.js +15 -17
  250. package/shared/apply-mixins2.cjs +25 -0
  251. package/shared/apply-mixins2.js +23 -0
  252. package/shared/applyMixinsWithObservables.cjs +4 -4
  253. package/shared/applyMixinsWithObservables.js +2 -2
  254. package/shared/aria-global.cjs +86 -67
  255. package/shared/aria-global.js +86 -67
  256. package/shared/aria-global2.cjs +68 -86
  257. package/shared/aria-global2.js +68 -86
  258. package/shared/base-progress.cjs +70 -63
  259. package/shared/base-progress.js +69 -62
  260. package/shared/breadcrumb-item.cjs +7 -58
  261. package/shared/breadcrumb-item.js +4 -55
  262. package/shared/button.cjs +178 -0
  263. package/shared/button.js +176 -0
  264. package/shared/calendar-event.cjs +10 -9
  265. package/shared/calendar-event.js +3 -2
  266. package/shared/children.cjs +2 -2
  267. package/shared/children.js +1 -1
  268. package/shared/date-picker/date-picker-base.form-associated.d.ts +3 -2
  269. package/shared/date-picker/date-picker-base.template.d.ts +2 -3
  270. package/shared/defineVividComponent.cjs +2612 -0
  271. package/shared/defineVividComponent.js +2592 -0
  272. package/shared/definition.cjs +26 -24
  273. package/shared/definition.js +17 -14
  274. package/shared/definition10.cjs +15 -12
  275. package/shared/definition10.js +15 -11
  276. package/shared/definition11.cjs +52 -248
  277. package/shared/definition11.js +24 -218
  278. package/shared/definition12.cjs +18 -14
  279. package/shared/definition12.js +17 -12
  280. package/shared/definition13.cjs +20 -19
  281. package/shared/definition13.js +11 -9
  282. package/shared/definition14.cjs +36 -38
  283. package/shared/definition14.js +16 -17
  284. package/shared/definition15.cjs +28 -26
  285. package/shared/definition15.js +17 -14
  286. package/shared/definition16.cjs +478 -611
  287. package/shared/definition16.js +471 -603
  288. package/shared/definition17.cjs +934 -1113
  289. package/shared/definition17.js +912 -1090
  290. package/shared/definition18.cjs +16 -20
  291. package/shared/definition18.js +19 -22
  292. package/shared/definition19.cjs +26 -30
  293. package/shared/definition19.js +21 -24
  294. package/shared/definition2.cjs +20 -22
  295. package/shared/definition2.js +21 -22
  296. package/shared/definition20.cjs +51 -52
  297. package/shared/definition20.js +35 -35
  298. package/shared/definition21.cjs +42 -45
  299. package/shared/definition21.js +18 -20
  300. package/shared/definition22.cjs +16 -13
  301. package/shared/definition22.js +15 -11
  302. package/shared/definition23.cjs +22 -20
  303. package/shared/definition23.js +15 -12
  304. package/shared/definition24.cjs +20 -172
  305. package/shared/definition24.js +17 -168
  306. package/shared/definition25.cjs +27 -28
  307. package/shared/definition25.js +19 -19
  308. package/shared/definition26.cjs +17 -14
  309. package/shared/definition26.js +15 -11
  310. package/shared/definition27.cjs +265 -12
  311. package/shared/definition27.js +262 -10
  312. package/shared/definition28.cjs +19 -16
  313. package/shared/definition28.js +15 -11
  314. package/shared/definition29.cjs +143 -68
  315. package/shared/definition29.js +102 -29
  316. package/shared/definition3.cjs +21 -16
  317. package/shared/definition3.js +17 -11
  318. package/shared/definition30.cjs +99 -76
  319. package/shared/definition30.js +98 -74
  320. package/shared/definition31.cjs +24 -97
  321. package/shared/definition31.js +25 -97
  322. package/shared/definition32.cjs +10 -25
  323. package/shared/definition32.js +9 -23
  324. package/shared/definition33.cjs +53 -14
  325. package/shared/definition33.js +52 -12
  326. package/shared/definition34.cjs +641 -34
  327. package/shared/definition34.js +638 -30
  328. package/shared/definition35.cjs +204 -596
  329. package/shared/definition35.js +198 -591
  330. package/shared/definition36.cjs +198 -233
  331. package/shared/definition36.js +193 -226
  332. package/shared/definition37.cjs +79 -206
  333. package/shared/definition37.js +75 -202
  334. package/shared/definition38.cjs +50 -56
  335. package/shared/definition38.js +48 -52
  336. package/shared/definition39.cjs +260 -56
  337. package/shared/definition39.js +259 -54
  338. package/shared/definition4.cjs +33 -35
  339. package/shared/definition4.js +20 -21
  340. package/shared/definition40.cjs +112 -229
  341. package/shared/definition40.js +109 -226
  342. package/shared/definition41.cjs +627 -36
  343. package/shared/definition41.js +626 -34
  344. package/shared/definition42.cjs +975 -487
  345. package/shared/definition42.js +972 -482
  346. package/shared/definition43.cjs +725 -932
  347. package/shared/definition43.js +713 -918
  348. package/shared/definition44.cjs +116 -734
  349. package/shared/definition44.js +114 -731
  350. package/shared/definition45.cjs +93 -116
  351. package/shared/definition45.js +93 -115
  352. package/shared/definition46.cjs +469 -89
  353. package/shared/definition46.js +466 -86
  354. package/shared/definition47.cjs +119 -470
  355. package/shared/definition47.js +116 -465
  356. package/shared/definition48.cjs +114 -120
  357. package/shared/definition48.js +112 -117
  358. package/shared/definition49.cjs +17 -134
  359. package/shared/definition49.js +16 -132
  360. package/shared/definition5.cjs +48 -49
  361. package/shared/definition5.js +19 -19
  362. package/shared/definition50.cjs +112 -15
  363. package/shared/definition50.js +110 -12
  364. package/shared/definition51.cjs +847 -84
  365. package/shared/definition51.js +843 -79
  366. package/shared/definition52.cjs +31 -873
  367. package/shared/definition52.js +29 -870
  368. package/shared/definition53.cjs +126 -28
  369. package/shared/definition53.js +124 -25
  370. package/shared/definition54.cjs +268 -107
  371. package/shared/definition54.js +262 -100
  372. package/shared/definition55.cjs +63 -278
  373. package/shared/definition55.js +61 -275
  374. package/shared/definition56.cjs +868 -76
  375. package/shared/definition56.js +867 -74
  376. package/shared/definition57.cjs +108 -826
  377. package/shared/definition57.js +106 -823
  378. package/shared/definition58.cjs +74 -100
  379. package/shared/definition58.js +70 -95
  380. package/shared/definition59.cjs +181 -106
  381. package/shared/definition59.js +175 -101
  382. package/shared/definition6.cjs +23 -21
  383. package/shared/definition6.js +15 -12
  384. package/shared/definition60.cjs +273 -70
  385. package/shared/definition60.js +273 -69
  386. package/shared/definition61.cjs +66157 -271
  387. package/shared/definition61.js +66156 -269
  388. package/shared/definition62.cjs +36 -66174
  389. package/shared/definition62.js +33 -66171
  390. package/shared/definition63.cjs +2154 -27
  391. package/shared/definition63.js +2151 -25
  392. package/shared/definition7.cjs +19 -15
  393. package/shared/definition7.js +14 -10
  394. package/shared/definition8.cjs +26 -27
  395. package/shared/definition8.js +17 -17
  396. package/shared/definition9.cjs +21 -21
  397. package/shared/definition9.js +18 -17
  398. package/shared/design-system/createRegisterFunction.d.ts +2 -0
  399. package/shared/design-system/defineVividComponent.d.ts +15 -0
  400. package/shared/{localization.js → direction.js} +11 -11
  401. package/shared/dom.cjs +0 -13
  402. package/shared/dom.js +1 -13
  403. package/shared/form-associated.cjs +422 -457
  404. package/shared/form-associated.js +422 -457
  405. package/shared/form-associated2.cjs +383 -0
  406. package/shared/form-associated2.js +381 -0
  407. package/shared/form-elements.cjs +15 -42
  408. package/shared/form-elements.js +2 -29
  409. package/shared/foundation/anchor/anchor.d.ts +1 -0
  410. package/shared/foundation/button/button.d.ts +3 -2
  411. package/shared/foundation/button/button.template.d.ts +2 -4
  412. package/shared/foundation/form-associated/form-associated.d.ts +51 -0
  413. package/shared/foundation/listbox/listbox.d.ts +22 -0
  414. package/shared/foundation/progress/base-progress.d.ts +9 -0
  415. package/shared/foundation/utilities/apply-mixins.d.ts +1 -0
  416. package/shared/foundation/vivid-element/vivid-element.d.ts +3 -0
  417. package/shared/foundation-element.cjs +1417 -0
  418. package/shared/foundation-element.js +1414 -0
  419. package/shared/index.cjs +7 -5097
  420. package/shared/index.js +7 -5079
  421. package/shared/key-codes.cjs +10 -0
  422. package/shared/key-codes.js +6 -1
  423. package/shared/key-codes2.cjs +50 -6
  424. package/shared/key-codes2.js +50 -4
  425. package/shared/listbox.cjs +428 -1195
  426. package/shared/listbox.js +412 -1176
  427. package/shared/listbox2.cjs +1268 -0
  428. package/shared/listbox2.js +1265 -0
  429. package/shared/localized.cjs +2 -2
  430. package/shared/localized.js +1 -1
  431. package/shared/numbers.cjs +12 -0
  432. package/shared/numbers.js +12 -1
  433. package/shared/patterns/affix.d.ts +2 -2
  434. package/shared/patterns/chevron.d.ts +2 -2
  435. package/shared/patterns/form-elements/form-elements.d.ts +2 -2
  436. package/shared/presentationDate.cjs +50 -49
  437. package/shared/presentationDate.js +7 -6
  438. package/shared/ref.cjs +2 -2
  439. package/shared/ref.js +1 -1
  440. package/shared/repeat.cjs +22 -22
  441. package/shared/repeat.js +1 -1
  442. package/shared/slider.template.cjs +5 -5
  443. package/shared/slider.template.js +2 -2
  444. package/shared/slotted.cjs +4 -4
  445. package/shared/slotted.js +1 -1
  446. package/shared/strings.cjs +0 -26
  447. package/shared/strings.js +1 -25
  448. package/shared/strings2.cjs +37 -0
  449. package/shared/strings2.js +33 -0
  450. package/shared/text-anchor.cjs +8 -89
  451. package/shared/text-anchor.js +5 -86
  452. package/shared/text-anchor.template.cjs +2 -2
  453. package/shared/text-anchor.template.js +1 -1
  454. package/shared/text-field2.cjs +29 -28
  455. package/shared/text-field2.js +6 -5
  456. package/shared/vivid-element.cjs +8 -0
  457. package/shared/vivid-element.js +6 -0
  458. package/side-drawer/index.cjs +1 -1
  459. package/side-drawer/index.js +1 -1
  460. package/slider/index.cjs +1 -1
  461. package/slider/index.js +1 -1
  462. package/split-button/index.cjs +1 -1
  463. package/split-button/index.js +1 -1
  464. package/styles/core/all.css +1 -1
  465. package/styles/core/theme.css +1 -1
  466. package/styles/core/typography.css +1 -1
  467. package/styles/tokens/theme-dark.css +4 -4
  468. package/styles/tokens/theme-light.css +4 -4
  469. package/styles/tokens/vivid-2-compat.css +1 -1
  470. package/switch/index.cjs +1 -1
  471. package/switch/index.js +1 -1
  472. package/tab/index.cjs +1 -1
  473. package/tab/index.js +1 -1
  474. package/tab-panel/index.cjs +1 -1
  475. package/tab-panel/index.js +1 -1
  476. package/tabs/index.cjs +1 -1
  477. package/tabs/index.js +1 -1
  478. package/tag/index.cjs +1 -1
  479. package/tag/index.js +1 -1
  480. package/tag-group/index.cjs +1 -1
  481. package/tag-group/index.js +1 -1
  482. package/text-anchor/index.cjs +10 -7
  483. package/text-anchor/index.js +10 -7
  484. package/text-area/index.cjs +1 -1
  485. package/text-area/index.js +1 -1
  486. package/text-field/index.cjs +1 -1
  487. package/text-field/index.js +1 -1
  488. package/time-picker/index.cjs +1 -1
  489. package/time-picker/index.js +1 -1
  490. package/toggletip/index.cjs +1 -1
  491. package/toggletip/index.js +1 -1
  492. package/tooltip/index.cjs +1 -1
  493. package/tooltip/index.js +1 -1
  494. package/tree-item/index.cjs +1 -1
  495. package/tree-item/index.js +1 -1
  496. package/tree-view/index.cjs +1 -1
  497. package/tree-view/index.js +1 -1
  498. package/video-player/index.cjs +1 -1
  499. package/video-player/index.js +1 -1
  500. package/vivid.api.json +2846 -7860
  501. package/shared/definition64.cjs +0 -2175
  502. package/shared/definition64.js +0 -2170
  503. package/shared/design-system/index.d.ts +0 -3
  504. package/shared/icon.cjs +0 -261
  505. package/shared/icon.js +0 -258
  506. package/shared/index2.cjs +0 -11
  507. package/shared/index2.js +0 -9
  508. package/shared/radio.cjs +0 -126
  509. package/shared/radio.js +0 -124
  510. package/shared/select.options.cjs +0 -12
  511. package/shared/select.options.js +0 -10
  512. package/shared/start-end.cjs +0 -52
  513. package/shared/start-end.js +0 -50
  514. package/shared/tree-item.cjs +0 -154
  515. package/shared/tree-item.js +0 -151
  516. package/shared/{localization.cjs → direction.cjs} +9 -9
@@ -1,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 };