@vonage/vivid 4.13.0 → 4.14.1

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 (512) hide show
  1. package/custom-elements.json +3088 -1610
  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 +3 -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 +5 -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 -7
  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 +69 -63
  259. package/shared/base-progress.js +69 -63
  260. package/shared/breadcrumb-item.cjs +6 -58
  261. package/shared/breadcrumb-item.js +3 -55
  262. package/shared/button.cjs +177 -0
  263. package/shared/button.js +175 -0
  264. package/shared/calendar-event.cjs +9 -9
  265. package/shared/calendar-event.js +2 -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/definition.cjs +25 -24
  271. package/shared/definition.js +16 -14
  272. package/shared/definition10.cjs +14 -12
  273. package/shared/definition10.js +14 -11
  274. package/shared/definition11.cjs +52 -248
  275. package/shared/definition11.js +24 -218
  276. package/shared/definition12.cjs +18 -14
  277. package/shared/definition12.js +17 -12
  278. package/shared/definition13.cjs +19 -19
  279. package/shared/definition13.js +10 -9
  280. package/shared/definition14.cjs +35 -38
  281. package/shared/definition14.js +15 -17
  282. package/shared/definition15.cjs +27 -26
  283. package/shared/definition15.js +16 -14
  284. package/shared/definition16.cjs +480 -612
  285. package/shared/definition16.js +473 -604
  286. package/shared/definition17.cjs +933 -1113
  287. package/shared/definition17.js +911 -1090
  288. package/shared/definition18.cjs +16 -20
  289. package/shared/definition18.js +19 -22
  290. package/shared/definition19.cjs +26 -30
  291. package/shared/definition19.js +21 -24
  292. package/shared/definition2.cjs +19 -22
  293. package/shared/definition2.js +20 -22
  294. package/shared/definition20.cjs +50 -52
  295. package/shared/definition20.js +34 -35
  296. package/shared/definition21.cjs +43 -47
  297. package/shared/definition21.js +19 -22
  298. package/shared/definition22.cjs +15 -13
  299. package/shared/definition22.js +14 -11
  300. package/shared/definition23.cjs +21 -20
  301. package/shared/definition23.js +14 -12
  302. package/shared/definition24.cjs +21 -173
  303. package/shared/definition24.js +18 -169
  304. package/shared/definition25.cjs +26 -28
  305. package/shared/definition25.js +18 -19
  306. package/shared/definition26.cjs +16 -14
  307. package/shared/definition26.js +14 -11
  308. package/shared/definition27.cjs +264 -12
  309. package/shared/definition27.js +261 -10
  310. package/shared/definition28.cjs +19 -17
  311. package/shared/definition28.js +15 -12
  312. package/shared/definition29.cjs +142 -68
  313. package/shared/definition29.js +101 -29
  314. package/shared/definition3.cjs +20 -16
  315. package/shared/definition3.js +16 -11
  316. package/shared/definition30.cjs +98 -76
  317. package/shared/definition30.js +97 -74
  318. package/shared/definition31.cjs +24 -97
  319. package/shared/definition31.js +25 -97
  320. package/shared/definition32.cjs +9 -25
  321. package/shared/definition32.js +8 -23
  322. package/shared/definition33.cjs +52 -14
  323. package/shared/definition33.js +51 -12
  324. package/shared/definition34.cjs +639 -34
  325. package/shared/definition34.js +636 -30
  326. package/shared/definition35.cjs +203 -596
  327. package/shared/definition35.js +197 -591
  328. package/shared/definition36.cjs +197 -233
  329. package/shared/definition36.js +192 -226
  330. package/shared/definition37.cjs +79 -206
  331. package/shared/definition37.js +75 -202
  332. package/shared/definition38.cjs +50 -56
  333. package/shared/definition38.js +48 -52
  334. package/shared/definition39.cjs +259 -56
  335. package/shared/definition39.js +258 -54
  336. package/shared/definition4.cjs +32 -35
  337. package/shared/definition4.js +19 -21
  338. package/shared/definition40.cjs +156 -225
  339. package/shared/definition40.js +152 -221
  340. package/shared/definition41.cjs +626 -36
  341. package/shared/definition41.js +625 -34
  342. package/shared/definition42.cjs +974 -487
  343. package/shared/definition42.js +971 -482
  344. package/shared/definition43.cjs +725 -932
  345. package/shared/definition43.js +713 -918
  346. package/shared/definition44.cjs +115 -734
  347. package/shared/definition44.js +113 -731
  348. package/shared/definition45.cjs +92 -116
  349. package/shared/definition45.js +92 -115
  350. package/shared/definition46.cjs +468 -89
  351. package/shared/definition46.js +465 -86
  352. package/shared/definition47.cjs +118 -470
  353. package/shared/definition47.js +115 -465
  354. package/shared/definition48.cjs +113 -120
  355. package/shared/definition48.js +111 -117
  356. package/shared/definition49.cjs +16 -134
  357. package/shared/definition49.js +15 -132
  358. package/shared/definition5.cjs +47 -49
  359. package/shared/definition5.js +18 -19
  360. package/shared/definition50.cjs +111 -15
  361. package/shared/definition50.js +109 -12
  362. package/shared/definition51.cjs +862 -84
  363. package/shared/definition51.js +858 -79
  364. package/shared/definition52.cjs +30 -873
  365. package/shared/definition52.js +28 -870
  366. package/shared/definition53.cjs +125 -28
  367. package/shared/definition53.js +123 -25
  368. package/shared/definition54.cjs +267 -107
  369. package/shared/definition54.js +261 -100
  370. package/shared/definition55.cjs +63 -278
  371. package/shared/definition55.js +61 -275
  372. package/shared/definition56.cjs +867 -76
  373. package/shared/definition56.js +866 -74
  374. package/shared/definition57.cjs +107 -826
  375. package/shared/definition57.js +105 -823
  376. package/shared/definition58.cjs +73 -100
  377. package/shared/definition58.js +69 -95
  378. package/shared/definition59.cjs +180 -106
  379. package/shared/definition59.js +174 -101
  380. package/shared/definition6.cjs +22 -21
  381. package/shared/definition6.js +14 -12
  382. package/shared/definition60.cjs +272 -70
  383. package/shared/definition60.js +272 -69
  384. package/shared/definition61.cjs +66154 -271
  385. package/shared/definition61.js +66153 -269
  386. package/shared/definition62.cjs +38 -66173
  387. package/shared/definition62.js +35 -66170
  388. package/shared/definition63.cjs +2153 -27
  389. package/shared/definition63.js +2150 -25
  390. package/shared/definition7.cjs +18 -15
  391. package/shared/definition7.js +13 -10
  392. package/shared/definition8.cjs +25 -27
  393. package/shared/definition8.js +16 -17
  394. package/shared/definition9.cjs +21 -21
  395. package/shared/definition9.js +18 -17
  396. package/shared/design-system/createRegisterFunction.d.ts +2 -0
  397. package/shared/design-system/defineVividComponent.d.ts +15 -0
  398. package/shared/{localization.js → direction.js} +11 -11
  399. package/shared/dom.cjs +0 -13
  400. package/shared/dom.js +1 -13
  401. package/shared/form-associated.cjs +422 -457
  402. package/shared/form-associated.js +422 -457
  403. package/shared/form-associated2.cjs +383 -0
  404. package/shared/form-associated2.js +381 -0
  405. package/shared/form-elements.cjs +15 -42
  406. package/shared/form-elements.js +2 -29
  407. package/shared/foundation/anchor/anchor.d.ts +1 -0
  408. package/shared/foundation/button/button.d.ts +3 -2
  409. package/shared/foundation/button/button.template.d.ts +2 -4
  410. package/shared/foundation/form-associated/form-associated.d.ts +51 -0
  411. package/shared/foundation/listbox/listbox.d.ts +22 -0
  412. package/shared/foundation/progress/base-progress.d.ts +9 -0
  413. package/shared/foundation/utilities/apply-mixins.d.ts +1 -0
  414. package/shared/foundation/vivid-element/vivid-element.d.ts +3 -0
  415. package/shared/index.cjs +7 -5097
  416. package/shared/index.js +7 -5079
  417. package/shared/key-codes.cjs +10 -0
  418. package/shared/key-codes.js +6 -1
  419. package/shared/key-codes2.cjs +1463 -6
  420. package/shared/key-codes2.js +1461 -4
  421. package/shared/listbox.cjs +427 -1195
  422. package/shared/listbox.js +411 -1176
  423. package/shared/listbox2.cjs +1267 -0
  424. package/shared/listbox2.js +1264 -0
  425. package/shared/localized.cjs +2 -2
  426. package/shared/localized.js +1 -1
  427. package/shared/numbers.cjs +12 -0
  428. package/shared/numbers.js +12 -1
  429. package/shared/patterns/affix.d.ts +2 -2
  430. package/shared/patterns/chevron.d.ts +2 -2
  431. package/shared/patterns/form-elements/form-elements.d.ts +2 -2
  432. package/shared/presentationDate.cjs +49 -49
  433. package/shared/presentationDate.js +6 -6
  434. package/shared/ref.cjs +2 -2
  435. package/shared/ref.js +1 -1
  436. package/shared/repeat.cjs +22 -22
  437. package/shared/repeat.js +1 -1
  438. package/shared/slider.template.cjs +5 -5
  439. package/shared/slider.template.js +2 -2
  440. package/shared/slotted.cjs +4 -4
  441. package/shared/slotted.js +1 -1
  442. package/shared/strings.cjs +0 -26
  443. package/shared/strings.js +1 -25
  444. package/shared/strings2.cjs +37 -0
  445. package/shared/strings2.js +33 -0
  446. package/shared/text-anchor.cjs +7 -89
  447. package/shared/text-anchor.js +4 -86
  448. package/shared/text-anchor.template.cjs +2 -2
  449. package/shared/text-anchor.template.js +1 -1
  450. package/shared/text-field2.cjs +28 -28
  451. package/shared/text-field2.js +5 -5
  452. package/shared/vivid-element.cjs +2616 -0
  453. package/shared/vivid-element.js +2595 -0
  454. package/side-drawer/index.cjs +1 -1
  455. package/side-drawer/index.js +1 -1
  456. package/slider/index.cjs +1 -1
  457. package/slider/index.js +1 -1
  458. package/split-button/index.cjs +1 -1
  459. package/split-button/index.js +1 -1
  460. package/styles/core/all.css +40 -1
  461. package/styles/core/theme.css +40 -1
  462. package/styles/core/typography.css +1 -1
  463. package/styles/tokens/theme-dark.css +25 -4
  464. package/styles/tokens/theme-light.css +25 -4
  465. package/styles/tokens/vivid-2-compat.css +1 -1
  466. package/switch/index.cjs +1 -1
  467. package/switch/index.js +1 -1
  468. package/tab/index.cjs +1 -1
  469. package/tab/index.js +1 -1
  470. package/tab-panel/index.cjs +1 -1
  471. package/tab-panel/index.js +1 -1
  472. package/tabs/index.cjs +1 -1
  473. package/tabs/index.js +1 -1
  474. package/tag/index.cjs +1 -1
  475. package/tag/index.js +1 -1
  476. package/tag-group/index.cjs +1 -1
  477. package/tag-group/index.js +1 -1
  478. package/text-anchor/index.cjs +10 -7
  479. package/text-anchor/index.js +10 -7
  480. package/text-area/index.cjs +1 -1
  481. package/text-area/index.js +1 -1
  482. package/text-field/index.cjs +1 -1
  483. package/text-field/index.js +1 -1
  484. package/time-picker/index.cjs +1 -1
  485. package/time-picker/index.js +1 -1
  486. package/toggletip/index.cjs +1 -1
  487. package/toggletip/index.js +1 -1
  488. package/tooltip/index.cjs +1 -1
  489. package/tooltip/index.js +1 -1
  490. package/tree-item/index.cjs +1 -1
  491. package/tree-item/index.js +1 -1
  492. package/tree-view/index.cjs +1 -1
  493. package/tree-view/index.js +1 -1
  494. package/video-player/index.cjs +1 -1
  495. package/video-player/index.js +1 -1
  496. package/vivid.api.json +2846 -7860
  497. package/shared/definition64.cjs +0 -2175
  498. package/shared/definition64.js +0 -2170
  499. package/shared/design-system/index.d.ts +0 -3
  500. package/shared/icon.cjs +0 -261
  501. package/shared/icon.js +0 -258
  502. package/shared/index2.cjs +0 -11
  503. package/shared/index2.js +0 -9
  504. package/shared/radio.cjs +0 -126
  505. package/shared/radio.js +0 -124
  506. package/shared/select.options.cjs +0 -12
  507. package/shared/select.options.js +0 -10
  508. package/shared/start-end.cjs +0 -52
  509. package/shared/start-end.js +0 -50
  510. package/shared/tree-item.cjs +0 -154
  511. package/shared/tree-item.js +0 -151
  512. package/shared/{localization.cjs → direction.cjs} +9 -9
