@vonage/vivid 5.23.1 → 5.25.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 (522) hide show
  1. package/README.md +1 -1
  2. package/accordion/index.cjs +1 -1
  3. package/accordion/index.js +1 -1
  4. package/accordion-item/index.cjs +1 -1
  5. package/accordion-item/index.js +1 -1
  6. package/audio-player/index.cjs +2 -2
  7. package/audio-player/index.js +3 -3
  8. package/avatar/index.cjs +10 -10
  9. package/avatar/index.js +4 -3
  10. package/badge/index.cjs +1 -1
  11. package/badge/index.js +1 -1
  12. package/breadcrumb-item/index.cjs +9 -5
  13. package/breadcrumb-item/index.js +11 -6
  14. package/bundled/affix.cjs +1 -1
  15. package/bundled/affix.js +1 -1
  16. package/bundled/definition10.cjs +2 -1
  17. package/bundled/definition10.js +3 -2
  18. package/bundled/definition11.cjs +4 -4
  19. package/bundled/definition11.js +4 -3
  20. package/bundled/definition12.cjs +1 -1
  21. package/bundled/definition12.js +1 -0
  22. package/bundled/definition15.cjs +8 -7
  23. package/bundled/definition15.js +27 -24
  24. package/bundled/definition17.cjs +7 -7
  25. package/bundled/definition17.js +22 -109
  26. package/bundled/definition18.cjs +12 -83
  27. package/bundled/definition18.js +20 -426
  28. package/bundled/definition19.cjs +87 -7
  29. package/bundled/definition19.js +433 -16
  30. package/bundled/definition20.cjs +7 -37
  31. package/bundled/definition20.js +17 -172
  32. package/bundled/definition21.cjs +35 -27
  33. package/bundled/definition21.js +155 -154
  34. package/bundled/definition22.cjs +29 -6
  35. package/bundled/definition22.js +172 -20
  36. package/bundled/definition23.cjs +6 -12
  37. package/bundled/definition23.js +17 -32
  38. package/bundled/definition24.cjs +12 -39
  39. package/bundled/definition24.js +33 -67
  40. package/bundled/definition25.cjs +44 -0
  41. package/bundled/definition25.js +81 -0
  42. package/bundled/definition3.cjs +5 -5
  43. package/bundled/definition3.js +10 -40
  44. package/bundled/definition4.cjs +6 -6
  45. package/bundled/definition4.js +4 -3
  46. package/bundled/definition6.cjs +11 -11
  47. package/bundled/definition6.js +4 -3
  48. package/bundled/definition9.cjs +12 -6
  49. package/bundled/definition9.js +66 -43
  50. package/bundled/extractOptions.cjs +1 -0
  51. package/bundled/extractOptions.js +11 -0
  52. package/bundled/icon.cjs +1 -0
  53. package/bundled/icon.js +34 -0
  54. package/bundled/listbox.cjs +1 -1
  55. package/bundled/listbox.js +28 -12
  56. package/bundled/mixins.cjs +8 -8
  57. package/bundled/mixins.js +4 -3
  58. package/bundled/optgroup.cjs +1 -0
  59. package/bundled/optgroup.js +27 -0
  60. package/bundled/option.cjs +1 -0
  61. package/bundled/option.js +93 -0
  62. package/bundled/render-in-light-dom.cjs +1 -1
  63. package/bundled/render-in-light-dom.js +16 -19
  64. package/bundled/vivid-element.cjs +1 -1
  65. package/bundled/vivid-element.js +9 -1
  66. package/card/index.cjs +22 -22
  67. package/card/index.js +4 -3
  68. package/color-picker/index.cjs +18 -18
  69. package/color-picker/index.js +4 -3
  70. package/combobox/definition.cjs +1 -1
  71. package/combobox/definition.js +1 -1
  72. package/combobox/index.cjs +7 -7
  73. package/combobox/index.js +31 -21
  74. package/country/definition.cjs +1 -1
  75. package/country/definition.js +1 -1
  76. package/country/index.cjs +1 -1
  77. package/country/index.js +1 -1
  78. package/country-group/definition.cjs +1 -1
  79. package/country-group/definition.js +1 -1
  80. package/country-group/index.cjs +1 -1
  81. package/country-group/index.js +2 -2
  82. package/custom-elements.json +8438 -7866
  83. package/data-grid/definition.cjs +1 -1
  84. package/data-grid/definition.js +1 -1
  85. package/data-grid/index.cjs +26 -26
  86. package/data-grid/index.js +9 -8
  87. package/date-picker/definition.cjs +1 -1
  88. package/date-picker/definition.js +1 -1
  89. package/date-picker/index.cjs +1 -1
  90. package/date-picker/index.js +1 -1
  91. package/date-range-picker/definition.cjs +1 -1
  92. package/date-range-picker/definition.js +1 -1
  93. package/date-range-picker/index.cjs +1 -1
  94. package/date-range-picker/index.js +1 -1
  95. package/date-time-picker/definition.cjs +1 -1
  96. package/date-time-picker/definition.js +1 -1
  97. package/date-time-picker/index.cjs +1 -1
  98. package/date-time-picker/index.js +1 -1
  99. package/dial-pad/definition.cjs +1 -1
  100. package/dial-pad/definition.js +1 -1
  101. package/dial-pad/index.cjs +7 -7
  102. package/dial-pad/index.js +124 -54
  103. package/dialog/definition.cjs +1 -1
  104. package/dialog/definition.js +1 -1
  105. package/dialog/index.cjs +14 -14
  106. package/dialog/index.js +4 -3
  107. package/divider/definition.cjs +1 -1
  108. package/divider/definition.js +1 -1
  109. package/divider/index.cjs +1 -1
  110. package/divider/index.js +1 -1
  111. package/empty-state/definition.cjs +1 -1
  112. package/empty-state/definition.js +1 -1
  113. package/empty-state/index.cjs +3 -3
  114. package/empty-state/index.js +4 -3
  115. package/fab/definition.cjs +1 -1
  116. package/fab/definition.js +1 -1
  117. package/file-picker/definition.cjs +1 -1
  118. package/file-picker/definition.js +1 -1
  119. package/file-picker/index.cjs +7 -7
  120. package/file-picker/index.js +4 -3
  121. package/flag/definition.cjs +1 -1
  122. package/flag/definition.js +1 -1
  123. package/header/definition.cjs +1 -1
  124. package/header/definition.js +1 -1
  125. package/header/index.cjs +3 -3
  126. package/header/index.js +3 -3
  127. package/icon/definition.cjs +2 -1
  128. package/icon/definition.js +2 -1
  129. package/index.cjs +209 -198
  130. package/index.js +59 -54
  131. package/kbd-key/definition.cjs +1 -1
  132. package/kbd-key/definition.js +1 -1
  133. package/kbd-shortcut/definition.cjs +1 -1
  134. package/kbd-shortcut/definition.js +1 -1
  135. package/layout/definition.cjs +1 -1
  136. package/layout/definition.js +1 -1
  137. package/lib/accordion-item/accordion-item.d.ts +3 -1
  138. package/lib/action-group/action-group.d.ts +1 -1
  139. package/lib/alert/alert.d.ts +2 -2
  140. package/lib/audio-player/audio-player.d.ts +1 -1
  141. package/lib/avatar/avatar.d.ts +1 -1
  142. package/lib/badge/badge.d.ts +1 -1
  143. package/lib/banner/banner.d.ts +3 -3
  144. package/lib/breadcrumb/breadcrumb.d.ts +1 -1
  145. package/lib/breadcrumb-item/breadcrumb-item.d.ts +1 -1
  146. package/lib/button/button.d.ts +3 -3
  147. package/lib/calendar-event/calendar-event.d.ts +1 -1
  148. package/lib/card/card.d.ts +1 -1
  149. package/lib/checkbox/checkbox.d.ts +6 -6
  150. package/lib/color-picker/color-picker.d.ts +7 -7
  151. package/lib/combobox/combobox.d.ts +8 -8
  152. package/lib/components.d.ts +2 -0
  153. package/lib/country-group/country-group.d.ts +2 -2
  154. package/lib/data-grid/data-grid-cell.d.ts +4 -3
  155. package/lib/data-grid/data-grid-row.d.ts +3 -2
  156. package/lib/data-grid/data-grid.options.d.ts +5 -0
  157. package/lib/date-picker/date-picker.d.ts +8 -8
  158. package/lib/date-range-picker/date-range-picker.d.ts +4 -4
  159. package/lib/date-time-picker/date-time-picker.d.ts +8 -8
  160. package/lib/dial-pad/dial-pad.d.ts +2 -2
  161. package/lib/dialog/dialog.d.ts +2 -2
  162. package/lib/divider/divider.d.ts +1 -1
  163. package/lib/fab/fab.d.ts +1 -1
  164. package/lib/file-picker/file-picker.d.ts +7 -7
  165. package/lib/header/header.d.ts +1 -1
  166. package/lib/listbox/definition.d.ts +3 -0
  167. package/lib/listbox/index.d.ts +1 -0
  168. package/lib/listbox/listbox.d.ts +1302 -0
  169. package/lib/listbox/listbox.template.d.ts +3 -0
  170. package/lib/listbox/variations.browser-spec.d.ts +1 -0
  171. package/lib/menu/menu.d.ts +2 -3
  172. package/lib/menu-item/menu-item.d.ts +3 -3
  173. package/lib/nav/nav.d.ts +1 -1
  174. package/lib/nav-disclosure/nav-disclosure.d.ts +2 -2
  175. package/lib/nav-item/nav-item.d.ts +2 -2
  176. package/lib/note/note.d.ts +1 -1
  177. package/lib/number-field/number-field.d.ts +9 -10
  178. package/lib/optgroup/definition.d.ts +3 -0
  179. package/lib/optgroup/index.d.ts +1 -0
  180. package/lib/optgroup/optgroup.d.ts +430 -0
  181. package/lib/optgroup/optgroup.template.d.ts +2 -0
  182. package/lib/optgroup/variations.browser-spec.d.ts +1 -0
  183. package/lib/option/option.d.ts +2 -2
  184. package/lib/pagination/pagination.d.ts +1 -1
  185. package/lib/popover/popover.d.ts +2 -2
  186. package/lib/progress/progress.d.ts +1 -1
  187. package/lib/progress-ring/progress-ring.d.ts +1 -1
  188. package/lib/radio/radio.d.ts +3 -3
  189. package/lib/radio-group/radio-group.d.ts +1 -1
  190. package/lib/range-slider/range-slider.d.ts +3 -3
  191. package/lib/rich-text-editor/rich-text-editor.d.ts +1 -1
  192. package/lib/rich-text-editor/rte/features/base.d.ts +1 -0
  193. package/lib/rich-text-editor/rte/utils/default-textblock.d.ts +2 -2
  194. package/lib/searchable-select/option-tag.d.ts +1 -1
  195. package/lib/searchable-select/searchable-select.d.ts +47 -47
  196. package/lib/select/select.d.ts +9 -9
  197. package/lib/selectable-box/selectable-box.d.ts +1 -1
  198. package/lib/simple-color-picker/simple-color-picker.d.ts +2 -2
  199. package/lib/slider/slider.d.ts +3 -3
  200. package/lib/split-button/split-button.d.ts +3 -3
  201. package/lib/status/status.d.ts +1 -1
  202. package/lib/switch/switch.d.ts +2 -2
  203. package/lib/tab/tab.d.ts +3 -3
  204. package/lib/tab-panel/tab-panel.d.ts +1 -1
  205. package/lib/table/table-cell.d.ts +1 -1
  206. package/lib/table/table-header-cell.d.ts +1 -1
  207. package/lib/table/table-row.d.ts +1 -1
  208. package/lib/table/table-sorting-button.d.ts +1 -1
  209. package/lib/tag/tag.d.ts +3 -3
  210. package/lib/tag-group/tag-group.d.ts +1 -1
  211. package/lib/tag-name-map.d.ts +3 -1
  212. package/lib/text-area/text-area.d.ts +8 -8
  213. package/lib/text-field/text-field.d.ts +10 -9
  214. package/lib/time-picker/time-picker.d.ts +4 -4
  215. package/lib/toggletip/toggletip.d.ts +3 -2
  216. package/lib/tooltip/tooltip.d.ts +3 -2
  217. package/lib/tree-item/tree-item.d.ts +2 -2
  218. package/lib/tree-view/tree-view.d.ts +1 -1
  219. package/lib/video-player/video-player.d.ts +1 -1
  220. package/listbox/definition.cjs +5 -0
  221. package/listbox/definition.js +2 -0
  222. package/listbox/index.cjs +11 -0
  223. package/listbox/index.js +540 -0
  224. package/menu/index.cjs +1 -1
  225. package/menu/index.js +1 -1
  226. package/menu-item/index.cjs +1 -1
  227. package/menu-item/index.js +1 -1
  228. package/nav/definition.cjs +1 -1
  229. package/nav/definition.js +1 -1
  230. package/nav-disclosure/definition.cjs +1 -1
  231. package/nav-disclosure/definition.js +1 -1
  232. package/nav-disclosure/index.cjs +4 -4
  233. package/nav-disclosure/index.js +4 -3
  234. package/nav-item/definition.cjs +1 -1
  235. package/nav-item/definition.js +1 -1
  236. package/note/definition.cjs +1 -1
  237. package/note/definition.js +1 -1
  238. package/number-field/definition.cjs +1 -1
  239. package/number-field/definition.js +1 -1
  240. package/number-field/index.cjs +1 -1
  241. package/number-field/index.js +1 -1
  242. package/optgroup/definition.cjs +6 -0
  243. package/optgroup/definition.js +3 -0
  244. package/optgroup/index.cjs +1 -0
  245. package/optgroup/index.js +4 -0
  246. package/option/definition.cjs +2 -1
  247. package/option/definition.js +2 -1
  248. package/package.json +9 -8
  249. package/pagination/definition.cjs +1 -1
  250. package/pagination/definition.js +1 -1
  251. package/platform-switch/definition.cjs +1 -1
  252. package/platform-switch/definition.js +1 -1
  253. package/popover/definition.cjs +1 -1
  254. package/popover/definition.js +1 -1
  255. package/popover/index.cjs +5 -5
  256. package/popover/index.js +4 -3
  257. package/progress/definition.cjs +1 -1
  258. package/progress/definition.js +1 -1
  259. package/radio/definition.cjs +1 -1
  260. package/radio/definition.js +1 -1
  261. package/radio-group/definition.cjs +1 -1
  262. package/radio-group/definition.js +1 -1
  263. package/range-slider/definition.cjs +1 -1
  264. package/range-slider/definition.js +1 -1
  265. package/rich-text-editor/definition.cjs +1 -1
  266. package/rich-text-editor/definition.js +1 -1
  267. package/rich-text-editor/index.cjs +13 -13
  268. package/rich-text-editor/index.js +26 -23
  269. package/rich-text-view/definition.cjs +1 -1
  270. package/rich-text-view/definition.js +1 -1
  271. package/searchable-select/definition.cjs +1 -1
  272. package/searchable-select/definition.js +1 -1
  273. package/searchable-select/index.cjs +23 -23
  274. package/searchable-select/index.js +67 -49
  275. package/select/definition.cjs +1 -1
  276. package/select/definition.js +1 -1
  277. package/select/index.cjs +1 -1
  278. package/select/index.js +1 -1
  279. package/selectable-box/definition.cjs +1 -1
  280. package/selectable-box/definition.js +1 -1
  281. package/shared/aria/delegates-aria.d.ts +1 -1
  282. package/shared/aria/host-semantics.d.ts +1 -1
  283. package/shared/color-picker/base-color-picker.d.ts +1 -1
  284. package/shared/feedback/feedback-message.d.ts +1 -1
  285. package/shared/feedback/mixins.d.ts +2 -2
  286. package/shared/foundation/button/button.d.ts +2 -2
  287. package/shared/foundation/form-associated/form-associated.d.ts +2 -2
  288. package/shared/foundation/listbox/extractOptions.d.ts +2 -0
  289. package/shared/foundation/listbox/listbox.d.ts +2 -0
  290. package/shared/listbox/commands.d.ts +17 -0
  291. package/shared/listbox/move.d.ts +6 -0
  292. package/shared/listbox/options.d.ts +12 -0
  293. package/shared/listbox/selection.d.ts +28 -0
  294. package/shared/listbox/state.d.ts +26 -0
  295. package/shared/listbox/typeahead.d.ts +8 -0
  296. package/shared/listbox/with-options-filter.d.ts +440 -0
  297. package/shared/listbox/with-options.d.ts +862 -0
  298. package/shared/patterns/affix.d.ts +2 -2
  299. package/shared/patterns/anchored.d.ts +2 -2
  300. package/shared/patterns/char-count/char-count.d.ts +1 -1
  301. package/shared/patterns/form-elements/form-element.d.ts +1 -1
  302. package/shared/patterns/form-elements/with-contextual-help.d.ts +1 -1
  303. package/shared/patterns/form-elements/with-error-text.d.ts +1 -1
  304. package/shared/patterns/form-elements/with-success-text.d.ts +1 -1
  305. package/shared/patterns/kbd-shortcut.d.ts +1 -1
  306. package/shared/patterns/linkable.d.ts +1 -1
  307. package/shared/patterns/localized.d.ts +2 -2
  308. package/shared/patterns/trapped-focus.d.ts +1 -1
  309. package/shared/picker-field/mixins/calendar-picker.d.ts +2 -2
  310. package/shared/picker-field/mixins/calendar-picker.template.d.ts +2 -2
  311. package/shared/picker-field/mixins/inline-time-picker/inline-time-picker.d.ts +1 -1
  312. package/shared/picker-field/mixins/min-max-calendar-picker.d.ts +2 -2
  313. package/shared/picker-field/mixins/single-date-picker.d.ts +2 -2
  314. package/shared/picker-field/mixins/single-value-picker.d.ts +2 -2
  315. package/shared/picker-field/mixins/time-selection-picker.d.ts +2 -2
  316. package/shared/picker-field/mixins/time-selection-picker.template.d.ts +4 -4
  317. package/shared/picker-field/picker-field.d.ts +7 -7
  318. package/side-drawer/definition.cjs +1 -1
  319. package/side-drawer/definition.js +1 -1
  320. package/simple-color-picker/definition.cjs +1 -1
  321. package/simple-color-picker/definition.js +1 -1
  322. package/simple-color-picker/index.cjs +6 -6
  323. package/simple-color-picker/index.js +4 -3
  324. package/split-button/definition.cjs +1 -1
  325. package/split-button/definition.js +1 -1
  326. package/split-button/index.cjs +1 -0
  327. package/split-button/index.js +1 -0
  328. package/status/definition.cjs +1 -1
  329. package/status/definition.js +1 -1
  330. package/switch/definition.cjs +1 -1
  331. package/switch/definition.js +1 -1
  332. package/switch/index.cjs +6 -5
  333. package/switch/index.js +16 -14
  334. package/tab/definition.cjs +1 -1
  335. package/tab/definition.js +1 -1
  336. package/tab-panel/definition.cjs +1 -1
  337. package/tab-panel/definition.js +1 -1
  338. package/table/definition.cjs +1 -1
  339. package/table/definition.js +1 -1
  340. package/table/index.cjs +13 -13
  341. package/table/index.js +4 -3
  342. package/tabs/definition.cjs +1 -1
  343. package/tabs/definition.js +1 -1
  344. package/tag/definition.cjs +1 -1
  345. package/tag/definition.js +1 -1
  346. package/tag/index.cjs +11 -11
  347. package/tag/index.js +4 -3
  348. package/tag-group/definition.cjs +1 -1
  349. package/tag-group/definition.js +1 -1
  350. package/text-area/definition.cjs +1 -1
  351. package/text-area/definition.js +1 -1
  352. package/time-picker/definition.cjs +1 -1
  353. package/time-picker/definition.js +1 -1
  354. package/tree-item/definition.cjs +1 -1
  355. package/tree-item/definition.js +1 -1
  356. package/tree-view/definition.cjs +1 -1
  357. package/tree-view/definition.js +1 -1
  358. package/unbundled/affix.cjs +2 -2
  359. package/unbundled/affix.js +1 -1
  360. package/unbundled/base-progress.cjs +1 -1
  361. package/unbundled/base-progress.js +1 -1
  362. package/unbundled/button.cjs +2 -2
  363. package/unbundled/button.js +2 -2
  364. package/unbundled/definition.cjs +2 -65
  365. package/unbundled/definition.js +4 -61
  366. package/unbundled/definition11.cjs +4 -3
  367. package/unbundled/definition11.js +3 -2
  368. package/unbundled/definition12.cjs +3 -2
  369. package/unbundled/definition12.js +3 -2
  370. package/unbundled/definition13.cjs +1 -1
  371. package/unbundled/definition13.js +1 -1
  372. package/unbundled/definition14.cjs +2 -1
  373. package/unbundled/definition14.js +2 -1
  374. package/unbundled/definition17.cjs +9 -4
  375. package/unbundled/definition17.js +9 -4
  376. package/unbundled/definition2.cjs +14 -3
  377. package/unbundled/definition2.js +15 -4
  378. package/unbundled/definition21.cjs +2 -1
  379. package/unbundled/definition21.js +2 -1
  380. package/unbundled/definition23.cjs +3 -1
  381. package/unbundled/definition23.js +4 -2
  382. package/unbundled/definition24.cjs +6 -4
  383. package/unbundled/definition24.js +6 -4
  384. package/unbundled/definition25.cjs +2 -1
  385. package/unbundled/definition25.js +2 -1
  386. package/unbundled/definition26.cjs +7 -4
  387. package/unbundled/definition26.js +7 -4
  388. package/unbundled/definition27.cjs +39 -5
  389. package/unbundled/definition27.js +40 -6
  390. package/unbundled/definition28.cjs +4 -3
  391. package/unbundled/definition28.js +4 -3
  392. package/unbundled/definition29.cjs +5 -168
  393. package/unbundled/definition29.js +11 -162
  394. package/unbundled/definition30.cjs +26 -506
  395. package/unbundled/definition30.js +24 -498
  396. package/unbundled/definition31.cjs +503 -39
  397. package/unbundled/definition31.js +501 -37
  398. package/unbundled/definition32.cjs +39 -239
  399. package/unbundled/definition32.js +36 -236
  400. package/unbundled/definition33.cjs +236 -74
  401. package/unbundled/definition33.js +233 -71
  402. package/unbundled/definition34.cjs +74 -1968
  403. package/unbundled/definition34.js +70 -1940
  404. package/unbundled/definition35.cjs +1993 -26
  405. package/unbundled/definition35.js +1965 -27
  406. package/unbundled/definition36.cjs +26 -111
  407. package/unbundled/definition36.js +23 -103
  408. package/unbundled/definition37.cjs +53 -294
  409. package/unbundled/definition37.js +50 -291
  410. package/unbundled/definition38.cjs +282 -132
  411. package/unbundled/definition38.js +279 -129
  412. package/unbundled/definition39.cjs +165 -339
  413. package/unbundled/definition39.js +163 -337
  414. package/unbundled/definition40.cjs +395 -227
  415. package/unbundled/definition40.js +393 -225
  416. package/unbundled/definition41.cjs +269 -47
  417. package/unbundled/definition41.js +264 -42
  418. package/unbundled/definition42.cjs +48 -67
  419. package/unbundled/definition42.js +45 -64
  420. package/unbundled/definition43.cjs +56 -383
  421. package/unbundled/definition43.js +55 -382
  422. package/unbundled/definition44.cjs +387 -44
  423. package/unbundled/definition44.js +383 -40
  424. package/unbundled/definition45.cjs +53 -45
  425. package/unbundled/definition45.js +49 -41
  426. package/unbundled/definition46.cjs +40 -164
  427. package/unbundled/definition46.js +36 -160
  428. package/unbundled/definition47.cjs +171 -31
  429. package/unbundled/definition47.js +168 -22
  430. package/unbundled/definition48.cjs +30 -89
  431. package/unbundled/definition48.js +22 -87
  432. package/unbundled/definition49.cjs +589 -48
  433. package/unbundled/definition49.js +587 -47
  434. package/unbundled/definition50.cjs +90 -21
  435. package/unbundled/definition50.js +88 -16
  436. package/unbundled/definition51.cjs +47 -32
  437. package/unbundled/definition51.js +44 -29
  438. package/unbundled/definition52.cjs +22 -323
  439. package/unbundled/definition52.js +16 -320
  440. package/unbundled/definition53.cjs +33 -212
  441. package/unbundled/definition53.js +29 -208
  442. package/unbundled/definition54.cjs +318 -41
  443. package/unbundled/definition54.js +314 -37
  444. package/unbundled/definition55.cjs +199 -253
  445. package/unbundled/definition55.js +193 -247
  446. package/unbundled/definition56.cjs +45 -53
  447. package/unbundled/definition56.js +42 -49
  448. package/unbundled/definition57.cjs +255 -133
  449. package/unbundled/definition57.js +253 -128
  450. package/unbundled/definition58.cjs +49 -245
  451. package/unbundled/definition58.js +47 -244
  452. package/unbundled/definition59.cjs +127 -444
  453. package/unbundled/definition59.js +124 -444
  454. package/unbundled/definition6.cjs +2 -1
  455. package/unbundled/definition6.js +2 -1
  456. package/unbundled/definition60.cjs +230 -3746
  457. package/unbundled/definition60.js +223 -3576
  458. package/unbundled/definition61.cjs +427 -739
  459. package/unbundled/definition61.js +425 -737
  460. package/unbundled/definition62.cjs +3762 -103
  461. package/unbundled/definition62.js +3593 -97
  462. package/unbundled/definition63.cjs +678 -886
  463. package/unbundled/definition63.js +672 -877
  464. package/unbundled/definition64.cjs +104 -108
  465. package/unbundled/definition64.js +100 -104
  466. package/unbundled/definition65.cjs +999 -65
  467. package/unbundled/definition65.js +995 -58
  468. package/unbundled/definition66.cjs +105 -155
  469. package/unbundled/definition66.js +101 -151
  470. package/unbundled/definition67.cjs +71 -121
  471. package/unbundled/definition67.js +63 -119
  472. package/unbundled/definition68.cjs +162 -51
  473. package/unbundled/definition68.js +158 -47
  474. package/unbundled/definition69.cjs +117 -75
  475. package/unbundled/definition69.js +116 -71
  476. package/unbundled/definition70.cjs +59 -21
  477. package/unbundled/definition70.js +56 -15
  478. package/unbundled/definition71.cjs +80 -75
  479. package/unbundled/definition71.js +76 -74
  480. package/unbundled/definition72.cjs +20 -305
  481. package/unbundled/definition72.js +14 -230
  482. package/unbundled/definition73.cjs +75 -315
  483. package/unbundled/definition73.js +74 -307
  484. package/unbundled/definition74.cjs +308 -30
  485. package/unbundled/definition74.js +231 -24
  486. package/unbundled/definition75.cjs +314 -109
  487. package/unbundled/definition75.js +304 -106
  488. package/unbundled/definition76.cjs +26 -250
  489. package/unbundled/definition76.js +21 -246
  490. package/unbundled/definition77.cjs +133 -27
  491. package/unbundled/definition77.js +124 -25
  492. package/unbundled/definition78.cjs +230 -116
  493. package/unbundled/definition78.js +227 -107
  494. package/unbundled/definition79.cjs +28 -203
  495. package/unbundled/definition79.js +26 -193
  496. package/unbundled/definition80.cjs +126 -477
  497. package/unbundled/definition80.js +118 -473
  498. package/unbundled/definition81.cjs +221 -0
  499. package/unbundled/definition81.js +202 -0
  500. package/unbundled/definition82.cjs +517 -0
  501. package/unbundled/definition82.js +497 -0
  502. package/unbundled/extractOptions.cjs +21 -0
  503. package/unbundled/extractOptions.js +16 -0
  504. package/unbundled/icon.cjs +67 -0
  505. package/unbundled/icon.js +61 -0
  506. package/unbundled/linkable.cjs +1 -1
  507. package/unbundled/linkable.js +1 -1
  508. package/unbundled/listbox.cjs +29 -7
  509. package/unbundled/listbox.js +29 -7
  510. package/unbundled/mixins.cjs +2 -1
  511. package/unbundled/mixins.js +2 -1
  512. package/unbundled/optgroup.cjs +66 -0
  513. package/unbundled/optgroup.js +54 -0
  514. package/unbundled/option.cjs +176 -0
  515. package/unbundled/option.js +164 -0
  516. package/unbundled/time-selection-picker.template.cjs +1 -1
  517. package/unbundled/time-selection-picker.template.js +1 -1
  518. package/unbundled/vivid-element.cjs +10 -1
  519. package/unbundled/vivid-element.js +10 -1
  520. package/video-player/definition.cjs +1 -1
  521. package/video-player/definition.js +1 -1
  522. package/vivid.api.json +568 -231
