@vonage/vivid 5.19.0 → 5.20.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (648) hide show
  1. package/accordion/definition.cjs +1 -1
  2. package/accordion/definition.js +1 -1
  3. package/accordion/index.cjs +2 -2
  4. package/accordion/index.js +2 -2
  5. package/accordion-item/definition.cjs +1 -1
  6. package/accordion-item/definition.js +1 -1
  7. package/action-group/definition.cjs +1 -1
  8. package/action-group/definition.js +1 -1
  9. package/action-group/index.cjs +2 -2
  10. package/action-group/index.js +2 -2
  11. package/alert/index.cjs +5 -5
  12. package/alert/index.js +8 -8
  13. package/audio-player/index.cjs +10 -10
  14. package/audio-player/index.js +28 -28
  15. package/avatar/index.cjs +7 -7
  16. package/avatar/index.js +14 -14
  17. package/banner/index.cjs +5 -5
  18. package/banner/index.js +9 -9
  19. package/breadcrumb/index.cjs +2 -2
  20. package/breadcrumb/index.js +3 -3
  21. package/breadcrumb-item/index.cjs +5 -5
  22. package/breadcrumb-item/index.js +1 -1
  23. package/bundled/affix.cjs +2 -2
  24. package/bundled/affix.js +11 -11
  25. package/bundled/anchored.cjs +1 -1
  26. package/bundled/anchored.js +6 -6
  27. package/bundled/aria-binding-directive.cjs +1 -1
  28. package/bundled/aria-binding-directive.js +88 -16
  29. package/bundled/base-color-picker.cjs +3 -3
  30. package/bundled/base-color-picker.js +5 -5
  31. package/bundled/base-progress.cjs +1 -1
  32. package/bundled/base-progress.js +3 -3
  33. package/bundled/breadcrumb-item.cjs +1 -1
  34. package/bundled/breadcrumb-item.js +3 -3
  35. package/bundled/button.cjs +1 -1
  36. package/bundled/button.js +3 -3
  37. package/bundled/calendar-event.cjs +1 -1
  38. package/bundled/calendar-event.js +4 -4
  39. package/bundled/calendar-picker.template.cjs +23 -24
  40. package/bundled/calendar-picker.template.js +35 -36
  41. package/bundled/char-count.cjs +2 -2
  42. package/bundled/char-count.js +8 -8
  43. package/bundled/children.cjs +1 -1
  44. package/bundled/children.js +11 -13
  45. package/bundled/definition.cjs +1 -1
  46. package/bundled/definition.js +2 -2
  47. package/bundled/definition10.cjs +3 -3
  48. package/bundled/definition10.js +5 -5
  49. package/bundled/definition11.cjs +2 -2
  50. package/bundled/definition11.js +7 -7
  51. package/bundled/definition12.cjs +15 -16
  52. package/bundled/definition12.js +22 -22
  53. package/bundled/definition13.cjs +3 -3
  54. package/bundled/definition13.js +5 -5
  55. package/bundled/definition14.cjs +2 -2
  56. package/bundled/definition14.js +2 -2
  57. package/bundled/definition15.cjs +7 -8
  58. package/bundled/definition15.js +14 -14
  59. package/bundled/definition16.cjs +3 -3
  60. package/bundled/definition16.js +8 -8
  61. package/bundled/definition17.cjs +7 -7
  62. package/bundled/definition17.js +13 -13
  63. package/bundled/definition18.cjs +18 -18
  64. package/bundled/definition18.js +36 -36
  65. package/bundled/definition19.cjs +2 -2
  66. package/bundled/definition19.js +1 -1
  67. package/bundled/definition2.cjs +10 -9
  68. package/bundled/definition2.js +24 -24
  69. package/bundled/definition20.cjs +19 -14
  70. package/bundled/definition20.js +51 -39
  71. package/bundled/definition21.cjs +6 -6
  72. package/bundled/definition21.js +18 -18
  73. package/bundled/definition22.cjs +3 -3
  74. package/bundled/definition22.js +7 -7
  75. package/bundled/definition23.cjs +4 -4
  76. package/bundled/definition23.js +8 -8
  77. package/bundled/definition24.cjs +8 -8
  78. package/bundled/definition24.js +17 -17
  79. package/bundled/definition3.cjs +1 -1
  80. package/bundled/definition3.js +5 -5
  81. package/bundled/definition4.cjs +9 -9
  82. package/bundled/definition4.js +16 -16
  83. package/bundled/definition5.cjs +4 -4
  84. package/bundled/definition5.js +5 -5
  85. package/bundled/definition6.cjs +6 -6
  86. package/bundled/definition6.js +21 -21
  87. package/bundled/definition7.cjs +2 -2
  88. package/bundled/definition7.js +4 -4
  89. package/bundled/definition8.cjs +4 -4
  90. package/bundled/definition8.js +7 -7
  91. package/bundled/definition9.cjs +10 -6
  92. package/bundled/definition9.js +48 -34
  93. package/bundled/delegates-aria.cjs +1 -1
  94. package/bundled/delegates-aria.js +20 -9
  95. package/bundled/divider.cjs +1 -1
  96. package/bundled/divider.js +3 -3
  97. package/bundled/form-associated.cjs +1 -1
  98. package/bundled/form-associated.js +6 -6
  99. package/bundled/form-element.cjs +1 -1
  100. package/bundled/form-element.js +1 -1
  101. package/bundled/host-semantics.cjs +1 -1
  102. package/bundled/host-semantics.js +2 -1
  103. package/bundled/kbd-shortcut.cjs +1 -0
  104. package/bundled/kbd-shortcut.js +14 -0
  105. package/bundled/linkable.cjs +2 -2
  106. package/bundled/linkable.js +5 -5
  107. package/bundled/listbox.cjs +1 -1
  108. package/bundled/listbox.js +4 -4
  109. package/bundled/localized.cjs +1 -1
  110. package/bundled/localized.js +3 -2
  111. package/bundled/mixins.cjs +16 -16
  112. package/bundled/mixins.js +39 -105
  113. package/bundled/picker-field.template.cjs +6 -6
  114. package/bundled/picker-field.template.js +15 -15
  115. package/bundled/platform.cjs +1 -0
  116. package/bundled/platform.js +9 -0
  117. package/bundled/ref.cjs +1 -1
  118. package/bundled/ref.js +2 -2
  119. package/bundled/render-in-light-dom.cjs +1 -0
  120. package/bundled/render-in-light-dom.js +57 -0
  121. package/bundled/repeat.cjs +1 -1
  122. package/bundled/repeat.js +117 -107
  123. package/bundled/slider.template.cjs +3 -3
  124. package/bundled/slider.template.js +1 -1
  125. package/bundled/slotted.cjs +1 -1
  126. package/bundled/slotted.js +2 -2
  127. package/bundled/time-selection-picker.template.cjs +4 -4
  128. package/bundled/time-selection-picker.template.js +18 -18
  129. package/bundled/vivid-element.cjs +3 -3
  130. package/bundled/vivid-element.js +626 -550
  131. package/bundled/when.cjs +1 -1
  132. package/bundled/when.js +2 -2
  133. package/bundled/with-contextual-help.cjs +1 -1
  134. package/bundled/with-contextual-help.js +1 -1
  135. package/bundled/with-error-text.cjs +1 -1
  136. package/bundled/with-error-text.js +1 -1
  137. package/bundled/with-success-text.cjs +1 -1
  138. package/bundled/with-success-text.js +1 -1
  139. package/calendar/index.cjs +8 -8
  140. package/calendar/index.js +9 -9
  141. package/calendar-event/index.cjs +4 -4
  142. package/calendar-event/index.js +1 -1
  143. package/card/index.cjs +24 -25
  144. package/card/index.js +29 -30
  145. package/color-picker/index.cjs +26 -26
  146. package/color-picker/index.js +90 -90
  147. package/combobox/index.cjs +13 -13
  148. package/combobox/index.js +22 -22
  149. package/country-group/index.cjs +4 -4
  150. package/country-group/index.js +3 -3
  151. package/custom-elements.json +849 -12
  152. package/data-grid/index.cjs +34 -34
  153. package/data-grid/index.js +37 -38
  154. package/date-picker/definition.cjs +1 -1
  155. package/date-picker/definition.js +1 -1
  156. package/date-picker/index.cjs +1 -1
  157. package/date-picker/index.js +2 -2
  158. package/date-range-picker/definition.cjs +1 -1
  159. package/date-range-picker/definition.js +1 -1
  160. package/date-range-picker/index.cjs +1 -1
  161. package/date-range-picker/index.js +4 -4
  162. package/date-time-picker/definition.cjs +1 -1
  163. package/date-time-picker/definition.js +1 -1
  164. package/date-time-picker/index.cjs +2 -2
  165. package/date-time-picker/index.js +6 -6
  166. package/dial-pad/definition.cjs +1 -1
  167. package/dial-pad/definition.js +1 -1
  168. package/dial-pad/index.cjs +8 -8
  169. package/dial-pad/index.js +15 -15
  170. package/dialog/definition.cjs +1 -1
  171. package/dialog/definition.js +1 -1
  172. package/dialog/index.cjs +16 -17
  173. package/dialog/index.js +29 -27
  174. package/divider/definition.cjs +1 -1
  175. package/divider/definition.js +1 -1
  176. package/empty-state/definition.cjs +1 -1
  177. package/empty-state/definition.js +1 -1
  178. package/empty-state/index.cjs +5 -5
  179. package/empty-state/index.js +9 -9
  180. package/fab/definition.cjs +1 -1
  181. package/fab/definition.js +1 -1
  182. package/fab/index.cjs +2 -2
  183. package/fab/index.js +6 -6
  184. package/file-picker/definition.cjs +1 -1
  185. package/file-picker/definition.js +1 -1
  186. package/file-picker/index.cjs +9 -10
  187. package/file-picker/index.js +21 -22
  188. package/flag/index.cjs +3 -3
  189. package/flag/index.js +7 -7
  190. package/header/definition.cjs +1 -1
  191. package/header/definition.js +1 -1
  192. package/header/index.cjs +2 -2
  193. package/header/index.js +8 -8
  194. package/icon/definition.cjs +1 -1
  195. package/icon/definition.js +1 -1
  196. package/index.cjs +184 -172
  197. package/index.js +52 -49
  198. package/kbd-key/definition.cjs +5 -0
  199. package/kbd-key/definition.js +2 -0
  200. package/kbd-key/index.cjs +5 -0
  201. package/kbd-key/index.js +65 -0
  202. package/kbd-shortcut/definition.cjs +5 -0
  203. package/kbd-shortcut/definition.js +2 -0
  204. package/kbd-shortcut/index.cjs +3 -0
  205. package/kbd-shortcut/index.js +27 -0
  206. package/layout/definition.cjs +1 -1
  207. package/layout/definition.js +1 -1
  208. package/layout/index.cjs +2 -2
  209. package/layout/index.js +2 -2
  210. package/lib/accordion-item/accordion-item.d.ts +18 -1
  211. package/lib/action-group/action-group.d.ts +18 -1
  212. package/lib/alert/alert.d.ts +36 -2
  213. package/lib/audio-player/audio-player.d.ts +18 -1
  214. package/lib/avatar/avatar.d.ts +18 -1
  215. package/lib/badge/badge.d.ts +18 -1
  216. package/lib/banner/banner.d.ts +54 -3
  217. package/lib/breadcrumb/breadcrumb.d.ts +18 -1
  218. package/lib/breadcrumb-item/breadcrumb-item.d.ts +18 -1
  219. package/lib/button/button.d.ts +54 -3
  220. package/lib/calendar-event/calendar-event.d.ts +18 -1
  221. package/lib/card/card.d.ts +18 -1
  222. package/lib/checkbox/checkbox.d.ts +107 -5
  223. package/lib/color-picker/color-picker.d.ts +126 -7
  224. package/lib/combobox/combobox.d.ts +124 -5
  225. package/lib/components.d.ts +4 -1
  226. package/lib/country-group/country-group.d.ts +36 -2
  227. package/lib/data-grid/data-grid-cell.d.ts +36 -2
  228. package/lib/data-grid/data-grid-row.d.ts +18 -1
  229. package/lib/date-picker/date-picker.d.ts +140 -4
  230. package/lib/date-range-picker/date-range-picker.d.ts +70 -2
  231. package/lib/date-time-picker/date-time-picker.d.ts +140 -4
  232. package/lib/dial-pad/dial-pad.d.ts +18 -1
  233. package/lib/dialog/dialog.d.ts +36 -2
  234. package/lib/divider/divider.d.ts +18 -1
  235. package/lib/fab/fab.d.ts +18 -1
  236. package/lib/file-picker/file-picker.d.ts +124 -5
  237. package/lib/header/header.d.ts +18 -1
  238. package/lib/icon/icon.template.d.ts +1 -2
  239. package/lib/kbd-key/definition.d.ts +4 -0
  240. package/lib/kbd-key/index.d.ts +1 -0
  241. package/lib/kbd-key/kbd-key.d.ts +18 -0
  242. package/lib/kbd-key/kbd-key.template.d.ts +4 -0
  243. package/lib/kbd-shortcut/definition.d.ts +3 -0
  244. package/lib/kbd-shortcut/index.d.ts +1 -0
  245. package/lib/kbd-shortcut/kbd-shortcut.d.ts +4 -0
  246. package/lib/kbd-shortcut/kbd-shortcut.template.d.ts +4 -0
  247. package/lib/menu/menu.d.ts +35 -1
  248. package/lib/menu-item/menu-item.d.ts +463 -2
  249. package/lib/nav/nav.d.ts +18 -1
  250. package/lib/nav-disclosure/nav-disclosure.d.ts +36 -2
  251. package/lib/nav-item/nav-item.d.ts +36 -2
  252. package/lib/note/note.d.ts +18 -1
  253. package/lib/number-field/number-field.d.ts +160 -7
  254. package/lib/option/option.d.ts +36 -2
  255. package/lib/pagination/pagination.d.ts +18 -1
  256. package/lib/platform-switch/definition.d.ts +3 -0
  257. package/lib/platform-switch/index.d.ts +1 -0
  258. package/lib/platform-switch/platform-switch.d.ts +4 -0
  259. package/lib/platform-switch/platform-switch.template.d.ts +4 -0
  260. package/lib/popover/popover.d.ts +36 -2
  261. package/lib/progress/progress.d.ts +18 -1
  262. package/lib/progress-ring/progress-ring.d.ts +18 -1
  263. package/lib/radio/radio.d.ts +53 -2
  264. package/lib/radio-group/radio-group.d.ts +18 -1
  265. package/lib/range-slider/range-slider.d.ts +52 -1
  266. package/lib/rich-text-editor/locale.d.ts +1 -0
  267. package/lib/rich-text-editor/popover.d.ts +1 -0
  268. package/lib/rich-text-editor/rich-text-editor.d.ts +17 -0
  269. package/lib/rich-text-editor/rte/utils/ui.d.ts +3 -0
  270. package/lib/searchable-select/option-tag.d.ts +18 -1
  271. package/lib/searchable-select/searchable-select.d.ts +160 -7
  272. package/lib/select/select.d.ts +160 -7
  273. package/lib/selectable-box/selectable-box.d.ts +18 -1
  274. package/lib/simple-color-picker/simple-color-picker.d.ts +35 -1
  275. package/lib/slider/slider.d.ts +53 -2
  276. package/lib/split-button/split-button.d.ts +54 -3
  277. package/lib/status/status.d.ts +18 -1
  278. package/lib/switch/switch.d.ts +36 -2
  279. package/lib/tab/tab.d.ts +54 -3
  280. package/lib/tab-panel/tab-panel.d.ts +18 -1
  281. package/lib/table/table-cell.d.ts +18 -1
  282. package/lib/table/table-header-cell.d.ts +18 -1
  283. package/lib/table/table-row.d.ts +18 -1
  284. package/lib/table/table-sorting-button.d.ts +18 -1
  285. package/lib/tag/tag.d.ts +54 -3
  286. package/lib/tag-group/tag-group.d.ts +18 -1
  287. package/lib/tag-name-map.d.ts +4 -1
  288. package/lib/text-area/text-area.d.ts +142 -6
  289. package/lib/text-field/text-field.d.ts +160 -7
  290. package/lib/time-picker/time-picker.d.ts +70 -2
  291. package/lib/toggletip/toggletip.d.ts +35 -1
  292. package/lib/tooltip/tooltip.d.ts +444 -0
  293. package/lib/tree-item/tree-item.d.ts +36 -2
  294. package/lib/tree-view/tree-view.d.ts +18 -1
  295. package/lib/video-player/video-player.d.ts +18 -1
  296. package/locales/de-DE.cjs +1 -0
  297. package/locales/de-DE.js +1 -0
  298. package/locales/en-GB.cjs +1 -0
  299. package/locales/en-GB.js +1 -0
  300. package/locales/en-US.cjs +1 -0
  301. package/locales/en-US.js +1 -0
  302. package/locales/ja-JP.cjs +1 -0
  303. package/locales/ja-JP.js +1 -0
  304. package/locales/zh-CN.cjs +1 -0
  305. package/locales/zh-CN.js +1 -0
  306. package/nav/definition.cjs +1 -1
  307. package/nav/definition.js +1 -1
  308. package/nav/index.cjs +2 -2
  309. package/nav/index.js +2 -2
  310. package/nav-disclosure/definition.cjs +1 -1
  311. package/nav-disclosure/definition.js +1 -1
  312. package/nav-disclosure/index.cjs +3 -4
  313. package/nav-disclosure/index.js +11 -11
  314. package/nav-item/definition.cjs +1 -1
  315. package/nav-item/definition.js +1 -1
  316. package/nav-item/index.cjs +2 -2
  317. package/nav-item/index.js +6 -6
  318. package/note/definition.cjs +1 -1
  319. package/note/definition.js +1 -1
  320. package/note/index.cjs +2 -2
  321. package/note/index.js +7 -7
  322. package/number-field/definition.cjs +1 -1
  323. package/number-field/definition.js +1 -1
  324. package/number-field/index.cjs +8 -9
  325. package/number-field/index.js +16 -17
  326. package/package.json +6 -6
  327. package/pagination/definition.cjs +1 -1
  328. package/pagination/definition.js +1 -1
  329. package/pagination/index.cjs +9 -9
  330. package/pagination/index.js +16 -16
  331. package/platform-switch/definition.cjs +5 -0
  332. package/platform-switch/definition.js +2 -0
  333. package/platform-switch/index.cjs +1 -0
  334. package/platform-switch/index.js +28 -0
  335. package/popover/definition.cjs +1 -1
  336. package/popover/definition.js +1 -1
  337. package/popover/index.cjs +6 -6
  338. package/popover/index.js +12 -12
  339. package/progress/definition.cjs +1 -1
  340. package/progress/definition.js +1 -1
  341. package/progress/index.cjs +4 -4
  342. package/progress/index.js +5 -5
  343. package/progress-ring/definition.cjs +1 -1
  344. package/progress-ring/definition.js +1 -1
  345. package/radio/definition.cjs +1 -1
  346. package/radio/definition.js +1 -1
  347. package/radio-group/definition.cjs +1 -1
  348. package/radio-group/definition.js +1 -1
  349. package/radio-group/index.cjs +5 -8
  350. package/radio-group/index.js +16 -16
  351. package/range-slider/definition.cjs +1 -1
  352. package/range-slider/definition.js +1 -1
  353. package/range-slider/index.cjs +5 -5
  354. package/range-slider/index.js +9 -9
  355. package/rich-text-editor/definition.cjs +1 -1
  356. package/rich-text-editor/definition.js +1 -1
  357. package/rich-text-editor/index.cjs +8 -6
  358. package/rich-text-editor/index.js +136 -94
  359. package/rich-text-view/definition.cjs +1 -1
  360. package/rich-text-view/definition.js +1 -1
  361. package/rich-text-view/index.cjs +1 -1
  362. package/rich-text-view/index.js +3 -3
  363. package/searchable-select/definition.cjs +1 -1
  364. package/searchable-select/definition.js +1 -1
  365. package/searchable-select/index.cjs +38 -40
  366. package/searchable-select/index.js +64 -64
  367. package/select/definition.cjs +1 -1
  368. package/select/definition.js +1 -1
  369. package/selectable-box/definition.cjs +1 -1
  370. package/selectable-box/definition.js +1 -1
  371. package/selectable-box/index.cjs +4 -4
  372. package/selectable-box/index.js +13 -13
  373. package/shared/aria/aria-binding-directive.d.ts +4 -4
  374. package/shared/aria/aria-mixin.d.ts +21 -3
  375. package/shared/aria/delegates-aria.d.ts +18 -1
  376. package/shared/aria/host-semantics.d.ts +18 -1
  377. package/shared/aria/idrefs-controller.d.ts +17 -0
  378. package/shared/color-picker/base-color-picker.d.ts +18 -1
  379. package/shared/feedback/feedback-message.d.ts +18 -1
  380. package/shared/feedback/mixins.d.ts +36 -2
  381. package/shared/foundation/button/button.d.ts +35 -1
  382. package/shared/foundation/form-associated/form-associated.d.ts +35 -1
  383. package/shared/foundation/vivid-element/vivid-element.d.ts +375 -0
  384. package/shared/framework/reactive-controller.d.ts +373 -0
  385. package/shared/patterns/affix.d.ts +36 -2
  386. package/shared/patterns/anchored.d.ts +34 -0
  387. package/shared/patterns/char-count/char-count.d.ts +18 -1
  388. package/shared/patterns/form-elements/form-element.d.ts +17 -0
  389. package/shared/patterns/form-elements/with-contextual-help.d.ts +18 -1
  390. package/shared/patterns/form-elements/with-error-text.d.ts +18 -1
  391. package/shared/patterns/form-elements/with-success-text.d.ts +18 -1
  392. package/shared/patterns/index.d.ts +1 -0
  393. package/shared/patterns/kbd-shortcut.d.ts +431 -0
  394. package/shared/patterns/linkable.d.ts +18 -1
  395. package/shared/patterns/localized.d.ts +35 -1
  396. package/shared/patterns/trapped-focus.d.ts +18 -1
  397. package/shared/picker-field/mixins/calendar-picker.d.ts +35 -1
  398. package/shared/picker-field/mixins/calendar-picker.template.d.ts +35 -1
  399. package/shared/picker-field/mixins/inline-time-picker/inline-time-picker.d.ts +18 -1
  400. package/shared/picker-field/mixins/min-max-calendar-picker.d.ts +35 -1
  401. package/shared/picker-field/mixins/single-date-picker.d.ts +35 -1
  402. package/shared/picker-field/mixins/single-value-picker.d.ts +35 -1
  403. package/shared/picker-field/mixins/time-selection-picker.d.ts +35 -1
  404. package/shared/picker-field/mixins/time-selection-picker.template.d.ts +70 -2
  405. package/shared/picker-field/picker-field.d.ts +124 -5
  406. package/shared/templating/render-in-light-dom.d.ts +7 -20
  407. package/shared/utils/platform.d.ts +1 -0
  408. package/side-drawer/definition.cjs +1 -1
  409. package/side-drawer/definition.js +1 -1
  410. package/side-drawer/index.cjs +3 -3
  411. package/side-drawer/index.js +3 -3
  412. package/simple-color-picker/definition.cjs +1 -1
  413. package/simple-color-picker/definition.js +1 -1
  414. package/simple-color-picker/index.cjs +2 -2
  415. package/simple-color-picker/index.js +6 -6
  416. package/split-button/definition.cjs +1 -1
  417. package/split-button/definition.js +1 -1
  418. package/split-button/index.cjs +5 -6
  419. package/split-button/index.js +8 -8
  420. package/status/definition.cjs +1 -1
  421. package/status/definition.js +1 -1
  422. package/status/index.cjs +4 -4
  423. package/status/index.js +9 -9
  424. package/styles/core/all.css +24 -2
  425. package/styles/core/typography.css +24 -2
  426. package/styles/fonts/spezia-variable.css +6 -0
  427. package/styles/tokens/theme-dark.css +2 -0
  428. package/styles/tokens/theme-light.css +2 -0
  429. package/switch/definition.cjs +1 -1
  430. package/switch/definition.js +1 -1
  431. package/switch/index.cjs +3 -3
  432. package/switch/index.js +4 -4
  433. package/tab/definition.cjs +1 -1
  434. package/tab/definition.js +1 -1
  435. package/tab-panel/definition.cjs +1 -1
  436. package/tab-panel/definition.js +1 -1
  437. package/table/definition.cjs +1 -1
  438. package/table/definition.js +1 -1
  439. package/table/index.cjs +9 -9
  440. package/table/index.js +19 -19
  441. package/tabs/definition.cjs +1 -1
  442. package/tabs/definition.js +1 -1
  443. package/tabs/index.cjs +8 -8
  444. package/tabs/index.js +14 -14
  445. package/tag/definition.cjs +1 -1
  446. package/tag/definition.js +1 -1
  447. package/tag/index.cjs +8 -8
  448. package/tag/index.js +11 -11
  449. package/tag-group/definition.cjs +1 -1
  450. package/tag-group/definition.js +1 -1
  451. package/tag-group/index.cjs +2 -2
  452. package/tag-group/index.js +2 -2
  453. package/text-area/definition.cjs +1 -1
  454. package/text-area/definition.js +1 -1
  455. package/text-area/index.cjs +8 -9
  456. package/text-area/index.js +25 -26
  457. package/time-picker/definition.cjs +1 -1
  458. package/time-picker/definition.js +1 -1
  459. package/time-picker/index.cjs +1 -1
  460. package/time-picker/index.js +1 -1
  461. package/tree-item/definition.cjs +1 -1
  462. package/tree-item/definition.js +1 -1
  463. package/tree-view/definition.cjs +1 -1
  464. package/tree-view/definition.js +1 -1
  465. package/tree-view/index.cjs +4 -4
  466. package/tree-view/index.js +7 -7
  467. package/unbundled/affix.cjs +1 -1
  468. package/unbundled/affix.js +1 -1
  469. package/unbundled/aria-binding-directive.cjs +112 -2
  470. package/unbundled/aria-binding-directive.js +108 -4
  471. package/unbundled/calendar-picker.template.cjs +8 -10
  472. package/unbundled/calendar-picker.template.js +8 -10
  473. package/unbundled/char-count.cjs +1 -1
  474. package/unbundled/char-count.js +1 -1
  475. package/unbundled/definition.cjs +91 -17
  476. package/unbundled/definition.js +88 -14
  477. package/unbundled/definition10.js +1 -1
  478. package/unbundled/definition11.js +1 -1
  479. package/unbundled/definition12.cjs +15 -2
  480. package/unbundled/definition12.js +17 -4
  481. package/unbundled/definition13.js +1 -1
  482. package/unbundled/definition14.js +1 -1
  483. package/unbundled/definition15.cjs +1 -1
  484. package/unbundled/definition15.js +2 -2
  485. package/unbundled/definition16.cjs +1 -1
  486. package/unbundled/definition16.js +2 -2
  487. package/unbundled/definition17.cjs +1 -1
  488. package/unbundled/definition17.js +2 -2
  489. package/unbundled/definition18.cjs +1 -1
  490. package/unbundled/definition18.js +2 -2
  491. package/unbundled/definition19.js +1 -1
  492. package/unbundled/definition2.cjs +96 -77
  493. package/unbundled/definition2.js +94 -75
  494. package/unbundled/definition20.js +1 -1
  495. package/unbundled/definition21.js +1 -1
  496. package/unbundled/definition22.cjs +2 -3
  497. package/unbundled/definition22.js +3 -4
  498. package/unbundled/definition23.cjs +3 -3
  499. package/unbundled/definition23.js +5 -5
  500. package/unbundled/definition24.js +1 -1
  501. package/unbundled/definition25.cjs +1 -1
  502. package/unbundled/definition25.js +2 -2
  503. package/unbundled/definition26.cjs +8 -8
  504. package/unbundled/definition26.js +6 -6
  505. package/unbundled/definition27.cjs +26 -12
  506. package/unbundled/definition27.js +28 -14
  507. package/unbundled/definition28.cjs +1 -1
  508. package/unbundled/definition28.js +3 -3
  509. package/unbundled/definition29.cjs +1 -1
  510. package/unbundled/definition29.js +2 -2
  511. package/unbundled/definition3.cjs +154 -95
  512. package/unbundled/definition3.js +146 -93
  513. package/unbundled/definition30.cjs +1 -1
  514. package/unbundled/definition30.js +3 -3
  515. package/unbundled/definition31.cjs +1 -1
  516. package/unbundled/definition31.js +2 -2
  517. package/unbundled/definition32.js +1 -1
  518. package/unbundled/definition33.cjs +1 -1
  519. package/unbundled/definition33.js +2 -2
  520. package/unbundled/definition34.cjs +103 -65
  521. package/unbundled/definition34.js +102 -64
  522. package/unbundled/definition35.cjs +26 -326
  523. package/unbundled/definition35.js +24 -247
  524. package/unbundled/definition36.cjs +131 -25
  525. package/unbundled/definition36.js +124 -23
  526. package/unbundled/definition37.cjs +326 -51
  527. package/unbundled/definition37.js +324 -49
  528. package/unbundled/definition38.cjs +137 -317
  529. package/unbundled/definition38.js +135 -315
  530. package/unbundled/definition39.cjs +337 -173
  531. package/unbundled/definition39.js +334 -170
  532. package/unbundled/definition4.cjs +34 -159
  533. package/unbundled/definition4.js +25 -151
  534. package/unbundled/definition40.cjs +234 -339
  535. package/unbundled/definition40.js +230 -335
  536. package/unbundled/definition41.cjs +48 -271
  537. package/unbundled/definition41.js +44 -267
  538. package/unbundled/definition42.cjs +68 -49
  539. package/unbundled/definition42.js +65 -46
  540. package/unbundled/definition43.cjs +424 -56
  541. package/unbundled/definition43.js +422 -54
  542. package/unbundled/definition44.cjs +45 -428
  543. package/unbundled/definition44.js +42 -425
  544. package/unbundled/definition45.cjs +45 -54
  545. package/unbundled/definition45.js +42 -51
  546. package/unbundled/definition46.cjs +178 -30
  547. package/unbundled/definition46.js +175 -26
  548. package/unbundled/definition47.cjs +29 -94
  549. package/unbundled/definition47.js +25 -91
  550. package/unbundled/definition48.cjs +76 -36
  551. package/unbundled/definition48.js +73 -33
  552. package/unbundled/definition49.cjs +56 -23
  553. package/unbundled/definition49.js +54 -18
  554. package/unbundled/definition5.cjs +56 -38
  555. package/unbundled/definition5.js +52 -28
  556. package/unbundled/definition50.cjs +23 -40
  557. package/unbundled/definition50.js +18 -38
  558. package/unbundled/definition51.cjs +30 -338
  559. package/unbundled/definition51.js +30 -338
  560. package/unbundled/definition52.cjs +317 -187
  561. package/unbundled/definition52.js +314 -184
  562. package/unbundled/definition53.cjs +194 -289
  563. package/unbundled/definition53.js +189 -284
  564. package/unbundled/definition54.cjs +47 -54
  565. package/unbundled/definition54.js +44 -50
  566. package/unbundled/definition55.cjs +279 -133
  567. package/unbundled/definition55.js +277 -130
  568. package/unbundled/definition56.cjs +50 -262
  569. package/unbundled/definition56.js +48 -261
  570. package/unbundled/definition57.cjs +128 -460
  571. package/unbundled/definition57.js +126 -459
  572. package/unbundled/definition58.cjs +235 -3604
  573. package/unbundled/definition58.js +231 -3437
  574. package/unbundled/definition59.cjs +419 -729
  575. package/unbundled/definition59.js +417 -727
  576. package/unbundled/definition6.cjs +18 -64
  577. package/unbundled/definition6.js +15 -60
  578. package/unbundled/definition60.cjs +3699 -106
  579. package/unbundled/definition60.js +3531 -101
  580. package/unbundled/definition61.cjs +625 -878
  581. package/unbundled/definition61.js +619 -872
  582. package/unbundled/definition62.cjs +106 -108
  583. package/unbundled/definition62.js +103 -105
  584. package/unbundled/definition63.cjs +1045 -71
  585. package/unbundled/definition63.js +1041 -66
  586. package/unbundled/definition64.cjs +105 -173
  587. package/unbundled/definition64.js +102 -170
  588. package/unbundled/definition65.cjs +70 -113
  589. package/unbundled/definition65.js +66 -110
  590. package/unbundled/definition66.cjs +185 -54
  591. package/unbundled/definition66.js +182 -51
  592. package/unbundled/definition67.cjs +110 -77
  593. package/unbundled/definition67.js +111 -77
  594. package/unbundled/definition68.cjs +58 -21
  595. package/unbundled/definition68.js +56 -16
  596. package/unbundled/definition69.cjs +82 -75
  597. package/unbundled/definition69.js +81 -75
  598. package/unbundled/definition7.cjs +2 -2
  599. package/unbundled/definition7.js +3 -3
  600. package/unbundled/definition70.cjs +19 -349
  601. package/unbundled/definition70.js +15 -341
  602. package/unbundled/definition71.cjs +88 -26
  603. package/unbundled/definition71.js +86 -23
  604. package/unbundled/definition72.cjs +309 -119
  605. package/unbundled/definition72.js +234 -116
  606. package/unbundled/definition73.cjs +293 -229
  607. package/unbundled/definition73.js +287 -230
  608. package/unbundled/definition74.cjs +39 -30
  609. package/unbundled/definition74.js +29 -28
  610. package/unbundled/definition75.cjs +106 -121
  611. package/unbundled/definition75.js +104 -113
  612. package/unbundled/definition76.cjs +260 -179
  613. package/unbundled/definition76.js +258 -176
  614. package/unbundled/definition77.cjs +29 -514
  615. package/unbundled/definition77.js +27 -503
  616. package/unbundled/definition78.cjs +171 -0
  617. package/unbundled/definition78.js +147 -0
  618. package/unbundled/definition79.cjs +233 -0
  619. package/unbundled/definition79.js +214 -0
  620. package/unbundled/definition8.js +1 -1
  621. package/unbundled/definition80.cjs +533 -0
  622. package/unbundled/definition80.js +513 -0
  623. package/unbundled/definition9.cjs +1 -1
  624. package/unbundled/definition9.js +2 -2
  625. package/unbundled/delegates-aria.cjs +15 -1
  626. package/unbundled/delegates-aria.js +17 -3
  627. package/unbundled/host-semantics.cjs +2 -1
  628. package/unbundled/host-semantics.js +2 -1
  629. package/unbundled/kbd-shortcut.cjs +26 -0
  630. package/unbundled/kbd-shortcut.js +20 -0
  631. package/unbundled/mixins.cjs +7 -77
  632. package/unbundled/mixins.js +6 -64
  633. package/unbundled/platform.cjs +17 -0
  634. package/unbundled/platform.js +12 -0
  635. package/unbundled/randomId.cjs +47 -0
  636. package/unbundled/randomId.js +35 -0
  637. package/unbundled/time-selection-picker.template.js +1 -1
  638. package/unbundled/vivid-element.cjs +82 -9
  639. package/unbundled/vivid-element.js +63 -8
  640. package/video-player/definition.cjs +1 -1
  641. package/video-player/definition.js +1 -1
  642. package/video-player/index.cjs +3 -3
  643. package/video-player/index.js +5 -5
  644. package/visually-hidden/definition.cjs +1 -1
  645. package/visually-hidden/definition.js +1 -1
  646. package/vivid.api.json +604 -6
  647. package/bundled/normalize.cjs +0 -1
  648. package/bundled/normalize.js +0 -7
