@vonage/vivid 5.17.0 → 5.18.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 (459) hide show
  1. package/accordion/definition.cjs +6 -6
  2. package/accordion/definition.js +1 -1
  3. package/accordion/index.cjs +1 -1
  4. package/accordion/index.js +2 -2
  5. package/accordion-item/definition.cjs +5 -5
  6. package/accordion-item/definition.js +1 -1
  7. package/accordion-item/index.cjs +1 -1
  8. package/accordion-item/index.js +2 -2
  9. package/alert/definition.cjs +5 -5
  10. package/alert/definition.js +1 -1
  11. package/alert/index.cjs +2 -2
  12. package/alert/index.js +6 -5
  13. package/audio-player/definition.cjs +5 -5
  14. package/audio-player/definition.js +1 -1
  15. package/audio-player/index.cjs +1 -1
  16. package/audio-player/index.js +2 -1
  17. package/avatar/definition.cjs +5 -5
  18. package/avatar/definition.js +1 -1
  19. package/avatar/index.cjs +3 -3
  20. package/avatar/index.js +6 -5
  21. package/badge/definition.cjs +5 -5
  22. package/badge/definition.js +1 -1
  23. package/badge/index.cjs +1 -4
  24. package/badge/index.js +4 -20
  25. package/banner/definition.cjs +5 -5
  26. package/banner/definition.js +1 -1
  27. package/banner/index.cjs +2 -2
  28. package/banner/index.js +5 -4
  29. package/breadcrumb-item/definition.cjs +4 -4
  30. package/breadcrumb-item/definition.js +1 -1
  31. package/breadcrumb-item/index.cjs +1 -1
  32. package/breadcrumb-item/index.js +1 -0
  33. package/bundled/affix.cjs +1 -1
  34. package/bundled/affix.js +5 -5
  35. package/bundled/definition11.cjs +2 -2
  36. package/bundled/definition11.js +5 -5
  37. package/bundled/definition12.cjs +3 -3
  38. package/bundled/definition12.js +5 -5
  39. package/bundled/definition13.cjs +2 -2
  40. package/bundled/definition13.js +4 -4
  41. package/bundled/definition15.cjs +3 -3
  42. package/bundled/definition15.js +7 -7
  43. package/bundled/definition17.cjs +3 -3
  44. package/bundled/definition17.js +8 -8
  45. package/bundled/definition18.cjs +2 -2
  46. package/bundled/definition18.js +6 -6
  47. package/bundled/definition2.cjs +3 -14
  48. package/bundled/definition2.js +15 -48
  49. package/bundled/definition20.cjs +5 -5
  50. package/bundled/definition20.js +8 -8
  51. package/bundled/definition22.cjs +4 -39
  52. package/bundled/definition22.js +18 -70
  53. package/bundled/definition23.cjs +12 -0
  54. package/bundled/definition23.js +37 -0
  55. package/bundled/definition24.cjs +39 -0
  56. package/bundled/definition24.js +72 -0
  57. package/bundled/definition3.cjs +1 -1
  58. package/bundled/definition3.js +9 -6
  59. package/bundled/definition4.cjs +2 -2
  60. package/bundled/definition4.js +5 -5
  61. package/bundled/definition6.cjs +11 -11
  62. package/bundled/definition6.js +45 -29
  63. package/bundled/localized.cjs +1 -1
  64. package/bundled/localized.js +1 -0
  65. package/bundled/mixins.cjs +4 -4
  66. package/bundled/mixins.js +7 -7
  67. package/bundled/numberConverter.cjs +12 -0
  68. package/bundled/numberConverter.js +38 -0
  69. package/bundled/picker-field.template.cjs +2 -1
  70. package/bundled/picker-field.template.js +2 -1
  71. package/bundled/utils.cjs +1 -0
  72. package/bundled/utils.js +1420 -0
  73. package/bundled/vivid-element.cjs +1 -1
  74. package/bundled/vivid-element.js +1 -1
  75. package/button/definition.cjs +5 -5
  76. package/button/definition.js +1 -1
  77. package/button/index.cjs +1 -1
  78. package/button/index.js +1 -1
  79. package/card/definition.cjs +5 -5
  80. package/card/definition.js +1 -1
  81. package/card/index.cjs +4 -4
  82. package/card/index.js +7 -6
  83. package/checkbox/definition.cjs +5 -5
  84. package/checkbox/definition.js +1 -1
  85. package/checkbox/index.cjs +1 -1
  86. package/checkbox/index.js +1 -1
  87. package/color-picker/definition.cjs +5 -5
  88. package/color-picker/definition.js +1 -1
  89. package/color-picker/index.cjs +7 -7
  90. package/color-picker/index.js +55 -54
  91. package/combobox/definition.cjs +5 -5
  92. package/combobox/definition.js +1 -1
  93. package/combobox/index.cjs +2 -2
  94. package/combobox/index.js +8 -7
  95. package/contextual-help/definition.cjs +5 -5
  96. package/contextual-help/definition.js +1 -1
  97. package/contextual-help/index.cjs +1 -1
  98. package/contextual-help/index.js +1 -1
  99. package/country/definition.cjs +5 -5
  100. package/country/definition.js +1 -1
  101. package/country/index.cjs +1 -12
  102. package/country/index.js +4 -1216
  103. package/country-group/definition.cjs +6 -0
  104. package/country-group/definition.js +3 -0
  105. package/country-group/index.cjs +43 -0
  106. package/country-group/index.js +166 -0
  107. package/custom-elements.json +1112 -450
  108. package/data-grid/definition.cjs +9 -9
  109. package/data-grid/definition.js +2 -2
  110. package/data-grid/index.cjs +4 -4
  111. package/data-grid/index.js +47 -46
  112. package/date-picker/definition.cjs +5 -5
  113. package/date-picker/definition.js +2 -2
  114. package/date-picker/index.cjs +1 -1
  115. package/date-picker/index.js +1 -1
  116. package/date-range-picker/definition.cjs +5 -5
  117. package/date-range-picker/definition.js +2 -2
  118. package/date-range-picker/index.cjs +1 -1
  119. package/date-range-picker/index.js +1 -1
  120. package/date-time-picker/definition.cjs +5 -5
  121. package/date-time-picker/definition.js +2 -2
  122. package/date-time-picker/index.cjs +1 -1
  123. package/date-time-picker/index.js +1 -1
  124. package/dial-pad/definition.cjs +5 -5
  125. package/dial-pad/definition.js +2 -2
  126. package/dial-pad/index.cjs +4 -4
  127. package/dial-pad/index.js +9 -8
  128. package/dialog/definition.cjs +5 -5
  129. package/dialog/definition.js +2 -2
  130. package/dialog/index.cjs +4 -4
  131. package/dialog/index.js +12 -11
  132. package/divider/definition.cjs +1 -1
  133. package/divider/definition.js +1 -1
  134. package/empty-state/definition.cjs +5 -5
  135. package/empty-state/definition.js +2 -2
  136. package/empty-state/index.cjs +2 -2
  137. package/empty-state/index.js +6 -5
  138. package/fab/definition.cjs +5 -5
  139. package/fab/definition.js +2 -2
  140. package/fab/index.cjs +2 -2
  141. package/fab/index.js +5 -4
  142. package/file-picker/definition.cjs +5 -5
  143. package/file-picker/definition.js +2 -2
  144. package/file-picker/index.cjs +6 -6
  145. package/file-picker/index.js +9 -8
  146. package/flag/definition.cjs +6 -0
  147. package/flag/definition.js +3 -0
  148. package/flag/index.cjs +10 -0
  149. package/flag/index.js +61 -0
  150. package/header/definition.cjs +1 -1
  151. package/header/definition.js +1 -1
  152. package/icon/definition.cjs +1 -0
  153. package/icon/definition.js +1 -0
  154. package/icon/index.cjs +1 -1
  155. package/icon/index.js +1 -0
  156. package/index.cjs +183 -174
  157. package/index.js +48 -45
  158. package/layout/definition.cjs +1 -1
  159. package/layout/definition.js +1 -1
  160. package/lib/button/button.d.ts +1 -0
  161. package/lib/components.d.ts +2 -0
  162. package/lib/country/countries-data.d.ts +1 -0
  163. package/lib/country/{country-code-to-flag-icon.d.ts → utils.d.ts} +0 -3
  164. package/lib/country-group/country-group.d.ts +829 -0
  165. package/lib/country-group/country-group.template.d.ts +3 -0
  166. package/lib/country-group/definition.d.ts +3 -0
  167. package/lib/country-group/index.d.ts +1 -0
  168. package/lib/country-group/locale.d.ts +3 -0
  169. package/lib/date-picker/date-picker.d.ts +4 -0
  170. package/lib/date-range-picker/date-range-picker.d.ts +2 -0
  171. package/lib/date-time-picker/date-time-picker.d.ts +4 -0
  172. package/lib/flag/definition.d.ts +3 -0
  173. package/lib/flag/flag.d.ts +8 -0
  174. package/lib/flag/flag.template.d.ts +3 -0
  175. package/lib/flag/index.d.ts +1 -0
  176. package/lib/icon/icon.d.ts +1 -2
  177. package/lib/searchable-select/option-tag.d.ts +3 -1
  178. package/lib/searchable-select/searchable-select.d.ts +3 -1
  179. package/lib/tag-name-map.d.ts +2 -1
  180. package/lib/time-picker/time-picker.d.ts +2 -0
  181. package/locales/de-DE.cjs +1 -0
  182. package/locales/de-DE.js +1 -0
  183. package/locales/en-GB.cjs +1 -0
  184. package/locales/en-GB.js +1 -0
  185. package/locales/en-US.cjs +1 -0
  186. package/locales/en-US.js +1 -0
  187. package/locales/ja-JP.cjs +1 -0
  188. package/locales/ja-JP.js +1 -0
  189. package/locales/zh-CN.cjs +1 -0
  190. package/locales/zh-CN.js +1 -0
  191. package/menu/definition.cjs +5 -5
  192. package/menu/definition.js +1 -1
  193. package/menu/index.cjs +1 -1
  194. package/menu/index.js +1 -1
  195. package/menu-item/definition.cjs +6 -6
  196. package/menu-item/definition.js +1 -1
  197. package/menu-item/index.cjs +1 -1
  198. package/menu-item/index.js +1 -1
  199. package/nav/definition.cjs +1 -1
  200. package/nav/definition.js +1 -1
  201. package/nav-disclosure/definition.cjs +5 -5
  202. package/nav-disclosure/definition.js +2 -2
  203. package/nav-disclosure/index.cjs +2 -2
  204. package/nav-disclosure/index.js +6 -5
  205. package/nav-item/definition.cjs +5 -5
  206. package/nav-item/definition.js +2 -2
  207. package/nav-item/index.cjs +2 -2
  208. package/nav-item/index.js +5 -4
  209. package/note/definition.cjs +5 -5
  210. package/note/definition.js +2 -2
  211. package/note/index.cjs +2 -2
  212. package/note/index.js +5 -4
  213. package/number-field/definition.cjs +5 -5
  214. package/number-field/definition.js +2 -2
  215. package/number-field/index.cjs +2 -2
  216. package/number-field/index.js +6 -5
  217. package/option/definition.cjs +5 -5
  218. package/option/definition.js +1 -1
  219. package/option/index.cjs +1 -1
  220. package/option/index.js +1 -1
  221. package/package.json +4 -4
  222. package/pagination/definition.cjs +5 -5
  223. package/pagination/definition.js +2 -2
  224. package/pagination/index.cjs +1 -1
  225. package/pagination/index.js +1 -1
  226. package/popover/definition.cjs +5 -5
  227. package/popover/definition.js +2 -2
  228. package/popover/index.cjs +4 -4
  229. package/popover/index.js +7 -6
  230. package/popup/definition.cjs +4 -4
  231. package/popup/definition.js +1 -1
  232. package/popup/index.cjs +1 -1
  233. package/popup/index.js +1 -1
  234. package/progress/definition.cjs +1 -1
  235. package/progress/definition.js +1 -1
  236. package/radio/definition.cjs +1 -1
  237. package/radio/definition.js +1 -1
  238. package/radio-group/definition.cjs +5 -5
  239. package/radio-group/definition.js +2 -2
  240. package/radio-group/index.cjs +1 -1
  241. package/radio-group/index.js +1 -1
  242. package/range-slider/definition.cjs +5 -5
  243. package/range-slider/definition.js +2 -2
  244. package/range-slider/index.cjs +1 -1
  245. package/range-slider/index.js +22 -19
  246. package/rich-text-editor/definition.cjs +32 -32
  247. package/rich-text-editor/definition.js +2 -2
  248. package/rich-text-editor/index.cjs +1 -1
  249. package/rich-text-editor/index.js +2 -2
  250. package/rich-text-view/definition.cjs +1 -1
  251. package/rich-text-view/definition.js +1 -1
  252. package/searchable-select/definition.cjs +4 -4
  253. package/searchable-select/definition.js +2 -2
  254. package/searchable-select/index.cjs +6 -4
  255. package/searchable-select/index.js +76 -73
  256. package/select/definition.cjs +5 -5
  257. package/select/definition.js +2 -2
  258. package/select/index.cjs +1 -1
  259. package/select/index.js +1 -1
  260. package/selectable-box/definition.cjs +5 -5
  261. package/selectable-box/definition.js +2 -2
  262. package/selectable-box/index.cjs +1 -1
  263. package/selectable-box/index.js +1 -1
  264. package/shared/icon/utils.d.ts +1 -0
  265. package/shared/localization/Locale.d.ts +2 -0
  266. package/shared/picker-field/mixins/calendar-picker.d.ts +1 -0
  267. package/shared/picker-field/mixins/calendar-picker.template.d.ts +1 -0
  268. package/shared/picker-field/mixins/min-max-calendar-picker.d.ts +1 -0
  269. package/shared/picker-field/mixins/single-date-picker.d.ts +1 -0
  270. package/shared/picker-field/mixins/single-value-picker.d.ts +1 -0
  271. package/shared/picker-field/mixins/time-selection-picker.d.ts +1 -0
  272. package/shared/picker-field/mixins/time-selection-picker.template.d.ts +2 -0
  273. package/shared/picker-field/picker-field.d.ts +2 -0
  274. package/side-drawer/definition.cjs +1 -1
  275. package/side-drawer/definition.js +1 -1
  276. package/simple-color-picker/definition.cjs +5 -5
  277. package/simple-color-picker/definition.js +2 -2
  278. package/simple-color-picker/index.cjs +2 -2
  279. package/simple-color-picker/index.js +6 -5
  280. package/slider/definition.cjs +5 -5
  281. package/slider/definition.js +1 -1
  282. package/slider/index.cjs +1 -1
  283. package/slider/index.js +1 -1
  284. package/split-button/definition.cjs +5 -5
  285. package/split-button/definition.js +2 -2
  286. package/split-button/index.cjs +2 -2
  287. package/split-button/index.js +7 -6
  288. package/status/definition.cjs +5 -5
  289. package/status/definition.js +2 -2
  290. package/status/index.cjs +2 -2
  291. package/status/index.js +5 -4
  292. package/switch/definition.cjs +5 -5
  293. package/switch/definition.js +2 -2
  294. package/switch/index.cjs +2 -2
  295. package/switch/index.js +6 -5
  296. package/tab/definition.cjs +5 -5
  297. package/tab/definition.js +2 -2
  298. package/tab/index.cjs +1 -1
  299. package/tab/index.js +1 -1
  300. package/tab-panel/definition.cjs +1 -1
  301. package/tab-panel/definition.js +1 -1
  302. package/table/definition.cjs +17 -17
  303. package/table/definition.js +2 -2
  304. package/table/index.cjs +3 -3
  305. package/table/index.js +6 -5
  306. package/tabs/definition.cjs +6 -6
  307. package/tabs/definition.js +2 -2
  308. package/tabs/index.cjs +1 -1
  309. package/tabs/index.js +1 -1
  310. package/tag/definition.cjs +5 -5
  311. package/tag/definition.js +2 -2
  312. package/tag/index.cjs +4 -4
  313. package/tag/index.js +6 -5
  314. package/tag-group/definition.cjs +1 -1
  315. package/tag-group/definition.js +1 -1
  316. package/text-area/definition.cjs +5 -5
  317. package/text-area/definition.js +2 -2
  318. package/text-area/index.cjs +1 -1
  319. package/text-area/index.js +1 -1
  320. package/text-field/definition.cjs +5 -5
  321. package/text-field/definition.js +1 -1
  322. package/text-field/index.cjs +1 -1
  323. package/text-field/index.js +1 -1
  324. package/time-picker/definition.cjs +4 -4
  325. package/time-picker/definition.js +2 -2
  326. package/time-picker/index.cjs +1 -1
  327. package/time-picker/index.js +1 -1
  328. package/toggletip/definition.cjs +5 -5
  329. package/toggletip/definition.js +1 -1
  330. package/toggletip/index.cjs +1 -1
  331. package/toggletip/index.js +1 -1
  332. package/tooltip/definition.cjs +5 -5
  333. package/tooltip/definition.js +1 -1
  334. package/tooltip/index.cjs +1 -1
  335. package/tooltip/index.js +1 -1
  336. package/tree-item/definition.cjs +5 -5
  337. package/tree-item/definition.js +2 -2
  338. package/tree-item/index.cjs +1 -1
  339. package/tree-item/index.js +1 -1
  340. package/tree-view/definition.cjs +5 -5
  341. package/tree-view/definition.js +2 -2
  342. package/tree-view/index.cjs +1 -1
  343. package/tree-view/index.js +1 -1
  344. package/unbundled/definition11.cjs +6 -0
  345. package/unbundled/definition11.js +6 -0
  346. package/unbundled/definition14.cjs +1 -0
  347. package/unbundled/definition14.js +1 -0
  348. package/unbundled/definition2.cjs +5 -75
  349. package/unbundled/definition2.js +1 -71
  350. package/unbundled/definition28.cjs +1 -0
  351. package/unbundled/definition28.js +1 -0
  352. package/unbundled/definition31.cjs +2 -1189
  353. package/unbundled/definition31.js +1 -1188
  354. package/unbundled/definition32.cjs +207 -1835
  355. package/unbundled/definition32.js +203 -1807
  356. package/unbundled/definition33.cjs +83 -311
  357. package/unbundled/definition33.js +79 -235
  358. package/unbundled/definition34.cjs +1887 -25
  359. package/unbundled/definition34.js +1857 -24
  360. package/unbundled/definition35.cjs +315 -121
  361. package/unbundled/definition35.js +236 -114
  362. package/unbundled/definition36.cjs +25 -405
  363. package/unbundled/definition36.js +22 -397
  364. package/unbundled/definition37.cjs +47 -142
  365. package/unbundled/definition37.js +44 -139
  366. package/unbundled/definition38.cjs +345 -330
  367. package/unbundled/definition38.js +343 -328
  368. package/unbundled/definition39.cjs +183 -235
  369. package/unbundled/definition39.js +181 -233
  370. package/unbundled/definition40.cjs +377 -47
  371. package/unbundled/definition40.js +372 -42
  372. package/unbundled/definition41.cjs +256 -57
  373. package/unbundled/definition41.js +255 -56
  374. package/unbundled/definition42.cjs +45 -432
  375. package/unbundled/definition42.js +41 -428
  376. package/unbundled/definition43.cjs +63 -49
  377. package/unbundled/definition43.js +61 -47
  378. package/unbundled/definition44.cjs +438 -30
  379. package/unbundled/definition44.js +434 -25
  380. package/unbundled/definition45.cjs +46 -84
  381. package/unbundled/definition45.js +43 -81
  382. package/unbundled/definition46.cjs +29 -54
  383. package/unbundled/definition46.js +24 -50
  384. package/unbundled/definition47.cjs +93 -21
  385. package/unbundled/definition47.js +91 -16
  386. package/unbundled/definition48.cjs +49 -33
  387. package/unbundled/definition48.js +46 -30
  388. package/unbundled/definition49.cjs +22 -347
  389. package/unbundled/definition49.js +16 -344
  390. package/unbundled/definition50.cjs +34 -211
  391. package/unbundled/definition50.js +30 -207
  392. package/unbundled/definition51.cjs +282 -242
  393. package/unbundled/definition51.js +275 -235
  394. package/unbundled/definition52.cjs +211 -51
  395. package/unbundled/definition52.js +209 -48
  396. package/unbundled/definition53.cjs +275 -131
  397. package/unbundled/definition53.js +272 -127
  398. package/unbundled/definition54.cjs +50 -261
  399. package/unbundled/definition54.js +48 -260
  400. package/unbundled/definition55.cjs +126 -443
  401. package/unbundled/definition55.js +123 -441
  402. package/unbundled/definition56.cjs +234 -3596
  403. package/unbundled/definition56.js +229 -3428
  404. package/unbundled/definition57.cjs +407 -728
  405. package/unbundled/definition57.js +405 -726
  406. package/unbundled/definition58.cjs +3618 -106
  407. package/unbundled/definition58.js +3449 -100
  408. package/unbundled/definition59.cjs +624 -868
  409. package/unbundled/definition59.js +619 -863
  410. package/unbundled/definition60.cjs +106 -108
  411. package/unbundled/definition60.js +102 -104
  412. package/unbundled/definition61.cjs +1040 -71
  413. package/unbundled/definition61.js +1035 -65
  414. package/unbundled/definition62.cjs +105 -169
  415. package/unbundled/definition62.js +101 -165
  416. package/unbundled/definition63.cjs +70 -113
  417. package/unbundled/definition63.js +65 -109
  418. package/unbundled/definition64.cjs +181 -53
  419. package/unbundled/definition64.js +178 -50
  420. package/unbundled/definition65.cjs +109 -76
  421. package/unbundled/definition65.js +109 -75
  422. package/unbundled/definition66.cjs +58 -21
  423. package/unbundled/definition66.js +55 -15
  424. package/unbundled/definition67.cjs +81 -74
  425. package/unbundled/definition67.js +79 -73
  426. package/unbundled/definition68.cjs +19 -344
  427. package/unbundled/definition68.js +14 -335
  428. package/unbundled/definition69.cjs +88 -26
  429. package/unbundled/definition69.js +85 -22
  430. package/unbundled/definition7.cjs +18 -3
  431. package/unbundled/definition7.js +18 -3
  432. package/unbundled/definition70.cjs +330 -111
  433. package/unbundled/definition70.js +320 -108
  434. package/unbundled/definition71.cjs +26 -271
  435. package/unbundled/definition71.js +21 -267
  436. package/unbundled/definition72.cjs +134 -27
  437. package/unbundled/definition72.js +125 -25
  438. package/unbundled/definition73.cjs +245 -113
  439. package/unbundled/definition73.js +242 -104
  440. package/unbundled/definition74.cjs +28 -212
  441. package/unbundled/definition74.js +26 -202
  442. package/unbundled/definition75.cjs +117 -479
  443. package/unbundled/definition75.js +109 -475
  444. package/unbundled/definition76.cjs +232 -0
  445. package/unbundled/definition76.js +213 -0
  446. package/unbundled/definition77.cjs +533 -0
  447. package/unbundled/definition77.js +513 -0
  448. package/unbundled/numberConverter.cjs +91 -0
  449. package/unbundled/numberConverter.js +74 -0
  450. package/unbundled/picker-field.template.cjs +2 -0
  451. package/unbundled/picker-field.template.js +2 -0
  452. package/unbundled/utils.cjs +1439 -0
  453. package/unbundled/utils.js +1428 -0
  454. package/unbundled/vivid-element.cjs +1 -1
  455. package/unbundled/vivid-element.js +1 -1
  456. package/video-player/definition.cjs +1 -1
  457. package/video-player/definition.js +1 -1
  458. package/vivid.api.json +513 -0
  459. /package/{lib/icon/icon.placeholder.d.ts → shared/icon/icon-placeholder.d.ts} +0 -0
