@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,769 +1,151 @@
1
1
  'use strict';
2
2
 
3
- const index = require('./index.cjs');
4
- const definition = require('./definition64.cjs');
5
- const definition$3 = require('./definition27.cjs');
6
- const definition$1 = require('./definition36.cjs');
7
- const listbox = require('./listbox.cjs');
8
- const applyMixinsWithObservables = require('./applyMixinsWithObservables.cjs');
9
- const startEnd = require('./start-end.cjs');
10
- const applyMixins = require('./apply-mixins.cjs');
11
- const formAssociated = require('./form-associated.cjs');
12
- const select_options = require('./select.options.cjs');
13
- const strings = require('./strings.cjs');
14
- const keyCodes = require('./key-codes2.cjs');
15
- const formElements = require('./form-elements.cjs');
16
- const affix = require('./affix.cjs');
17
- const definition$2 = require('./definition11.cjs');
18
- const index$1 = require('./index2.cjs');
19
- const ref = require('./ref.cjs');
20
- const when = require('./when.cjs');
21
- const slotted = require('./slotted.cjs');
3
+ const definition = require('./definition15.cjs');
4
+ const definition$1 = require('./definition40.cjs');
5
+ const defineVividComponent = require('./defineVividComponent.cjs');
6
+ const vividElement = require('./vivid-element.cjs');
7
+ const enums = require('./enums.cjs');
22
8
  const classNames = require('./class-names.cjs');
9
+ const when = require('./when.cjs');
23
10
 