@@ -1,451 +1,68 @@
1
- import { c as createRegisterFunction, s as defineVividComponent, t as VividElement } from "./vivid-element.js";
2
- import { r as Icon, t as iconDefinition } from "./definition2.js";
1
+ import { d as createRegisterFunction, t as VividElement, u as defineVividComponent } from "./vivid-element.js";
3
2
  import { t as __decorate } from "./decorate.js";
4
3
  import { n as delegateAria, t as DelegatesAria } from "./delegates-aria.js";
5
- import { n as FormAssociated } from "./form-associated.js";
6
- import { t as FormElement } from "./form-element.js";
7
- import { t as WithErrorText } from "./with-error-text.js";
8
- import { t as WithContextualHelp } from "./with-contextual-help.js";
9
- import { t as Localized } from "./localized.js";
10
- import { i as Button, t as buttonDefinition } from "./definition7.js";
11
- import { a as feedbackMessageDefinition, t as WithFeedback } from "./mixins.js";
12
- import { ExecutionContext, Observable, attr, html, nullableNumberConverter, observable, ref, repeat, slotted, volatile, when } from "@microsoft/fast-element";
4
+ import { r as Elevation, t as elevationDefinition } from "./definition8.js";
5
+ import { attr, html } from "@microsoft/fast-element";
13
6
  import { classNames } from "@microsoft/fast-web-utilities";