@@ -3,508 +3,191 @@ const require_vivid_element = require("./vivid-element.cjs");
3
3
  const require_decorate = require("./decorate.cjs");
4
4
  const require_form_associated = require("./form-associated.cjs");
5
5
  const require_form_element = require("./form-element.cjs");
6
- const require_localized = require("./localized.cjs");
7
- const require_definition = require("./definition10.cjs");
8
- const require_key_codes = require("./key-codes.cjs");
9
- const require_slider_template = require("./slider.template.cjs");
6
+ const require_with_error_text = require("./with-error-text.cjs");
10
7
  let _microsoft_fast_element = require("@microsoft/fast-element");
11
8
  let _microsoft_fast_web_utilities = require("@microsoft/fast-web-utilities");
12
- //#region src/lib/range-slider/range-slider.scss?inline
13
- var range_slider_default = ":host{display:inline-block}:host(:not([orientation=vertical])){inline-size:100%}:host([orientation=vertical]){block-size:100%;min-block-size:calc(var(--_thumb-interaction-indicator-size) * 5)}:host([disabled]){cursor:not-allowed}.control.connotation-cta{--_connotation-color-primary:var(--vvd-slider-cta-primary,var(--vvd-color-cta-500))}.control:not(.connotation-cta){--_connotation-color-primary:var(--vvd-slider-accent-primary,var(--vvd-color-canvas-text))}.control{--_appearance-color-text:var(--_connotation-color-primary-text);--_appearance-color-fill:var(--_connotation-color-primary);--_appearance-color-outline:transparent;--_thumb-size:12px;--_thumb-interaction-indicator-size:36px;--_track-start-inset-inline-start:0;--_track-start-inset-block-start:0;cursor:pointer;user-select:none;outline:none}.control .positioning-region{position:relative}.control .track{background:var(--_track-background-color);border-radius:4px;position:absolute}.control .track-start{border-radius:inherit;background:var(--_track-start-background-color);block-size:100%;position:absolute;inset-inline-start:var(--_track-start-inset-inline-start)}.control.horizontal{block-size:var(--_thumb-interaction-indicator-size);inline-size:calc(100% - var(--_thumb-size));min-inline-size:var(--_thumb-size);margin-inline-start:calc(var(--_thumb-size) / 2)}.control.horizontal .track{top:calc((var(--_thumb-interaction-indicator-size) - 2px) / 2);block-size:2px;left:0;right:0}:host([markers]) .control.horizontal .track-start{--_track-start-inset-inline-start:1px;border-top-left-radius:0;border-bottom-left-radius:0}.control.horizontal .track .mark{block-size:6px;inline-size:100%;position:absolute;inset-block-start:-2px;inset-inline-start:0}.control.vertical{margin-top:calc(var(--_thumb-interaction-indicator-size) / 2);block-size:calc(100% - var(--_thumb-interaction-indicator-size));inline-size:var(--_thumb-interaction-indicator-size);min-block-size:var(--_thumb-interaction-indicator-size)}.control.vertical .positioning-region{block-size:100%}.control.vertical .track{left:calc((var(--_thumb-interaction-indicator-size) - 2px) / 2);block-size:100%;inline-size:2px}.control.vertical .track .mark{block-size:100%;inline-size:6px;position:absolute;inset-block-start:0;inset-inline-start:-2px}.control.vertical .track-start{block-size:auto;inline-size:100%;inset-block-start:var(--_track-start-inset-block-start)}:host([markers]) .control.vertical .track-start{--_track-start-inset-block-start:1px;border-radius:0}.control.disabled{--_track-background-color:var(--vvd-color-neutral-100);--_track-start-background-color:var(--vvd-color-neutral-300);pointer-events:none}.control:not(.disabled){--_track-background-color:var(--vvd-color-neutral-300);--_track-start-background-color:var(--_appearance-color-fill)}.control:not(.disabled) .mark{color:var(--vvd-color-neutral-950)}.control.disabled .mark{color:var(--_track-start-background-color)}.thumb-container{block-size:var(--_thumb-interaction-indicator-size);cursor:inherit;inline-size:var(--_thumb-interaction-indicator-size);touch-action:none;border-radius:50%;outline:none;position:absolute}.thumb-container.focus-visible{box-shadow:0 0 0 4px color-mix(in srgb, var(--focus-stroke-color,var(--vvd-color-cta-500)), transparent 85%), inset 0 0 0 3px var(--focus-stroke-gap-color,currentColor);outline:1px solid var(--focus-stroke-color,var(--vvd-color-cta-500));outline-offset:calc(-1px - var(--focus-inset,0px));--focus-stroke-gap-color:transparent;--_thumb-interaction-indicator-alpha:.05;border-radius:50%}.control.horizontal .thumb-container{transform:translateX(calc(var(--_thumb-interaction-indicator-size) / 2))}.control.vertical .thumb-container{transform:translateY(calc(var(--_thumb-interaction-indicator-size) / 2))}@media (hover:hover){.control:not(.disabled) .thumb-container:hover{--_thumb-interaction-indicator-alpha:.12}}.control:not(.disabled) .thumb-container:active{--_thumb-interaction-indicator-alpha:.25}.thumb-container:before{border-radius:inherit;background-color:var(--_track-start-background-color);block-size:var(--_thumb-interaction-indicator-size);content:\"\";inline-size:var(--_thumb-interaction-indicator-size);opacity:var(--_thumb-interaction-indicator-alpha,0);transition:opacity .2s ease-out;display:block;position:absolute}.thumb-container:after{border-radius:inherit;background-color:var(--_track-start-background-color);block-size:var(--_thumb-size);content:\"\";inline-size:var(--_thumb-size);inset:calc((var(--_thumb-interaction-indicator-size) - var(--_thumb-size)) / 2);display:block;position:absolute}.popup{pointer-events:none}.tooltip{width:auto;color:var(--vvd-color-canvas-text);font:var(--vvd-typography-base-bold);padding:8px 12px}:host([internal-part]) .thumb-container{opacity:0;transition:opacity .2s}:host([internal-part]) .control.horizontal .track{block-size:4px;top:16px;overflow:hidden}:host([internal-part]) .control:focus .thumb-container{opacity:1}@media (hover:hover){:host([internal-part]) .control:hover .thumb-container{opacity:1}}.control,:host([markers]) .control.horizontal .track-start,:host([markers]) .control.vertical .track-start{--_track-start-inset-inline-start:auto;--_track-start-inset-block-start:auto}";
9
+ //#region src/lib/radio/radio.scss?inline
10
+ var radio_default = ":host(:focus-visible){outline:none}:host([disabled]){cursor:not-allowed}.base.connotation-cta{--_connotation-color-primary:var(--vvd-radio-cta-primary,var(--vvd-color-cta-500));--_connotation-color-primary-text:var(--vvd-radio-cta-primary-text,var(--vvd-color-canvas));--_connotation-color-primary-increment:var(--vvd-radio-cta-primary-increment,var(--vvd-color-cta-600));--_connotation-color-intermediate:var(--vvd-radio-cta-intermediate,var(--vvd-color-cta-500));--_connotation-color-firm:var(--vvd-radio-cta-firm,var(--vvd-color-cta-600));--_connotation-color-fierce:var(--vvd-radio-cta-fierce,var(--vvd-color-cta-700))}.base:not(.connotation-cta){--_connotation-color-primary:var(--vvd-radio-accent-primary,var(--vvd-color-canvas-text));--_connotation-color-primary-text:var(--vvd-radio-accent-primary-text,var(--vvd-color-canvas));--_connotation-color-primary-increment:var(--vvd-radio-accent-primary-increment,var(--vvd-color-neutral-800));--_connotation-color-intermediate:var(--vvd-radio-accent-intermediate,var(--vvd-color-neutral-500));--_connotation-color-firm:var(--vvd-radio-accent-firm,var(--vvd-color-canvas-text));--_connotation-color-fierce:var(--vvd-radio-accent-fierce,var(--vvd-color-neutral-700))}.base{--_appearance-color-text:var(--vvd-color-canvas-text);--_appearance-color-fill:var(--vvd-color-canvas);--_appearance-color-outline:var(--vvd-color-neutral-500)}@media (hover:hover){.base: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(--vvd-color-neutral-700)}}.base.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(--vvd-color-neutral-700)}.base:checked:where(:not(.disabled,:disabled)),.base.checked:where(:not(.disabled,:disabled)){--_appearance-color-text:var(--_connotation-color-primary-text);--_appearance-color-fill:var(--_connotation-color-primary);--_appearance-color-outline:var(--_connotation-color-primary)}@media (hover:hover){.base:checked:hover:where(:not(.disabled,:disabled,.readonly)){--_appearance-color-text:var(--_connotation-color-primary-text);--_appearance-color-fill:var(--_connotation-color-primary-increment);--_appearance-color-outline:var(--_connotation-color-primary-increment)}}.base.checked.hover:where(:not(.disabled,:disabled,.readonly)){--_appearance-color-text:var(--_connotation-color-primary-text);--_appearance-color-fill:var(--_connotation-color-primary-increment);--_appearance-color-outline:var(--_connotation-color-primary-increment)}.base:disabled,.base.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.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{cursor:pointer;align-items:center;gap:8px;display:inline-flex}@supports (user-select:none){.base{user-select:none}}.base.disabled{pointer-events:none}.control{block-size:calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density,0), 2) - 20));box-shadow:inset 0 0 0 2px var(--_appearance-color-outline);inline-size:calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density,0), 2) - 20));border-radius:50%;flex-shrink:0;position:relative}.base:not(.checked) .control{background-color:var(--_appearance-color-fill)}.control:after{border-radius:inherit;background-color:var(--_appearance-color-outline);content:\"\";opacity:1;transition:opacity .2s;position:absolute;inset:5px}.base:not(.checked) .control:after{opacity:0}:host(:focus-visible) .control{--focus-stroke-gap-color:transparent;position:relative}:host(:focus-visible) .control:before{box-shadow:0 0 0 4px color-mix(in srgb, var(--focus-stroke-color,var(--vvd-color-cta-500)), transparent 85%), inset 0 0 0 3px var(--focus-stroke-gap-color,currentColor);outline:1px solid var(--focus-stroke-color,var(--vvd-color-cta-500));outline-offset:calc(-1px - var(--focus-inset,0px));border-radius:var(--focus-border-radius,inherit);block-size:calc(100% + var(--focus-block-size-addition,4px));content:\"\";inline-size:calc(100% + var(--focus-block-size-addition,4px));display:block;position:absolute;inset-block-start:50%;inset-inline-start:50%;transform:translate(-50%,-50%)}label{color:var(--vvd-color-canvas-text);cursor:pointer;font:var(--vvd-typography-base)}";
14
11
  //#endregion