@@ -1,657 +1,263 @@
1
- import { F as FoundationElement, _ as __decorate, a as attr, n as nullableNumberConverter, o as observable, D as DOM, h as html, r as registerFactory } from './index.js';
2
- import { c as Button, a as buttonRegistries } from './definition11.js';
3
- import { D as Divider, a as dividerRegistries } from './definition22.js';
4
- import { a as applyMixinsWithObservables } from './applyMixinsWithObservables.js';
5
- import { F as FormAssociated } from './form-associated.js';
1
+ import { I as Icon, i as iconDefinition } from './definition27.js';
2
+ import { V as VividElement, O as Observable, o as observable, a as attr, h as html, d as defineVividComponent, f as createRegisterFunction } from './vivid-element.js';
6
3
  import { a as applyMixins } from './apply-mixins.js';
4
+ import { b as AffixIconWithTrailing, a as affixIconTemplateFactory, I as IconWrapper } from './affix.js';
7
5
  import { A as ARIAGlobalStatesAndProperties } from './aria-global.js';
8
- import { S as StartEnd } from './start-end.js';
9
- import { c as keyArrowDown, d as keyArrowUp } from './key-codes.js';
10
- import { e as errorText, f as formElements, F as FormElementSuccessText, a as FormElementHelperText, b as FormElementCharCount, g as getFeedbackTemplate } from './form-elements.js';
11
- import { A as AffixIcon } from './affix.js';
12
- import { L as Localized } from './localized.js';
13
- import { S as Shape } from './enums.js';
6
+ import { i as isHTMLElement } from './dom.js';
14
7
  import { w as when } from './when.js';