24
- class _Select extends listbox.ListboxElement {
25
- }
26
- /**
27
- * A form-associated base class for the {@link @microsoft/fast-foundation#(Select:class)} component.
28
- *
29
- * @internal
30
- */
31
- class FormAssociatedSelect extends formAssociated.FormAssociated(_Select) {
32
- constructor() {
33
- super(...arguments);
34
- this.proxy = document.createElement("select");
35
- }
36
- }
37
-
38
- /**
39
- * A Select Custom HTML Element.
40
- * Implements the {@link https://www.w3.org/TR/wai-aria-1.1/#select | ARIA select }.
41
- *
42
- * @slot start - Content which can be provided before the button content
43
- * @slot end - Content which can be provided after the button content
44
- * @slot button-container - The element representing the select button
45
- * @slot selected-value - The selected value
46
- * @slot indicator - The visual indicator for the expand/collapse state of the button
47
- * @slot - The default slot for slotted options
48
- * @csspart control - The element representing the select invoking element
49
- * @csspart selected-value - The element wrapping the selected value
50
- * @csspart indicator - The element wrapping the visual indicator
51
- * @csspart listbox - The listbox element
52
- * @fires input - Fires a custom 'input' event when the value updates
53
- * @fires change - Fires a custom 'change' event when the value updates
54
- *
55
- * @public
56
- */
57
- let Select$1 = class Select extends FormAssociatedSelect {
58
- constructor() {
59
- super(...arguments);
60
- /**
61
- * The open attribute.
62
- *
63
- * @public
64
- * @remarks
65
- * HTML Attribute: open
66
- */
67
- this.open = false;
68
- /**
69
- * Indicates the initial state of the position attribute.
70
- *
71
- * @internal
72
- */
73
- this.forcedPosition = false;
74
- /**
75
- * The unique id for the internal listbox element.
76
- *
77
- * @internal
78
- */
79
- this.listboxId = strings.uniqueId("listbox-");
80
- /**
81
- * The max height for the listbox when opened.
82
- *
83
- * @internal
84
- */
85
- this.maxHeight = 0;
86
- }
87
- /**
88
- * Sets focus and synchronizes ARIA attributes when the open property changes.
89
- *
90
- * @param prev - the previous open value
91
- * @param next - the current open value
92
- *
93
- * @internal
94
- */
95
- openChanged(prev, next) {
96
- if (!this.collapsible) {
97
- return;
98
- }
99
- if (this.open) {
100
- this.ariaControls = this.listboxId;
101
- this.ariaExpanded = "true";
102
- this.setPositioning();
103
- this.focusAndScrollOptionIntoView();
104
- this.indexWhenOpened = this.selectedIndex;
105
- // focus is directed to the element when `open` is changed programmatically
106
- index.DOM.queueUpdate(() => this.focus());
107
- return;
108
- }
109
- this.ariaControls = "";
110
- this.ariaExpanded = "false";
111
- }
112
- /**
113
- * The component is collapsible when in single-selection mode with no size attribute.
114
- *
115
- * @internal
116
- */
117
- get collapsible() {
118
- return !(this.multiple || typeof this.size === "number");
119
- }
120
- /**
121
- * The value property.
122
- *
123
- * @public
124
- */
125
- get value() {
126
- index.Observable.track(this, "value");
127
- return this._value;
128
- }
129
- set value(next) {
130
- var _a, _b, _c, _d, _e, _f, _g;
131
- const prev = `${this._value}`;
132
- if ((_a = this._options) === null || _a === void 0 ? void 0 : _a.length) {
133
- const selectedIndex = this._options.findIndex(el => el.value === next);
134
- const prevSelectedValue = (_c = (_b = this._options[this.selectedIndex]) === null || _b === void 0 ? void 0 : _b.value) !== null && _c !== void 0 ? _c : null;
135
- const nextSelectedValue = (_e = (_d = this._options[selectedIndex]) === null || _d === void 0 ? void 0 : _d.value) !== null && _e !== void 0 ? _e : null;
136
- if (selectedIndex === -1 || prevSelectedValue !== nextSelectedValue) {
137
- next = "";
138
- this.selectedIndex = selectedIndex;
139
- }
140
- next = (_g = (_f = this.firstSelectedOption) === null || _f === void 0 ? void 0 : _f.value) !== null && _g !== void 0 ? _g : next;
141
- }
142
- if (prev !== next) {
143
- this._value = next;
144
- super.valueChanged(prev, next);
145
- index.Observable.notify(this, "value");
146
- this.updateDisplayValue();
147
- }
148
- }
149
- /**
150
- * Sets the value and display value to match the first selected option.
151
- *
152
- * @param shouldEmit - if true, the input and change events will be emitted
153
- *
154
- * @internal
155
- */
156
- updateValue(shouldEmit) {
157
- var _a, _b;
158
- if (this.$fastController.isConnected) {
159
- this.value = (_b = (_a = this.firstSelectedOption) === null || _a === void 0 ? void 0 : _a.value) !== null && _b !== void 0 ? _b : "";
160
- }
161
- if (shouldEmit) {
162
- this.$emit("input");
163
- this.$emit("change", this, {
164
- bubbles: true,
165
- composed: undefined,
166
- });
167
- }
168
- }
169
- /**
170
- * Updates the proxy value when the selected index changes.
171
- *
172
- * @param prev - the previous selected index
173
- * @param next - the next selected index
174
- *
175
- * @internal
176
- */
177
- selectedIndexChanged(prev, next) {
178
- super.selectedIndexChanged(prev, next);
179
- this.updateValue();
180
- }
181
- positionChanged(prev, next) {
182
- this.positionAttribute = next;
183
- this.setPositioning();
184
- }
185
- /**
186
- * Calculate and apply listbox positioning based on available viewport space.
187
- *
188
- * @public
189
- */
190
- setPositioning() {
191
- const currentBox = this.getBoundingClientRect();
192
- const viewportHeight = window.innerHeight;
193
- const availableBottom = viewportHeight - currentBox.bottom;
194
- this.position = this.forcedPosition
195
- ? this.positionAttribute
196
- : currentBox.top > availableBottom
197
- ? select_options.SelectPosition.above
198
- : select_options.SelectPosition.below;
199
- this.positionAttribute = this.forcedPosition
200
- ? this.positionAttribute
201
- : this.position;
202
- this.maxHeight =
203
- this.position === select_options.SelectPosition.above ? ~~currentBox.top : ~~availableBottom;
204
- }
205
- /**
206
- * The value displayed on the button.
207
- *
208
- * @public
209
- */
210
- get displayValue() {
211
- var _a, _b;
212
- index.Observable.track(this, "displayValue");
213
- return (_b = (_a = this.firstSelectedOption) === null || _a === void 0 ? void 0 : _a.text) !== null && _b !== void 0 ? _b : "";
214
- }
215
- /**
216
- * Synchronize the `aria-disabled` property when the `disabled` property changes.
217
- *
218
- * @param prev - The previous disabled value
219
- * @param next - The next disabled value
220
- *
221
- * @internal
222
- */
223
- disabledChanged(prev, next) {
224
- if (super.disabledChanged) {
225
- super.disabledChanged(prev, next);
226
- }
227
- this.ariaDisabled = this.disabled ? "true" : "false";
228
- }
229
- /**
230
- * Reset the element to its first selectable option when its parent form is reset.
231
- *
232
- * @internal
233
- */
234
- formResetCallback() {
235
- this.setProxyOptions();
236
- // Call the base class's implementation setDefaultSelectedOption instead of the select's
237
- // override, in order to reset the selectedIndex without using the value property.
238
- super.setDefaultSelectedOption();
239
- if (this.selectedIndex === -1) {
240
- this.selectedIndex = 0;
241
- }
242
- }
243
- /**
244
- * Handle opening and closing the listbox when the select is clicked.
245
- *
246
- * @param e - the mouse event
247
- * @internal
248
- */
249
- clickHandler(e) {
250
- // do nothing if the select is disabled
251
- if (this.disabled) {
252
- return;
253
- }
254
- if (this.open) {
255
- const captured = e.target.closest(`option,[role=option]`);
256
- if (captured && captured.disabled) {
257
- return;
258
- }
259
- }
260
- super.clickHandler(e);
261
- this.open = this.collapsible && !this.open;
262
- if (!this.open && this.indexWhenOpened !== this.selectedIndex) {
263
- this.updateValue(true);
264
- }
265
- return true;
266
- }
267
- /**
268
- * Handles focus state when the element or its children lose focus.
269
- *
270
- * @param e - The focus event
271
- * @internal
272
- */
273
- focusoutHandler(e) {
274
- var _a;
275
- super.focusoutHandler(e);
276
- if (!this.open) {
277
- return true;
278
- }
279
- const focusTarget = e.relatedTarget;
280
- if (this.isSameNode(focusTarget)) {
281
- this.focus();
282
- return;
283
- }
284
- if (!((_a = this.options) === null || _a === void 0 ? void 0 : _a.includes(focusTarget))) {
285
- this.open = false;
286
- if (this.indexWhenOpened !== this.selectedIndex) {
287
- this.updateValue(true);
288
- }
289
- }
290
- }
291
- /**
292
- * Updates the value when an option's value changes.
293
- *
294
- * @param source - the source object
295
- * @param propertyName - the property to evaluate
296
- *
297
- * @internal
298
- * @override
299
- */
300
- handleChange(source, propertyName) {
301
- super.handleChange(source, propertyName);
302
- if (propertyName === "value") {
303
- this.updateValue();
304
- }
305
- }
306
- /**
307
- * Synchronize the form-associated proxy and updates the value property of the element.
308
- *
309
- * @param prev - the previous collection of slotted option elements
310
- * @param next - the next collection of slotted option elements
311
- *
312
- * @internal
313
- */
314
- slottedOptionsChanged(prev, next) {
315
- this.options.forEach(o => {
316
- const notifier = index.Observable.getNotifier(o);
317
- notifier.unsubscribe(this, "value");
318
- });
319
- super.slottedOptionsChanged(prev, next);
320
- this.options.forEach(o => {
321
- const notifier = index.Observable.getNotifier(o);
322
- notifier.subscribe(this, "value");
323
- });
324
- this.setProxyOptions();
325
- this.updateValue();
326
- }
327
- /**
328
- * Prevents focus when size is set and a scrollbar is clicked.
329
- *
330
- * @param e - the mouse event object
331
- *
332
- * @override
333
- * @internal
334
- */
335
- mousedownHandler(e) {
336
- var _a;
337
- if (e.offsetX >= 0 && e.offsetX <= ((_a = this.listbox) === null || _a === void 0 ? void 0 : _a.scrollWidth)) {
338
- return super.mousedownHandler(e);
339
- }
340
- return this.collapsible;
341
- }
342
- /**
343
- * Sets the multiple property on the proxy element.
344
- *
345
- * @param prev - the previous multiple value
346
- * @param next - the current multiple value
347
- */
348
- multipleChanged(prev, next) {
349
- super.multipleChanged(prev, next);
350
- if (this.proxy) {
351
- this.proxy.multiple = next;
352
- }
353
- }
354
- /**
355
- * Updates the selectedness of each option when the list of selected options changes.
356
- *
357
- * @param prev - the previous list of selected options
358
- * @param next - the current list of selected options
359
- *
360
- * @override
361
- * @internal
362
- */
363
- selectedOptionsChanged(prev, next) {
364
- var _a;
365
- super.selectedOptionsChanged(prev, next);
366
- (_a = this.options) === null || _a === void 0 ? void 0 : _a.forEach((o, i) => {
367
- var _a;
368
- const proxyOption = (_a = this.proxy) === null || _a === void 0 ? void 0 : _a.options.item(i);
369
- if (proxyOption) {
370
- proxyOption.selected = o.selected;
371
- }
372
- });
373
- }
374
- /**
375
- * Sets the selected index to match the first option with the selected attribute, or
376
- * the first selectable option.
377
- *
378
- * @override
379
- * @internal
380
- */
381
- setDefaultSelectedOption() {
382
- var _a;
383
- const options = (_a = this.options) !== null && _a !== void 0 ? _a : Array.from(this.children).filter(listbox.Listbox$1.slottedOptionFilter);
384
- const selectedIndex = options === null || options === void 0 ? void 0 : options.findIndex(el => el.hasAttribute("selected") || el.selected || el.value === this.value);
385
- if (selectedIndex !== -1) {
386
- this.selectedIndex = selectedIndex;
387
- return;
388
- }
389
- this.selectedIndex = 0;
390
- }
391
- /**
392
- * Resets and fills the proxy to match the component's options.
393
- *
394
- * @internal
395
- */
396
- setProxyOptions() {
397
- if (this.proxy instanceof HTMLSelectElement && this.options) {
398
- this.proxy.options.length = 0;
399
- this.options.forEach(option => {
400
- const proxyOption = option.proxy ||
401
- (option instanceof HTMLOptionElement ? option.cloneNode() : null);
402
- if (proxyOption) {
403
- this.proxy.options.add(proxyOption);
404
- }
405
- });
406
- }
407
- }
408
- /**
409
- * Handle keyboard interaction for the select.
410
- *
411
- * @param e - the keyboard event
412
- * @internal
413
- */
414
- keydownHandler(e) {
415
- super.keydownHandler(e);
416
- const key = e.key || e.key.charCodeAt(0);
417
- switch (key) {
418
- case keyCodes.keySpace: {
419
- e.preventDefault();
420
- if (this.collapsible && this.typeAheadExpired) {
421
- this.open = !this.open;
422
- }
423
- break;
424
- }
425
- case keyCodes.keyHome:
426
- case keyCodes.keyEnd: {
427
- e.preventDefault();
428
- break;
429
- }
430
- case keyCodes.keyEnter: {
431
- e.preventDefault();
432
- this.open = !this.open;
433
- break;
434
- }
435
- case keyCodes.keyEscape: {
436
- if (this.collapsible && this.open) {
437
- e.preventDefault();
438
- this.open = false;
439
- }
440
- break;
441
- }
442
- case keyCodes.keyTab: {
443
- if (this.collapsible && this.open) {
444
- e.preventDefault();
445
- this.open = false;
446
- }
447
- return true;
448
- }
449
- }
450
- if (!this.open && this.indexWhenOpened !== this.selectedIndex) {
451
- this.updateValue(true);
452
- this.indexWhenOpened = this.selectedIndex;
453
- }
454
- return !(key === keyCodes.keyArrowDown || key === keyCodes.keyArrowUp);
455
- }
456
- connectedCallback() {
457
- super.connectedCallback();
458
- this.forcedPosition = !!this.positionAttribute;
459
- this.addEventListener("contentchange", this.updateDisplayValue);
460
- }
461
- disconnectedCallback() {
462
- this.removeEventListener("contentchange", this.updateDisplayValue);
463
- super.disconnectedCallback();
464
- }
465
- /**
466
- * Updates the proxy's size property when the size attribute changes.
467
- *
468
- * @param prev - the previous size
469
- * @param next - the current size
470
- *
471
- * @override
472
- * @internal
473
- */
474
- sizeChanged(prev, next) {
475
- super.sizeChanged(prev, next);
476
- if (this.proxy) {
477
- this.proxy.size = next;
478
- }
479
- }
480
- /**
481
- *
482
- * @internal
483
- */
484
- updateDisplayValue() {
485
- if (this.collapsible) {
486
- index.Observable.notify(this, "displayValue");
487
- }
488
- }
489
- };
490
- index.__decorate([
491
- index.attr({ attribute: "open", mode: "boolean" })
492
- ], Select$1.prototype, "open", void 0);
493
- index.__decorate([
494
- index.volatile
495
- ], Select$1.prototype, "collapsible", null);
496
- index.__decorate([
497
- index.observable
498
- ], Select$1.prototype, "control", void 0);
499
- index.__decorate([
500
- index.attr({ attribute: "position" })
501
- ], Select$1.prototype, "positionAttribute", void 0);
502
- index.__decorate([
503
- index.observable
504
- ], Select$1.prototype, "position", void 0);
505
- index.__decorate([
506
- index.observable
507
- ], Select$1.prototype, "maxHeight", void 0);
508
- /**
509
- * Includes ARIA states and properties relating to the ARIA select role.
510
- *
511
- * @public
512
- */
513
- class DelegatesARIASelect {
514
- }
515
- index.__decorate([
516
- index.observable
517
- ], DelegatesARIASelect.prototype, "ariaControls", void 0);
518
- applyMixins.applyMixins(DelegatesARIASelect, listbox.DelegatesARIAListbox);
519
- applyMixins.applyMixins(Select$1, startEnd.StartEnd, DelegatesARIASelect);
520
-
521
- const styles = ".chevron{display:flex;flex-shrink:0;font:var(--vvd-typography-base-extended);transform:rotate(0);transition:transform .2s}:host([aria-expanded=true]) .chevron,:host([open]) .chevron{transform:rotate(180deg)}:host(:focus-visible){outline:none}:host{display:inline-flex;flex-direction:column;gap:4px;--_low-ink-color: var(--vvd-color-neutral-600);--focus-stroke-gap-color: transparent}:host([disabled]){--_low-ink-color: var(--vvd-color-neutral-400);cursor:not-allowed}.label{color:var(--vvd-color-canvas-text);contain:inline-size;font:var(--vvd-typography-base)}.control{--_appearance-color-text: var(--vvd-color-canvas-text);--_appearance-color-fill: var(--vvd-color-canvas);--_appearance-color-outline: var(--_connotation-color-intermediate)}.control.appearance-ghost{--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: transparent;--_appearance-color-outline: transparent}.control: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)}.control: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}.control: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)}.control:where(.disabled,:disabled).appearance-ghost{--_appearance-color-text: var(--vvd-color-neutral-300);--_appearance-color-fill: transparent;--_appearance-color-outline: transparent}.control: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)}.control:where(.readonly):where(:not(.disabled,:disabled)).appearance-ghost{--_appearance-color-text: var(--vvd-color-neutral-600);--_appearance-color-fill: transparent;--_appearance-color-outline: transparent}.control: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)}.control:where(.error):where(:not(.disabled,:disabled)).appearance-ghost{--_appearance-color-text: notSet;--_appearance-color-fill: var(--vvd-color-alert-50);--_appearance-color-outline: transparent}.control: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)}.control:where(.success):where(:not(.disabled,:disabled)).appearance-ghost{--_appearance-color-text: notSet;--_appearance-color-fill: var(--vvd-color-success-50);--_appearance-color-outline: transparent}.control{--_connotation-color-primary: var(--vvd-select-accent-primary, var(--vvd-color-canvas-text));--_connotation-color-primary-text: var(--vvd-select-accent-primary-text, var(--vvd-color-canvas));--_connotation-color-primary-increment: var(--vvd-select-accent-primary-increment, var(--vvd-color-neutral-800));--_connotation-color-intermediate: var(--vvd-select-accent-intermediate, var(--vvd-color-neutral-500));--_connotation-color-faint: var(--vvd-select-accent-faint, var(--vvd-color-neutral-50));--_connotation-color-soft: var(--vvd-select-accent-soft, var(--vvd-color-neutral-100));--_connotation-color-firm: var(--vvd-select-accent-firm, var(--vvd-color-canvas-text));--_connotation-color-fierce: var(--vvd-select-accent-fierce, var(--vvd-color-neutral-700))}.control{border-radius:var(--_select-control-border-radius);block-size:var(--_select-block-size);padding-inline:var(--_select-padding-inline)}.control{--_select-icon-size: calc(1px*(40 + 4*clamp(-1, var(--vvd-size-density, 0), 2))/2) ;--_select-block-size: calc(1px*(40 + 4*clamp(-1, var(--vvd-size-density, 0), 2))) ;--_select-padding-inline: calc(1px*(40 + 4*clamp(-1, var(--vvd-size-density, 0), 2))*.4) ;display:flex;align-items:center;justify-content:space-between;background-color:var(--_appearance-color-fill);box-shadow:inset 0 0 0 1px var(--_appearance-color-outline);color:var(--_appearance-color-text);font:var(--vvd-typography-base);gap:8px;transition:box-shadow .2s,background-color .2s}.control.size-condensed{--_select-icon-size: calc(1px*(40 + 4*clamp(-1, var(--vvd-size-density, 0), 2))*.4) ;--_select-block-size: calc(1px*(32 + 4*clamp(-1, var(--vvd-size-density, 0), 2))) ;--_select-padding-inline: calc(1px*(24 + 4*clamp(-1, var(--vvd-size-density, 0), 2))/2) }.control-wrapper{position:relative}.control:not(.disabled){cursor:pointer}.control.disabled{pointer-events:none}.control:not(.shape-pill){--_select-control-border-radius: 8px}.control.shape-pill{--_select-control-border-radius: 24px}:host(:focus-visible) .control{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))}.listbox{display:flex;max-height:var(--select-height, 408px);flex-direction:column;padding:4px;gap:2px;overflow-y:auto}:host([multiple]:focus-visible) .listbox{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));border-radius:8px}.selected-value{display:flex;overflow:hidden;flex-grow:1;align-items:center;column-gap:12px;white-space:nowrap}.selected-value .text{overflow:hidden;max-inline-size:100%;text-overflow:ellipsis}.control.shows-placeholder .selected-value .text{color:var(--vvd-color-neutral-600)}.selected-value slot[name=icon]{flex:0 0 var(--_select-icon-size);font-size:var(--_select-icon-size);line-height:1}.control.has-meta .selected-value{padding-inline-end:8px}.feedback-wrapper{display:contents}::part(popup-base){inline-size:max-content;min-inline-size:var(--_select-fixed-width, 100%)}:host([multiple]) ::part(popup-base){position:static}";
11
+ const styles = ":host{display:flex}.base.connotation-cta{--_connotation-color-firm-all: var(--vvd-selectable-box-cta-firm-all, var(--vvd-color-cta-600));--_connotation-color-pale: var(--vvd-selectable-box-cta-pale, var(--vvd-color-cta-300));--_connotation-color-fierce: var(--vvd-selectable-box-cta-fierce, var(--vvd-color-cta-700));--_connotation-color-faint: var(--vvd-selectable-box-cta-faint, var(--vvd-color-cta-50));--_connotation-color-soft: var(--vvd-selectable-box-cta-soft, var(--vvd-color-cta-100))}.base:not(.connotation-cta){--_connotation-color-firm-all: var(--vvd-selectable-box-accent-firm-all, var(--vvd-color-neutral-600));--_connotation-color-pale: var(--vvd-selectable-box-accent-pale, var(--vvd-color-neutral-300));--_connotation-color-fierce: var(--vvd-selectable-box-accent-fierce, var(--vvd-color-neutral-700));--_connotation-color-faint: var(--vvd-selectable-box-accent-faint, var(--vvd-color-neutral-50));--_connotation-color-soft: var(--vvd-selectable-box-accent-soft, var(--vvd-color-neutral-100))}.base{--_appearance-color-text: var(--_connotation-color-firm-all);--_appearance-color-fill: transparent;--_appearance-color-outline: var(--_connotation-color-pale)}.base:where(.hover,:hover):where(:not(.disabled,:disabled,.readonly)){--_appearance-color-text: var(--_connotation-color-firm-all);--_appearance-color-fill: transparent;--_appearance-color-outline: var(--_connotation-color-firm-all)}.base:where(.selected):where(:not(.disabled,:disabled)){--_appearance-color-text: var(--_connotation-color-firm-all);--_appearance-color-fill: var(--_connotation-color-soft);--_appearance-color-outline: var(--_connotation-color-pale)}.base:where(.selected):where(.hover,:hover):where(:not(.disabled,:disabled,.readonly)){--_appearance-color-text: var(--_connotation-color-firm-all);--_appearance-color-fill: var(--_connotation-color-faint);--_appearance-color-outline: var(--_connotation-color-firm-all)}.base{position:relative;padding:var(--selectable-box-spacing, 16px);border:1px solid var(--_appearance-color-outline);border-radius:8px;background-color:var(--_appearance-color-fill);inline-size:100%;padding-block-start:calc(var(--selectable-box-spacing, 16px) + 36px);text-align:start}.base:focus-visible{--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))}.base.tight{overflow:hidden;min-height:calc(var(--selectable-box-spacing, 16px) * 2 + 22px);padding:0}.base.clickable{cursor:pointer}.control{position:absolute;inset-block-start:var(--selectable-box-spacing, 16px);inset-inline-end:var(--selectable-box-spacing, 16px)}";
522
12
 
