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