@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,657 +1,264 @@
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 { O as Observable, o as observable, a as attr, h as html, d as defineVividComponent, f as createRegisterFunction } from './defineVividComponent.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 { V as VividElement } from './vivid-element.js';
7
+ import { i as isHTMLElement } from './dom.js';
14
8
  import { w as when } from './when.js';
15
- import { r as ref } from './ref.js';
16
9
  import { c as classNames } from './class-names.js';
17
10
 
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
11
  var __defProp = Object.defineProperty;
248
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
249
- var __typeError = (msg) => {
250
- throw TypeError(msg);
251
- };
252
12
  var __decorateClass = (decorators, target, key, kind) => {
253
- var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
13
+ var result = void 0 ;
254
14
  for (var i = decorators.length - 1, decorator; i >= 0; i--)
255
15
  if (decorator = decorators[i])
256
- result = (kind ? decorator(target, key, result) : decorator(result)) || result;
257
- if (kind && result) __defProp(target, key, result);
16
+ result = (decorator(target, key, result) ) || result;
17
+ if (result) __defProp(target, key, result);
258
18
  return result;
259
19
  };
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();
20
+ function isListboxOption(el) {
21
+ return isHTMLElement(el) && (el.getAttribute("role") === "option" || el instanceof HTMLOptionElement);
272
22
  }
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;
23
+ class ListboxOption extends VividElement {
24
+ constructor(text, value, defaultSelected, selected) {
25
+ super();
26
+ this.defaultSelected = false;
293
27
  /**
294
- * Flag to indicate that the value change is from the user input
28
+ * Tracks whether the "selected" property has been changed.
295
29
  * @internal
296
30
  */
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() : ""
31
+ this.dirtySelected = false;
32
+ this.selected = this.defaultSelected;
33
+ /**
34
+ * Track whether the value has been changed from the initial value
35
+ */
36
+ this.dirtyValue = false;
37
+ this._highlighted = false;
38
+ this._displayCheckmark = false;
39
+ this._matchedRange = null;
40
+ if (text) {
41
+ this.text = text;
42
+ }
43
+ if (value) {
44
+ this.initialValue = value;
45
+ }
46
+ if (defaultSelected) {
47
+ this.defaultSelected = defaultSelected;
48
+ }
49
+ if (selected) {
50
+ this.selected = selected;
51
+ }
52
+ this.proxy = new Option(
53
+ this.text,
54
+ // @ts-expect-error Propery is used before it is assigned
55
+ this.initialValue,
56
+ this.defaultSelected,
57
+ this.selected
306
58
  );
59
+ this.proxy.disabled = this.disabled;
307
60
  }
308
61
  /**
309
- * Ensures that the max is greater than the min and that the value
310
- * is less than the max
62
+ * Updates the ariaChecked property when the checked property changes.
311
63
  *
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.
64
+ * @param _ - the previous checked value
65
+ * @param next - the current checked value
332
66
  *
333
67
  * @public
334
68
  */
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) {
69
+ checkedChanged(_, next) {
70
+ if (typeof next === "boolean") {
71
+ this.ariaChecked = next ? "true" : "false";
347
72
  return;
348
73
  }
349
- if (this.control && !this.isUserInput) {
350
- this._presentationValue = __privateMethod(this, _NumberField_instances, valueToPresentationValue_fn).call(this, this.value);
74
+ this.ariaChecked = null;
75
+ }
76
+ defaultSelectedChanged() {
77
+ if (!this.dirtySelected) {
78
+ this.selected = this.defaultSelected;
79
+ if (this.proxy instanceof HTMLOptionElement) {
80
+ this.proxy.selected = this.defaultSelected;
81
+ }
351
82
  }
352
- super.valueChanged(previous, this.value);
353
- if (previous !== void 0 && !this.isUserInput) {
354
- this.$emit("input");
355
- this.$emit("change");
83
+ }
84
+ disabledChanged() {
85
+ this.ariaDisabled = this.disabled ? "true" : "false";
86
+ if (this.proxy instanceof HTMLOptionElement) {
87
+ this.proxy.disabled = this.disabled;
356
88
  }
357
89
  }
358
- /**
359
- * @internal
360
- */
361
- get _numberPatterns() {
362
- return this.locale.common.useCommaAsDecimalSeparator ? numberPatternsWithComma : numberPatternsWithPeriod;
90
+ selectedAttributeChanged() {
91
+ this.defaultSelected = this.selectedAttribute;
92
+ if (this.proxy instanceof HTMLOptionElement) {
93
+ this.proxy.defaultSelected = this.defaultSelected;
94
+ }
363
95
  }
364
- /** {@inheritDoc (FormAssociated:interface).validate} */
365
- validate() {
366
- super.validate(this.control);
96
+ selectedChanged() {
97
+ this.ariaSelected = this.selected ? "true" : "false";
98
+ if (!this.dirtySelected) {
99
+ this.dirtySelected = true;
100
+ }
101
+ if (this.proxy instanceof HTMLOptionElement) {
102
+ this.proxy.selected = this.selected;
103
+ }
367
104
  }
368
- /**
369
- * Increments the value using the step value
370
- *
371
- * @public
372
- */
373
- stepUp() {
374
- makeStep(this, STEP_DIRECTION.up);
105
+ initialValueChanged() {
106
+ if (!this.dirtyValue) {
107
+ this.value = this.initialValue;
108
+ this.dirtyValue = false;
109
+ }
375
110
  }
376
- /**
377
- * Decrements the value using the step value
378
- *
379
- * @public
380
- */
381
- stepDown() {
382
- makeStep(this, STEP_DIRECTION.down);
111
+ get label() {
112
+ return this._label ?? this.text;
383
113
  }
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
- }
114
+ set label(value) {
115
+ this._label = value;
398
116
  }
399
- /**
400
- * Selects all the text in the number field
401
- *
402
- * @public
403
- */
404
- select() {
405
- this.control.select();
406
- this.$emit("select");
117
+ set text(value) {
118
+ this._text = value;
407
119
  }
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;
120
+ get text() {
121
+ return this._text ?? "";
122
+ }
123
+ set value(next) {
124
+ const newValue = `${next ?? ""}`;
125
+ this._value = newValue;
126
+ this.dirtyValue = true;
127
+ if (this.proxy instanceof HTMLOptionElement) {
128
+ this.proxy.value = newValue;
416
129
  }
417
- this.isUserInput = true;
418
- this.value = __privateMethod(this, _NumberField_instances, presentationValueToValue_fn).call(this, this._presentationValue);
419
- this.isUserInput = false;
130
+ Observable.notify(this, "value");
420
131
  }
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");
132
+ get value() {
133
+ Observable.track(this, "value");
134
+ return this._value ?? this.text;
135
+ }
136
+ get form() {
137
+ return null;
432
138
  }
433
139
  /**
434
- * Handles the internal control's `keydown` event
435
140
  * @internal
436
141
  */
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;
142
+ get _matchedRangeSafe() {
143
+ return this._matchedRange ?? { from: 0, to: 0 };
448
144
  }
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);
145
+ }
473
146
  __decorateClass([
474
- attr
475
- ], NumberField.prototype, "list", 2);
147
+ observable
148
+ ], ListboxOption.prototype, "checked");
476
149
  __decorateClass([
477
- attr({ converter: nullableNumberConverter })
478
- ], NumberField.prototype, "maxlength", 2);
150
+ observable
151
+ ], ListboxOption.prototype, "defaultSelected");
152
+ // @ts-expect-error Type is incorrectly non-optional
479
153
  __decorateClass([
480
- attr({ converter: nullableNumberConverter })
481
- ], NumberField.prototype, "minlength", 2);
154
+ attr({ mode: "boolean" })
155
+ ], ListboxOption.prototype, "disabled");
156
+ // @ts-expect-error Type is incorrectly non-optional
482
157
  __decorateClass([
483
- attr({ converter: nullableNumberConverter })
484
- ], NumberField.prototype, "size", 2);
158
+ attr({ attribute: "selected", mode: "boolean" })
159
+ ], ListboxOption.prototype, "selectedAttribute");
485
160
  __decorateClass([
486
- attr()
487
- ], NumberField.prototype, "scale", 2);
161
+ observable
162
+ ], ListboxOption.prototype, "selected");
488
163
  __decorateClass([
489
- attr({ converter: nullableNumberConverter })
490
- ], NumberField.prototype, "step", 2);
164
+ attr({ attribute: "value", mode: "fromView" })
165
+ ], ListboxOption.prototype, "initialValue");
491
166
  __decorateClass([
492
- attr({ converter: nullableNumberConverter })
493
- ], NumberField.prototype, "max", 2);
167
+ attr({
168
+ attribute: "label"
169
+ })
170
+ ], ListboxOption.prototype, "_label");
494
171
  __decorateClass([
495
- attr({ converter: nullableNumberConverter })
496
- ], NumberField.prototype, "min", 2);
172
+ attr({
173
+ attribute: "text"
174
+ })
175
+ ], ListboxOption.prototype, "_text");
497
176
  __decorateClass([
498
177
  observable
499
- ], NumberField.prototype, "defaultSlottedNodes", 2);
178
+ ], ListboxOption.prototype, "_highlighted");
500
179
  __decorateClass([
501
180
  observable
502
- ], NumberField.prototype, "_presentationValue", 2);
181
+ ], ListboxOption.prototype, "_displayCheckmark");
503
182
  __decorateClass([
504
- attr({ attribute: "increment-button-aria-label" })
505
- ], NumberField.prototype, "incrementButtonAriaLabel", 2);
183
+ observable
184
+ ], ListboxOption.prototype, "_matchedRange");
185
+ class DelegatesARIAListboxOption {
186
+ }
187
+ // @ts-expect-error Type is incorrectly non-optional
506
188
  __decorateClass([
507
- attr({ attribute: "decrement-button-aria-label" })
508
- ], NumberField.prototype, "decrementButtonAriaLabel", 2);
189
+ observable
190
+ ], DelegatesARIAListboxOption.prototype, "ariaChecked");
191
+ // @ts-expect-error Type is incorrectly non-optional
509
192
  __decorateClass([
510
- attr
511
- ], NumberField.prototype, "appearance", 2);
193
+ observable
194
+ ], DelegatesARIAListboxOption.prototype, "ariaPosInSet");
195
+ // @ts-expect-error Type is incorrectly non-optional
512
196
  __decorateClass([
513
- attr
514
- ], NumberField.prototype, "shape", 2);
197
+ observable
198
+ ], DelegatesARIAListboxOption.prototype, "ariaSelected");
199
+ // @ts-expect-error Type is incorrectly non-optional
515
200
  __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