523
13
  var __defProp = Object.defineProperty;
524
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
525
14
  var __decorateClass = (decorators, target, key, kind) => {
526
- var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
15
+ var result = void 0 ;
527
16
  for (var i = decorators.length - 1, decorator; i >= 0; i--)
528
17
  if (decorator = decorators[i])
529
- result = (kind ? decorator(target, key, result) : decorator(result)) || result;
530
- if (kind && result) __defProp(target, key, result);
18
+ result = (decorator(target, key, result) ) || result;
19
+ if (result) __defProp(target, key, result);
531
20
  return result;
532
21
  };
533
- let Select = class extends Select$1 {
22
+ class SelectableBox extends vividElement.VividElement {
534
23
  constructor() {
535
24
  super(...arguments);
536
- this.fixedDropdown = false;
537
- this.placeholderOption = null;
538
- this._feedbackWrapper = null;
539
- }
540
- labelChanged() {
541
- if (!this.ariaLabel) {
542
- this.ariaLabel = this.label;
543
- }
544
- }
545
- connectedCallback() {
546
- super.connectedCallback();
547
- }
548
- get displayValue() {
549
- index.Observable.track(this, "displayValue");
550
- return this.firstSelectedOption?.getAttribute("label") ?? this.firstSelectedOption?.text ?? this.placeholder ?? "";
25
+ this.ariaLabel = null;
26
+ this.checked = false;
27
+ this.clickable = false;
28
+ this.clickableBox = false;
29
+ this.tight = false;
551
30
  }
552
- setDefaultSelectedOption() {
553
- const options = Array.from(this.children).filter(
554
- listbox.Listbox.slottedOptionFilter
555
- );
556
- const selectedIndex = options.findIndex(
557
- (el) => el.hasAttribute("selected") || el.selected || el.value === this.value
558
- );
559
- if (selectedIndex === -1 && !this.placeholderOption) {
560
- this.selectedIndex = 0;
561
- return;
562
- }
563
- if (selectedIndex !== -1 || this.placeholder !== "") {
564
- this.selectedIndex = selectedIndex;
565
- return;
566
- }
567
- }
568
- /*
31
+ /**
569
32
  * @internal
570
33
  */
571
- slottedOptionsChanged(prev, next) {
572
- super.slottedOptionsChanged(prev, next);
573
- const scale = this.getAttribute("scale") || this.scale;
574
- next.forEach((element) => {
575
- if (scale) {
576
- element.setAttribute("scale", scale);
577
- element.scale = scale;
578
- }
579
- });
580
- this.proxy.value = this.value;
581
- this.validate();
34
+ _handleCheckedChange() {
35
+ if (this.controlType === "radio" && this.checked) return;
36
+ this.checked = !this.checked;
37
+ if (this.clickableBox || this.clickable) this.$emit("change");
582
38
  }
583
- formResetCallback() {
584
- super.formResetCallback();
585
- if (this.placeholder) {
586
- this.selectedIndex = -1;
587
- }
39
+ /**
40
+ * @internal
41
+ */
42
+ _handleKeydown(event) {
43
+ if ((event.code === "Space" || event.code === "Enter") && (this.clickableBox || this.clickable))
44
+ return this._handleCheckedChange();
45
+ return true;
588
46
  }
589
- };
590
- __decorateClass([
591
- index.observable
592
- ], Select.prototype, "_anchor", 2);
593
- __decorateClass([
594
- index.attr()
595
- ], Select.prototype, "scale", 2);
47
+ }
596
48
  __decorateClass([
597
- index.attr
598
- ], Select.prototype, "appearance", 2);
49
+ defineVividComponent.attr({ attribute: "aria-label" })
50
+ ], SelectableBox.prototype, "ariaLabel");
599
51
  __decorateClass([
600
- index.attr
601
- ], Select.prototype, "shape", 2);
52
+ defineVividComponent.attr({ mode: "boolean" })
53
+ ], SelectableBox.prototype, "checked");
602
54
  __decorateClass([
603
- index.attr({ mode: "boolean", attribute: "fixed-dropdown" })
604
- ], Select.prototype, "fixedDropdown", 2);
55
+ defineVividComponent.attr({ mode: "boolean" })
56
+ ], SelectableBox.prototype, "clickable");
605
57
  __decorateClass([
606
- index.attr
607
- ], Select.prototype, "placeholder", 2);
58
+ defineVividComponent.attr({ attribute: "clickable-box", mode: "boolean" })
59
+ ], SelectableBox.prototype, "clickableBox");
608
60
  __decorateClass([
609
- index.observable
610
- ], Select.prototype, "placeholderOption", 2);
61
+ defineVividComponent.attr
62
+ ], SelectableBox.prototype, "connotation");
611
63
  __decorateClass([
612
- index.observable
613
- ], Select.prototype, "_feedbackWrapper", 2);
64
+ defineVividComponent.attr({ attribute: "control-type" })
65
+ ], SelectableBox.prototype, "controlType");
614
66
  __decorateClass([
615
- index.observable
616
- ], Select.prototype, "metaSlottedContent", 2);
617
- Select = __decorateClass([
618
- formElements.errorText,
619
- formElements.formElements
620
- ], Select);
621
- applyMixinsWithObservables.applyMixinsWithObservables(
622
- Select,
623
- affix.AffixIconWithTrailing,
624
- formElements.FormElementHelperText,
625
- formElements.FormElementSuccessText
626
- );
67
+ defineVividComponent.attr({ mode: "boolean" })
68
+ ], SelectableBox.prototype, "tight");
627
69
 