15
- import { r as ref } from './ref.js';
16
8
  import { c as classNames } from './class-names.js';
17
9
 
18
- class _TextField extends FoundationElement {
19
- }
20
- /**
21
- * A form-associated base class for the {@link @microsoft/fast-foundation#(TextField:class)} component.
22
- *
23
- * @internal
24
- */
25
- class FormAssociatedTextField extends FormAssociated(_TextField) {
26
- constructor() {
27
- super(...arguments);
28
- this.proxy = document.createElement("input");
29
- }
30
- }
31
-
32
- /**
33
- * Text field sub-types
34
- * @public
35
- */
36
- const TextFieldType = {
37
- /**
38
- * An email TextField
39
- */
40
- email: "email",
41
- /**
42
- * A password TextField
43
- */
44
- password: "password",
45
- /**
46
- * A telephone TextField
47
- */
48
- tel: "tel",
49
- /**
50
- * A text TextField
51
- */
52
- text: "text",
53
- /**
54
- * A URL TextField
55
- */
56
- url: "url",
57
- };
58
-
59
- /**
60
- * A Text Field Custom HTML Element.
61
- * Based largely on the {@link https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/text | <input type="text" /> element }.
62
- *
63
- * @slot start - Content which can be provided before the number field input
64
- * @slot end - Content which can be provided after the number field input
65
- * @slot - The default slot for the label
66
- * @csspart label - The label
67
- * @csspart root - The element wrapping the control, including start and end slots
68
- * @csspart control - The text field element
69
- * @fires change - Fires a custom 'change' event when the value has changed
70
- *
71
- * @public
72
- */
73
- class TextField extends FormAssociatedTextField {
74
- constructor() {
75
- super(...arguments);
76
- /**
77
- * Allows setting a type or mode of text.
78
- * @public
79
- * @remarks
80
- * HTML Attribute: type
81
- */
82
- this.type = TextFieldType.text;
83
- }
84
- readOnlyChanged() {
85
- if (this.proxy instanceof HTMLInputElement) {
86
- this.proxy.readOnly = this.readOnly;
87
- this.validate();
88
- }
89
- }
90
- autofocusChanged() {
91
- if (this.proxy instanceof HTMLInputElement) {
92
- this.proxy.autofocus = this.autofocus;
93
- this.validate();
94
- }
95
- }
96
- placeholderChanged() {
97
- if (this.proxy instanceof HTMLInputElement) {
98
- this.proxy.placeholder = this.placeholder;
99
- }
100
- }
101
- typeChanged() {
102
- if (this.proxy instanceof HTMLInputElement) {
103
- this.proxy.type = this.type;
104
- this.validate();
105
- }
106
- }
107
- listChanged() {
108
- if (this.proxy instanceof HTMLInputElement) {
109
- this.proxy.setAttribute("list", this.list);
110
- this.validate();
111
- }
112
- }
113
- maxlengthChanged() {
114
- if (this.proxy instanceof HTMLInputElement) {
115
- this.proxy.maxLength = this.maxlength;
116
- this.validate();
117
- }
118
- }
119
- minlengthChanged() {
120
- if (this.proxy instanceof HTMLInputElement) {
121
- this.proxy.minLength = this.minlength;
122
- this.validate();
123
- }
124
- }
125
- patternChanged() {
126
- if (this.proxy instanceof HTMLInputElement) {
127
- this.proxy.pattern = this.pattern;
128
- this.validate();
129
- }
130
- }
131
- sizeChanged() {
132
- if (this.proxy instanceof HTMLInputElement) {
133
- this.proxy.size = this.size;
134
- }
135
- }
136
- spellcheckChanged() {
137
- if (this.proxy instanceof HTMLInputElement) {
138
- this.proxy.spellcheck = this.spellcheck;
139
- }
140
- }
141
- /**
142
- * @internal
143
- */
144
- connectedCallback() {
145
- super.connectedCallback();
146
- this.proxy.setAttribute("type", this.type);
147
- this.validate();
148
- if (this.autofocus) {
149
- DOM.queueUpdate(() => {
150
- this.focus();
151
- });
152
- }
153
- }
154
- /**
155
- * Selects all the text in the text field
156
- *
157
- * @public
158
- */
159
- select() {
160
- this.control.select();
161
- /**
162
- * The select event does not permeate the shadow DOM boundary.
163
- * This fn effectively proxies the select event,
164
- * emitting a `select` event whenever the internal
165
- * control emits a `select` event
166
- */
167
- this.$emit("select");
168
- }
169
- /**
170
- * Handles the internal control's `input` event
171
- * @internal
172
- */
173
- handleTextInput() {
174
- this.value = this.control.value;
175
- }
176
- /**
177
- * Change event handler for inner control.
178
- * @remarks
179
- * "Change" events are not `composable` so they will not
180
- * permeate the shadow DOM boundary. This fn effectively proxies
181
- * the change event, emitting a `change` event whenever the internal
182
- * control emits a `change` event
183
- * @internal
184
- */
185
- handleChange() {
186
- this.$emit("change");
187
- }
188
- /** {@inheritDoc (FormAssociated:interface).validate} */
189
- validate() {
190
- super.validate(this.control);
191
- }
192
- }
193
- __decorate([
194
- attr({ attribute: "readonly", mode: "boolean" })
195
- ], TextField.prototype, "readOnly", void 0);
196
- __decorate([
197
- attr({ mode: "boolean" })
198
- ], TextField.prototype, "autofocus", void 0);
199
- __decorate([
200
- attr
201
- ], TextField.prototype, "placeholder", void 0);
202
- __decorate([
203
- attr
204
- ], TextField.prototype, "type", void 0);
205
- __decorate([
206
- attr
207
- ], TextField.prototype, "list", void 0);
208
- __decorate([
209
- attr({ converter: nullableNumberConverter })
210
- ], TextField.prototype, "maxlength", void 0);
211
- __decorate([
212
- attr({ converter: nullableNumberConverter })
213
- ], TextField.prototype, "minlength", void 0);
214
- __decorate([
215
- attr
216
- ], TextField.prototype, "pattern", void 0);
217
- __decorate([
218
- attr({ converter: nullableNumberConverter })
219
- ], TextField.prototype, "size", void 0);
220
- __decorate([
221
- attr({ mode: "boolean" })
222
- ], TextField.prototype, "spellcheck", void 0);
223
- __decorate([
224
- observable
225
- ], TextField.prototype, "defaultSlottedNodes", void 0);
226
- /**
227
- * Includes ARIA states and properties relating to the ARIA textbox role
228
- *
229
- * @public
230
- */
231
- class DelegatesARIATextbox {
232
- }
233
- applyMixins(DelegatesARIATextbox, ARIAGlobalStatesAndProperties);
234
- applyMixins(TextField, StartEnd, DelegatesARIATextbox);
235
-
236
- const styles = ":host{display:inline-block}.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}.base{--_connotation-color-primary: var(--vvd-text-field-accent-primary, var(--vvd-color-canvas-text));--_connotation-color-primary-text: var(--vvd-text-field-accent-primary-text, var(--vvd-color-canvas));--_connotation-color-primary-increment: var(--vvd-text-field-accent-primary-increment, var(--vvd-color-neutral-800));--_connotation-color-intermediate: var(--vvd-text-field-accent-intermediate, var(--vvd-color-neutral-500));--_connotation-color-firm: var(--vvd-text-field-accent-firm, var(--vvd-color-canvas-text));--_connotation-color-fierce: var(--vvd-text-field-accent-fierce, var(--vvd-color-neutral-700));--_connotation-color-faint: var(--vvd-text-field-accent-faint, var(--vvd-color-neutral-50));--_connotation-color-soft: var(--vvd-text-field-accent-soft, var(--vvd-color-neutral-100))}.base{--_text-field-gutter-start: calc(1px*(40 + 4*clamp(-1, var(--vvd-size-density, 0), 2))*.4) ;--_text-field-gutter-end: calc(1px*(40 + 4*clamp(-1, var(--vvd-size-density, 0), 2))*.4) ;--_text-field-icon-size: calc(1px*(40 + 4*clamp(-1, var(--vvd-size-density, 0), 2))/2) ;--_text-field-block-size: calc(1px*(40 + 4*clamp(-1, var(--vvd-size-density, 0), 2))) ;--_text-field-border-radius: 8px;--_text-field-pill-border-radius: 24px;display:inline-grid;width:100%;gap:4px;grid-template-columns:min-content 1fr max-content}.base.size-condensed{--_text-field-gutter-start: calc(1px*(24 + 4*clamp(-1, var(--vvd-size-density, 0), 2))/2) ;--_text-field-gutter-end: calc(1px*(24 + 4*clamp(-1, var(--vvd-size-density, 0), 2))/2) ;--_text-field-icon-size: calc(1px*(32 + 4*clamp(-1, var(--vvd-size-density, 0), 2))/2) ;--_text-field-block-size: calc(1px*(32 + 4*clamp(-1, var(--vvd-size-density, 0), 2))) ;--_text-field-border-radius: 4px}@supports (user-select: none){.base{user-select:none}}.base:not(.disabled){--_low-ink-color: var(--vvd-color-neutral-600)}.base.disabled{--_low-ink-color: var(--_appearance-color-text)}.label:not(slot),.label::slotted(label){box-sizing:initial!important;padding:initial!important;margin:initial!important;color:var(--vvd-color-canvas-text)!important;contain:inline-size!important;font:var(--vvd-typography-base);grid-column:1/4;grid-row:1}.char-count+.label:not(slot),.char-count+.label::slotted(label){grid-column:1/3}.char-count{color:var(--_low-ink-color);font:var(--vvd-typography-base);grid-column:3/4}.fieldset{position:relative;display:flex;align-items:center;background-color:var(--_appearance-color-fill);font:var(--vvd-typography-base);grid-column:1/4;padding-block:0;transition:color .2s,background-color .2s}.fieldset:after{position:absolute;display:block;border-radius:inherit;block-size:100%;box-shadow:inset 0 0 0 1px var(--_appearance-color-outline);content:\"\";inline-size:100%;pointer-events:none;transition:box-shadow .2s}.fieldset:focus-visible{outline:none}.base>.fieldset{block-size:var(--_text-field-block-size)}.base:not(.shape-pill) .fieldset{border-radius:var(--_text-field-border-radius)}.base.shape-pill .fieldset{border-radius:var(--_text-field-pill-border-radius)}.wrapper{border-radius:inherit;block-size:100%;inline-size:100%}.control{border-radius:inherit;text-align:start}.control:not(slot),.control::slotted(input){width:100%!important;box-sizing:border-box!important;border:0 none!important;border-radius:inherit!important;margin:initial!important;appearance:none!important;background-color:transparent!important;block-size:100%!important;color:inherit!important;font:inherit;outline:transparent;padding-block:0!important;padding-inline:var(--_text-field-gutter-start) var(--_text-field-gutter-end)!important;text-align:inherit}.control:not(slot):disabled,.control::slotted(input:disabled){cursor:not-allowed!important;opacity:1!important;-webkit-text-fill-color:var(--_appearance-color-text)!important}.control:not(slot)::placeholder{opacity:1!important;-webkit-text-fill-color:var(--_low-ink-color)!important}.control::slotted(input:-webkit-autofill),.control:not(slot):-webkit-autofill{-webkit-box-shadow:0 0 0 1000px var(--_appearance-color-fill) inset;-webkit-text-fill-color:var(--_appearance-color-text)!important}.has-icon .control:not(slot),.has-icon .control::slotted(input){padding-inline-start:calc(var(--_text-field-icon-size) + var(--_text-field-gutter-start) * 2)!important}.icon{position:absolute;z-index:1;color:var(--_low-ink-color);font-size:var(--_text-field-icon-size);inset-block-start:50%;inset-inline-start:calc(100% + var(--_text-field-gutter-start));line-height:1;transform:translateY(-50%)}.leading-items-wrapper{position:relative}.base.no-leading .leading-items-wrapper{display:none}.action-items-wrapper{margin-inline-end:4px}.base:not(.action-items) .action-items-wrapper{display:none}@supports selector(:has(*)){.fieldset:has(.wrapper .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(*)){.wrapper: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}}:host([internal-part]) .fieldset{background-color:transparent;font:var(--vvd-typography-heading-4);line-height:1.1}:host([internal-part]) .fieldset:not(:focus-within):after{block-size:1px;inset-block-end:0}@supports selector(:has(*)){:host([internal-part]) .fieldset:has(.action-items-wrapper:focus-within):after{block-size:1px;inset-block-end:0}}:host([internal-part]) .control{text-align:center}slot[name=_mirrored-helper-text]{display:none}.base{--_text-field-gutter-end: 70px}.control::-webkit-outer-spin-button,.control::-webkit-inner-spin-button{appearance:none}.control-buttons{position:absolute;z-index:1;right:3px;display:flex}.readonly .control-buttons,.disabled .control-buttons{pointer-events:none}.control-buttons .divider{margin-block:8px}.control-buttons>*{flex-shrink:0}";
237
-
238
- class _NumberField extends FoundationElement {
239
- }
240
- class FormAssociatedNumberField extends FormAssociated(_NumberField) {
241
- constructor() {
242
- super(...arguments);
243
- this.proxy = document.createElement("input");
244
- }
245
- }
246
-
247
10
  var __defProp = Object.defineProperty;