@@ -2,294 +2,462 @@ require("./chunk.cjs");
2
2
  const require_vivid_element = require("./vivid-element.cjs");
3
3
  const require_definition = require("./definition.cjs");
4
4
  const require_decorate = require("./decorate.cjs");
5
- const require_delegates_aria = require("./delegates-aria.cjs");
5
+ const require_icon = require("./icon.cjs");
6
6
  const require_localized = require("./localized.cjs");
7
7
  const require_definition$1 = require("./definition6.cjs");
8
- const require_definition$2 = require("./definition7.cjs");
9
- const require_dialog = require("./dialog.cjs");
8
+ const require_definition$2 = require("./definition22.cjs");
9
+ const require_definition$3 = require("./definition26.cjs");
10
10
  let _microsoft_fast_element = require("@microsoft/fast-element");
11
11
  let _microsoft_fast_web_utilities = require("@microsoft/fast-web-utilities");
12
- //#region src/lib/dialog/dialog.scss?inline
13
- var dialog_default = ".base{white-space:initial;box-sizing:border-box;color:var(--vvd-color-canvas-text);max-block-size:none;max-inline-size:var(--dialog-max-inline-size,var(--_dialog-default-max-inline-size));min-block-size:fit-content;min-inline-size:var(--dialog-min-inline-size,280px);background-color:#0000;border:none;border-radius:8px;padding:0}@media not all and (width>=600px){.base{--_dialog-default-max-inline-size:90vw}}@media (width>=600px){.base{--_dialog-default-max-inline-size:560px}}.base:not(.scrollable-body){max-block-size:var(--dialog-max-block-size,calc(100vh - 64px))}.base:not(.modal){z-index:var(--dialog-z-index,1);inset-block:var(--dialog-inset-block,auto);inset-inline:var(--dialog-inset-inline,0)}.base.modal{box-shadow:0 4px 20px #00000059}.base.modal::backdrop{background-color:var(--vvd-color-canvas-text,currentColor);opacity:.5}.base: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))}.main-wrapper{box-sizing:border-box;flex-direction:column;gap:24px;padding-block:24px;display:flex}.main-wrapper>*{box-sizing:border-box}.header{justify-content:space-between;align-items:flex-start;inline-size:100%;padding-inline:24px;display:grid}.base:not(.icon-placement-side) .header{grid-template-rows:auto auto auto;grid-template-columns:1fr auto}.base:not(.icon-placement-side) .header .icon{font-size:calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density,0), 2) - 8));grid-area:1/1/2/2;margin-block-end:calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density,0), 2) - 16));line-height:1}.base.icon-placement-side .header{grid-template-rows:auto auto;grid-template-columns:auto 1fr auto}.base.icon-placement-side .header .icon{font-size:calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density,0), 2) - 12))}.base.icon-placement-side .header ::slotted(*),.base.icon-placement-side .header .icon{grid-area:1/1/-1/2;margin-inline-end:calc(calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density,0), 2) - 8)) / 2)}.header.border{position:relative}.header.border:after{background-color:var(--vvd-color-neutral-200);content:\"\";block-size:1px;inline-size:100%;position:absolute;bottom:-24px;left:0}.base.hide-body .header.border:after{content:none}.body:not(.full-width){padding-inline:24px}.hide-body .body{display:none}.scrollable-body .body{max-block-size:var(--dialog-body-max-block-size,300px);--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;overflow:hidden auto}.scrollable-body .body ::-webkit-scrollbar{width:4px}.scrollable-body .body ::-webkit-scrollbar-track{background:var(--scrollbar-track-color)}.scrollable-body .body ::-webkit-scrollbar-thumb{background-color:var(--scrollbar-fallback-track-color,var(--scrollbar-thumb-color));border:0;border-radius:4px}.footer{justify-content:space-between;align-items:center;gap:24px;padding-inline:24px;display:flex}.hide-footer .footer{display:none}.footer .actions{align-self:flex-end;gap:8px;display:flex}.dismiss-button{flex-shrink:0;grid-area:1/-2/-1/-1;margin-block-start:-8px;margin-inline:4px -8px}.headline{font:var(--vvd-typography-heading-4);margin:0}.subtitle{font:var(--vvd-typography-base);margin:0}slot[name=main]{--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}slot[name=main] ::-webkit-scrollbar{width:4px}slot[name=main] ::-webkit-scrollbar-track{background:var(--scrollbar-track-color)}slot[name=main] ::-webkit-scrollbar-thumb{background-color:var(--scrollbar-fallback-track-color,var(--scrollbar-thumb-color));border:0;border-radius:4px}slot[name=main]{max-width:inherit;max-height:inherit;border-radius:inherit;display:block;overflow:hidden auto}";
12
+ //#region src/lib/dial-pad/dial-pad.scss?inline
13
+ var dial_pad_default = ":host{inline-size:230px;margin:16px;display:inline-block}.base{box-sizing:border-box;grid-template-rows:80px 1fr auto;display:grid}.base.no-input{grid-template-rows:1fr auto}.digits{grid-template-rows:repeat(4,1fr);grid-template-columns:repeat(3,1fr);gap:16px;inline-size:100%;display:grid}.phone-field{grid-column:1/-1;align-self:flex-start}.digit-btn{--_appearance-color-text:var(--_connotation-color-firm-all);--_appearance-color-fill:transparent;--_appearance-color-outline:var(--_connotation-color-pale)}@media (hover:hover){.digit-btn:hover:where(:not(.disabled,:disabled,.readonly)){--_appearance-color-text:var(--_connotation-color-firm-all);--_appearance-color-fill:transparent;--_appearance-color-outline:var(--_connotation-color-firm-all)}}.digit-btn.hover:where(:not(.disabled,:disabled,.readonly)){--_appearance-color-text:var(--_connotation-color-firm-all);--_appearance-color-fill:transparent;--_appearance-color-outline:var(--_connotation-color-firm-all)}.digit-btn:disabled,.digit-btn.disabled{--_appearance-color-text:var(--vvd-color-neutral-300);--_appearance-color-fill:transparent;--_appearance-color-outline:var(--vvd-color-neutral-100)}.digit-btn{--_connotation-color-contrast:var(--vvd-dial-pad-accent-contrast,var(--vvd-color-neutral-800));--_connotation-color-soft:var(--vvd-dial-pad-accent-soft,var(--vvd-color-neutral-100));--_connotation-color-pale:var(--vvd-dial-pad-accent-pale,var(--vvd-color-neutral-300));--_connotation-color-fierce:var(--vvd-dial-pad-accent-fierce,var(--vvd-color-neutral-700));--_connotation-color-firm-all:var(--vvd-dial-pad-accent-firm-all,var(--vvd-color-neutral-600));--_connotation-color-faint:var(--vvd-dial-pad-accent-faint,var(--vvd-color-neutral-50));--_connotation-color-dim:var(--vvd-dial-pad-accent-dim,var(--vvd-color-neutral-200));--vvd-button-accent-firm:var(--_appearance-color-text);box-shadow:0 0 0 1px var(--_appearance-color-outline);border-radius:16px;flex-direction:column;inline-size:100%;display:flex;overflow:hidden}.digit-btn:not(.disabled) .digit-btn-num{color:var(--vvd-color-canvas-text)}.digit-btn:focus-within{--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))}.call-btn{grid-column:1/-1;margin-block-start:32px}.base.size-condensed{grid-template-rows:60px 1fr auto}.base.size-condensed .digits{grid-template-rows:repeat(4,.85fr);gap:8px}.base.size-condensed .call-btn{margin-block-start:12px}.base.size-condensed .digit-btn-num{padding-top:6px}.base.size-condensed.no-letters .digit-btn-num{padding-top:0}";
14
14
  //#endregion