15
- //#region src/lib/range-slider/range-slider.ts
16
- var Direction = {
17
- Increment: 1,
18
- Decrement: -1
19
- };
12
+ //#region src/lib/radio/radio.ts
20
13
  /**
21
- * Base class for range-slider
22
- *
23
- * @component range-slider
24
14
  * @public
25
- * @event {CustomEvent<undefined>} input:start - Event emitted when the start value changes
26
- * @event {CustomEvent<undefined>} input:end - Event emitted when the end value changes
27
- * @event {CustomEvent<undefined>} input - Event emitted when either the start or end value changes.
28
- * @event {CustomEvent<undefined>} change - Event emitted when either the start or end value changes.
29
- * @vueModel start start input:start `event.currentTarget.start`
30
- * @vueModel end end input:end `event.currentTarget.end`
31
- * @vueModel startAsNumber startAsNumber input:start `event.currentTarget.startAsNumber`
32
- * @vueModel endAsNumber endAsNumber input:end `event.currentTarget.endAsNumber`
33
- * @testSelector byLabel byLabel
34
- * @testAction slideStartTo slideTo #track #startThumb
35
- * @testAction slideEndTo slideTo #track #endThumb
36
- * @testQuery range rangeAsNumber
37
- * @testRef track shadow .control
38
- * @testRef startThumb shadow #start-thumb
39
- * @testRef endThumb shadow #end-thumb
15
+ * @event {CustomEvent<undefined>} change - Fires a custom 'change' event when the value changes
16
+ * @component radio
17
+ * @testAction check click #control
18
+ * @testQuery checked checked true
19
+ * @testQuery unchecked checked false
20
+ * @testRef control shadow .control
40
21
  */