14
- //#region src/lib/file-picker/file-picker.scss?inline
15
- var file_picker_default = ".label-wrapper{align-items:center;gap:var(--label-wrapper-gap,4px);flex-direction:row;display:flex}.label-wrapper[hidden]{display:none}.label:not(slot),.label::slotted(label){flex:0 auto}:host{max-inline-size:400px;display:block}:host([disabled]){cursor:not-allowed}.base{block-size:inherit;max-block-size:inherit;--_low-ink-color:var(--vvd-color-neutral-600);flex-direction:column;display:flex}.control-wrapper{block-size:inherit;max-block-size:inherit;flex-direction:column;gap:4px;display:flex}.control{box-sizing:border-box;border:1px dashed var(--vvd-color-neutral-400);background-color:var(--vvd-color-cta-50);color:var(--vvd-color-neutral-600);cursor:pointer;font:var(--vvd-typography-base);border-radius:8px;outline:none;flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;min-block-size:52px;inline-size:100%;padding:16px;transition:all .3s;display:flex;position:relative}.control .upload-text{color:var(--vvd-color-neutral-600);isolation:isolate;pointer-events:none;text-align:center;justify-content:center;align-items:center;transition:all .3s;display:flex}.control.disabled{border-color:var(--vvd-color-neutral-300);background-color:var(--vvd-color-neutral-100);box-shadow:none;color:var(--vvd-color-neutral-300);pointer-events:none;transform:none}.control.disabled .upload-text{color:var(--vvd-color-neutral-300)}@media (hover:hover){.control:hover .upload-text{color:var(--vvd-color-neutral-800)}}.control.drag-hover .upload-text{color:var(--vvd-color-neutral-800)}.control:not(.size-expanded){min-block-size:52px}.control.size-expanded{min-block-size:120px}.control:focus-visible{--focus-stroke-gap-color:transparent;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))}.control:active,.control:focus-visible{border-color:var(--vvd-color-cta-400);background-color:var(--vvd-color-cta-100);transform:translateY(-1px);box-shadow:0 2px 8px #0000001a}@media (hover:hover){.control:hover{border-color:var(--vvd-color-cta-400);background-color:var(--vvd-color-cta-100);transform:translateY(-1px);box-shadow:0 2px 8px #0000001a}}.control:active{transform:translateY(0);box-shadow:0 1px 4px #0000001a}.control.drag-hover{border-color:var(--vvd-color-cta-200);background-color:var(--vvd-color-cta-200);outline:2px dashed var(--vvd-color-cta-500);transform:scale(1.02)}.upload-icon{color:var(--vvd-color-cta-600);pointer-events:none;transition:all .3s;animation:2s ease-in-out infinite subtle-pulse}@media (hover:hover){.control:hover .upload-icon{color:var(--vvd-color-cta-700);animation:none;transform:scale(1.1)}}.control:active .upload-icon{transform:scale(1.05)}.control.drag-hover .upload-icon{color:var(--vvd-color-neutral-800);animation:none;transform:scale(1.15)}.control.disabled .upload-icon{color:var(--vvd-color-neutral-300);animation:none}@keyframes subtle-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.8;transform:scale(1.05)}}.main{pointer-events:none}.preview{box-sizing:border-box;border:1px solid var(--vvd-color-neutral-300);background-color:var(--file-picker-list-item-background-color,var(--vvd-color-canvas));border-radius:8px;grid-template-rows:auto auto;grid-template-columns:1fr auto;inline-size:100%;padding:8px;display:grid}.preview .details{min-width:0;flex-direction:column;max-inline-size:100%;display:flex}.preview .details .filename{color:var(--vvd-color-canvas-text);font:var(--vvd-typography-base);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.preview .details .size{color:var(--vvd-color-neutral-600);font:var(--vvd-typography-base-condensed)}.preview .error-message{color:var(--vvd-color-alert-600);font:var(--vvd-typography-base-condensed-bold);align-items:center;gap:4px;margin-block-start:4px;display:flex}.preview:not(.has-error) .error-message{display:none}.preview.has-error{border:1px solid var(--vvd-color-alert-500);background-color:var(--vvd-color-alert-50)}.preview.has-error .size{display:none}.preview .remove-btn{grid-area:1/2/-1/-1;align-self:center;display:inline}.preview-list{--scrollbar-track-color:transparent;--scrollbar-thumb-color:color-mix(in srgb, var(--vvd-color-neutral-950), transparent 70%);scrollbar-color:var(--scrollbar-thumb-color) var(--scrollbar-track-color);scrollbar-width:thin}.preview-list ::-webkit-scrollbar{width:4px}.preview-list ::-webkit-scrollbar-track{background:var(--scrollbar-track-color)}.preview-list ::-webkit-scrollbar-thumb{background-color:var(--scrollbar-fallback-track-color,var(--scrollbar-thumb-color));border:0;border-radius:4px}.preview-list{flex-direction:column;gap:12px;margin-block-start:12px;display:flex;overflow-y:auto}.preview-list:not(:has(.preview)){display:none}.hidden-input{visibility:hidden;width:0;height:0;position:absolute;top:0;left:0}";
7
+ //#region src/lib/header/header.scss?inline
8
+ var header_default = ".base{z-index:1;block-size:calc(calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density,0), 2))) + calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density,0), 2) - 16)));font:var(--vvd-typography-heading-4);inline-size:100%}.base .header-content{align-items:center;column-gap:4px;display:inline-flex}.container{box-sizing:border-box;background-color:var(--header-bg-color,var(--vvd-color-canvas));block-size:inherit;color:var(--vvd-color-canvas-text);justify-content:space-between;column-gap:12px;padding-block:8px;padding-inline:16px;display:flex}.container[part~=vvd-theme-alternate]{color-scheme:var(--vvd-color-scheme)}.app-content{--vvd-header-block-size:calc(calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density,0), 2))) + calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density,0), 2) - 16)))}";
16
9
  //#endregion