248
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
249
- var __typeError = (msg) => {
250
- throw TypeError(msg);
251
- };
252
11
  var __decorateClass = (decorators, target, key, kind) => {
253
- var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
12
+ var result = void 0 ;
254
13
  for (var i = decorators.length - 1, decorator; i >= 0; i--)
255
14
  if (decorator = decorators[i])
256
- result = (kind ? decorator(target, key, result) : decorator(result)) || result;
257
- if (kind && result) __defProp(target, key, result);
15
+ result = (decorator(target, key, result) ) || result;
16
+ if (result) __defProp(target, key, result);
258
17
  return result;
259
18
  };
260
- var __accessCheck = (obj, member, msg) => member.has(obj) || __typeError("Cannot " + msg);
261
- var __privateAdd = (obj, member, value) => member.has(obj) ? __typeError("Cannot add the same private member more than once") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
262
- var __privateMethod = (obj, member, method) => (__accessCheck(obj, member, "access private method"), method);
263
- var _NumberField_instances, valueToPresentationValue_fn, inputToPresentationValue_fn, presentationValueToValue_fn;
264
- const STEP_DIRECTION = {
265
- up: 1,
266
- down: -1
267
- };
268
- function makeStep(element, direction) {
269
- const value = parseFloat(element.value);
270
- const stepUpValue = !isNaN(value) ? value + direction * element.step : element.min > 0 ? element.min : element.max < 0 ? element.max : !element.min ? direction * element.step : 0;
271
- element.value = Number(stepUpValue.toFixed(12)).toString();
19
+ function isListboxOption(el) {
20
+ return isHTMLElement(el) && (el.getAttribute("role") === "option" || el instanceof HTMLOptionElement);
272
21
  }
273
- const buildNumberPatterns = (decimalSeparator) => {
274
- const ds = decimalSeparator.source;
275
- return {
276
- invalidCharacters: new RegExp(`[^0-9\\-+e${ds}]`, "g"),
277
- additionalDecimalSeparators: new RegExp(`(?<=${ds}.*)${ds}`, "g"),
278
- trailingDecimalSeparator: new RegExp(`${ds}$`),
279
- decimalSeparator
280
- };
281
- };
282
- const numberPatternsWithPeriod = buildNumberPatterns(/\./);
283
- const numberPatternsWithComma = buildNumberPatterns(/,/);
284
- const validNumber = /^-?((\d*\.\d+)|(\d+))$/;
285
- let NumberField = class extends FormAssociatedNumberField {
286
- constructor() {
287
- super(...arguments);
288
- __privateAdd(this, _NumberField_instances);
289
- this.readOnly = false;
290
- this.autofocus = false;
291
- // eslint-disable-next-line @nrwl/nx/workspace/no-attribute-default-value
292
- this.step = 1;
22
+ class ListboxOption extends VividElement {
23
+ constructor(text, value, defaultSelected, selected) {
24
+ super();
25
+ this.defaultSelected = false;
293
26
  /**
294
- * Flag to indicate that the value change is from the user input
27
+ * Tracks whether the "selected" property has been changed.
295
28
  * @internal
296
29
  */
297
- this.isUserInput = false;
298
- this._presentationValue = "";
299
- this.incrementButtonAriaLabel = null;
300
- this.decrementButtonAriaLabel = null;
301
- }
302
- stepChanged(_, next) {
303
- this.proxy.setAttribute(
304
- "step",
305
- Number.isFinite(next) ? next.toString() : ""
30
+ this.dirtySelected = false;
31
+ this.selected = this.defaultSelected;
32
+ /**
33
+ * Track whether the value has been changed from the initial value
34
+ */
35
+ this.dirtyValue = false;
36
+ this._highlighted = false;
37
+ this._displayCheckmark = false;
38
+ this._matchedRange = null;
39
+ if (text) {
40
+ this.text = text;
41
+ }
42
+ if (value) {
43
+ this.initialValue = value;
44
+ }
45
+ if (defaultSelected) {
46
+ this.defaultSelected = defaultSelected;
47
+ }
48
+ if (selected) {
49
+ this.selected = selected;
50
+ }
51
+ this.proxy = new Option(
52
+ this.text,
53
+ // @ts-expect-error Propery is used before it is assigned
54
+ this.initialValue,
55
+ this.defaultSelected,
56
+ this.selected
306
57
  );
58
+ this.proxy.disabled = this.disabled;
307
59
  }
308
60
  /**
309
- * Ensures that the max is greater than the min and that the value
310
- * is less than the max
61
+ * Updates the ariaChecked property when the checked property changes.
311
62
  *
312
- * @internal
313
- */
314
- maxChanged(_, next) {
315
- this.max = Math.max(next, this.min ?? next);
316
- this.proxy.max = this.max.toString();
317
- this.validate();
318
- }
319
- /**
320
- * Ensures that the min is less than the max and that the value
321
- * is greater than the min
322
- *
323
- * @internal
324
- */
325
- minChanged(_, next) {
326
- this.min = Math.min(next, this.max ?? next);
327
- this.proxy.min = this.min.toString();
328
- this.validate();
329
- }
330
- /**
331
- * The value property, typed as a number.
63
+ * @param _ - the previous checked value
64
+ * @param next - the current checked value
332
65
  *
333
66
  * @public
334
67
  */
335
- get valueAsNumber() {
336
- return parseFloat(super.value);
337
- }
338
- set valueAsNumber(next) {
339
- this.value = next.toString();
340
- }
341
- /**
342
- * @internal
343
- */
344
- valueChanged(previous, next) {
345
- this.value = validNumber.test(next) ? next : "";
346
- if (next !== this.value) {
68
+ checkedChanged(_, next) {
69
+ if (typeof next === "boolean") {
70
+ this.ariaChecked = next ? "true" : "false";
347
71
  return;
348
72
  }
349
- if (this.control && !this.isUserInput) {
350
- this._presentationValue = __privateMethod(this, _NumberField_instances, valueToPresentationValue_fn).call(this, this.value);
73
+ this.ariaChecked = null;
74
+ }
75
+ defaultSelectedChanged() {
76
+ if (!this.dirtySelected) {
77
+ this.selected = this.defaultSelected;
78
+ if (this.proxy instanceof HTMLOptionElement) {
79
+ this.proxy.selected = this.defaultSelected;
80
+ }
351
81
  }
352
- super.valueChanged(previous, this.value);
353
- if (previous !== void 0 && !this.isUserInput) {
354
- this.$emit("input");
355
- this.$emit("change");
82
+ }
83
+ disabledChanged() {
84
+ this.ariaDisabled = this.disabled ? "true" : "false";
85
+ if (this.proxy instanceof HTMLOptionElement) {
86
+ this.proxy.disabled = this.disabled;
356
87
  }
357
88
  }
358
- /**
359
- * @internal
360
- */
361
- get _numberPatterns() {
362
- return this.locale.common.useCommaAsDecimalSeparator ? numberPatternsWithComma : numberPatternsWithPeriod;
89
+ selectedAttributeChanged() {
90
+ this.defaultSelected = this.selectedAttribute;
91
+ if (this.proxy instanceof HTMLOptionElement) {
92
+ this.proxy.defaultSelected = this.defaultSelected;
93
+ }
363
94
  }
364
- /** {@inheritDoc (FormAssociated:interface).validate} */
365
- validate() {
366
- super.validate(this.control);
95
+ selectedChanged() {
96
+ this.ariaSelected = this.selected ? "true" : "false";
97
+ if (!this.dirtySelected) {
98
+ this.dirtySelected = true;
99
+ }
100
+ if (this.proxy instanceof HTMLOptionElement) {
101
+ this.proxy.selected = this.selected;
102
+ }
367
103
  }
368
- /**
369
- * Increments the value using the step value
370
- *
371
- * @public
372
- */
373
- stepUp() {
374
- makeStep(this, STEP_DIRECTION.up);
104
+ initialValueChanged() {
105
+ if (!this.dirtyValue) {
106
+ this.value = this.initialValue;
107
+ this.dirtyValue = false;
108
+ }
375
109
  }
376
- /**
377
- * Decrements the value using the step value
378
- *
379
- * @public
380
- */
381
- stepDown() {
382
- makeStep(this, STEP_DIRECTION.down);
110
+ get label() {
111
+ return this._label ?? this.text;
383
112
  }
384
- /**
385
- * Sets up the initial state of the number field
386
- * @internal
387
- */
388
- connectedCallback() {
389
- super.connectedCallback();
390
- this.proxy.setAttribute("type", "number");
391
- this.validate();
392
- this._presentationValue = __privateMethod(this, _NumberField_instances, valueToPresentationValue_fn).call(this, this.value);
393
- if (this.autofocus) {
394
- DOM.queueUpdate(() => {
395
- this.focus();
396
- });
397
- }
113
+ set label(value) {
114
+ this._label = value;
398
115
  }
399
- /**
400
- * Selects all the text in the number field
401
- *
402
- * @public
403
- */
404
- select() {
405
- this.control.select();
406
- this.$emit("select");
116
+ set text(value) {
117
+ this._text = value;
407
118
  }
408
- /**
409
- * Handles the internal control's `input` event
410
- * @internal
411
- */
412
- handleTextInput() {
413
- this._presentationValue = __privateMethod(this, _NumberField_instances, inputToPresentationValue_fn).call(this, this.control.value);
414
- if (this.control.value !== this._presentationValue) {
415
- this.control.value = this._presentationValue;
119
+ get text() {
120
+ return this._text ?? "";
121
+ }
122
+ set value(next) {
123
+ const newValue = `${next ?? ""}`;
124
+ this._value = newValue;
125
+ this.dirtyValue = true;
126
+ if (this.proxy instanceof HTMLOptionElement) {
127
+ this.proxy.value = newValue;
416
128
  }
417
- this.isUserInput = true;
418
- this.value = __privateMethod(this, _NumberField_instances, presentationValueToValue_fn).call(this, this._presentationValue);
419
- this.isUserInput = false;
129
+ Observable.notify(this, "value");
420
130
  }
421
- /**
422
- * Change event handler for inner control.
423
- * @remarks
424
- * "Change" events are not `composable` so they will not
425
- * permeate the shadow DOM boundary. This fn effectively proxies
426
- * the change event, emitting a `change` event whenever the internal
427
- * control emits a `change` event
428
- * @internal
429
- */
430
- handleChange() {
431
- this.$emit("change");
131
+ get value() {
132
+ Observable.track(this, "value");
133
+ return this._value ?? this.text;
134
+ }
135
+ get form() {
136
+ return null;
432
137
  }
433
138
  /**
434
- * Handles the internal control's `keydown` event
435
139
  * @internal
436
140
  */
437
- handleKeyDown(e) {
438
- const key = e.key;
439
- switch (key) {
440
- case keyArrowUp:
441
- this.stepUp();
442
- return false;
443
- case keyArrowDown:
444
- this.stepDown();
445
- return false;
446
- }
447
- return true;
141
+ get _matchedRangeSafe() {
142
+ return this._matchedRange ?? { from: 0, to: 0 };
448
143
  }
449
- };
450
- _NumberField_instances = new WeakSet();
451
- valueToPresentationValue_fn = function(value) {
452
- return value.replace(
453
- ".",
454
- this.locale.common.useCommaAsDecimalSeparator ? "," : "."
455
- );
456
- };
457
- inputToPresentationValue_fn = function(input) {
458
- return input.replace(this._numberPatterns.invalidCharacters, "").replace(this._numberPatterns.additionalDecimalSeparators, "");
459
- };
460
- presentationValueToValue_fn = function(presentationValue) {
461
- const candidate = presentationValue.replace(this._numberPatterns.trailingDecimalSeparator, "").replace(this._numberPatterns.decimalSeparator, ".");
462
- return validNumber.test(candidate) ? candidate : "";
463
- };
464
- __decorateClass([
465
- attr({ attribute: "readonly", mode: "boolean" })
466
- ], NumberField.prototype, "readOnly", 2);
467
- __decorateClass([
468
- attr({ mode: "boolean" })
469
- ], NumberField.prototype, "autofocus", 2);
470
- __decorateClass([
471
- attr
472
- ], NumberField.prototype, "placeholder", 2);
144
+ }
473
145
  __decorateClass([
474
- attr
475
- ], NumberField.prototype, "list", 2);
146
+ observable
147
+ ], ListboxOption.prototype, "checked");
476
148
  __decorateClass([
477
- attr({ converter: nullableNumberConverter })
478
- ], NumberField.prototype, "maxlength", 2);
149
+ observable
150
+ ], ListboxOption.prototype, "defaultSelected");
151
+ // @ts-expect-error Type is incorrectly non-optional
479
152
  __decorateClass([
480
- attr({ converter: nullableNumberConverter })
481
- ], NumberField.prototype, "minlength", 2);
153
+ attr({ mode: "boolean" })
154
+ ], ListboxOption.prototype, "disabled");
155
+ // @ts-expect-error Type is incorrectly non-optional
482
156
  __decorateClass([
483
- attr({ converter: nullableNumberConverter })
484
- ], NumberField.prototype, "size", 2);
157
+ attr({ attribute: "selected", mode: "boolean" })
158
+ ], ListboxOption.prototype, "selectedAttribute");
485
159
  __decorateClass([
486
- attr()
487
- ], NumberField.prototype, "scale", 2);
160
+ observable
161
+ ], ListboxOption.prototype, "selected");
488
162
  __decorateClass([
489
- attr({ converter: nullableNumberConverter })
490
- ], NumberField.prototype, "step", 2);
163
+ attr({ attribute: "value", mode: "fromView" })
164
+ ], ListboxOption.prototype, "initialValue");
491
165
  __decorateClass([
492
- attr({ converter: nullableNumberConverter })
493
- ], NumberField.prototype, "max", 2);
166
+ attr({
167
+ attribute: "label"
168
+ })
169
+ ], ListboxOption.prototype, "_label");
494
170
  __decorateClass([
495
- attr({ converter: nullableNumberConverter })
496
- ], NumberField.prototype, "min", 2);
171
+ attr({
172
+ attribute: "text"
173
+ })
174
+ ], ListboxOption.prototype, "_text");
497
175
  __decorateClass([
498
176
  observable
499
- ], NumberField.prototype, "defaultSlottedNodes", 2);
177
+ ], ListboxOption.prototype, "_highlighted");
500
178
  __decorateClass([
501
179
  observable
502
- ], NumberField.prototype, "_presentationValue", 2);
180
+ ], ListboxOption.prototype, "_displayCheckmark");
503
181
  __decorateClass([
504
- attr({ attribute: "increment-button-aria-label" })
505
- ], NumberField.prototype, "incrementButtonAriaLabel", 2);
182
+ observable
183
+ ], ListboxOption.prototype, "_matchedRange");
184
+ class DelegatesARIAListboxOption {
185
+ }
186
+ // @ts-expect-error Type is incorrectly non-optional
506
187
  __decorateClass([
507
- attr({ attribute: "decrement-button-aria-label" })
508
- ], NumberField.prototype, "decrementButtonAriaLabel", 2);
188
+ observable
189
+ ], DelegatesARIAListboxOption.prototype, "ariaChecked");
190
+ // @ts-expect-error Type is incorrectly non-optional
509
191
  __decorateClass([
510
- attr
511
- ], NumberField.prototype, "appearance", 2);
192
+ observable
193
+ ], DelegatesARIAListboxOption.prototype, "ariaPosInSet");
194
+ // @ts-expect-error Type is incorrectly non-optional
512
195
  __decorateClass([
513
- attr
514
- ], NumberField.prototype, "shape", 2);
196
+ observable
197
+ ], DelegatesARIAListboxOption.prototype, "ariaSelected");
198
+ // @ts-expect-error Type is incorrectly non-optional
515
199
  __decorateClass([
516
- attr
517
- ], NumberField.prototype, "autoComplete", 2);
518
- NumberField = __decorateClass([
519
- errorText,
520
- formElements
521
- ], NumberField);
522
- applyMixinsWithObservables(
523
- NumberField,
524
- Localized,
525
- AffixIcon,
526
- FormElementCharCount,
527
- FormElementHelperText,
528
- FormElementSuccessText,
529
- DelegatesARIATextbox
530
- );
200
+ observable
201
+ ], DelegatesARIAListboxOption.prototype, "ariaSetSize");
202
+ applyMixins(DelegatesARIAListboxOption, ARIAGlobalStatesAndProperties);
203
+ applyMixins(ListboxOption, AffixIconWithTrailing, DelegatesARIAListboxOption);
531
204
 