41
- var RangeSlider = class extends require_localized.Localized(require_form_element.FormElement(require_form_associated.FormAssociated(require_vivid_element.VividElement))) {
42
- constructor(..._args) {
43
- super(..._args);
44
- this.start = "";
45
- this.end = "";
46
- this.min = 0;
47
- this.max = 10;
48
- this.step = 1;
49
- this.orientation = _microsoft_fast_web_utilities.Orientation.horizontal;
50
- this.ariaStartLabel = null;
51
- this.ariaEndLabel = null;
52
- this.markers = false;
53
- this.pin = false;
54
- this.valueTextFormatter = (value) => parseFloat(value).toLocaleString(this.locale.lang);
55
- this.proxy = document.createElement("input");
56
- this._trackEl = null;
57
- this._startThumbEl = null;
58
- this._endThumbEl = null;
59
- this._draggingThumb = false;
60
- this._visiblyFocusedThumb = null;
61
- this._hoveredThumb = null;
62
- this._startThumbCss = "";
63
- this._endThumbCss = "";
64
- this._selectedRangeCss = "";
65
- }
66
- #isInternalValueUpdate = false;
22
+ var Radio = class extends require_with_error_text.WithErrorText(require_form_element.FormElement(require_form_associated.CheckableFormAssociated(require_vivid_element.VividElement))) {
67
23
  /**
68
24
  * @internal
69
25
  */
70
- startChanged() {
71
- this.currentStart = this.start;
72
- if (!this.#isInternalValueUpdate) {
73
- this.dirtyValue = true;
74
- this.#updateFormValue();
75
- }
76
- if (this.$fastController.isConnected) this.#updateThumbPositions();
26
+ readOnlyChanged() {
27
+ /* v8 ignore if -- @preserve */
28
+ if (this.proxy instanceof HTMLInputElement) this.proxy.readOnly = this.readOnly;
77
29
  }
78
30
  /**
79
31
  * @internal
80
32
  */
81
- initialStartChanged(_, newValue) {
82
- if (newValue && !this.dirtyValue) {
83
- this.start = newValue;
84
- this.dirtyValue = false;
33
+ defaultCheckedChanged() {
34
+ if (this.$fastController.isConnected && !this.dirtyChecked) {
35
+ /* v8 ignore else -- @preserve */
36
+ if (!this.isInsideRadioGroup()) {
37
+ this.checked = this.defaultChecked;
38
+ this.dirtyChecked = false;
39
+ }
85
40
  }
86
41
  }
87
- /**
88
- * @internal
89
- */
90
- currentStartChanged() {
91
- this.start = this.currentStart;
92
- }
93
- /**
94
- * The start property, typed as a number.
95
- *
96
- * @public
97
- */
98
- get startAsNumber() {
99
- return parseFloat(this.start);
100
- }
101
- set startAsNumber(next) {
102
- this.start = next.toString();
42
+ constructor() {
43
+ super();
44
+ this.initialValue = "on";
45
+ this.defaultSlottedNodes = [];
46
+ this.keypressHandler = (e) => {
47
+ switch (e.key) {
48
+ case _microsoft_fast_web_utilities.keySpace:
49
+ if (!this.checked && !this.readOnly) this.checked = true;
50
+ return;
51
+ }
52
+ return true;
53
+ };
54
+ this.proxy = document.createElement("input");
55
+ this.proxy.setAttribute("type", "radio");
56
+ this.proxy.setAttribute("name", this.name);
57
+ this.checked = this.defaultChecked;
58
+ this.dirtyChecked = false;
103
59
  }
104
60
  /**
105
61
  * @internal
106
62
  */
107
- endChanged() {
108
- this.currentEnd = this.end;
109
- if (!this.#isInternalValueUpdate) {
110
- this.dirtyValue = true;
111
- this.#updateFormValue();
112
- }
113
- if (this.$fastController.isConnected) this.#updateThumbPositions();
63
+ nameChanged(previous, next) {
64
+ super.nameChanged(previous, next);
65
+ next !== null ? this.proxy.setAttribute("name", this.name) : this.proxy.removeAttribute("name");
66
+ _microsoft_fast_element.Updates.enqueue(this.validate);
114
67
  }
115
68
  /**
116
69
  * @internal
117
70
  */
118
- initialEndChanged(_, newValue) {
119
- if (newValue && !this.dirtyValue) {
120
- this.end = newValue;
121
- this.dirtyValue = false;
71
+ connectedCallback() {
72
+ super.connectedCallback();
73
+ _microsoft_fast_element.Updates.enqueue(this.validate);
74
+ if (this.parentElement.getAttribute("data-vvd-component") !== "radio-group" && this.getAttribute("tabindex") === null) {
75
+ /* v8 ignore else -- @preserve */
76
+ if (!this.disabled) this.setAttribute("tabindex", "0");
122
77
  }
123
- }
124
- /**
125
- * @internal
126
- */
127
- currentEndChanged() {
128
- this.end = this.currentEnd;
129
- }
130
- /**
131
- * The end property, typed as a number.
132
- *
133
- * @public
134
- */
135
- get endAsNumber() {
136
- return parseFloat(this.end);
137
- }
138
- set endAsNumber(next) {
139
- this.end = next.toString();
140
- }
141
- #updateValues({ start, end }, emitEvents = true) {
142
- if (start === this.start) start = void 0;
143
- if (end === this.end) end = void 0;
144
- if (start === void 0 && end === void 0) return;
145
- this.#isInternalValueUpdate = true;
146
- if (start !== void 0) this.start = start;
147
- if (end !== void 0) this.end = end;
148
- this.#isInternalValueUpdate = false;
149
- if (emitEvents) {
150
- if (start !== void 0) this.$emit("input:start");
151
- if (end !== void 0) this.$emit("input:end");
152
- this.$emit("input");
153
- this.$emit("change");
154
- this.dirtyValue = true;
78
+ if (this.defaultChecked) {
79
+ /* v8 ignore else -- @preserve */
80
+ if (!this.dirtyChecked) {
81
+ if (!this.isInsideRadioGroup()) {
82
+ this.checked = this.defaultChecked;
83
+ this.dirtyChecked = false;
84
+ }
85
+ }
155
86
  }
156
- this.#updateFormValue();
157
- }
158
- #applyStep(thumb, direction) {
159
- this.#updateValues({ [thumb]: this.#roundToNearestStep(thumb, Number(this[thumb]) + direction * this.step).toString() });
160
87
  }
161
- /**
162
- * @internal
163
- */
164
- orientationChanged() {
165
- if (this.$fastController.isConnected) this.#updateThumbPositions();
88
+ isInsideRadioGroup() {
89
+ return this.closest("[data-vvd-component=\"radio-group\"]") !== null;
166
90
  }
167
91
  /**
168
92
  * @internal
169
93
  */
170
- nameChanged(previous, next) {
171
- super.nameChanged(previous, next);
172
- this.#updateFormValue();
173
- }
174
- #updateFormValue() {
175
- if (!this.name) this.setFormValue(null);
176
- else {
177
- const formData = new FormData();
178
- formData.append(this.name, this.start);
179
- formData.append(this.name, this.end);
180
- this.setFormValue(formData);
181
- }
182
- }
183
- formResetCallback() {
184
- this.#updateValues({
185
- start: this.initialStart ?? this.min.toString(),
186
- end: this.initialEnd ?? this.max.toString()
187
- });
188
- super.formResetCallback();
189
- }
190
- get #thumbs() {
191
- return {
192
- start: this._startThumbEl,
193
- end: this._endThumbEl
194
- };
195
- }
196
- get #thumbConstraints() {
197
- return {
198
- start: {
199
- min: this.min,
200
- max: this.endAsNumber
201
- },
202
- end: {
203
- min: this.startAsNumber,
204
- max: this.max
94
+ clickHandler(_) {
95
+ if (!this.disabled && !this.readOnly && !this.checked) this.checked = true;
96
+ }
97
+ get #radioSiblings() {
98
+ const siblings = this.parentElement?.querySelectorAll(`${this.tagName.toLocaleLowerCase()}[name="${this.name}"]`);
99
+ if (siblings) return Array.from(siblings);
100
+ return [];
101
+ }
102
+ get #radioGroup() {
103
+ const parentGroup = this.closest(`${this.tagName.toLocaleLowerCase()}-group[name="${this.name}"]`);
104
+ if (parentGroup) return parentGroup;
105
+ return null;
106
+ }
107
+ #validateValueMissingWithSiblings = () => {
108
+ const siblings = this.#radioSiblings;
109
+ const group = this.#radioGroup;
110
+ if (siblings && siblings.length > 1) {
111
+ if (siblings.some((x) => x.checked)) {
112
+ this.setValidity({ valueMissing: false });
113
+ this.errorValidationMessage = "";
114
+ if (group) group.errorValidationMessage = "";
205
115
  }
206
- };
207
- }
208
- #getThumbId(thumb) {
209
- return thumb === this._startThumbEl ? "start" : "end";
210
- }
211
- #getThumbIdFromEvent(e) {
212
- return this.#getThumbId(e.target);
213
- }
214
- #updateThumbPositions() {
215
- const startOffsetPct = this.#thumbTrackEndOffset(this.startAsNumber);
216
- const endOffsetPct = this.#thumbTrackEndOffset(this.endAsNumber);
217
- const [dirProp, dimProp] = this.orientation === _microsoft_fast_web_utilities.Orientation.horizontal ? ["right", "width"] : ["bottom", "height"];
218
- const transition = `transition: ${this._draggingThumb ? "none" : "all 0.2s ease"};`;
219
- this._startThumbCss = `${dirProp}: ${startOffsetPct}%; ${transition}`;
220
- this._endThumbCss = `${dirProp}: ${endOffsetPct}%; ${transition}`;
221
- this._selectedRangeCss = `${dirProp}: ${endOffsetPct}%; ${dimProp}: ${startOffsetPct - endOffsetPct}%; ${transition}`;
222
- }
223
- #thumbTrackEndOffset(value) {
224
- return (1 - require_slider_template.inverseLerp(this.min, this.max, value)) * 100;
225
- }
226
- #calculateValueFromMouseEvent(e) {
227
- const trackClientRect = this._trackEl.getBoundingClientRect();
228
- const [minPos, maxPos, valuePos] = this.orientation === _microsoft_fast_web_utilities.Orientation.horizontal ? [
229
- this._trackEl.clientLeft,
230
- this._trackEl.clientWidth,
231
- e.pageX - document.documentElement.scrollLeft - this.getBoundingClientRect().left
232
- ] : [
233
- trackClientRect.top,
234
- trackClientRect.bottom,
235
- e.pageY - document.documentElement.scrollTop
236
- ];
237
- return require_slider_template.lerp(this.min, this.max, require_slider_template.inverseLerp(minPos, maxPos, valuePos));
238
- }
239
- #roundToNearestStep(thumb, value) {
240
- return (0, _microsoft_fast_web_utilities.limit)(this.#thumbConstraints[thumb].min, this.#thumbConstraints[thumb].max, require_slider_template.roundToStepValue(value - this.min, this.step) + this.min);
241
- }
242
- #isNonVisibleFocus = false;
243
- #focusThumbNonVisibly(thumb) {
244
- this.#isNonVisibleFocus = true;
245
- thumb.focus();
246
- this.#isNonVisibleFocus = false;
247
- }
248
- /**
249
- * @internal
250
- */
251
- _isThumbPopupOpen(thumb) {
252
- return this._visiblyFocusedThumb === thumb || this._hoveredThumb === thumb || this._draggingThumb === thumb;
253
- }
254
- connectedCallback() {
255
- super.connectedCallback();
256
- this.#updateValues({
257
- start: this.start || this.initialStart || this.min.toString(),
258
- end: this.end || this.initialEnd || this.max.toString()
259
- }, false);
260
- this.#registerThumbListeners();
261
- this.#updateThumbPositions();
262
- }
263
- disconnectedCallback() {
264
- super.disconnectedCallback();
265
- this.#unregisterThumbListeners();
266
- this.#unregisterDragListeners();
267
- }
268
- #registerThumbListeners() {
269
- for (const thumb of ["start", "end"]) {
270
- this.#thumbs[thumb].addEventListener("keydown", this.#onThumbKeydown);
271
- this.#thumbs[thumb].addEventListener("mousedown", this.#onThumbMousedown, { passive: true });
272
- this.#thumbs[thumb].addEventListener("touchstart", this.#onThumbMousedown, { passive: true });
273
- this.#thumbs[thumb].addEventListener("mouseover", this.#onMouseOver, { passive: true });
274
- this.#thumbs[thumb].addEventListener("mouseout", this.#onMouseOut, { passive: true });
275
- this.#thumbs[thumb].addEventListener("focus", this.#onThumbFocus);
276
- this.#thumbs[thumb].addEventListener("blur", this.#onThumbBlur);
277
116
  }
