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