15
- //#region src/lib/dialog/dialog.ts
15
+ //#region src/lib/dial-pad/dial-pad.ts
16
16
  /**
17
+ * Base class for dial-pad
18
+ *
17
19
  * @public
18
- * @component dialog
19
- * @slot graphic - Use the graphic slot in order to replace the icon.
20
- * @slot body - Use the body slot in order to add custom HTML to the dialog.
21
- * @slot footer - Use the footer slot in order to add action buttons to the bottom of the dialog.
22
- * @slot main - Assign nodes to the main slot to fully override a dialog’s predefined flow and style with your own.
23
- * @slot action-items - Use the action-items slot in order to add action buttons to the bottom of the dialog.
24
- * @event {CustomEvent<undefined>} open - The `open` event fires when the dialog opens.
25
- * @event {CustomEvent<string>} close - The `close` event fires when the dialog closes (either via user interaction or via the API). It returns the return value inside the event's details property.
26
- * @event {CustomEvent<undefined>} cancel - The `cancel` event fires when the user requests to close the dialog. You can prevent the dialog from closing by calling `.preventDefault()` on the event.
27
- * @vueModel open open open,close `event.currentTarget.open`
28
- * @testSelector byHeadline byHeadline
29
- * @testAction dismiss click #dismissButton
30
- * @testQuery open open true
31
- * @testQuery closed open false
32
- * @testQuery headline headline
33
- * @testRef dismissButton shadow .dismiss-button
20
+ * @component dial-pad
21
+ * @event {CustomEvent<undefined>} change - Emitted when the text field value changes
22
+ * @event {CustomEvent<undefined>} input - Emitted when the text field value changes
23
+ * @event {CustomEvent<undefined>} blur - Emitted when the text field loses focus
24
+ * @event {CustomEvent<undefined>} focus - Emitted when the text field receives focus
25
+ * @event {CustomEvent<HTMLElement>}keypad-click - Emitted when a digit button is clicked
26
+ * @event {CustomEvent<undefined>} dial - Emitted when the call button is clicked
27
+ * @event {CustomEvent<undefined>} end-call - Emitted when the end call button is clicked
28
+ * @vueModel modelValue value input,@lazy:change `event.currentTarget.value`
34
29
  */
