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