278
- }
279
- #unregisterThumbListeners() {
280
- for (const thumb of ["start", "end"]) {
281
- this.#thumbs[thumb].removeEventListener("keydown", this.#onThumbKeydown);
282
- this.#thumbs[thumb].removeEventListener("mousedown", this.#onThumbMousedown);
283
- this.#thumbs[thumb].removeEventListener("touchstart", this.#onThumbMousedown);
284
- this.#thumbs[thumb].removeEventListener("mouseover", this.#onMouseOver);
285
- this.#thumbs[thumb].removeEventListener("mouseout", this.#onMouseOut);
286
- this.#thumbs[thumb].removeEventListener("focus", this.#onThumbFocus);
287
- this.#thumbs[thumb].removeEventListener("blur", this.#onThumbBlur);
117
+ };
118
+ #syncSiblingsRequiredValidationStatus = () => {
119
+ if (this.elementInternals && !this.validity.valueMissing) {
120
+ const siblings = this.#radioSiblings;
121
+ const group = this.#radioGroup;
122
+ if (siblings && siblings.length > 1) siblings.forEach((x) => {
123
+ x.elementInternals.setValidity({ valueMissing: false });
124
+ x.errorValidationMessage = "";
125
+ if (group) group.errorValidationMessage = "";
126
+ });
288
127
  }