35
- var Dialog = class extends require_localized.Localized(require_delegates_aria.DelegatesAria(require_vivid_element.VividElement)) {
30
+ var DialPad = class extends require_localized.Localized(require_vivid_element.VividElement) {
36
31
  constructor(..._args) {
37
32
  super(..._args);
38
- this.open = false;
39
- this.fullWidthBody = false;
40
- this.dismissButtonAriaLabel = null;
41
- this.noLightDismiss = false;
42
- this.noDismissOnEsc = false;
43
- this.noDismissButton = false;
44
- this.nonDismissible = false;
45
- this.modal = false;
46
- this.scrollableBody = false;
47
- this._openedAsModal = false;
48
- this.#handleScrimClick = (event) => {
49
- if (event.target !== this.#dialog || !this.#isDismissibleVia("light-dismiss")) return;
50
- const rect = this.#dialog.getBoundingClientRect();
51
- if (!(rect.top <= event.clientY && event.clientY <= rect.top + rect.height && rect.left <= event.clientX && event.clientX <= rect.left + rect.width)) this._handleCloseRequest();
52
- };
53
- this.#handleInternalFormSubmit = (event) => {
54
- if (event.target.method !== "dialog") return;
55
- this.open = false;
33
+ this.helperText = null;
34
+ this.placeholder = null;
35
+ this.value = "";
36
+ this.pattern = "^[0-9#*]*$";
37
+ this.disabled = false;
38
+ this.pending = false;
39
+ this.callActive = false;
40
+ this.noCall = false;
41
+ this.noInput = false;
42
+ this.noLetters = false;
43
+ this.endCallButtonLabel = null;
44
+ this.callButtonLabel = null;
45
+ this.deleteAriaLabel = null;
46
+ this._longPressTimeoutId = null;
47
+ this._suppressNextClick = false;
48
+ this._keyboardLongPressCompleted = false;
49
+ this._onDial = () => {
50
+ if (!this._textFieldEl.checkValidity()) this._announceValidationError(this._textFieldEl.errorValidationMessage ?? "");
51
+ else this._clearErrorAnnouncement();
52
+ this.$emit(this.callActive ? "end-call" : "dial");
56
53
  };
54
+ this.autofocus = false;
55
+ this._errorAnnouncement = "";
56
+ this._forceAnnouncementToggle = false;
57
57
  }
58
58
  /** @internal */
59
- modalChanged(_, newValue) {
60
- if (this.open) {
61
- this._openedAsModal = newValue;
62
- if (this.$fastController.isConnected) {
63
- this.#closeDialog();
64
- this.#showDialog();
65
- }
59
+ valueChanged(_oldValue, newValue) {
60
+ if (newValue !== void 0 && newValue !== null && this._textFieldEl && newValue !== this._textFieldEl.value) {
61
+ this._textFieldEl.value = newValue;
62
+ this._textFieldEl.reportValidity();
66
63
  }
67
64
  }
68
- set returnValue(value) {
69
- /* v8 ignore else -- @preserve */
70
- if (this.#dialog) this.#dialog.returnValue = value;
71
- }
72
- get returnValue() {
73
- return this.#dialog?.returnValue;
74
- }
75
- #dialogElement;
76
- get #dialog() {
77
- if (!this.#dialogElement) this.#dialogElement = this.shadowRoot.querySelector("dialog");
78
- return this.#dialogElement;
79
- }
80
65
  /** @internal */
81
- openChanged(oldValue, newValue) {
82
- if (oldValue === void 0) return;
83
- if (!newValue) {
84
- this._openedAsModal = false;
85
- if (this.$fastController.isConnected) this.#closeDialog();
86
- this.$emit("close", this.returnValue, { bubbles: false });
87
- } else {
88
- this._openedAsModal = this._openedAsModal || this.modal;
89
- if (this.$fastController.isConnected) this.#showDialog();
90
- this.$emit("open", void 0, { bubbles: false });
91
- }
66
+ _startLongPress(digit, event) {
67
+ if (this.disabled || this.callActive || digit !== "0") return;
68
+ this._clearLongPressTimer();
69
+ const target = event.currentTarget;
70
+ this._longPressTimeoutId = window.setTimeout(() => {
71
+ this._suppressNextClick = true;
72
+ this.value += "+";
73
+ this.$emit("keypad-click", target);
74
+ this.$emit("input");
75
+ this.$emit("change");
76
+ }, 600);
92
77
  }
93
78
  /** @internal */
94
- get _showDismissButton() {
95
- return this.#isDismissibleVia("dismiss-button");
79
+ _startKeyboardLongPress() {
80
+ if (this.disabled || this.callActive) return;
81
+ if (this._longPressTimeoutId !== null) return;
82
+ this._keyboardLongPressCompleted = false;
83
+ this._longPressTimeoutId = window.setTimeout(() => {
84
+ this._keyboardLongPressCompleted = true;
85
+ this.value += "+";
86
+ this.$emit("input");
87
+ this.$emit("change");
88
+ }, 650);
96
89
  }
97
- #isDismissibleVia(method) {
98
- if (this.nonDismissible) return false;
99
- switch (method) {
100
- case "escape": return !this.noDismissOnEsc;
101
- case "dismiss-button": return !this.noDismissButton;
102
- case "light-dismiss": return !this.noLightDismiss;
103
- }
104
- }
105
- #handleScrimClick;
106
- #handleInternalFormSubmit;
107
90
  /** @internal */
108
- _onKeyDown(event) {
109
- if (require_dialog.handleEscapeKeyAndStopPropogation(event) && this._openedAsModal) {
110
- if (this.#isDismissibleVia("escape")) this._handleCloseRequest();
111
- return false;
112
- }
113
- return true;
91
+ _endLongPress() {
92
+ this._clearLongPressTimer();
93
+ window.setTimeout(() => {
94
+ if (this._suppressNextClick) this._suppressNextClick = false;
95
+ }, 0);
114
96
  }
115
- /** @internal */
116
- _handleCloseRequest() {
117
- if (this.$emit("cancel", void 0, {
118
- bubbles: false,
119
- cancelable: true
120
- })) this.open = false;
97
+ /**
98
+ * @internal
99
+ * @returns true if long press completed (timer fired), false otherwise
100
+ */
101
+ _endKeyboardLongPress() {
102
+ const wasLongPress = this._keyboardLongPressCompleted;
103
+ this._clearLongPressTimer();
104
+ window.setTimeout(() => {
105
+ this._keyboardLongPressCompleted = false;
106
+ }, 0);
107
+ return wasLongPress;
121
108
  }
122
- close() {
123
- this.open = false;
124
- }
125
- show() {
126
- if (this._openedAsModal && !this.modal) throw new DOMException("Failed to execute 'show' on 'Dialog': The dialog is already open as a modal dialog, and therefore cannot be opened as a non-modal dialog.", "InvalidStateError");
127
- this.open = true;
128
- }
129
- showModal() {
130
- if (this.open && !this._openedAsModal) throw new DOMException("Failed to execute 'showModal' on 'Dialog': The dialog is already open as a non-modal dialog, and therefore cannot be opened as a modal dialog.", "InvalidStateError");
131
- this._openedAsModal = true;
132
- this.open = true;
109
+ /** @internal */
110
+ _cancelLongPress() {
111
+ this._clearLongPressTimer();
133
112
  }
134
- #closeDialog() {
135
- this.#dialog.close();
113
+ _clearLongPressTimer() {
114
+ if (this._longPressTimeoutId !== null) {
115
+ clearTimeout(this._longPressTimeoutId);
116
+ this._longPressTimeoutId = null;
117
+ }
136
118
  }
137
- #showDialog() {
138
- if (this._openedAsModal) this.#dialog.showModal();
139
- else this.#dialog.show();
119
+ /**
120
+ * Moves focus into the Dial Pad. If `no-input` attribute is specified, it will be the first digit
121
+ * button. Otherwise, the text field will be focused.
122
+ */
123
+ focus() {
124
+ const digitBtns = this.shadowRoot?.querySelectorAll(".digits .digit-btn");
125
+ (this._textFieldEl || digitBtns?.[0])?.focus();
140
126
  }
141
- connectedCallback() {
142
- super.connectedCallback();
143
- if (this.open) this.#showDialog();
144
- this.#dialog.addEventListener("mousedown", this.#handleScrimClick);
145
- this.#dialog.addEventListener("submit", this.#handleInternalFormSubmit);
127
+ /** @internal */
128
+ _announceValidationError(message) {
129
+ this._errorAnnouncement = "";
130
+ window.queueMicrotask(() => {
131
+ if (message) {
132
+ this._forceAnnouncementToggle = !this._forceAnnouncementToggle;
133
+ this._errorAnnouncement = `${message}${this._forceAnnouncementToggle ? "​" : ""}`;
134
+ } else this._clearErrorAnnouncement();
135
+ });
146
136
  }
147
- disconnectedCallback() {
148
- super.disconnectedCallback();
149
- if (this.open) this.#closeDialog();
150
- this.#dialog.removeEventListener("mousedown", this.#handleScrimClick);
151
- this.#dialog.removeEventListener("submit", this.#handleInternalFormSubmit);
137
+ /** @internal */
138
+ _clearErrorAnnouncement() {
139
+ this._errorAnnouncement = "";
140
+ this._forceAnnouncementToggle = false;
152
141
  }
153
142
  };
154
- require_decorate.__decorate([(0, _microsoft_fast_element.attr)({ mode: "boolean" })], Dialog.prototype, "open", void 0);
155
- require_decorate.__decorate([_microsoft_fast_element.attr], Dialog.prototype, "icon", void 0);
156
- require_decorate.__decorate([(0, _microsoft_fast_element.attr)({ attribute: "icon-placement" })], Dialog.prototype, "iconPlacement", void 0);
157
- require_decorate.__decorate([_microsoft_fast_element.attr], Dialog.prototype, "subtitle", void 0);
158
- require_decorate.__decorate([_microsoft_fast_element.attr], Dialog.prototype, "headline", void 0);
159
- require_decorate.__decorate([(0, _microsoft_fast_element.attr)({
160
- attribute: "full-width-body",
161
- mode: "boolean"
162
- })], Dialog.prototype, "fullWidthBody", void 0);
163
- require_decorate.__decorate([(0, _microsoft_fast_element.attr)({ attribute: "dismiss-button-aria-label" })], Dialog.prototype, "dismissButtonAriaLabel", void 0);
164
- require_decorate.__decorate([(0, _microsoft_fast_element.attr)({
165
- attribute: "no-light-dismiss",
166
- mode: "boolean"
167
- })], Dialog.prototype, "noLightDismiss", void 0);
143
+ require_decorate.__decorate([(0, _microsoft_fast_element.attr)({ attribute: "helper-text" })], DialPad.prototype, "helperText", void 0);
144
+ require_decorate.__decorate([_microsoft_fast_element.attr], DialPad.prototype, "placeholder", void 0);
145
+ require_decorate.__decorate([(0, _microsoft_fast_element.attr)({ mode: "fromView" })], DialPad.prototype, "value", void 0);
146
+ require_decorate.__decorate([(0, _microsoft_fast_element.attr)({ mode: "fromView" })], DialPad.prototype, "pattern", void 0);
147
+ require_decorate.__decorate([(0, _microsoft_fast_element.attr)({ mode: "boolean" })], DialPad.prototype, "disabled", void 0);
148
+ require_decorate.__decorate([(0, _microsoft_fast_element.attr)({ mode: "boolean" })], DialPad.prototype, "pending", void 0);
168
149
  require_decorate.__decorate([(0, _microsoft_fast_element.attr)({
169
- attribute: "no-dismiss-on-esc",
150
+ attribute: "call-active",
170
151
  mode: "boolean"
171
- })], Dialog.prototype, "noDismissOnEsc", void 0);
152
+ })], DialPad.prototype, "callActive", void 0);
172
153
  require_decorate.__decorate([(0, _microsoft_fast_element.attr)({
173
- attribute: "no-dismiss-button",
174
- mode: "boolean"
175
- })], Dialog.prototype, "noDismissButton", void 0);
154
+ mode: "boolean",
155
+ attribute: "no-call"
156
+ })], DialPad.prototype, "noCall", void 0);
176
157
  require_decorate.__decorate([(0, _microsoft_fast_element.attr)({
177
- attribute: "non-dismissible",
178
- mode: "boolean"
179
- })], Dialog.prototype, "nonDismissible", void 0);
180
- require_decorate.__decorate([(0, _microsoft_fast_element.attr)({ mode: "boolean" })], Dialog.prototype, "modal", void 0);
158
+ mode: "boolean",
159
+ attribute: "no-input"
160
+ })], DialPad.prototype, "noInput", void 0);
181
161
  require_decorate.__decorate([(0, _microsoft_fast_element.attr)({
182
162
  mode: "boolean",
183
- attribute: "scrollable-body"
184
- })], Dialog.prototype, "scrollableBody", void 0);
185
- require_decorate.__decorate([_microsoft_fast_element.observable], Dialog.prototype, "_openedAsModal", void 0);
186
- require_decorate.__decorate([_microsoft_fast_element.observable], Dialog.prototype, "bodySlottedContent", void 0);
187
- require_decorate.__decorate([_microsoft_fast_element.observable], Dialog.prototype, "footerSlottedContent", void 0);
188
- require_decorate.__decorate([_microsoft_fast_element.observable], Dialog.prototype, "actionItemsSlottedContent", void 0);
163
+ attribute: "no-letters"
164
+ })], DialPad.prototype, "noLetters", void 0);
165
+ require_decorate.__decorate([_microsoft_fast_element.attr], DialPad.prototype, "size", void 0);
166
+ require_decorate.__decorate([(0, _microsoft_fast_element.attr)({ attribute: "end-call-button-label" })], DialPad.prototype, "endCallButtonLabel", void 0);
167
+ require_decorate.__decorate([(0, _microsoft_fast_element.attr)({ attribute: "call-button-label" })], DialPad.prototype, "callButtonLabel", void 0);
168
+ require_decorate.__decorate([(0, _microsoft_fast_element.attr)({ attribute: "delete-aria-label" })], DialPad.prototype, "deleteAriaLabel", void 0);
169
+ require_decorate.__decorate([(0, _microsoft_fast_element.attr)({ mode: "boolean" })], DialPad.prototype, "autofocus", void 0);
170
+ require_decorate.__decorate([_microsoft_fast_element.observable], DialPad.prototype, "_errorAnnouncement", void 0);
189
171
  //#endregion