17
- //#region src/lib/file-picker/data-transfer.ts
18
- /**
19
- * Extracts files from a DataTransfer, including files from directories.
20
- */
21
- async function filesFromDataTransfer(dataTransfer) {
22
- return dataTransfer.items?.[0]?.webkitGetAsEntry != null ? await filesFromDataTransferItems(dataTransfer.items) : Array.from(dataTransfer.files);
23
- }
24
- async function filesFromDataTransferItems(items) {
25
- const result = [];
26
- for (const item of items) {
27
- const file = item.getAsFile();
28
- if (file) result.push(Promise.resolve([file]));
29
- else {
30
- const entry = item.webkitGetAsEntry();
31
- if (entry) result.push(filesFromEntry(entry, false));
32
- }
33
- }
34
- return (await Promise.all(result)).flat();
35
- }
36
- var filesFromEntry = (entry, ignoreHiddenFiles) => {
37
- const handleFileEntry = (file) => new Promise((resolve, reject) => {
38
- file.file((f) => {
39
- if (ignoreHiddenFiles && f.name.substring(0, 1) === ".") resolve([]);
40
- else resolve([f]);
41
- }, reject);
42
- });
43
- const promise = entry.isFile ? handleFileEntry(entry) : entry.isDirectory ? filesFromDirectory(entry) : Promise.resolve([]);
44
- promise.catch(() => null);
45
- return promise;
46
- };
47
- var filesFromDirectory = async (directory) => new Promise((resolve, reject) => {
48
- const result = [];
49
- const dirReader = directory.createReader();
50
- const readEntries = () => {
51
- dirReader.readEntries((entries) => {
52
- for (const entry of entries) result.push(filesFromEntry(entry, true));
53
- if (entries.length) readEntries();
54
- else resolve(Promise.all(result).then((r) => r.flat()));
55
- }, reject);
56
- };
57
- readEntries();
58
- });
59
- //#endregion
60
- //#region src/lib/file-picker/accept.ts
61
- /**
62
- * Match a file against an accept string, like native file input
63
- */
64
- function isAcceptedFileType(file, accept) {
65
- if (!accept) return true;
66
- const validTypes = accept.split(",");
67
- const isBasePattern = (type) => /\/\*$/.test(type);
68
- const baseType = (type) => type.replace(/\/.*$/, "");
69
- for (let validType of validTypes) {
70
- validType = validType.trim();
71
- if (validType.charAt(0) === ".") {
72
- if (file.name.toLowerCase().endsWith(validType.toLowerCase())) return true;
73
- } else if (isBasePattern(validType)) {
74
- if (baseType(file.type) === baseType(validType)) return true;
75
- } else if (file.type === validType) return true;
76
- }
77
- return false;
78
- }
79
- //#endregion
80
- //#region src/lib/file-picker/file-picker.ts
10
+ //#region src/lib/header/header.ts
81
11
  /**
82
12
  * @public
83
- * @component file-picker
84
- * @slot helper-text - Describes how to use the file-picker. Alternative to the `helper-text` attribute.
85
- * @event {CustomEvent<undefined>} change - Emitted when files are added or removed.
13
+ * @component header
14
+ * @slot - Default slot.
15
+ * @slot action-items - Nodes assigned to action-items slot will be set at the end of the header.
16
+ * @slot app-content - Content vertically aligned with header.
86
17
  */