289
- }
128
+ };
290
129
  /**
291
130
  * @internal
292
131
  */
293
- _onMouseDown(e) {
294
- if (this.disabled || this._draggingThumb) return;
295
- const value = this.#calculateValueFromMouseEvent(e);
296
- const startDistance = Math.abs(value - Number(this.start));
297
- const endDistance = Math.abs(value - Number(this.end));
298
- const thumb = startDistance < endDistance || startDistance === endDistance && value < Number(this.start) ? "start" : "end";
299
- this.#updateValues({ [thumb]: `${this.#roundToNearestStep(thumb, value)}` });
300
- this._draggingThumb = thumb;
301
- this.#focusThumbNonVisibly(this.#thumbs[thumb]);
302
- this.#registerDragHandlers();
303
- }
304
- #onThumbFocus = (e) => {
305
- if (!this.#isNonVisibleFocus) this._visiblyFocusedThumb = this.#getThumbIdFromEvent(e);
306
- };
307
- #onThumbBlur = () => {
308
- this._visiblyFocusedThumb = null;
309
- };
310
- #onMouseOver = (e) => {
311
- this._hoveredThumb = this.#getThumbIdFromEvent(e);
312
- };
313
- #onMouseOut = () => {
314
- this._hoveredThumb = null;
315
- };
316
- #onThumbMousedown = (event) => {
317
- if (this.disabled || event.defaultPrevented) return;
318
- let target = event.target;
319
- if (target === this._endThumbEl && this.startAsNumber === this.max && this.endAsNumber === this.max) target = this._startThumbEl;
320
- this.#focusThumbNonVisibly(target);
321
- this._draggingThumb = this.#getThumbId(target);
322
- this.#registerDragHandlers();
323
- };
324
- #onThumbKeydown = (e) => {
325
- const thumb = this.#getThumbIdFromEvent(e);
326
- this._visiblyFocusedThumb = thumb;
327
- if (e.key === _microsoft_fast_web_utilities.keyHome) {
328
- e.preventDefault();
329
- this.#updateValues({ [thumb]: `${this.#thumbConstraints[thumb].min}` });
330
- } else if (e.key === _microsoft_fast_web_utilities.keyEnd) {
331
- e.preventDefault();
332
- this.#updateValues({ [thumb]: `${this.#thumbConstraints[thumb].max}` });
333
- } else {
334
- if (e.shiftKey) return;
335
- switch (e.key) {
336
- case require_key_codes.keyArrowRight:
337
- case _microsoft_fast_web_utilities.keyArrowDown:
338
- e.preventDefault();
339
- this.#applyStep(thumb, Direction.Increment);
340
- break;
341
- case require_key_codes.keyArrowLeft:
342
- case _microsoft_fast_web_utilities.keyArrowUp:
343
- e.preventDefault();
344
- this.#applyStep(thumb, Direction.Decrement);
345
- break;
346
- }
132
+ validate(anchor) {
133
+ super.validate(anchor);
134
+ if (this.proxy) {
135
+ this.errorValidationMessage = this.validationMessage || "";
136
+ if (this.validity.valueMissing) this.#validateValueMissingWithSiblings();
137
+ else this.#syncSiblingsRequiredValidationStatus();
347
138
  }
348
- };
349
- #registerDragHandlers() {
350
- window.addEventListener("mousemove", this.#onDragMove, { passive: true });
351
- window.addEventListener("touchmove", this.#onDragMove, { passive: true });
352
- window.addEventListener("mouseup", this.#onDragEnd);
353
- window.addEventListener("touchend", this.#onDragEnd);
354
- window.document.addEventListener("mouseleave", this.#onDragEnd);
355
- }
356
- #unregisterDragListeners() {
357
- window.removeEventListener("mouseup", this.#onDragEnd);
358
- window.document.removeEventListener("mouseleave", this.#onDragEnd);
359
- window.removeEventListener("mousemove", this.#onDragMove);
360
- window.removeEventListener("touchmove", this.#onDragMove);
361
- window.removeEventListener("touchend", this.#onDragEnd);
362
139
  }
363
- #onDragMove = (e) => {
364
- if (this.disabled || e.defaultPrevented || !this._draggingThumb) return;
365
- const sourceEvent = "TouchEvent" in window && e instanceof TouchEvent ? e.touches[0] : e;
366
- const value = this.#calculateValueFromMouseEvent(sourceEvent);
367
- this.#updateValues({ [this._draggingThumb]: `${this.#roundToNearestStep(this._draggingThumb, value)}` });
368
- };
369
- #onDragEnd = () => {
370
- this._draggingThumb = false;
371
- this.#unregisterDragListeners();
372
- };
373
140
  };
374
- require_decorate.__decorate([_microsoft_fast_element.observable], RangeSlider.prototype, "start", void 0);
375
- require_decorate.__decorate([(0, _microsoft_fast_element.attr)({
376
- mode: "fromView",
377
- attribute: "start"
378
- })], RangeSlider.prototype, "initialStart", void 0);
379
- require_decorate.__decorate([(0, _microsoft_fast_element.attr)({ attribute: "current-start" })], RangeSlider.prototype, "currentStart", void 0);
380
- require_decorate.__decorate([_microsoft_fast_element.observable], RangeSlider.prototype, "end", void 0);
141
+ require_decorate.__decorate([_microsoft_fast_element.attr], Radio.prototype, "connotation", void 0);
381
142
  require_decorate.__decorate([(0, _microsoft_fast_element.attr)({
382
- mode: "fromView",
383
- attribute: "end"
384
- })], RangeSlider.prototype, "initialEnd", void 0);
385
- require_decorate.__decorate([(0, _microsoft_fast_element.attr)({ attribute: "current-end" })], RangeSlider.prototype, "currentEnd", void 0);
386
- require_decorate.__decorate([(0, _microsoft_fast_element.attr)({ converter: _microsoft_fast_element.nullableNumberConverter })], RangeSlider.prototype, "min", void 0);
387
- require_decorate.__decorate([(0, _microsoft_fast_element.attr)({ converter: _microsoft_fast_element.nullableNumberConverter })], RangeSlider.prototype, "max", void 0);
388
- require_decorate.__decorate([(0, _microsoft_fast_element.attr)({ converter: require_slider_template.defaultToOneConverter })], RangeSlider.prototype, "step", void 0);
389
- require_decorate.__decorate([_microsoft_fast_element.attr], RangeSlider.prototype, "orientation", void 0);
390
- require_decorate.__decorate([(0, _microsoft_fast_element.attr)({ attribute: "aria-start-label" })], RangeSlider.prototype, "ariaStartLabel", void 0);
391
- require_decorate.__decorate([(0, _microsoft_fast_element.attr)({ attribute: "aria-end-label" })], RangeSlider.prototype, "ariaEndLabel", void 0);
392
- require_decorate.__decorate([(0, _microsoft_fast_element.attr)({ mode: "boolean" })], RangeSlider.prototype, "markers", void 0);
393
- require_decorate.__decorate([_microsoft_fast_element.attr], RangeSlider.prototype, "connotation", void 0);
394
- require_decorate.__decorate([(0, _microsoft_fast_element.attr)({ mode: "boolean" })], RangeSlider.prototype, "pin", void 0);
395
- require_decorate.__decorate([_microsoft_fast_element.observable], RangeSlider.prototype, "valueTextFormatter", void 0);
396
- require_decorate.__decorate([_microsoft_fast_element.observable], RangeSlider.prototype, "_draggingThumb", void 0);
397
- require_decorate.__decorate([_microsoft_fast_element.observable], RangeSlider.prototype, "_visiblyFocusedThumb", void 0);
398
- require_decorate.__decorate([_microsoft_fast_element.observable], RangeSlider.prototype, "_hoveredThumb", void 0);
399
- require_decorate.__decorate([_microsoft_fast_element.observable], RangeSlider.prototype, "_startThumbCss", void 0);
400
- require_decorate.__decorate([_microsoft_fast_element.observable], RangeSlider.prototype, "_endThumbCss", void 0);
401
- require_decorate.__decorate([_microsoft_fast_element.observable], RangeSlider.prototype, "_selectedRangeCss", void 0);
143
+ attribute: "readonly",
144
+ mode: "boolean"
145
+ })], Radio.prototype, "readOnly", void 0);
146
+ require_decorate.__decorate([_microsoft_fast_element.observable], Radio.prototype, "defaultSlottedNodes", void 0);
402
147
  //#endregion
403
- //#region src/lib/range-slider/range-slider.template.ts
404
- var getClasses = ({ disabled, connotation }) => (0, _microsoft_fast_web_utilities.classNames)("control", ["disabled", Boolean(disabled)], [`connotation-${connotation}`, Boolean(connotation)]);
405
- var getThumbClassesFor = (thumb) => ({ _visiblyFocusedThumb }) => (0, _microsoft_fast_web_utilities.classNames)("thumb-container", ["focus-visible", _visiblyFocusedThumb === thumb]);
406
- var RangeSliderTemplate = (context) => {
407
- const popupTag = context.tagFor(require_definition.Popup);
408
- return _microsoft_fast_element.html` <template
409
- @mousedown="${(x, c) => x._onMouseDown(c.event)}"
410
- >
411
- <div class="${getClasses} ${(x) => x.orientation}">
412
- <div class="positioning-region">
413
- <div ${(0, _microsoft_fast_element.ref)("_trackEl")} class="track">
414
- <div class="track-start" style="${(x) => x._selectedRangeCss}"></div>
415
- ${(0, _microsoft_fast_element.when)((x) => x.markers, _microsoft_fast_element.html`${(x) => require_slider_template.getMarkersTemplate(x.orientation === _microsoft_fast_web_utilities.Orientation.horizontal, Math.floor((x.max - x.min) / x.step))}`)}
416
- </div>
417
- <div
418
- id="start-thumb"
419
- ${(0, _microsoft_fast_element.ref)("_startThumbEl")}
420
- class="${getThumbClassesFor("start")}"
421
- style="${(x) => x._startThumbCss}"
422
- role="slider"
423
- tabindex="${(x) => x.disabled ? null : 0}"
424
- aria-label="${(x) => x.ariaStartLabel || x.locale.rangeSlider.startThumbLabel}"
425
- aria-valuetext="${(x) => x.valueTextFormatter(x.start)}"
426
- aria-valuenow="${(x) => x.start}"
427
- aria-valuemin="${(x) => x.min}"
428
- aria-valuemax="${(x) => x.end}"
429
- aria-disabled="${(x) => x.disabled}"
430
- aria-orientation="${(x) => x.orientation}"
431
- ></div>
432
- ${(0, _microsoft_fast_element.when)((x) => x.pin, _microsoft_fast_element.html`<${popupTag}
433
- class="popup"
434
- arrow
435
- alternate
436
- :anchor="${(x) => x._startThumbEl}"
437
- :open=${(x) => x._isThumbPopupOpen("start")}
438
- :placementStrategy=${(x) => x.orientation === _microsoft_fast_web_utilities.Orientation.horizontal ? require_definition.PlacementStrategy.AutoPlacementHorizontal : require_definition.PlacementStrategy.AutoPlacementVertical}
439
- animation-frame
440
- exportparts="vvd-theme-alternate"
441
- aria-hidden="true"
442
- >
443
- <div class="tooltip">${(x) => x.valueTextFormatter(x.start)}</div>
444
- </${popupTag}>`)}
445
- <div
446
- id="end-thumb"
447
- ${(0, _microsoft_fast_element.ref)("_endThumbEl")}
448
- class="${getThumbClassesFor("end")}"
449
- style="${(x) => x._endThumbCss}"
450
- role="slider"
451
- tabindex="${(x) => x.disabled ? null : 0}"
452
- aria-label="${(x) => x.ariaEndLabel || x.locale.rangeSlider.endThumbLabel}"
453
- aria-valuetext="${(x) => x.valueTextFormatter(x.end)}"
454
- aria-valuenow="${(x) => x.end}"
455
- aria-valuemin="${(x) => x.start}"
456
- aria-valuemax="${(x) => x.max}"
457
- aria-disabled="${(x) => x.disabled}"
458
- aria-orientation="${(x) => x.orientation}"
459
- ></div>
460
- ${(0, _microsoft_fast_element.when)((x) => x.pin, _microsoft_fast_element.html`<${popupTag}
461
- class="popup"
462
- arrow
463
- alternate
464
- :anchor="${(x) => x._endThumbEl}"
465
- :open=${(x) => x._isThumbPopupOpen("end")}
466
- :placementStrategy=${(x) => x.orientation === _microsoft_fast_web_utilities.Orientation.horizontal ? require_definition.PlacementStrategy.AutoPlacementHorizontal : require_definition.PlacementStrategy.AutoPlacementVertical}
467
- animation-frame
468
- exportparts="vvd-theme-alternate"
469
- aria-hidden="true"
470
- >
471
- <div class="tooltip">${(x) => x.valueTextFormatter(x.end)}</div>
472
- </${popupTag}>`)}
473
- </div>
474
- </div>
475
- </template>`;
476
- };
148
+ //#region src/lib/radio/radio.template.ts
149
+ var getClasses = ({ connotation, checked, readOnly, disabled }) => (0, _microsoft_fast_web_utilities.classNames)("base", [`connotation-${connotation}`, Boolean(connotation)], ["checked", Boolean(checked)], ["readonly", Boolean(readOnly)], ["disabled", Boolean(disabled)]);
150
+ var RadioTemplate = _microsoft_fast_element.html`<template
151
+ aria-checked="${(x) => x?.checked}"
152
+ aria-disabled="${(x) => x?.disabled}"
153
+ aria-required="${(x) => x?.required}"
154
+ @keypress="${(x, c) => x?.keypressHandler(c.event)}"
155
+ @click="${(x, c) => x?.clickHandler(c.event)}"
156
+ role="radio"
157
+ >
158
+ <div class="${getClasses}">
159
+ <div class="control"></div>
160
+ ${(0, _microsoft_fast_element.when)((x) => x?.label, _microsoft_fast_element.html`<label class="label">${(x) => x?.label}</label>`)}
161
+ </div>
162
+ </template>`;
477
163
  //#endregion
478
- //#region src/lib/range-slider/definition.ts
164
+ //#region src/lib/radio/definition.ts
479
165
  /**
480
166
  * @internal
481
167
  */
482
- var rangeSliderDefinition = require_vivid_element.defineVividComponent("range-slider", RangeSlider, RangeSliderTemplate, [require_definition.popupDefinition], {
483
- styles: range_slider_default,
484
- shadowOptions: { delegatesFocus: true }
485
- });
168
+ var radioDefinition = require_vivid_element.defineVividComponent("radio", Radio, RadioTemplate, [], { styles: radio_default });
486
169
  /**
487
- * Registers the range-slider element with the design system.
170
+ * Registers the radio elements with the design system.
488
171
  *
489
172
  * @param prefix - the prefix to use for the component name
490
173
  */
491
- var registerRangeSlider = require_vivid_element.createRegisterFunction(rangeSliderDefinition);
174
+ var registerRadio = require_vivid_element.createRegisterFunction(radioDefinition);
492
175
  //#endregion
493
- Object.defineProperty(exports, "RangeSlider", {
176
+ Object.defineProperty(exports, "Radio", {
494
177
  enumerable: true,
495
178
  get: function() {
496
- return RangeSlider;
179
+ return Radio;
497
180
  }
498
181
  });
499
- Object.defineProperty(exports, "rangeSliderDefinition", {
182
+ Object.defineProperty(exports, "radioDefinition", {
500
183
  enumerable: true,
501
184
  get: function() {
502
- return rangeSliderDefinition;
185
+ return radioDefinition;
503
186
  }
504
187
  });
505
- Object.defineProperty(exports, "registerRangeSlider", {
188
+ Object.defineProperty(exports, "registerRadio", {
506
189
  enumerable: true,
507
190
  get: function() {
508
- return registerRangeSlider;
191
+ return registerRadio;
509
192
  }
510
193
  });