190
- //#region src/lib/dialog/dialog.template.ts
191
- function icon(iconTag) {
192
- return _microsoft_fast_element.html`
193
- <${iconTag} class="icon" name="${(x) => x.icon}"></${iconTag}>
194
- `;
172
+ //#region src/lib/dial-pad/dial-pad.template.ts
173
+ var DIAL_PAD_BUTTONS = [
174
+ {
175
+ value: "1",
176
+ letters: "\xA0",
177
+ ariaLabel: "digitOneLabel",
178
+ icon: "one-solid",
179
+ id: "btn1"
180
+ },
181
+ {
182
+ value: "2",
183
+ letters: "ABC",
184
+ ariaLabel: "digitTwoLabel",
185
+ icon: "two-solid",
186
+ id: "btn2"
187
+ },
188
+ {
189
+ value: "3",
190
+ letters: "DEF",
191
+ ariaLabel: "digitThreeLabel",
192
+ icon: "three-solid",
193
+ id: "btn3"
194
+ },
195
+ {
196
+ value: "4",
197
+ letters: "GHI",
198
+ ariaLabel: "digitFourLabel",
199
+ icon: "four-solid",
200
+ id: "btn4"
201
+ },
202
+ {
203
+ value: "5",
204
+ letters: "JKL",
205
+ ariaLabel: "digitFiveLabel",
206
+ icon: "five-solid",
207
+ id: "btn5"
208
+ },
209
+ {
210
+ value: "6",
211
+ letters: "MNO",
212
+ ariaLabel: "digitSixLabel",
213
+ icon: "six-solid",
214
+ id: "btn6"
215
+ },
216
+ {
217
+ value: "7",
218
+ letters: "PQRS",
219
+ ariaLabel: "digitSevenLabel",
220
+ icon: "seven-solid",
221
+ id: "btn7"
222
+ },
223
+ {
224
+ value: "8",
225
+ letters: "TUV",
226
+ ariaLabel: "digitEightLabel",
227
+ icon: "eight-solid",
228
+ id: "btn8"
229
+ },
230
+ {
231
+ value: "9",
232
+ letters: "WXYZ",
233
+ ariaLabel: "digitNineLabel",
234
+ icon: "nine-solid",
235
+ id: "btn9"
236
+ },
237
+ {
238
+ value: "*",
239
+ ariaLabel: "digitAsteriskLabel",
240
+ icon: "asterisk-2-solid",
241
+ id: "btnAsterisk"
242
+ },
243
+ {
244
+ value: "0",
245
+ alwaysVisibleLetters: "+",
246
+ ariaLabel: "digitZeroLabel",
247
+ icon: "zero-solid",
248
+ id: "btn0"
249
+ },
250
+ {
251
+ value: "#",
252
+ ariaLabel: "digitHashtagLabel",
253
+ icon: "hashtag-solid",
254
+ id: "btnHashtag"
255
+ }
256
+ ];
257
+ function handleKeyDown(x, e) {
258
+ if (e.key === _microsoft_fast_web_utilities.keyEnter && !x.pending && !x.disabled && !x.callActive && !x.noCall && x.value.length > 0 && e.target instanceof HTMLInputElement) x._onDial();
259
+ else if (e.key === " " || e.key === "Space") {
260
+ /* v8 ignore else -- @preserve */
261
+ if (e.target instanceof HTMLInputElement) {
262
+ e.preventDefault();
263
+ /* v8 ignore else -- @preserve */
264
+ if (!e.repeat) x._startKeyboardLongPress();
265
+ }
266
+ } else {
267
+ const elementIndex = DIAL_PAD_BUTTONS.findIndex((x) => x.value === e.key);
268
+ if (elementIndex > -1) {
269
+ const digit = x.shadowRoot.querySelector(".digits").children[elementIndex];
270
+ /* v8 ignore else -- @preserve */
271
+ if (digit) {
272
+ digit.active = true;
273
+ setTimeout(() => {
274
+ digit.active = false;
275
+ }, 200);
276
+ }
277
+ }
278
+ }
279
+ return true;
195
280
  }
196
- function headline() {
197
- return _microsoft_fast_element.html`
198
- <h2 class="headline" id="dialog-headline">${(x) => x.headline}</h2>
199
- `;
281
+ function handleKeyUp(x, e) {
282
+ /* v8 ignore else -- @preserve */
283
+ if (e.key === " " || e.key === "Space") {
284
+ /* v8 ignore else -- @preserve */
285
+ if (e.target instanceof HTMLInputElement) {
286
+ e.preventDefault();
287
+ if (!x._endKeyboardLongPress() && !x.disabled && !x.callActive) {
288
+ x.value += " ";
289
+ x.$emit("input");
290
+ x.$emit("change");
291
+ }
292
+ }
293
+ }
294
+ return true;
200
295
  }
201
- function subtitle() {
202
- return _microsoft_fast_element.html`
203
- <h3 class="subtitle" id="dialog-subtitle">${(x) => x.subtitle}</h3>
204
- `;
296
+ function handleButtonKeyDown(digit, { parent: dialPad, event }) {
297
+ /* v8 ignore else -- @preserve */
298
+ if ((event.key === " " || event.key === "Space") && digit.value === "0") {
299
+ event.preventDefault();
300
+ /* v8 ignore else -- @preserve */
301
+ if (!event.repeat) dialPad._startKeyboardLongPress();
302
+ }
303
+ return true;
205
304
  }
206
- function renderHeaderText() {
305
+ function handleButtonKeyUp(digit, { parent: dialPad, event }) {
306
+ /* v8 ignore else -- @preserve */
307
+ if ((event.key === " " || event.key === "Space") && digit.value === "0") {
308
+ event.preventDefault();
309
+ /* v8 ignore else -- @preserve */
310
+ if (!dialPad._endKeyboardLongPress() && !dialPad.disabled && !dialPad.callActive) onDigitClick(digit, {
311
+ parent: dialPad,
312
+ event: new MouseEvent("click", { bubbles: true })
313
+ });
314
+ }
315
+ return true;
316
+ }
317
+ function syncFieldAndPadValues(x) {
318
+ x.value = x._textFieldEl.value;
319
+ }
320
+ function stopPropagation(_, { event: e }) {
321
+ e.stopImmediatePropagation();
322
+ }
323
+ function deleteLastCharacter(dialPad) {
324
+ dialPad.value = dialPad.value.slice(0, -1);
325
+ dialPad.$emit("input");
326
+ dialPad.$emit("change");
327
+ if (dialPad.value === "") dialPad._textFieldEl?.focus();
328
+ }
329
+ function renderTextField(textFieldTag, buttonTag) {
330
+ return _microsoft_fast_element.html`<${textFieldTag} ${(0, _microsoft_fast_element.ref)("_textFieldEl")} class="phone-field" internal-part type="tel"
331
+ value="${(x) => x.value}" placeholder="${(x) => x.placeholder}"
332
+ ?disabled="${(x) => x.disabled}" helper-text="${(x) => x.helperText}" pattern="${(x) => x.pattern}"
333
+ aria-label="${(x) => x.locale.dialPad.inputLabel}"
334
+ @keydown="${(x, c) => handleKeyDown(x, c.event)}"
335
+ @keyup="${(x, c) => handleKeyUp(x, c.event)}"
336
+ @input="${syncFieldAndPadValues}"
337
+ @change="${syncFieldAndPadValues}"
338
+ @focus="${stopPropagation}"
339
+ @blur="${stopPropagation}"
340
+ ?autofocus="${(x) => x.autofocus}"
341
+ scale="${(x) => x.size === "condensed" ? "condensed" : "normal"}">
342
+ >
343
+ ${(0, _microsoft_fast_element.when)((x) => x.value && x.value.length && x.value.length > 0, _microsoft_fast_element.html`<${buttonTag}
344
+ slot="action-items"
345
+ size='super-condensed'
346
+ icon="backspace-line"
347
+ aria-label="${(x) => x.deleteAriaLabel || x.locale.dialPad.deleteButtonLabel}"
348
+ appearance='ghost'
349
+ ?disabled="${(x) => x.disabled || x.callActive}"
350
+ @click="${(x) => deleteLastCharacter(x)}">
351
+ </${buttonTag}>`)}
352
+ </${textFieldTag}>`;
353
+ }
354
+ function onDigitClick(digit, { parent: dialPad, event }) {
355
+ if (dialPad._suppressNextClick) {
356
+ dialPad._suppressNextClick = false;
357
+ return;
358
+ }
359
+ dialPad.value += digit.value;
360
+ dialPad.$emit("keypad-click", event.currentTarget);
361
+ dialPad.$emit("input");
362
+ dialPad.$emit("change");
363
+ }
364
+ function renderDigits(buttonTag, iconTag) {
207
365
  return _microsoft_fast_element.html`
208
- <div class="header-text">${headline()} ${subtitle()}</div>
366
+ ${(0, _microsoft_fast_element.repeat)((_) => DIAL_PAD_BUTTONS, _microsoft_fast_element.html`
367
+ <${buttonTag}
368
+ id="${(x) => x.id}"
369
+ value="${(x) => x.value}"
370
+ stacked
371
+ appearance="ghost-light"
372
+ shape="pill"
373
+ label="${(x, c) => (c.parent.noLetters ? null : x.letters) ?? x.alwaysVisibleLetters}"
374
+ size='condensed'
375
+ class="digit-btn"
376
+ ?autofocus="${(_, c) => c.parent.autofocus && c.parent.noInput && c.index === 0}"
377
+ aria-label="${(x, c) => c.parent.noLetters ? x.value : c.parent.locale.dialPad[x.ariaLabel]}"
378
+ ?disabled="${(_, c) => c.parent.disabled}"
379
+ @pointerdown="${(x, c) => c.parent._startLongPress(x.value, c.event)}"
380
+ @pointerup="${(_, c) => c.parent._endLongPress()}"
381
+ @pointercancel="${(_, c) => c.parent._cancelLongPress()}"
382
+ @pointerleave="${(_, c) => c.parent._cancelLongPress()}"
383
+ @keydown="${(x, c) => handleButtonKeyDown(x, {
384
+ parent: c.parent,
385
+ event: c.event
386
+ })}"
387
+ @keyup="${(x, c) => handleButtonKeyUp(x, {
388
+ parent: c.parent,
389
+ event: c.event
390
+ })}"
391
+ @click="${onDigitClick}">
392
+ <${iconTag} slot="icon"
393
+ name="${(x) => x.icon}"
394
+ class="digit-btn-num"></${iconTag}>
395
+ </${buttonTag}>
396
+ `, { positioning: true })}
209
397
  `;