532
- const getStateClasses = ({
533
- errorValidationMessage,
534
- disabled,
535
- value,
536
- readOnly,
537
- placeholder,
538
- appearance,
539
- shape,
540
- label,
541
- successText,
542
- scale
543
- }) => classNames(
544
- ["error", Boolean(errorValidationMessage)],
545
- ["disabled", disabled],
546
- ["has-value", Boolean(value)],
547
- ["readonly", readOnly],
548
- ["placeholder", Boolean(placeholder)],
549
- [`appearance-${appearance}`, Boolean(appearance)],
550
- [`shape-${shape}`, Boolean(shape)],
551
- ["no-label", !label],
552
- ["success", !!successText],
553
- [`size-${scale}`, Boolean(scale)]
205
+ const getClasses = (x) => classNames(
206
+ "base",
207
+ ["disabled", x.disabled],
208
+ ["selected", Boolean(x.selected)],
209
+ ["hover", Boolean(x._highlighted)],
210
+ ["active", Boolean(x.checked)],
211
+ ["icon", Boolean(x.icon)]
554
212
  );
555
- function renderLabel() {
556
- return html` <label for="control" class="label">
557
- ${(x) => x.label}
558
- </label>`;
559
- }
560
- function setControlButtonShape(numberField) {
561
- return numberField.shape === Shape.Pill ? Shape.Pill : null;
562
- }
563
- function getTabIndex(numberField) {
564
- return numberField.disabled || numberField.readOnly ? "-1" : null;
565
- }
566
- function numberControlButtons(context) {
567
- const buttonTag = context.tagFor(Button);
568
- const dividerTag = context.tagFor(Divider);
569
- return html`
570
- <div class="control-buttons"
571
- ?inert="${(x) => x.disabled || x.readOnly}">
572
- <${buttonTag} id="subtract" icon="minus-line"
573
- ?disabled="${(x) => x.disabled || x.readOnly}"
574
- aria-label=${(x) => x.decrementButtonAriaLabel || x.locale.numberField.decrementButtonLabel}
575
- shape="${setControlButtonShape}"
576
- type="button"
577
- size="${(x) => x.scale === "condensed" ? "super-condensed" : "condensed"}"
578
- tabindex="${getTabIndex}"
579
- @click="${(x) => x.stepDown()}"></${buttonTag}>
580
- <${dividerTag} class="divider" orientation="vertical"></${dividerTag}>
581
- <${buttonTag} id="add" icon="plus-line"
582
- ?disabled="${(x) => x.disabled || x.readOnly}"
583
- aria-label=${(x) => x.incrementButtonAriaLabel || x.locale.numberField.incrementButtonLabel}
584
- shape="${setControlButtonShape}"
585
- type="button"
586
- size="${(x) => x.scale === "condensed" ? "super-condensed" : "condensed"}"
587
- tabindex="${getTabIndex}"
588
- @click="${(x) => x.stepUp()}"></${buttonTag}>
589
- </div>
590
- `;
591
- }
592
- const NumberFieldTemplate = (context) => {
213
+ const ListboxOptionTemplate = (context) => {
214
+ const affixIconTemplate = affixIconTemplateFactory(context);
215
+ const iconTag = context.tagFor(Icon);
593
216
  return html`
594
- <div class="base ${getStateClasses}">
595
- ${when((x) => x.label, renderLabel())}
596
- <div class="fieldset">
597
- <div class="wrapper">
598
- <input
599
- class="control"
600
- id="control"
601
- @input="${(x) => x.handleTextInput()}"
602
- @change="${(x) => x.handleChange()}"
603
- @keydown="${(x, c) => x.handleKeyDown(c.event)}"
604
- ?autofocus="${(x) => x.autofocus}"
605
- ?disabled="${(x) => x.disabled}"
606
- list="${(x) => x.list}"
607
- maxlength="${(x) => x.maxlength}"
608
- minlength="${(x) => x.minlength}"
609
- placeholder="${(x) => x.placeholder}"
610
- ?readonly="${(x) => x.readOnly}"
611
- ?required="${(x) => x.required}"
612
- size="${(x) => x.size}"
613
- autocomplete="${(x) => x.autoComplete}"
614
- name="${(x) => x.name}"
615
- ?spellcheck="${(x) => x.spellcheck}"
616
- :value="${(x) => x._presentationValue}"
617
- type="text"
618
- aria-atomic="${(x) => x.ariaAtomic}"
619
- aria-busy="${(x) => x.ariaBusy}"
620
- aria-current="${(x) => x.ariaCurrent}"
621
- aria-details="${(x) => x.ariaDetails}"
622
- aria-disabled="${(x) => x.ariaDisabled}"
623
- aria-errormessage="${(x) => x.ariaErrormessage}"
624
- aria-haspopup="${(x) => x.ariaHaspopup}"
625
- aria-hidden="${(x) => x.ariaHidden}"
626
- aria-invalid="${(x) => x.ariaInvalid}"
627
- aria-keyshortcuts="${(x) => x.ariaKeyshortcuts}"
628
- aria-label="${(x) => x.ariaLabel}"
629
- aria-live="${(x) => x.ariaLive}"
630
- aria-relevant="${(x) => x.ariaRelevant}"
631
- aria-roledescription="${(x) => x.ariaRoledescription}"
632
- ${ref("control")}
633
- />
634
- </div>
635
- ${() => numberControlButtons(context)}
217
+ <template
218
+ aria-checked="${(x) => x.ariaChecked}"
219
+ aria-disabled="${(x) => x.ariaDisabled}"
220
+ aria-posinset="${(x) => x.ariaPosInSet}"
221
+ aria-selected="${(x) => x.ariaSelected}"
222
+ aria-setsize="${(x) => x.ariaSetSize}"
223
+ role="option"
224
+ >
225
+ <div class="${getClasses}">
226
+ ${(x) => affixIconTemplate(x.icon, IconWrapper.Slot)}
227
+ ${when(
228
+ (x) => x.text,
229
+ html`<div class="text">
230
+ ${when(
231
+ (x) => x._matchedRange,
232
+ html`${(x) => x.text.slice(0, x._matchedRangeSafe.from)}<span class="match"
233
+ >${(x) => x.text.slice(
234
+ x._matchedRangeSafe.from,
235
+ x._matchedRangeSafe.to
236
+ )}</span
237
+ >`
238
+ )}${(x) => x.text.slice(x._matchedRangeSafe.to)}
239
+ </div>`
240
+ )}
241
+ ${when(
242
+ (x) => x._displayCheckmark && x.selected,
243
+ html`<${iconTag} class="checkmark" name="check-line"></${iconTag}>`
244
+ )}
636
245
  </div>
637
- ${getFeedbackTemplate(context)}
638
- </div>
246
+ </template>
639
247
  `;
640
248
  };
641
249
 
642
- const numberFieldDefinition = NumberField.compose({
643
- baseName: "number-field",
644
- template: NumberFieldTemplate,
645
- styles,
646
- shadowOptions: {
647
- delegatesFocus: true
250
+ const styles = ":host([disabled]){cursor:not-allowed}.base{--_connotation-color-primary: var(--vvd-option-accent-primary, var(--vvd-color-canvas-text));--_connotation-color-primary-text: var(--vvd-option-accent-primary-text, var(--vvd-color-canvas));--_connotation-color-primary-increment: var(--vvd-option-accent-primary-increment, var(--vvd-color-neutral-800));--_connotation-color-firm: var(--vvd-option-accent-firm, var(--vvd-color-canvas-text));--_connotation-color-faint: var(--vvd-option-accent-faint, var(--vvd-color-neutral-50));--_connotation-color-soft: var(--vvd-option-accent-soft, var(--vvd-color-neutral-100));--_connotation-color-pale: var(--vvd-option-accent-pale, var(--vvd-color-neutral-300));--_connotation-color-dim: var(--vvd-option-accent-dim, var(--vvd-color-neutral-200))}.base{--_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(--_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: transparent;--_appearance-color-outline: transparent}.base:where(.active,:active):where(:not(.disabled,:disabled)){--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: var(--_connotation-color-soft);--_appearance-color-outline: transparent}.base:where(.selected):where(:not(.disabled,:disabled)){--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: var(--_connotation-color-soft);--_appearance-color-outline: transparent}.base:where(.selected):where(.hover,:hover):where(:not(.disabled,:disabled,.readonly)){--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: var(--_connotation-color-dim);--_appearance-color-outline: transparent}.base{display:flex;box-sizing:border-box;align-items:center;border-radius:8px;background-color:var(--_appearance-color-fill);box-shadow:inset 0 0 0 1px var(--_appearance-color-outline);color:var(--_option-appearance-color-text, var(--_appearance-color-text));font:var(--vvd-typography-base);gap:var(--_option-gap);hyphens:auto;inline-size:100%;min-block-size:var(--_option-min-block-size);padding-inline:var(--_option-padding-inline);vertical-align:middle;word-break:break-word}.base{--_option-min-block-size: calc(1px*(40 + 4*clamp(-1, var(--vvd-size-density, 0), 2))) ;--_option-padding-inline: calc(1px*(40 + 4*clamp(-1, var(--vvd-size-density, 0), 2))*.4) ;--_option-gap: calc( calc(1px*(36 + 4*clamp(-1, var(--vvd-size-density, 0), 2))) / 3);--_option-icon-size: calc(1px*(40 + 4*clamp(-1, var(--vvd-size-density, 0), 2))/2) }@supports (user-select: none){.base{user-select:none}}.base:not(.disabled){cursor:pointer}.base.disabled{pointer-events:none}:host([scale=condensed]) .base{--_option-min-block-size: calc(1px*(32 + 4*clamp(-1, var(--vvd-size-density, 0), 2))) ;--_option-padding-inline: calc(1px*(24 + 4*clamp(-1, var(--vvd-size-density, 0), 2))/2) ;--_option-gap: calc(1px*(40 + 4*clamp(-1, var(--vvd-size-density, 0), 2))/5) ;--_option-icon-size: calc(1px*(40 + 4*clamp(-1, var(--vvd-size-density, 0), 2))*.4) }:host([aria-checked=true]) .base{--focus-stroke-color: var(--vvd-color-neutral-500);--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))}.text{font:var(--vvd-typography-base)}.match{color:var(--vvd-color-cta-600);font:var(--vvd-typography-base-bold)}slot[name=icon]{font-size:var(--_option-icon-size);line-height:1}.base:not(.disabled,.selected) slot[name=icon]{color:var(--vvd-color-neutral-600)}.checkmark{margin-left:auto;font-size:var(--_option-icon-size)}";
251
+
252
+ const listboxOptionDefinition = defineVividComponent(
253
+ "option",
254
+ ListboxOption,
255
+ ListboxOptionTemplate,
256
+ [iconDefinition],
257
+ {
258
+ styles
648
259
  }
649
- });
650
- const numberFieldRegistries = [
651
- numberFieldDefinition(),
652
- ...buttonRegistries,
653
- ...dividerRegistries
654
- ];
655
- const registerNumberField = registerFactory(numberFieldRegistries);
260
+ );
261
+ const registerOption = createRegisterFunction(listboxOptionDefinition);
656
262
 
657
- export { numberFieldRegistries as a, numberFieldDefinition as n, registerNumberField as r };
263
+ export { ListboxOption as L, isListboxOption as i, listboxOptionDefinition as l, registerOption as r };