- );
201
+ observable
202
+ ], DelegatesARIAListboxOption.prototype, "ariaSetSize");
203
+ applyMixins(DelegatesARIAListboxOption, ARIAGlobalStatesAndProperties);
204
+ applyMixins(ListboxOption, AffixIconWithTrailing, DelegatesARIAListboxOption);
531
205
 
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)]
206
+ const getClasses = (x) => classNames(
207
+ "base",
208
+ ["disabled", x.disabled],
209
+ ["selected", Boolean(x.selected)],
210
+ ["hover", Boolean(x._highlighted)],
211
+ ["active", Boolean(x.checked)],
212
+ ["icon", Boolean(x.icon)]
554
213
  );
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) => {
214
+ const ListboxOptionTemplate = (context) => {
215
+ const affixIconTemplate = affixIconTemplateFactory(context);
216
+ const iconTag = context.tagFor(Icon);
593
217
  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)}
218
+ <template
219
+ aria-checked="${(x) => x.ariaChecked}"
220
+ aria-disabled="${(x) => x.ariaDisabled}"
221
+ aria-posinset="${(x) => x.ariaPosInSet}"
222
+ aria-selected="${(x) => x.ariaSelected}"
223
+ aria-setsize="${(x) => x.ariaSetSize}"
224
+ role="option"
225
+ >
226
+ <div class="${getClasses}">
227
+ ${(x) => affixIconTemplate(x.icon, IconWrapper.Slot)}
228
+ ${when(
229
+ (x) => x.text,
230
+ html`<div class="text">
231
+ ${when(
232
+ (x) => x._matchedRange,
233
+ html`${(x) => x.text.slice(0, x._matchedRangeSafe.from)}<span class="match"
234
+ >${(x) => x.text.slice(
235
+ x._matchedRangeSafe.from,
236
+ x._matchedRangeSafe.to
237
+ )}</span
238
+ >`
239
+ )}${(x) => x.text.slice(x._matchedRangeSafe.to)}
240
+ </div>`
241
+ )}
242
+ ${when(
243
+ (x) => x._displayCheckmark && x.selected,
244
+ html`<${iconTag} class="checkmark" name="check-line"></${iconTag}>`
245
+ )}
636
246
  </div>
637
- ${getFeedbackTemplate(context)}
638
- </div>
247
+ </template>
639
248
  `;
640
249
  };
641
250
 
642
- const numberFieldDefinition = NumberField.compose({
643
- baseName: "number-field",
644
- template: NumberFieldTemplate,
645
- styles,
646
- shadowOptions: {
647
- delegatesFocus: true
251
+ 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)}";
252
+
253
+ const listboxOptionDefinition = defineVividComponent(
254
+ "option",
255
+ ListboxOption,
256
+ ListboxOptionTemplate,
257
+ [iconDefinition],
258
+ {
259
+ styles
648
260
  }
649
- });
650
- const numberFieldRegistries = [
651
- numberFieldDefinition(),
652
- ...buttonRegistries,
653
- ...dividerRegistries
654
- ];
655
- const registerNumberField = registerFactory(numberFieldRegistries);
261
+ );
262
+ const registerOption = createRegisterFunction(listboxOptionDefinition);
656
263
 
657
- export { numberFieldRegistries as a, numberFieldDefinition as n, registerNumberField as r };
264
+ export { ListboxOption as L, isListboxOption as i, listboxOptionDefinition as l, registerOption as r };