87
- var FilePicker = class extends WithContextualHelp(WithFeedback(WithErrorText(FormElement(DelegatesAria(Localized(FormAssociated(VividElement))))))) {
18
+ var Header = class extends DelegatesAria(VividElement) {
88
19
  constructor(..._args) {
89
20
  super(..._args);
90
- this.singleFile = false;
91
- this.maxFiles = null;
92
- this.maxFileSize = 256;
93
- this.valueChanged = (previous, next) => {
94
- super.valueChanged(previous, next);
95
- if (next === "" && this.files.length) this.removeAllFiles();
96
- };
97
- this.proxy = document.createElement("input");
98
- this.setFormValue = (value, state) => {
99
- if (typeof value === "string") return;
100
- super.setFormValue(value, state);
101
- };
102
- this._customValidationError = null;
103
- this.#customValidationChangeHandler = { handleChange: () => {
104
- this._customValidationError = this.#customValidationChangeObserver.observe(this, ExecutionContext.default);
105
- } };
106
- this._dragHover = false;
107
- this._allFiles = [];
108
- }
109
- /**
110
- * @internal
111
- */
112
- nameChanged(previous, next) {
113
- super.nameChanged(previous, next);
114
- this.#updateFormValue();
115
- }
116
- #updateFormValue() {
117
- const files = this.files;
118
- if (!this.name) this.setFormValue(null);
119
- else {
120
- const formData = new FormData();
121
- for (const file of files) formData.append(this.name, file);
122
- this.setFormValue(formData);
123
- }
124
- this.#setValueToAFakePathLikeNativeInput();
125
- }
126
- #setValueToAFakePathLikeNativeInput() {
127
- this.value = this.files.length > 0 ? `C:\\fakepath\\${this.files[0].name}` : "";
128
- }
129
- /** @internal */
130
- validate() {
131
- super.validate(this.control);
132
- }
133
- /**
134
- * @internal
135
- */
136
- formResetCallback() {
137
- this.removeAllFiles();
138
- super.formResetCallback();
139
- }
140
- #getCustomValidationError() {
141
- if (this.rejectedFiles.length > 0) return this.locale.filePicker.invalidFilesError;
142
- return null;
143
- }
144
- /**
145
- * @internal
146
- */
147
- _customValidationErrorChanged() {
148
- /* v8 ignore if -- @preserve */
149
- if (this.proxy) this.proxy.setCustomValidity(this._customValidationError ?? "");
150
- this.validate();
151
- }
152
- #customValidationChangeHandler;
153
- #customValidationChangeObserver;
154
- #startObservingCustomValidation() {
155
- this.#customValidationChangeObserver = Observable.binding(() => this.#getCustomValidationError(), this.#customValidationChangeHandler, true);
156
- this.#customValidationChangeHandler.handleChange();
157
- }
158
- #stopObservingCustomValidation() {
159
- this.#customValidationChangeObserver.dispose();
160
- }
161
- connectedCallback() {
162
- super.connectedCallback();
163
- this.#startObservingCustomValidation();
164
- }
165
- disconnectedCallback() {
166
- super.disconnectedCallback();
167
- this.#stopObservingCustomValidation();
168
- }
169
- /**
170
- * @internal
171
- */
172
- _onDragEnter() {
173
- if (this.disabled) return true;
174
- this._dragHover = true;
175
- return true;
176
- }
177
- /**
178
- * @internal
179
- */
180
- _onDragOver(e) {
181
- if (this.disabled) return true;
182
- if (!e.dataTransfer) return true;
183
- const effect = e.dataTransfer.effectAllowed;
184
- e.dataTransfer.dropEffect = "move" === effect || "linkMove" === effect ? "move" : "copy";
185
- return false;
186
- }
187
- /**
188
- * @internal
189
- */
190
- _onDragLeave(e) {
191
- if (this.disabled) return true;
192
- /* v8 ignore else -- @preserve */
193
- if (e.currentTarget === e.target) this._dragHover = false;
194
- return true;
195
- }
196
- /**
197
- * @internal
198
- */
199
- _onDrop(e) {
200
- if (this.disabled) return true;
201
- this._dragHover = false;
202
- if (!e.dataTransfer) return true;
203
- filesFromDataTransfer(e.dataTransfer).then((files) => this.#addFiles(files)).catch((err) => {
204
- console.error(err);
205
- });
206
- return false;
207
- }
208
- /**
209
- * @internal
210
- */
211
- _onDragEnd() {
212
- if (this.disabled) return true;
213
- this._dragHover = false;
214
- return true;
215
- }
216
- /**
217
- * @internal
218
- */
219
- _onControlClick() {
220
- /* v8 ignore if -- @preserve */
221
- if (this.disabled) return;
222
- this._hiddenInput.click();
223
- }
224
- /**
225
- * @internal
226
- */
227
- _onRemoveFileClick(file) {
228
- if (this.disabled) return;
229
- this._allFiles = this._allFiles.filter((f) => f !== file);
230
- this.$emit("change");
231
- }
232
- /**
233
- * @internal
234
- */
235
- _allFilesChanged() {
236
- this.#updateFormValue();
237
- }
238
- #addFiles(files) {
239
- const newFiles = Array.from(files).filter((file) => !this._allFiles.some((existingFile) => existingFile.name === file.name && existingFile.size === file.size));
240
- if (this.singleFile && newFiles.length > 0) this._allFiles = [newFiles[newFiles.length - 1]];
241
- else this._allFiles = [...this._allFiles, ...newFiles];
242
- this.$emit("change");
243
- }
244
- /**
245
- * Removes all files from the File Picker.
246
- */
247
- removeAllFiles() {
248
- this._allFiles = [];
249
- }
250
- /**
251
- * All files with their current validation status.
252
- * @internal
253
- */
254
- get _validatedFiles() {
255
- const validationError = (file, validFileIndex) => {
256
- if (this.maxFileSize && file.size > this.maxFileSize * 1024 * 1024) return (this.fileTooBigError || this.locale.filePicker.fileTooBigError).replace("{{filesize}}", this._formatNumber(Math.round(file.size / 1024 / 10.24) / 100)).replace("{{maxFilesize}}", this._formatNumber(this.maxFileSize));
257
- else if (!isAcceptedFileType(file, this.accept)) return this.invalidFileTypeError || this.locale.filePicker.invalidFileTypeError;
258
- else if (typeof this.maxFiles === "number" && validFileIndex >= this.maxFiles) return (this.maxFilesExceededError || this.locale.filePicker.maxFilesExceededError).replace("{{maxFiles}}", String(this.maxFiles));
259
- else return null;
260
- };
261
- const result = [];
262
- let validFileIndex = 0;
263
- for (const file of this._allFiles) {
264
- const validatedFile = {
265
- file,
266
- validationError: validationError(file, validFileIndex)
267
- };
268
- result.push(validatedFile);
269
- if (!validatedFile.validationError) validFileIndex++;
270
- }
271
- return result;
272
- }
273
- /**
274
- * List of files that have been added to the file picker and passed validation
275
- *
276
- * @public
277
- */
278
- get files() {
279
- return this._validatedFiles.filter((f) => !f.validationError).map((f) => f.file);
280
- }
281
- /**
282
- * List of files that have been added to the file picker but failed validation
283
- *
284
- * @public
285
- */
286
- get rejectedFiles() {
287
- return this._validatedFiles.filter((f) => !!f.validationError).map((f) => f.file);
288
- }
289
- /**
290
- * @internal
291
- */
292
- _onHiddenInputChange(e) {
293
- this.#addFiles(this._hiddenInput.files);
294
- this._hiddenInput.value = "";
295
- e.stopPropagation();
296
- }
297
- /**
298
- * @internal
299
- */
300
- _formatNumber(value) {
301
- const str = String(value);
302
- if (this.locale.common.useCommaAsDecimalSeparator) return str.replace(".", ",");
303
- return str;
21
+ this.elevationShadow = false;
22
+ this.alternate = false;
304
23
  }