628
- const getStateClasses = ({
629
- shape,
630
- disabled,
631
- appearance,
632
- metaSlottedContent,
633
- errorValidationMessage,
634
- successText,
635
- placeholder,
636
- value,
637
- scale
70
+ const getClasses = ({
71
+ connotation,
72
+ tight,
73
+ checked,
74
+ clickableBox,
75
+ clickable
638
76
  }) => classNames.classNames(
639
- ["disabled", disabled],
640
- [`appearance-${appearance}`, Boolean(appearance)],
641
- [`shape-${shape}`, Boolean(shape)],
642
- ["has-meta", Boolean(metaSlottedContent?.length)],
643
- ["error", Boolean(errorValidationMessage)],
644
- ["success", !!successText],
645
- ["has-meta", Boolean(metaSlottedContent?.length)],
646
- ["shows-placeholder", Boolean(placeholder) && !value],
647
- [`size-${scale}`, Boolean(scale)]
77
+ "base",
78
+ [`connotation-${connotation}`, Boolean(connotation)],
79
+ ["tight", tight],
80
+ ["selected", checked],
81
+ ["clickable", clickableBox || clickable],
82
+ ["readonly", !clickableBox && !clickable]
648
83
  );
649
- function renderLabel() {
650
- return index.html` <label for="control" class="label" id="label">
651
- ${(x) => x.label}
652
- </label>`;
84
+ function handleControlChange(x) {
85
+ if (!x.clickableBox) x._handleCheckedChange();
653
86
  }
654
- function renderPlaceholder(context) {
655
- const optionTag = context.tagFor(definition$1.ListboxOption);
656
- return index.html`
657
- <${optionTag} ${ref.ref("placeholderOption")}
658
- text="${(x) => x.placeholder}" hidden disabled>
659
- </${optionTag}>`;
87
+ function checkbox(context) {
88
+ const checkboxTag = context.tagFor(definition.Checkbox);
89
+ return defineVividComponent.html`${when.when(
90
+ (x) => x.controlType !== "radio",
91
+ defineVividComponent.html`
92
+ <${checkboxTag}
93
+ aria-label="${(x) => !x.clickableBox && !x.clickable && x.ariaLabel ? x.ariaLabel : null}"
94
+ @change="${(x) => handleControlChange(x)}"
95
+ class="control checkbox"
96
+ connotation="${(x) => x.connotation === "cta" ? enums.Connotation.CTA : enums.Connotation.Accent}"
97
+ :checked="${(x) => x.checked}"
98
+ inert="${(x) => x.clickableBox || x.clickable ? true : null}"
99
+ ></${checkboxTag}>`
100
+ )} `;
660
101
  }
661
- function selectValue(context) {
662
- const affixIconTemplate = affix.affixIconTemplateFactory(context);
663
- const chevronTemplate = definition$2.chevronTemplateFactory(context);
664
- return index.html` <div
665
- class="control ${getStateClasses}"
666
- ${ref.ref("_anchor")}
667
- id="control"
668
- ?disabled="${(x) => x.disabled}"
669
- >
670
- <div class="selected-value">
671
- ${(x) => affixIconTemplate(x.icon, affix.IconWrapper.Slot)}
672
- <span class="text">${(x) => x.displayValue}</span>
673
- <slot name="meta" ${slotted.slotted("metaSlottedContent")}></slot>
674
- </div>
675
- ${chevronTemplate}
676
- </div>`;
677
- }
678
- function setFixedDropdownVarWidth(x) {
679
- return x.open && x.fixedDropdown ? `--_select-fixed-width: ${Math.round(x.getBoundingClientRect().width)}px` : null;
102
+ function radio(context) {
103
+ const radioTag = context.tagFor(definition$1.Radio);
104
+ return defineVividComponent.html`${when.when(
105
+ (x) => x.controlType === "radio",
106
+ defineVividComponent.html`
107
+ <${radioTag}
108
+ aria-label="${(x) => !x.clickableBox && !x.clickable && x.ariaLabel ? x.ariaLabel : null}"
109
+ @change="${(x) => handleControlChange(x)}"
110
+ class="control radio"
111
+ connotation="${(x) => x.connotation === "cta" ? enums.Connotation.CTA : enums.Connotation.Accent}"
112
+ :checked="${(x) => x.checked}"
113
+ inert="${(x) => x.clickableBox || x.clickable ? true : null}"
114
+ ></${radioTag}>`
115
+ )} `;
680
116
  }
681
- function renderControl(context) {
682
- const popupTag = context.tagFor(definition.Popup);
683
- return index.html`
684
- ${when.when((x) => x.label, renderLabel())}
685
- <div class="control-wrapper">
686
- ${when.when((x) => !x.multiple, selectValue(context))}
687
- <${popupTag} class="popup"
688
- style="${setFixedDropdownVarWidth}"
689
- ?open="${(x) => x.collapsible ? x.open : true}"
690
- :anchor="${(x) => x._anchor}"
691
- placement="bottom-start"
692
- strategy="${(x) => x.fixedDropdown ? null : "absolute"}">
693
- <div class="listbox"
694
- id="${(x) => x.listboxId}"
695
- role="listbox"
696
- ?disabled="${(x) => x.disabled}"
697
- ?hidden="${(x) => x.collapsible ? !x.open : false}"
698
- ${ref.ref("listbox")}>
699
- ${when.when((x) => x.placeholder, renderPlaceholder(context))}
700
- <slot
701
- ${slotted.slotted({
702
- filter: listbox.Listbox.slottedOptionFilter,
703
- flatten: true,
704
- property: "slottedOptions"
705
- })}>
706
- </slot>
707
- </div>
708
- </${popupTag}>
709
- </div>
710
- `;
711
- }
712
- function ifNotFromFeedback(handler) {
713
- return (x, c) => {
714
- if (!c.event.composedPath().includes(x._feedbackWrapper)) {
715
- return handler(x, c.event);
716
- }
717
- return true;
718
- };
719
- }
720
- const SelectTemplate = (context) => {
721
- return index.html`
722
- <template
723
- class="base"
724
- aria-label="${(x) => x.ariaLabel}"
725
- aria-activedescendant="${(x) => x.ariaActiveDescendant}"
726
- aria-controls="${(x) => x.ariaControls}"
727
- aria-disabled="${(x) => x.ariaDisabled}"
728
- aria-expanded="${(x) => x.ariaExpanded}"
729
- aria-haspopup="${(x) => x.collapsible ? "listbox" : null}"
730
- aria-multiselectable="${(x) => x.ariaMultiSelectable}"
731
- role="combobox"
732
- tabindex="${(x) => !x.disabled ? "0" : null}"
733
- @click="${ifNotFromFeedback((x, e) => x.clickHandler(e))}"
734
- @focusin="${ifNotFromFeedback((x, e) => x.focusinHandler(e))}"
735
- @focusout="${ifNotFromFeedback(
736
- (x, e) => x.focusoutHandler(e)
737
- )}"
738
- @keydown="${ifNotFromFeedback((x, e) => {
739
- x.open && index$1.handleEscapeKeyAndStopPropogation(e);
740
- return x.keydownHandler(e);
741
- })}"
742
- @mousedown="${ifNotFromFeedback(
743
- (x, e) => x.mousedownHandler(e)
744
- )}"
117
+ const SelectableBoxTemplate = (context) => {
118
+ return defineVividComponent.html`<template role="presentation">
119
+ <div
120
+ class="${getClasses}"
121
+ tabindex="${(x) => x.clickableBox || x.clickable ? "0" : null}"
122
+ role="${(x) => x.clickableBox || x.clickable ? "button" : null}"
123
+ aria-pressed="${(x) => x.clickableBox || x.clickable ? x.checked ? "true" : "false" : null}"
124
+ aria-label="${(x) => x.clickableBox || x.clickable ? x.ariaLabel : null}"
125
+ @keydown="${(x, c) => x._handleKeydown(c.event)}"
126
+ @click="${(x) => x.clickableBox || x.clickable ? x._handleCheckedChange() : null}"
745
127
  >
746
- ${renderControl(context)}
747
- <div class="feedback-wrapper" ${ref.ref("_feedbackWrapper")}>
748
- ${formElements.getFeedbackTemplate(context)}
749
- </div>
750
- </template>
751
- `;
128
+ ${checkbox(context)} ${radio(context)}
129
+ <slot></slot>
130
+ </div>
131
+ </template>`;
752
132
  };
753
133
 
754
- const selectDefinition = Select.compose({
755
- baseName: "select",
756
- template: SelectTemplate,
757
- styles
758
- });
759
- const selectRegistries = [
760
- selectDefinition(),
761
- ...definition.popupRegistries,
762
- ...definition$3.iconRegistries,
763
- ...definition$1.listboxOptionRegistries
764
- ];
765
- const registerSelect = index.registerFactory(selectRegistries);
134
+ const selectableBoxDefinition = defineVividComponent.defineVividComponent(
135
+ "selectable-box",
136
+ SelectableBox,
137
+ SelectableBoxTemplate,
138
+ [definition.checkboxDefinition, definition$1.radioDefinition],
139
+ {
140
+ styles,
141
+ shadowOptions: {
142
+ delegatesFocus: true
143
+ }
144
+ }
145
+ );
146
+ const registerSelectableBox = defineVividComponent.createRegisterFunction(
147
+ selectableBoxDefinition
148
+ );
766
149
 
767
- exports.registerSelect = registerSelect;
768
- exports.selectDefinition = selectDefinition;
769
- exports.selectRegistries = selectRegistries;
150
+ exports.registerSelectableBox = registerSelectableBox;
151
+ exports.selectableBoxDefinition = selectableBoxDefinition;