210
398
  }
211
- function renderDismissButton(buttonTag) {
212
- return _microsoft_fast_element.html`
213
- <${buttonTag}
214
- aria-label="${(x) => x.dismissButtonAriaLabel || x.locale.dialog.dismissButtonLabel}"
215
- size="condensed"
216
- class="dismiss-button"
217
- icon="close-line"
218
- @click="${(x) => x._handleCloseRequest()}"
219
- ></${buttonTag}>`;
399
+ function renderDialButton(buttonTag) {
400
+ return _microsoft_fast_element.html`<${buttonTag} class="call-btn"
401
+ size="${(x) => x.size === "condensed" ? "normal" : "expanded"}"
402
+ appearance="filled"
403
+ icon="${(x) => x.callActive ? "disable-call-line" : "call-line"}"
404
+ connotation="${(x) => x.callActive ? "alert" : "cta"}"
405
+ ?disabled="${(x) => x.disabled}"
406
+ ?pending="${(x) => x.pending}"
407
+ @click="${(x) => x._onDial()}"
408
+ label="${(x) => x.callActive ? x.endCallButtonLabel || x.locale.dialPad.endCallButtonLabel : x.callButtonLabel || x.locale.dialPad.callButtonLabel}">
409
+ </${buttonTag}>`;
410
+ }
411
+ function renderErrorAnnouncement(visuallyHiddenTag) {
412
+ return _microsoft_fast_element.html`<${visuallyHiddenTag} role="alert" aria-atomic="true">
413
+ ${(x) => `${x.locale.dialPad.errorLabel} ${x._errorAnnouncement}`}
414
+ </${visuallyHiddenTag}>`;
220
415
  }
221
- var DialogTemplate = (context) => {
222
- const elevationTag = context.tagFor(require_definition$2.Elevation);
223
- const iconTag = context.tagFor(require_definition.Icon);
416
+ var DialPadTemplate = (context) => {
224
417
  const buttonTag = context.tagFor(require_definition$1.Button);
225
- return _microsoft_fast_element.html`
226
- <${elevationTag} dp="8" not-relative>
227
- <dialog class="${(x) => (0, _microsoft_fast_web_utilities.classNames)("base", [`icon-placement-${x.iconPlacement}`, Boolean(x.iconPlacement)], ["hide-body", !x.bodySlottedContent?.length], ["hide-footer", !(x.footerSlottedContent?.length || x.actionItemsSlottedContent?.length)], ["modal", x._openedAsModal], ["scrollable-body", x.scrollableBody])}"
228
-
229
- @keydown="${(x, c) => x._onKeyDown(c.event)}"
230
- @cancel="${(_, c) => c.event.preventDefault()}"
231
- ${require_delegates_aria.delegateAria({
232
- ariaModal: (x) => String(x._openedAsModal),
233
- ariaLabelledBy: (x) => x.headline ? "dialog-headline dialog-subtitle" : null
234
- })}
235
- >
236
- <slot name="main">
237
- <div class="main-wrapper">
238
- <div class="header ${(x) => x.subtitle ? "border" : ""}">
239
- ${(0, _microsoft_fast_element.when)((x) => x._showDismissButton, renderDismissButton(buttonTag))}
240
- <slot name="graphic">
241
- ${(0, _microsoft_fast_element.when)((x) => x.icon, icon(iconTag))}
242
- </slot>
243
- ${(0, _microsoft_fast_element.when)((x) => x.headline && x.subtitle, renderHeaderText())}
244
- ${(0, _microsoft_fast_element.when)((x) => x.headline && !x.subtitle, headline())}
245
- ${(0, _microsoft_fast_element.when)((x) => x.subtitle && !x.headline, subtitle())}
246
- </div>
247
- <div class="body ${(x) => x.fullWidthBody ? "full-width" : ""}" >
248
- <slot name="body" ${(0, _microsoft_fast_element.slotted)("bodySlottedContent")}></slot>
249
- </div>
250
- <div class="footer">
251
- <div>
252
- <slot name="footer" ${(0, _microsoft_fast_element.slotted)("footerSlottedContent")}></slot>
253
- </div>
254
- <div class="actions">
255
- <slot name="action-items" ${(0, _microsoft_fast_element.slotted)("actionItemsSlottedContent")}></slot>
256
- </div>
257
- </div>
258
- </div>
259
- </slot>
260
- </dialog>
261
- </${elevationTag}>`;
418
+ const iconTag = context.tagFor(require_icon.Icon);
419
+ const textFieldTag = context.tagFor(require_definition$3.TextField);
420
+ const visuallyHiddenTag = context.tagFor(require_definition$2.VisuallyHidden);
421
+ return _microsoft_fast_element.html` <div
422
+ class="${(x) => (0, _microsoft_fast_web_utilities.classNames)("base", [`size-${x.size}`, Boolean(x.size)], ["no-input", x.noInput], ["no-letters", x.noLetters])}"
423
+ >
424
+ ${(0, _microsoft_fast_element.when)((x) => !x.noInput, renderTextField(textFieldTag, buttonTag))}
425
+ <div class="digits">${renderDigits(buttonTag, iconTag)}</div>
426
+ ${(0, _microsoft_fast_element.when)((x) => !x.noCall, renderDialButton(buttonTag))}
427
+ ${renderErrorAnnouncement(visuallyHiddenTag)}
428
+ </div>`;
262
429
  };
263
430
  //#endregion
264
- //#region src/lib/dialog/definition.ts
431
+ //#region src/lib/dial-pad/definition.ts
265
432
  /** @internal */
266
- var dialogDefinition = require_vivid_element.defineVividComponent("dialog", Dialog, DialogTemplate, [
267
- require_definition.iconDefinition,
433
+ var dialPadDefinition = require_vivid_element.defineVividComponent("dial-pad", DialPad, DialPadTemplate, [
268
434
  require_definition$1.buttonDefinition,
269
- require_definition$2.elevationDefinition
270
- ], { styles: dialog_default });
435
+ require_definition$3.textFieldDefinition,
436
+ require_definition.iconDefinition,
437
+ require_definition$2.visuallyHiddenDefinition
438
+ ], { styles: dial_pad_default });
271
439
  /**
272
- * Registers the dialog elements with the design system.
440
+ * Registers the dial-pad element with the design system.
273
441
  *
274
442
  * @param prefix - the prefix to use for the component name
275
443
  */
276
- var registerDialog = require_vivid_element.createRegisterFunction(dialogDefinition);
444
+ var registerDialPad = require_vivid_element.createRegisterFunction(dialPadDefinition);
277
445
  //#endregion
278
- Object.defineProperty(exports, "Dialog", {
446
+ Object.defineProperty(exports, "DialPad", {
279
447
  enumerable: true,
280
448
  get: function() {
281
- return Dialog;
449
+ return DialPad;
282
450
  }
283
451
  });
284
- Object.defineProperty(exports, "dialogDefinition", {
452
+ Object.defineProperty(exports, "dialPadDefinition", {
285
453
  enumerable: true,
286
454
  get: function() {
287
- return dialogDefinition;
455
+ return dialPadDefinition;
288
456
  }
289
457
  });
290
- Object.defineProperty(exports, "registerDialog", {
458
+ Object.defineProperty(exports, "registerDialPad", {
291
459
  enumerable: true,
292
460
  get: function() {
293
- return registerDialog;
461
+ return registerDialPad;
294
462
  }
295
463
  });