305
24
  };
306
25
  __decorate([attr({
307
- attribute: "single-file",
26
+ attribute: "elevation-shadow",
308
27
  mode: "boolean"
309
- })], FilePicker.prototype, "singleFile", void 0);
310
- __decorate([attr({
311
- attribute: "max-files",
312
- converter: nullableNumberConverter,
313
- mode: "fromView"
314
- })], FilePicker.prototype, "maxFiles", void 0);
315
- __decorate([attr({
316
- mode: "fromView",
317
- attribute: "max-file-size"
318
- })], FilePicker.prototype, "maxFileSize", void 0);
319
- __decorate([attr], FilePicker.prototype, "accept", void 0);
320
- __decorate([attr], FilePicker.prototype, "size", void 0);
321
- __decorate([attr({ attribute: "invalid-file-type-error" })], FilePicker.prototype, "invalidFileTypeError", void 0);
322
- __decorate([attr({ attribute: "max-files-exceeded-error" })], FilePicker.prototype, "maxFilesExceededError", void 0);
323
- __decorate([attr({ attribute: "file-too-big-error" })], FilePicker.prototype, "fileTooBigError", void 0);
324
- __decorate([observable], FilePicker.prototype, "_customValidationError", void 0);
325
- __decorate([observable], FilePicker.prototype, "_dragHover", void 0);
326
- __decorate([observable], FilePicker.prototype, "_allFiles", void 0);
327
- __decorate([volatile], FilePicker.prototype, "_validatedFiles", null);
28
+ })], Header.prototype, "elevationShadow", void 0);
29
+ __decorate([attr({ mode: "boolean" })], Header.prototype, "alternate", void 0);
328
30
  //#endregion
329
- //#region src/lib/file-picker/file-picker.template.ts
330
- var filesizeBase = 1e3;
331
- var dictFileSizeUnits = {
332
- tb: "TB",
333
- gb: "GB",
334
- mb: "MB",
335
- kb: "KB",
336
- b: "b"
337
- };
338
- var renderFileSize = (x, size) => {
339
- let selectedSize = 0;
340
- let selectedUnit = "b";
341
- /* v8 ignore else -- @preserve */
342
- if (size > 0) {
343
- const units = [
344
- "tb",
345
- "gb",
346
- "mb",
347
- "kb",
348
- "b"
349
- ];
350
- for (let i = 0; i < units.length; i++) {
351
- const unit = units[i];
352
- if (size >= Math.pow(filesizeBase, 4 - i) / 10) {
353
- selectedSize = size / Math.pow(filesizeBase, 4 - i);
354
- selectedUnit = unit;
355
- break;
356
- }
357
- }
358
- selectedSize = Math.round(10 * selectedSize) / 10;
359
- }
360
- return html`<strong>${x._formatNumber(selectedSize)}</strong>
361
- ${dictFileSizeUnits[selectedUnit]}`;
362
- };
363
- var getClasses = ({ size, _dragHover, disabled }) => classNames("control", [`size-${size}`, Boolean(size)], ["drag-hover", _dragHover], ["disabled", disabled]);
364
- var FilePickerTemplate = (context) => {
365
- const iconTag = context.tagFor(Icon);
366
- const buttonTag = context.tagFor(Button);
31
+ //#region src/lib/header/header.template.ts
32
+ var getPartAlternate = ({ alternate }) => classNames(["vvd-theme-alternate", Boolean(alternate)]);
33
+ var headerTemplate = (context) => {
34
+ const elevationTag = context.tagFor(Elevation);
367
35
  return html`
368
- <div class="base">
369
- <div class="label-wrapper" ?hidden=${(x) => !x.label && !x._hasContextualHelp}>
370
- ${when((x) => x.label, html`<label class="label">${(x) => x.label}</label>`)}
371
- <slot name="contextual-help" ${slotted("_contextualHelpSlottedContent")}></slot>
372
- </div>
373
- <div class="control-wrapper">
374
- <button
375
- type="button"
376
- ${ref("control")}
377
- class="${getClasses}"
378
- ?disabled="${(x) => x.disabled}"
379
- @click="${(x) => x._onControlClick()}"
380
- @keydown="${() => false}"
381
- @dragenter="${(x) => x._onDragEnter()}"
382
- @dragover="${(x, c) => x._onDragOver(c.event)}"
383
- @dragleave="${(x, c) => x._onDragLeave(c.event)}"
384
- @drop="${(x, c) => x._onDrop(c.event)}"
385
- @dragend="${(x) => x._onDragEnd()}"
386
- aria-describedby="${(x) => x._feedbackDescribedBy}"
387
- ${delegateAria()}
388
- >
389
- <${iconTag}
390
- class="upload-icon"
391
- name="cloud-upload-line"
392
- size="-4"
393
- label="${(x) => x.locale.filePicker.uploadFilesLabel}"
394
- ></${iconTag}>
395
- <span class="upload-text"><slot></slot></span>
396
- </button>
397
- ${(x) => x._getFeedbackTemplate(context)}
398
- </div>
399
- <div class="preview-list">
400
- ${repeat((x) => x._validatedFiles, html`
401
- <div class="${(x) => classNames("preview", ["has-error", !!x.validationError])}">
402
- <div class="details">
403
- <div class="filename">${(x) => x.file.name}</div>
404
- <div class="size">${(x, c) => renderFileSize(c.parent, x.file.size)}</div>
405
- </div>
406
- <div class="error-message">
407
- <${iconTag} name="info-line" size="-6"></${iconTag}>
408
- ${(x) => x.validationError}
409
- </div>
410
- <${buttonTag}
411
- class="remove-btn" icon="delete-line" appearance="ghost-light" size="condensed"
412
- ?disabled="${(_, c) => c.parent.disabled}"
413
- aria-label="${(_, c) => c.parent.locale.filePicker.removeFileLabel}"
414
- @click="${(x, c) => c.parent._onRemoveFileClick(x.file)}"></${buttonTag}>
415
- </div>`)}
416
- </div>
417
- </div>
418
- <input
419
- ${ref("_hiddenInput")}
420
- class="hidden-input"
421
- aria-hidden="true"
422
- type="file"
423
- ?disabled="${(x) => x.disabled}"
424
- ?multiple="${(x) => !x.singleFile && (x.maxFiles == null || x.maxFiles > 1)}"
425
- accept="${(x) => x.accept || null}"
426
- tabindex="-1"
427
- @change="${(x, c) => x._onHiddenInputChange(c.event)}"
428
- />
36
+ <${elevationTag} dp="4" ?no-shadow=${(x) => !x.elevationShadow}>
37
+ <header class="base" part="base" ${delegateAria()}>
38
+ <!-- a container is needed to distinguish the surface background color of the
39
+ element from its shadow when applying elevation with alternate -->
40
+ <div class="container" part="${getPartAlternate}">
41
+ <section class="header-content">
42
+ <slot></slot>
43
+ </section>
44
+ <section class="header-content">
45
+ <slot name="action-items"></slot>
46
+ </section>
47
+ </div>
48
+ </header>
49
+ </${elevationTag}>
50
+ <div class="app-content">
51
+ <slot name="app-content"></slot>
52
+ </div>
429
53
  `;
430
54
  };
431
55
  //#endregion
432
- //#region src/lib/file-picker/definition.ts
56
+ //#region src/lib/header/definition.ts
433
57
  /**
434
58
  * @internal
435
59
  */
436
- var filePickerDefinition = defineVividComponent("file-picker", FilePicker, FilePickerTemplate, [
437
- iconDefinition,
438
- buttonDefinition,
439
- feedbackMessageDefinition
440
- ], {
441
- styles: file_picker_default,
442
- shadowOptions: { delegatesFocus: true }
443
- });
60
+ var headerDefinition = defineVividComponent("header", Header, headerTemplate, [elevationDefinition], { styles: header_default });
444
61
  /**
445
- * Registers the file-picker element with the design system.
62
+ * Registers the header elements with the design system.
446
63
  *
447
64
  * @param prefix - the prefix to use for the component name
448
65
  */
449
- var registerFilePicker = createRegisterFunction(filePickerDefinition);
66
+ var registerHeader = createRegisterFunction(headerDefinition);
450
67
  //#endregion
451
- export { registerFilePicker as n, FilePicker as r, filePickerDefinition as t };
68
+ export { registerHeader as n, Header as r, headerDefinition as t };
@@ -1,86 +1,77 @@
1
1
  require("./chunk.cjs");
2
2
  const require_vivid_element = require("./vivid-element.cjs");
3
- const require_decorate = require("./decorate.cjs");
4
- const require_delegates_aria = require("./delegates-aria.cjs");
5
- const require_definition = require("./definition8.cjs");
6
3
  let _microsoft_fast_element = require("@microsoft/fast-element");
7
- let _microsoft_fast_web_utilities = require("@microsoft/fast-web-utilities");
8
- //#region src/lib/header/header.scss?inline
9
- var header_default = ".base{z-index:1;block-size:calc(calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density,0), 2))) + calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density,0), 2) - 16)));font:var(--vvd-typography-heading-4);inline-size:100%}.base .header-content{align-items:center;column-gap:4px;display:inline-flex}.container{box-sizing:border-box;background-color:var(--header-bg-color,var(--vvd-color-canvas));block-size:inherit;color:var(--vvd-color-canvas-text);justify-content:space-between;column-gap:12px;padding-block:8px;padding-inline:16px;display:flex}.container[part~=vvd-theme-alternate]{color-scheme:var(--vvd-color-scheme)}.app-content{--vvd-header-block-size:calc(calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density,0), 2))) + calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density,0), 2) - 16)))}";
4
+ //#region src/lib/kbd-shortcut/kbd-shortcut.scss?inline
5
+ var kbd_shortcut_default = ":host{display:inline-block}.base{white-space:nowrap;align-items:center;gap:.3em;display:inline-flex}";
10
6
  //#endregion
11
- //#region src/lib/header/header.ts
7
+ //#region src/lib/kbd-shortcut/kbd-shortcut.ts
8
+ /** Modifier key names in aria-keyshortcuts. */
9
+ var MODIFIER_NAMES = new Set([
10
+ "Control",
11
+ "Alt",
12
+ "Shift",
13
+ "Meta"
14
+ ]);
12
15
  /**
13
16
  * @public
14
- * @component header
15
- * @slot - Default slot.
16
- * @slot action-items - Nodes assigned to action-items slot will be set at the end of the header.
17
- * @slot app-content - Content vertically aligned with header.
17
+ * @component kbd-shortcut
18
+ * @slot - Default slot for Kbd elements.
18
19
  */
19
- var Header = class extends require_delegates_aria.DelegatesAria(require_vivid_element.VividElement) {
20
- constructor(..._args) {
21
- super(..._args);
22
- this.elevationShadow = false;
23
- this.alternate = false;
20
+ var KbdShortcut = class extends require_vivid_element.VividElement {
21
+ /**
22
+ * Returns a valid aria-keyshortcuts value based on the slotted kbd-key elements.
23
+ * Modifiers are sorted to be first as required by the spec.
24
+ * Returns null if no keys are available.
25
+ */
26
+ getKeyshortcutsValue() {
27
+ const keys = Array.from(this.children).filter((el) => typeof el._getKeyshortcutsKey === "function");
28
+ if (keys.length === 0) return null;
29
+ const names = [];
30
+ for (const key of keys) {
31
+ const name = key._getKeyshortcutsKey();
32
+ if (name !== null) names.push(name);
33
+ }
34
+ if (names.length === 0) return null;
35
+ const modifiers = names.filter((n) => MODIFIER_NAMES.has(n));
36
+ const nonModifiers = names.filter((n) => !MODIFIER_NAMES.has(n));
37
+ return [...modifiers, ...nonModifiers].join("+");
24
38
  }
25
39
  };
26
- require_decorate.__decorate([(0, _microsoft_fast_element.attr)({
27
- attribute: "elevation-shadow",
28
- mode: "boolean"
29
- })], Header.prototype, "elevationShadow", void 0);
30
- require_decorate.__decorate([(0, _microsoft_fast_element.attr)({ mode: "boolean" })], Header.prototype, "alternate", void 0);
31
40
  //#endregion
32
- //#region src/lib/header/header.template.ts
33
- var getPartAlternate = ({ alternate }) => (0, _microsoft_fast_web_utilities.classNames)(["vvd-theme-alternate", Boolean(alternate)]);
34
- var headerTemplate = (context) => {
35
- const elevationTag = context.tagFor(require_definition.Elevation);
36
- return _microsoft_fast_element.html`
37
- <${elevationTag} dp="4" ?no-shadow=${(x) => !x.elevationShadow}>
38
- <header class="base" part="base" ${require_delegates_aria.delegateAria()}>
39
- <!-- a container is needed to distinguish the surface background color of the
40
- element from its shadow when applying elevation with alternate -->
41
- <div class="container" part="${getPartAlternate}">
42
- <section class="header-content">
43
- <slot></slot>
44
- </section>
45
- <section class="header-content">
46
- <slot name="action-items"></slot>
47
- </section>
48
- </div>
49
- </header>
50
- </${elevationTag}>
51
- <div class="app-content">
52
- <slot name="app-content"></slot>
53
- </div>
54
- `;
41
+ //#region src/lib/kbd-shortcut/kbd-shortcut.template.ts
42
+ var KbdShortcutTemplate = () => {
43
+ return _microsoft_fast_element.html`<span class="base" role="group"
44
+ ><slot></slot
45
+ ></span>`;
55
46
  };
56
47
  //#endregion
57
- //#region src/lib/header/definition.ts
48
+ //#region src/lib/kbd-shortcut/definition.ts
58
49
  /**
59
50
  * @internal
60
51
  */
61
- var headerDefinition = require_vivid_element.defineVividComponent("header", Header, headerTemplate, [require_definition.elevationDefinition], { styles: header_default });
52
+ var kbdShortcutDefinition = require_vivid_element.defineVividComponent("kbd-shortcut", KbdShortcut, KbdShortcutTemplate, [], { styles: kbd_shortcut_default });
62
53
  /**
63
- * Registers the header elements with the design system.
54
+ * Registers the kbd-shortcut element with the design system.
64
55
  *
65
56
  * @param prefix - the prefix to use for the component name
66
57
  */
67
- var registerHeader = require_vivid_element.createRegisterFunction(headerDefinition);
58
+ var registerKbdShortcut = require_vivid_element.createRegisterFunction(kbdShortcutDefinition);
68
59
  //#endregion
69
- Object.defineProperty(exports, "Header", {
60
+ Object.defineProperty(exports, "KbdShortcut", {
70
61
  enumerable: true,
71
62
  get: function() {
72
- return Header;
63
+ return KbdShortcut;
73
64
  }
74
65
  });
75
- Object.defineProperty(exports, "headerDefinition", {
66
+ Object.defineProperty(exports, "kbdShortcutDefinition", {
76
67
  enumerable: true,
77
68
  get: function() {
78
- return headerDefinition;
69
+ return kbdShortcutDefinition;
79
70
  }
80
71
  });
81
- Object.defineProperty(exports, "registerHeader", {
72
+ Object.defineProperty(exports, "registerKbdShortcut", {
82
73
  enumerable: true,
83
74
  get: function() {
84
- return registerHeader;
75
+ return registerKbdShortcut;
85
76
  }
86
77
  });