@vonage/vivid 5.17.0 → 5.19.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 (648) hide show
  1. package/accordion/definition.cjs +5 -6
  2. package/accordion/definition.js +0 -1
  3. package/accordion/index.cjs +2 -2
  4. package/accordion/index.js +4 -5
  5. package/accordion-item/definition.cjs +4 -5
  6. package/accordion-item/definition.js +0 -1
  7. package/accordion-item/index.cjs +1 -1
  8. package/accordion-item/index.js +1 -3
  9. package/action-group/index.cjs +4 -4
  10. package/action-group/index.js +7 -7
  11. package/alert/definition.cjs +4 -5
  12. package/alert/definition.js +0 -1
  13. package/alert/index.cjs +5 -5
  14. package/alert/index.js +23 -23
  15. package/audio-player/definition.cjs +4 -5
  16. package/audio-player/definition.js +0 -1
  17. package/audio-player/index.cjs +13 -13
  18. package/audio-player/index.js +76 -76
  19. package/avatar/definition.cjs +4 -5
  20. package/avatar/definition.js +0 -1
  21. package/avatar/index.cjs +8 -8
  22. package/avatar/index.js +23 -23
  23. package/badge/definition.cjs +4 -5
  24. package/badge/definition.js +0 -1
  25. package/badge/index.cjs +1 -4
  26. package/badge/index.js +2 -20
  27. package/banner/definition.cjs +4 -5
  28. package/banner/definition.js +0 -1
  29. package/banner/index.cjs +4 -4
  30. package/banner/index.js +20 -20
  31. package/breadcrumb/index.cjs +2 -2
  32. package/breadcrumb/index.js +3 -3
  33. package/breadcrumb-item/definition.cjs +3 -4
  34. package/breadcrumb-item/definition.js +0 -1
  35. package/breadcrumb-item/index.cjs +5 -5
  36. package/breadcrumb-item/index.js +7 -7
  37. package/bundled/affix.cjs +2 -2
  38. package/bundled/affix.js +6 -6
  39. package/bundled/anchored.cjs +1 -1
  40. package/bundled/anchored.js +1 -1
  41. package/bundled/aria-binding-directive.cjs +1 -0
  42. package/bundled/aria-binding-directive.js +29 -0
  43. package/bundled/base-color-picker.cjs +3 -3
  44. package/bundled/base-color-picker.js +1 -1
  45. package/bundled/base-progress.cjs +1 -1
  46. package/bundled/base-progress.js +2 -2
  47. package/bundled/breadcrumb-item.cjs +1 -1
  48. package/bundled/breadcrumb-item.js +3 -3
  49. package/bundled/button.cjs +1 -1
  50. package/bundled/button.js +3 -3
  51. package/bundled/calendar-event.cjs +1 -1
  52. package/bundled/calendar-event.js +4 -4
  53. package/bundled/calendar-picker.template.cjs +20 -20
  54. package/bundled/calendar-picker.template.js +10 -10
  55. package/bundled/char-count.cjs +2 -2
  56. package/bundled/char-count.js +3 -3
  57. package/bundled/children.cjs +1 -1
  58. package/bundled/children.js +6 -6
  59. package/bundled/decorate.js +1 -1
  60. package/bundled/definition.cjs +1 -1
  61. package/bundled/definition.js +2 -2
  62. package/bundled/definition10.cjs +3 -3
  63. package/bundled/definition10.js +19 -19
  64. package/bundled/definition11.cjs +2 -2
  65. package/bundled/definition11.js +9 -9
  66. package/bundled/definition12.cjs +7 -7
  67. package/bundled/definition12.js +19 -19
  68. package/bundled/definition13.cjs +3 -3
  69. package/bundled/definition13.js +8 -8
  70. package/bundled/definition14.cjs +2 -2
  71. package/bundled/definition14.js +3 -3
  72. package/bundled/definition15.cjs +7 -7
  73. package/bundled/definition15.js +18 -18
  74. package/bundled/definition16.cjs +3 -3
  75. package/bundled/definition16.js +19 -19
  76. package/bundled/definition17.cjs +7 -7
  77. package/bundled/definition17.js +16 -16
  78. package/bundled/definition18.cjs +7 -7
  79. package/bundled/definition18.js +23 -23
  80. package/bundled/definition19.cjs +2 -2
  81. package/bundled/definition19.js +3 -3
  82. package/bundled/definition2.cjs +4 -15
  83. package/bundled/definition2.js +23 -56
  84. package/bundled/definition20.cjs +10 -10
  85. package/bundled/definition20.js +19 -20
  86. package/bundled/definition21.cjs +5 -5
  87. package/bundled/definition21.js +26 -26
  88. package/bundled/definition22.cjs +4 -39
  89. package/bundled/definition22.js +18 -70
  90. package/bundled/definition23.cjs +12 -0
  91. package/bundled/definition23.js +37 -0
  92. package/bundled/definition24.cjs +39 -0
  93. package/bundled/definition24.js +72 -0
  94. package/bundled/definition3.cjs +1 -1
  95. package/bundled/definition3.js +39 -36
  96. package/bundled/definition4.cjs +4 -4
  97. package/bundled/definition4.js +13 -13
  98. package/bundled/definition5.cjs +5 -5
  99. package/bundled/definition5.js +10 -10
  100. package/bundled/definition6.cjs +12 -12
  101. package/bundled/definition6.js +61 -45
  102. package/bundled/definition7.cjs +2 -2
  103. package/bundled/definition7.js +6 -6
  104. package/bundled/definition8.cjs +4 -4
  105. package/bundled/definition8.js +15 -15
  106. package/bundled/definition9.cjs +2 -2
  107. package/bundled/definition9.js +18 -18
  108. package/bundled/delegates-aria.cjs +1 -1
  109. package/bundled/delegates-aria.js +10 -49
  110. package/bundled/divider.cjs +1 -1
  111. package/bundled/divider.js +3 -3
  112. package/bundled/form-associated.cjs +1 -1
  113. package/bundled/form-associated.js +6 -6
  114. package/bundled/form-element.cjs +1 -1
  115. package/bundled/form-element.js +8 -6
  116. package/bundled/host-semantics.cjs +1 -1
  117. package/bundled/host-semantics.js +10 -39
  118. package/bundled/linkable.cjs +2 -2
  119. package/bundled/linkable.js +1 -1
  120. package/bundled/listbox.cjs +1 -1
  121. package/bundled/listbox.js +12 -12
  122. package/bundled/localized.cjs +1 -1
  123. package/bundled/localized.js +7 -6
  124. package/bundled/mixins.cjs +6 -6
  125. package/bundled/mixins.js +14 -14
  126. package/bundled/normalize.cjs +1 -1
  127. package/bundled/normalize.js +2 -2
  128. package/bundled/numberConverter.cjs +12 -0
  129. package/bundled/numberConverter.js +38 -0
  130. package/bundled/picker-field.template.cjs +2 -1
  131. package/bundled/picker-field.template.js +25 -23
  132. package/bundled/ref.cjs +1 -1
  133. package/bundled/ref.js +1 -1
  134. package/bundled/repeat.cjs +1 -1
  135. package/bundled/repeat.js +54 -54
  136. package/bundled/slider.template.cjs +7 -7
  137. package/bundled/slider.template.js +13 -13
  138. package/bundled/slottable-request.cjs +1 -1
  139. package/bundled/slottable-request.js +1 -1
  140. package/bundled/slotted.cjs +1 -1
  141. package/bundled/slotted.js +1 -1
  142. package/bundled/text-field.cjs +1 -1
  143. package/bundled/text-field.js +1 -1
  144. package/bundled/time-selection-picker.template.cjs +4 -4
  145. package/bundled/time-selection-picker.template.js +23 -23
  146. package/bundled/utils.cjs +1 -0
  147. package/bundled/utils.js +1420 -0
  148. package/bundled/vivid-element.cjs +1 -1
  149. package/bundled/vivid-element.js +21 -19
  150. package/bundled/when.cjs +1 -1
  151. package/bundled/when.js +1 -1
  152. package/bundled/with-contextual-help.cjs +1 -1
  153. package/bundled/with-contextual-help.js +1 -1
  154. package/bundled/with-error-text.cjs +1 -1
  155. package/bundled/with-error-text.js +1 -1
  156. package/bundled/with-success-text.cjs +1 -1
  157. package/bundled/with-success-text.js +1 -1
  158. package/button/definition.cjs +4 -5
  159. package/button/definition.js +0 -1
  160. package/button/index.cjs +1 -1
  161. package/button/index.js +0 -2
  162. package/calendar/index.cjs +8 -8
  163. package/calendar/index.js +10 -10
  164. package/calendar-event/index.cjs +6 -6
  165. package/calendar-event/index.js +8 -8
  166. package/card/definition.cjs +4 -5
  167. package/card/definition.js +0 -1
  168. package/card/index.cjs +15 -15
  169. package/card/index.js +37 -37
  170. package/checkbox/definition.cjs +4 -5
  171. package/checkbox/definition.js +0 -1
  172. package/checkbox/index.cjs +1 -1
  173. package/checkbox/index.js +0 -2
  174. package/color-picker/definition.cjs +4 -5
  175. package/color-picker/definition.js +0 -1
  176. package/color-picker/index.cjs +19 -19
  177. package/color-picker/index.js +94 -93
  178. package/combobox/definition.cjs +4 -5
  179. package/combobox/definition.js +0 -1
  180. package/combobox/index.cjs +4 -4
  181. package/combobox/index.js +23 -23
  182. package/contextual-help/definition.cjs +4 -5
  183. package/contextual-help/definition.js +0 -1
  184. package/contextual-help/index.cjs +1 -1
  185. package/contextual-help/index.js +0 -2
  186. package/country/definition.cjs +4 -5
  187. package/country/definition.js +0 -1
  188. package/country/index.cjs +1 -12
  189. package/country/index.js +2 -1216
  190. package/country-group/definition.cjs +5 -0
  191. package/country-group/definition.js +2 -0
  192. package/country-group/index.cjs +43 -0
  193. package/country-group/index.js +166 -0
  194. package/custom-elements.json +3535 -3017
  195. package/data-grid/definition.cjs +8 -9
  196. package/data-grid/definition.js +1 -2
  197. package/data-grid/index.cjs +14 -14
  198. package/data-grid/index.js +105 -105
  199. package/date-picker/definition.cjs +4 -5
  200. package/date-picker/definition.js +1 -2
  201. package/date-picker/index.cjs +1 -1
  202. package/date-picker/index.js +2 -3
  203. package/date-range-picker/definition.cjs +4 -5
  204. package/date-range-picker/definition.js +1 -2
  205. package/date-range-picker/index.cjs +1 -1
  206. package/date-range-picker/index.js +6 -7
  207. package/date-time-picker/definition.cjs +4 -5
  208. package/date-time-picker/definition.js +1 -2
  209. package/date-time-picker/index.cjs +2 -2
  210. package/date-time-picker/index.js +8 -9
  211. package/dial-pad/definition.cjs +4 -5
  212. package/dial-pad/definition.js +1 -2
  213. package/dial-pad/index.cjs +9 -9
  214. package/dial-pad/index.js +19 -19
  215. package/dialog/definition.cjs +4 -5
  216. package/dialog/definition.js +1 -2
  217. package/dialog/index.cjs +14 -11
  218. package/dialog/index.js +39 -36
  219. package/divider/definition.cjs +1 -1
  220. package/divider/definition.js +1 -1
  221. package/divider/index.cjs +1 -1
  222. package/divider/index.js +0 -1
  223. package/elevation/index.cjs +1 -1
  224. package/elevation/index.js +0 -1
  225. package/empty-state/definition.cjs +4 -5
  226. package/empty-state/definition.js +1 -2
  227. package/empty-state/index.cjs +4 -4
  228. package/empty-state/index.js +12 -12
  229. package/fab/definition.cjs +4 -5
  230. package/fab/definition.js +1 -2
  231. package/fab/index.cjs +3 -3
  232. package/fab/index.js +12 -12
  233. package/file-picker/definition.cjs +4 -5
  234. package/file-picker/definition.js +1 -2
  235. package/file-picker/index.cjs +10 -10
  236. package/file-picker/index.js +26 -26
  237. package/flag/definition.cjs +5 -0
  238. package/flag/definition.js +2 -0
  239. package/flag/index.cjs +10 -0
  240. package/flag/index.js +61 -0
  241. package/header/definition.cjs +1 -1
  242. package/header/definition.js +1 -1
  243. package/header/index.cjs +5 -5
  244. package/header/index.js +11 -11
  245. package/icon/index.cjs +1 -1
  246. package/icon/index.js +0 -1
  247. package/index.cjs +182 -174
  248. package/index.js +47 -45
  249. package/layout/definition.cjs +1 -1
  250. package/layout/definition.js +1 -1
  251. package/layout/index.cjs +2 -2
  252. package/layout/index.js +3 -3
  253. package/lib/avatar/avatar.d.ts +1 -1
  254. package/lib/breadcrumb-item/breadcrumb-item.d.ts +1 -1
  255. package/lib/button/button.d.ts +2 -1
  256. package/lib/card/card.d.ts +1 -1
  257. package/lib/components.d.ts +2 -0
  258. package/lib/country/countries-data.d.ts +1 -0
  259. package/lib/country/{country-code-to-flag-icon.d.ts → utils.d.ts} +0 -3
  260. package/lib/country-group/country-group.d.ts +829 -0
  261. package/lib/country-group/country-group.template.d.ts +3 -0
  262. package/lib/country-group/definition.d.ts +3 -0
  263. package/lib/country-group/index.d.ts +1 -0
  264. package/lib/country-group/locale.d.ts +3 -0
  265. package/lib/date-picker/date-picker.d.ts +4 -0
  266. package/lib/date-range-picker/date-range-picker.d.ts +2 -0
  267. package/lib/date-time-picker/date-time-picker.d.ts +4 -0
  268. package/lib/flag/definition.d.ts +3 -0
  269. package/lib/flag/flag.d.ts +8 -0
  270. package/lib/flag/flag.template.d.ts +3 -0
  271. package/lib/flag/index.d.ts +1 -0
  272. package/lib/icon/icon.d.ts +1 -2
  273. package/lib/nav-item/nav-item.d.ts +1 -1
  274. package/lib/rich-text-editor/rte/utils/ui.d.ts +2 -1
  275. package/lib/searchable-select/option-tag.d.ts +3 -1
  276. package/lib/searchable-select/searchable-select.d.ts +3 -1
  277. package/lib/tag-name-map.d.ts +2 -1
  278. package/lib/time-picker/time-picker.d.ts +2 -0
  279. package/locales/de-DE.cjs +2 -1
  280. package/locales/de-DE.js +1 -0
  281. package/locales/en-GB.cjs +2 -1
  282. package/locales/en-GB.js +1 -0
  283. package/locales/en-US.cjs +2 -1
  284. package/locales/en-US.js +1 -0
  285. package/locales/ja-JP.cjs +2 -1
  286. package/locales/ja-JP.js +1 -0
  287. package/locales/zh-CN.cjs +2 -1
  288. package/locales/zh-CN.js +1 -0
  289. package/menu/definition.cjs +4 -5
  290. package/menu/definition.js +0 -1
  291. package/menu/index.cjs +1 -1
  292. package/menu/index.js +0 -2
  293. package/menu-item/definition.cjs +5 -6
  294. package/menu-item/definition.js +0 -1
  295. package/menu-item/index.cjs +1 -1
  296. package/menu-item/index.js +0 -2
  297. package/nav/definition.cjs +1 -1
  298. package/nav/definition.js +1 -1
  299. package/nav/index.cjs +2 -2
  300. package/nav/index.js +2 -2
  301. package/nav-disclosure/definition.cjs +4 -5
  302. package/nav-disclosure/definition.js +1 -2
  303. package/nav-disclosure/index.cjs +4 -4
  304. package/nav-disclosure/index.js +18 -18
  305. package/nav-item/definition.cjs +4 -5
  306. package/nav-item/definition.js +1 -2
  307. package/nav-item/index.cjs +2 -2
  308. package/nav-item/index.js +13 -13
  309. package/note/definition.cjs +4 -5
  310. package/note/definition.js +1 -2
  311. package/note/index.cjs +2 -2
  312. package/note/index.js +10 -10
  313. package/number-field/definition.cjs +4 -5
  314. package/number-field/definition.js +1 -2
  315. package/number-field/index.cjs +5 -5
  316. package/number-field/index.js +19 -19
  317. package/option/definition.cjs +4 -5
  318. package/option/definition.js +0 -1
  319. package/option/index.cjs +1 -1
  320. package/option/index.js +0 -2
  321. package/package.json +23 -23
  322. package/pagination/definition.cjs +4 -5
  323. package/pagination/definition.js +1 -2
  324. package/pagination/index.cjs +4 -4
  325. package/pagination/index.js +11 -12
  326. package/popover/definition.cjs +4 -5
  327. package/popover/definition.js +1 -2
  328. package/popover/index.cjs +8 -8
  329. package/popover/index.js +31 -31
  330. package/popup/definition.cjs +3 -4
  331. package/popup/definition.js +0 -1
  332. package/popup/index.cjs +1 -1
  333. package/popup/index.js +0 -2
  334. package/progress/definition.cjs +1 -1
  335. package/progress/definition.js +1 -1
  336. package/progress/index.cjs +5 -5
  337. package/progress/index.js +10 -10
  338. package/progress-ring/index.cjs +1 -1
  339. package/progress-ring/index.js +0 -1
  340. package/radio/definition.cjs +1 -1
  341. package/radio/definition.js +1 -1
  342. package/radio/index.cjs +1 -1
  343. package/radio/index.js +0 -1
  344. package/radio-group/definition.cjs +4 -5
  345. package/radio-group/definition.js +1 -2
  346. package/radio-group/index.cjs +6 -6
  347. package/radio-group/index.js +21 -21
  348. package/range-slider/definition.cjs +4 -5
  349. package/range-slider/definition.js +1 -2
  350. package/range-slider/index.cjs +5 -5
  351. package/range-slider/index.js +69 -67
  352. package/rich-text-editor/definition.cjs +31 -32
  353. package/rich-text-editor/definition.js +1 -2
  354. package/rich-text-editor/index.cjs +9 -9
  355. package/rich-text-editor/index.js +2016 -1947
  356. package/rich-text-view/definition.cjs +1 -1
  357. package/rich-text-view/definition.js +1 -1
  358. package/rich-text-view/index.cjs +1 -1
  359. package/rich-text-view/index.js +2 -2
  360. package/searchable-select/definition.cjs +3 -4
  361. package/searchable-select/definition.js +1 -2
  362. package/searchable-select/index.cjs +25 -23
  363. package/searchable-select/index.js +72 -68
  364. package/select/definition.cjs +4 -5
  365. package/select/definition.js +1 -2
  366. package/select/index.cjs +1 -1
  367. package/select/index.js +0 -2
  368. package/selectable-box/definition.cjs +4 -5
  369. package/selectable-box/definition.js +1 -2
  370. package/selectable-box/index.cjs +9 -9
  371. package/selectable-box/index.js +19 -20
  372. package/shared/aria/aria-binding-directive.d.ts +21 -0
  373. package/shared/aria/aria-change-subscription.d.ts +1 -0
  374. package/shared/aria/delegates-aria.d.ts +1 -1
  375. package/shared/aria/host-semantics.d.ts +1 -1
  376. package/shared/icon/utils.d.ts +1 -0
  377. package/shared/localization/Locale.d.ts +2 -0
  378. package/shared/patterns/linkable.d.ts +1 -1
  379. package/shared/picker-field/mixins/calendar-picker.d.ts +1 -0
  380. package/shared/picker-field/mixins/calendar-picker.template.d.ts +1 -0
  381. package/shared/picker-field/mixins/min-max-calendar-picker.d.ts +1 -0
  382. package/shared/picker-field/mixins/single-date-picker.d.ts +1 -0
  383. package/shared/picker-field/mixins/single-value-picker.d.ts +1 -0
  384. package/shared/picker-field/mixins/time-selection-picker.d.ts +1 -0
  385. package/shared/picker-field/mixins/time-selection-picker.template.d.ts +2 -0
  386. package/shared/picker-field/picker-field.d.ts +2 -0
  387. package/side-drawer/definition.cjs +1 -1
  388. package/side-drawer/definition.js +1 -1
  389. package/side-drawer/index.cjs +3 -3
  390. package/side-drawer/index.js +4 -4
  391. package/simple-color-picker/definition.cjs +4 -5
  392. package/simple-color-picker/definition.js +1 -2
  393. package/simple-color-picker/index.cjs +2 -2
  394. package/simple-color-picker/index.js +22 -22
  395. package/slider/definition.cjs +4 -5
  396. package/slider/definition.js +0 -1
  397. package/slider/index.cjs +1 -1
  398. package/slider/index.js +0 -2
  399. package/split-button/definition.cjs +4 -5
  400. package/split-button/definition.js +1 -2
  401. package/split-button/index.cjs +6 -6
  402. package/split-button/index.js +20 -20
  403. package/status/definition.cjs +4 -5
  404. package/status/definition.js +1 -2
  405. package/status/index.cjs +2 -2
  406. package/status/index.js +11 -11
  407. package/switch/definition.cjs +4 -5
  408. package/switch/definition.js +1 -2
  409. package/switch/index.cjs +5 -5
  410. package/switch/index.js +12 -12
  411. package/tab/definition.cjs +4 -5
  412. package/tab/definition.js +1 -2
  413. package/tab/index.cjs +1 -1
  414. package/tab/index.js +0 -2
  415. package/tab-panel/definition.cjs +1 -1
  416. package/tab-panel/definition.js +1 -1
  417. package/tab-panel/index.cjs +1 -1
  418. package/tab-panel/index.js +0 -1
  419. package/table/definition.cjs +16 -17
  420. package/table/definition.js +1 -2
  421. package/table/index.cjs +9 -9
  422. package/table/index.js +24 -24
  423. package/tabs/definition.cjs +5 -6
  424. package/tabs/definition.js +1 -2
  425. package/tabs/index.cjs +2 -2
  426. package/tabs/index.js +25 -26
  427. package/tag/definition.cjs +4 -5
  428. package/tag/definition.js +1 -2
  429. package/tag/index.cjs +12 -12
  430. package/tag/index.js +24 -24
  431. package/tag-group/definition.cjs +1 -1
  432. package/tag-group/definition.js +1 -1
  433. package/tag-group/index.cjs +4 -4
  434. package/tag-group/index.js +6 -6
  435. package/text-area/definition.cjs +4 -5
  436. package/text-area/definition.js +1 -2
  437. package/text-area/index.cjs +4 -4
  438. package/text-area/index.js +24 -25
  439. package/text-field/definition.cjs +4 -5
  440. package/text-field/definition.js +0 -1
  441. package/text-field/index.cjs +1 -1
  442. package/text-field/index.js +0 -2
  443. package/time-picker/definition.cjs +3 -4
  444. package/time-picker/definition.js +1 -2
  445. package/time-picker/index.cjs +1 -1
  446. package/time-picker/index.js +2 -3
  447. package/toggletip/definition.cjs +4 -5
  448. package/toggletip/definition.js +0 -1
  449. package/toggletip/index.cjs +1 -1
  450. package/toggletip/index.js +0 -2
  451. package/tooltip/definition.cjs +4 -5
  452. package/tooltip/definition.js +0 -1
  453. package/tooltip/index.cjs +1 -1
  454. package/tooltip/index.js +0 -2
  455. package/tree-item/definition.cjs +4 -5
  456. package/tree-item/definition.js +1 -2
  457. package/tree-item/index.cjs +1 -1
  458. package/tree-item/index.js +0 -2
  459. package/tree-view/definition.cjs +4 -5
  460. package/tree-view/definition.js +1 -2
  461. package/tree-view/index.cjs +2 -2
  462. package/tree-view/index.js +5 -5
  463. package/unbundled/aria-binding-directive.cjs +42 -0
  464. package/unbundled/aria-binding-directive.js +36 -0
  465. package/unbundled/calendar-picker.template.cjs +1 -1
  466. package/unbundled/calendar-picker.template.js +1 -1
  467. package/unbundled/char-count.cjs +2 -1
  468. package/unbundled/char-count.js +2 -1
  469. package/unbundled/decorate.cjs +1 -1
  470. package/unbundled/decorate.js +1 -1
  471. package/unbundled/definition.js +1 -1
  472. package/unbundled/definition10.cjs +5 -4
  473. package/unbundled/definition10.js +6 -5
  474. package/unbundled/definition11.cjs +17 -7
  475. package/unbundled/definition11.js +18 -8
  476. package/unbundled/definition12.cjs +2 -2
  477. package/unbundled/definition12.js +3 -3
  478. package/unbundled/definition13.cjs +7 -6
  479. package/unbundled/definition13.js +8 -7
  480. package/unbundled/definition14.cjs +67 -57
  481. package/unbundled/definition14.js +68 -58
  482. package/unbundled/definition15.js +1 -1
  483. package/unbundled/definition16.js +1 -1
  484. package/unbundled/definition17.cjs +10 -8
  485. package/unbundled/definition17.js +11 -9
  486. package/unbundled/definition18.js +1 -1
  487. package/unbundled/definition19.js +1 -1
  488. package/unbundled/definition2.cjs +9 -77
  489. package/unbundled/definition2.js +6 -74
  490. package/unbundled/definition20.js +1 -1
  491. package/unbundled/definition21.js +1 -1
  492. package/unbundled/definition22.js +1 -1
  493. package/unbundled/definition23.cjs +1 -1
  494. package/unbundled/definition23.js +2 -2
  495. package/unbundled/definition24.cjs +17 -13
  496. package/unbundled/definition24.js +18 -14
  497. package/unbundled/definition25.js +1 -1
  498. package/unbundled/definition26.cjs +17 -1
  499. package/unbundled/definition26.js +18 -2
  500. package/unbundled/definition27.cjs +15 -12
  501. package/unbundled/definition27.js +16 -13
  502. package/unbundled/definition28.cjs +10 -6
  503. package/unbundled/definition28.js +11 -7
  504. package/unbundled/definition29.js +1 -1
  505. package/unbundled/definition3.js +1 -1
  506. package/unbundled/definition30.cjs +4 -2
  507. package/unbundled/definition30.js +5 -3
  508. package/unbundled/definition31.cjs +2 -1189
  509. package/unbundled/definition31.js +2 -1189
  510. package/unbundled/definition32.cjs +215 -1836
  511. package/unbundled/definition32.js +212 -1809
  512. package/unbundled/definition33.cjs +85 -311
  513. package/unbundled/definition33.js +82 -236
  514. package/unbundled/definition34.cjs +2039 -25
  515. package/unbundled/definition34.js +2009 -24
  516. package/unbundled/definition35.cjs +315 -121
  517. package/unbundled/definition35.js +236 -114
  518. package/unbundled/definition36.cjs +25 -405
  519. package/unbundled/definition36.js +23 -398
  520. package/unbundled/definition37.cjs +47 -142
  521. package/unbundled/definition37.js +45 -140
  522. package/unbundled/definition38.cjs +346 -330
  523. package/unbundled/definition38.js +344 -328
  524. package/unbundled/definition39.cjs +183 -235
  525. package/unbundled/definition39.js +181 -233
  526. package/unbundled/definition4.cjs +6 -0
  527. package/unbundled/definition4.js +7 -1
  528. package/unbundled/definition40.cjs +377 -47
  529. package/unbundled/definition40.js +373 -43
  530. package/unbundled/definition41.cjs +261 -57
  531. package/unbundled/definition41.js +260 -56
  532. package/unbundled/definition42.cjs +45 -432
  533. package/unbundled/definition42.js +42 -429
  534. package/unbundled/definition43.cjs +63 -49
  535. package/unbundled/definition43.js +61 -47
  536. package/unbundled/definition44.cjs +439 -30
  537. package/unbundled/definition44.js +436 -26
  538. package/unbundled/definition45.cjs +46 -84
  539. package/unbundled/definition45.js +43 -81
  540. package/unbundled/definition46.cjs +29 -54
  541. package/unbundled/definition46.js +24 -50
  542. package/unbundled/definition47.cjs +94 -21
  543. package/unbundled/definition47.js +92 -16
  544. package/unbundled/definition48.cjs +49 -33
  545. package/unbundled/definition48.js +46 -30
  546. package/unbundled/definition49.cjs +22 -347
  547. package/unbundled/definition49.js +17 -345
  548. package/unbundled/definition5.js +1 -1
  549. package/unbundled/definition50.cjs +34 -211
  550. package/unbundled/definition50.js +31 -208
  551. package/unbundled/definition51.cjs +282 -242
  552. package/unbundled/definition51.js +276 -236
  553. package/unbundled/definition52.cjs +211 -51
  554. package/unbundled/definition52.js +209 -48
  555. package/unbundled/definition53.cjs +279 -131
  556. package/unbundled/definition53.js +277 -128
  557. package/unbundled/definition54.cjs +50 -261
  558. package/unbundled/definition54.js +48 -260
  559. package/unbundled/definition55.cjs +128 -443
  560. package/unbundled/definition55.js +126 -442
  561. package/unbundled/definition56.cjs +235 -3596
  562. package/unbundled/definition56.js +231 -3429
  563. package/unbundled/definition57.cjs +419 -729
  564. package/unbundled/definition57.js +417 -727
  565. package/unbundled/definition58.cjs +3626 -106
  566. package/unbundled/definition58.js +3458 -101
  567. package/unbundled/definition59.cjs +624 -868
  568. package/unbundled/definition59.js +619 -863
  569. package/unbundled/definition6.js +1 -1
  570. package/unbundled/definition60.cjs +106 -108
  571. package/unbundled/definition60.js +103 -105
  572. package/unbundled/definition61.cjs +1045 -71
  573. package/unbundled/definition61.js +1041 -66
  574. package/unbundled/definition62.cjs +105 -169
  575. package/unbundled/definition62.js +102 -166
  576. package/unbundled/definition63.cjs +70 -113
  577. package/unbundled/definition63.js +66 -110
  578. package/unbundled/definition64.cjs +184 -53
  579. package/unbundled/definition64.js +182 -51
  580. package/unbundled/definition65.cjs +109 -76
  581. package/unbundled/definition65.js +110 -76
  582. package/unbundled/definition66.cjs +58 -21
  583. package/unbundled/definition66.js +56 -16
  584. package/unbundled/definition67.cjs +81 -74
  585. package/unbundled/definition67.js +80 -74
  586. package/unbundled/definition68.cjs +19 -344
  587. package/unbundled/definition68.js +15 -336
  588. package/unbundled/definition69.cjs +88 -26
  589. package/unbundled/definition69.js +86 -23
  590. package/unbundled/definition7.cjs +18 -3
  591. package/unbundled/definition7.js +19 -4
  592. package/unbundled/definition70.cjs +335 -111
  593. package/unbundled/definition70.js +326 -109
  594. package/unbundled/definition71.cjs +26 -271
  595. package/unbundled/definition71.js +22 -268
  596. package/unbundled/definition72.cjs +135 -27
  597. package/unbundled/definition72.js +126 -25
  598. package/unbundled/definition73.cjs +257 -113
  599. package/unbundled/definition73.js +255 -105
  600. package/unbundled/definition74.cjs +28 -212
  601. package/unbundled/definition74.js +26 -202
  602. package/unbundled/definition75.cjs +117 -479
  603. package/unbundled/definition75.js +110 -476
  604. package/unbundled/definition76.cjs +233 -0
  605. package/unbundled/definition76.js +214 -0
  606. package/unbundled/definition77.cjs +533 -0
  607. package/unbundled/definition77.js +513 -0
  608. package/unbundled/definition8.js +1 -1
  609. package/unbundled/definition9.cjs +9 -7
  610. package/unbundled/definition9.js +10 -8
  611. package/unbundled/delegates-aria.cjs +5 -60
  612. package/unbundled/delegates-aria.js +6 -60
  613. package/unbundled/divider.cjs +6 -0
  614. package/unbundled/divider.js +6 -0
  615. package/unbundled/form-element.cjs +7 -5
  616. package/unbundled/form-element.js +7 -5
  617. package/unbundled/host-semantics.cjs +10 -45
  618. package/unbundled/host-semantics.js +10 -44
  619. package/unbundled/mixins.js +1 -1
  620. package/unbundled/numberConverter.cjs +91 -0
  621. package/unbundled/numberConverter.js +74 -0
  622. package/unbundled/picker-field.template.cjs +22 -15
  623. package/unbundled/picker-field.template.js +22 -15
  624. package/unbundled/text-field.cjs +1 -1
  625. package/unbundled/text-field.js +1 -1
  626. package/unbundled/time-selection-picker.template.cjs +4 -3
  627. package/unbundled/time-selection-picker.template.js +5 -4
  628. package/unbundled/utils.cjs +1439 -0
  629. package/unbundled/utils.js +1428 -0
  630. package/unbundled/vivid-element.cjs +10 -1
  631. package/unbundled/vivid-element.js +5 -2
  632. package/video-player/definition.cjs +1 -1
  633. package/video-player/definition.js +1 -1
  634. package/video-player/index.cjs +24 -24
  635. package/video-player/index.js +3087 -3010
  636. package/visually-hidden/index.cjs +1 -1
  637. package/visually-hidden/index.js +0 -1
  638. package/vivid.api.json +514 -1
  639. package/bundled/attribute-binding-behaviour.cjs +0 -1
  640. package/bundled/attribute-binding-behaviour.js +0 -18
  641. package/bundled/strings.cjs +0 -1
  642. package/bundled/strings.js +0 -7
  643. package/shared/aria/delegate-aria-behavior.d.ts +0 -23
  644. package/shared/aria/host-semantics-behavior.d.ts +0 -19
  645. package/shared/templating/attribute-binding-behaviour.d.ts +0 -14
  646. package/unbundled/attribute-binding-behaviour.cjs +0 -37
  647. package/unbundled/attribute-binding-behaviour.js +0 -31
  648. /package/{lib/icon/icon.placeholder.d.ts → shared/icon/icon-placeholder.d.ts} +0 -0
@@ -1,393 +1,409 @@
1
- import { o as defineVividComponent, s as createRegisterFunction, t as VividElement } from "./vivid-element.js";
2
- import { n as visuallyHiddenDefinition, r as VisuallyHidden } from "./definition.js";
3
- import { r as Icon, t as iconDefinition } from "./definition2.js";
1
+ import { c as createRegisterFunction, s as defineVividComponent } from "./vivid-element.js";
2
+ import { n as visuallyHiddenDefinition } from "./definition.js";
4
3
  import { t as __decorate } from "./decorate.js";
5
- import { t as Localized } from "./localized.js";
6
- import { i as Button, t as buttonDefinition } from "./definition7.js";
7
- import { n as textFieldDefinition, r as TextField } from "./definition26.js";
8
- import { attr, html, observable, ref, repeat, when } from "@microsoft/fast-element";
9
- import { classNames, keyEnter } from "@microsoft/fast-web-utilities";
10
- //#region src/lib/dial-pad/dial-pad.scss?inline
11
- 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}";
4
+ import { t as buttonDefinition } from "./definition7.js";
5
+ import { t as popupDefinition } from "./definition10.js";
6
+ import { n as textFieldDefinition } from "./definition26.js";
7
+ import { t as dividerDefinition } from "./definition36.js";
8
+ import { n as PickerField, r as picker_field_default, t as PickerFieldTemplate } from "./picker-field.template.js";
9
+ import { a as formatPresentationDate, i as CalendarPicker, l as isValidDateStr, n as MinMaxCalendarPicker, o as parsePresentationDate, s as compareDateStr, t as CalendarPickerTemplate, u as calendar_picker_default } from "./calendar-picker.template.js";
10
+ import { attr, observable, volatile } from "@microsoft/fast-element";
11
+ //#region src/shared/datetime/presentationDateRange.ts
12
+ var formatRange = (from, to) => {
13
+ return `${from} – ${to}`;
14
+ };
15
+ var formatPresentationDateRange = (dateRange, locale) => {
16
+ return formatRange(formatPresentationDate(dateRange.start, locale), formatPresentationDate(dateRange.end, locale));
17
+ };
18
+ /**
19
+ * Parse a presentation date range, which combines two presentation dates with a dash.
20
+ * Will throw if the range can't be parsed
21
+ */
22
+ var parsePresentationDateRange = (presentationDateRange, locale) => {
23
+ const fragments = presentationDateRange.trim().split(/[\s—–-]+/);
24
+ if (fragments.length !== 2) throw new Error(`Invalid date range: ${presentationDateRange}`);
25
+ const [start, end] = fragments.map((fragment) => parsePresentationDate(fragment, locale));
26
+ return {
27
+ start,
28
+ end
29
+ };
30
+ };
12
31
  //#endregion
13
- //#region src/lib/dial-pad/dial-pad.ts
32
+ //#region src/lib/date-range-picker/date-range-picker.ts
33
+ var isFormAssociatedTryingToSetFormValue = (value) => typeof value === "string";
34
+ function isDefined(value) {
35
+ return !!value;
36
+ }
14
37
  /**
15
- * Base class for dial-pad
16
- *
17
38
  * @public
18
- * @component dial-pad
19
- * @event {CustomEvent<undefined>} change - Emitted when the text field value changes
20
- * @event {CustomEvent<undefined>} input - Emitted when the text field value changes
21
- * @event {CustomEvent<undefined>} blur - Emitted when the text field loses focus
22
- * @event {CustomEvent<undefined>} focus - Emitted when the text field receives focus
23
- * @event {CustomEvent<HTMLElement>}keypad-click - Emitted when a digit button is clicked
24
- * @event {CustomEvent<undefined>} dial - Emitted when the call button is clicked
25
- * @event {CustomEvent<undefined>} end-call - Emitted when the end call button is clicked
26
- * @vueModel modelValue value input,@lazy:change `event.currentTarget.value`
27
- *
39
+ * @component date-range-picker
40
+ * @slot helper-text - Describes how to use the date-range-picker. Alternative to the `helper-text` attribute.
41
+ * @event {CustomEvent<undefined>} input:start - Event emitted when the start value changes
42
+ * @event {CustomEvent<undefined>} input:end - Event emitted when the end value changes
43
+ * @event {CustomEvent<undefined>} input - Emitted when either the start or end value changes
44
+ * @event {CustomEvent<undefined>} change - Emitted when either the start or end value changes
45
+ * @vueModel start start input:start `event.currentTarget.start`
46
+ * @vueModel end end input:end `event.currentTarget.end`
47
+ * @testAction selectDateRange selectDateRange
48
+ * @testQuery range range
28
49
  */
29
- var DialPad = class extends Localized(VividElement) {
50
+ var DateRangePicker = class extends MinMaxCalendarPicker(CalendarPicker(PickerField)) {
30
51
  constructor(..._args) {
31
52
  super(..._args);
32
- this.helperText = null;
33
- this.placeholder = null;
34
- this.value = "";
35
- this.pattern = "^[0-9#*]*$";
36
- this.disabled = false;
37
- this.pending = false;
38
- this.callActive = false;
39
- this.noCall = false;
40
- this.noInput = false;
41
- this.endCallButtonLabel = null;
42
- this.callButtonLabel = null;
43
- this.deleteAriaLabel = null;
44
- this._longPressTimeoutId = null;
45
- this._suppressNextClick = false;
46
- this._keyboardLongPressCompleted = false;
47
- this._onDial = () => {
48
- if (!this._textFieldEl.checkValidity()) this._announceValidationError(this._textFieldEl.errorValidationMessage ?? "");
49
- else this._clearErrorAnnouncement();
50
- this.callActive ? this.$emit("end-call") : this.$emit("dial");
53
+ this.initialStart = "";
54
+ this.initialEnd = "";
55
+ this.#isInternalValueUpdate = false;
56
+ this.start = "";
57
+ this.end = "";
58
+ this.setFormValue = (value, state) => {
59
+ if (isFormAssociatedTryingToSetFormValue(value)) return;
60
+ super.setFormValue(value, state);
51
61
  };
52
- this.autofocus = false;
53
- this._errorAnnouncement = "";
54
- this._forceAnnouncementToggle = false;
55
- }
56
- valueChanged(_oldValue, newValue) {
57
- if (newValue !== void 0 && newValue !== null && this._textFieldEl && newValue !== this._textFieldEl.value) {
58
- this._textFieldEl.value = newValue;
59
- this._textFieldEl.reportValidity();
62
+ this._numCalendars = 2;
63
+ this._hideDatesOutsideMonth = true;
64
+ this._textFieldSize = "30";
65
+ }
66
+ /**
67
+ * @internal
68
+ */
69
+ initialStartChanged() {
70
+ if (!this.dirtyValue) {
71
+ this.start = this.initialStart;
72
+ this.dirtyValue = false;
60
73
  }
61
74
  }
62
75
  /**
63
76
  * @internal
64
77
  */
65
- _startLongPress(digit, event) {
66
- if (this.disabled || this.callActive || digit !== "0") return;
67
- this._clearLongPressTimer();
68
- const target = event.currentTarget;
69
- this._longPressTimeoutId = window.setTimeout(() => {
70
- this._suppressNextClick = true;
71
- this.value += "+";
72
- this.$emit("keypad-click", target);
73
- this.$emit("input");
74
- this.$emit("change");
75
- }, 600);
78
+ initialEndChanged() {
79
+ if (!this.dirtyValue) {
80
+ this.end = this.initialEnd;
81
+ this.dirtyValue = false;
82
+ }
76
83
  }
84
+ #isInternalValueUpdate;
77
85
  /**
78
86
  * @internal
79
87
  */
80
- _startKeyboardLongPress() {
81
- if (this.disabled || this.callActive) return;
82
- if (this._longPressTimeoutId !== null) return;
83
- this._keyboardLongPressCompleted = false;
84
- this._longPressTimeoutId = window.setTimeout(() => {
85
- this._keyboardLongPressCompleted = true;
86
- this.value += "+";
87
- this.$emit("input");
88
- this.$emit("change");
89
- }, 650);
88
+ startChanged() {
89
+ if (this.start && !isValidDateStr(this.start)) {
90
+ this.start = "";
91
+ return;
92
+ }
93
+ this.currentStart = this.start;
94
+ this.dirtyValue = true;
95
+ if (!this.#isInternalValueUpdate) this.#handleChangedValues();
90
96
  }
91
97
  /**
92
98
  * @internal
93
99
  */
94
- _endLongPress() {
95
- this._clearLongPressTimer();
96
- window.setTimeout(() => {
97
- if (this._suppressNextClick) this._suppressNextClick = false;
98
- }, 0);
100
+ endChanged() {
101
+ if (this.end && !isValidDateStr(this.end)) {
102
+ this.end = "";
103
+ return;
104
+ }
105
+ this.currentEnd = this.end;
106
+ this.dirtyValue = true;
107
+ if (!this.#isInternalValueUpdate) this.#handleChangedValues();
99
108
  }
100
109
  /**
101
110
  * @internal
102
- * @returns true if long press completed (timer fired), false otherwise
103
111
  */
104
- _endKeyboardLongPress() {
105
- const wasLongPress = this._keyboardLongPressCompleted;
106
- this._clearLongPressTimer();
107
- window.setTimeout(() => {
108
- this._keyboardLongPressCompleted = false;
109
- }, 0);
110
- return wasLongPress;
112
+ currentStartChanged() {
113
+ this.start = this.currentStart;
111
114
  }
112
115
  /**
113
116
  * @internal
114
117
  */
115
- _cancelLongPress() {
116
- this._clearLongPressTimer();
118
+ currentEndChanged() {
119
+ this.end = this.currentEnd;
117
120
  }
118
- _clearLongPressTimer() {
119
- if (this._longPressTimeoutId !== null) {
120
- clearTimeout(this._longPressTimeoutId);
121
- this._longPressTimeoutId = null;
121
+ #updateValues(range) {
122
+ this.#isInternalValueUpdate = true;
123
+ if (range.start !== void 0) {
124
+ this.start = range.start;
125
+ this.$emit("input:start");
126
+ }
127
+ if (range.end !== void 0) {
128
+ this.end = range.end;
129
+ this.$emit("input:end");
122
130
  }
131
+ this.#isInternalValueUpdate = false;
132
+ this.$emit("input");
133
+ this.$emit("change");
134
+ this.#handleChangedValues();
135
+ }
136
+ #handleChangedValues() {
137
+ if (this.start && this.end) {
138
+ if (compareDateStr(this.start, this.end) > 0) {
139
+ this.#updateValues({
140
+ start: this.end,
141
+ end: this.start
142
+ });
143
+ return;
144
+ }
145
+ this.value = formatRange(this.start, this.end);
146
+ } else this.value = "";
147
+ this._updatePresentationValue();
148
+ const dateToEnsureVisibilityOf = this.start || this.end;
149
+ if (dateToEnsureVisibilityOf) this._adjustSelectedMonthToEnsureVisibilityOf(dateToEnsureVisibilityOf);
150
+ this.#updateFormValue();
123
151
  }
124
152
  /**
125
- * Moves focus into the Dial Pad. If `no-input` attribute is specified, it will be the first digit
126
- * button. Otherwise, the input field will be focused.
127
- *
128
- * @public
153
+ * @internal
129
154
  */
130
- focus() {
131
- const digitBtns = this.shadowRoot?.querySelectorAll(".digits .digit-btn");
132
- (this._textFieldEl || digitBtns?.[0])?.focus();
155
+ _updatePresentationValue() {
156
+ if (this.start && this.end) this._presentationValue = formatPresentationDateRange({
157
+ start: this.start,
158
+ end: this.end
159
+ }, this.locale.calendarPicker);
160
+ else this._presentationValue = "";
133
161
  }
134
162
  /**
135
163
  * @internal
136
164
  */
137
- _announceValidationError(message) {
138
- this._errorAnnouncement = "";
139
- window.queueMicrotask(() => {
140
- if (message) {
141
- this._forceAnnouncementToggle = !this._forceAnnouncementToggle;
142
- this._errorAnnouncement = `${message}${this._forceAnnouncementToggle ? "​" : ""}`;
143
- } else this._clearErrorAnnouncement();
144
- });
165
+ nameChanged(previous, next) {
166
+ super.nameChanged(previous, next);
167
+ this.#updateFormValue();
168
+ }
169
+ #updateFormValue() {
170
+ if (!this.name || !this.start || !this.end) this.setFormValue(null);
171
+ else {
172
+ const formData = new FormData();
173
+ formData.append(this.name, this.start);
174
+ formData.append(this.name, this.end);
175
+ this.setFormValue(formData);
176
+ }
145
177
  }
146
178
  /**
147
179
  * @internal
148
180
  */
149
- _clearErrorAnnouncement() {
150
- this._errorAnnouncement = "";
151
- this._forceAnnouncementToggle = false;
181
+ connectedCallback() {
182
+ super.connectedCallback();
183
+ /* v8 ignore else -- @preserve */
184
+ if (!this.start) this.start = this.initialStart;
185
+ /* v8 ignore else -- @preserve */
186
+ if (!this.end) this.end = this.initialEnd;
152
187
  }
153
- };
154
- __decorate([attr({ attribute: "helper-text" })], DialPad.prototype, "helperText", void 0);
155
- __decorate([attr], DialPad.prototype, "placeholder", void 0);
156
- __decorate([attr({ mode: "fromView" })], DialPad.prototype, "value", void 0);
157
- __decorate([attr({ mode: "fromView" })], DialPad.prototype, "pattern", void 0);
158
- __decorate([attr({ mode: "boolean" })], DialPad.prototype, "disabled", void 0);
159
- __decorate([attr({ mode: "boolean" })], DialPad.prototype, "pending", void 0);
160
- __decorate([attr({
161
- attribute: "call-active",
162
- mode: "boolean"
163
- })], DialPad.prototype, "callActive", void 0);
164
- __decorate([attr({
165
- mode: "boolean",
166
- attribute: "no-call"
167
- })], DialPad.prototype, "noCall", void 0);
168
- __decorate([attr({
169
- mode: "boolean",
170
- attribute: "no-input"
171
- })], DialPad.prototype, "noInput", void 0);
172
- __decorate([attr], DialPad.prototype, "size", void 0);
173
- __decorate([attr({ attribute: "end-call-button-label" })], DialPad.prototype, "endCallButtonLabel", void 0);
174
- __decorate([attr({ attribute: "call-button-label" })], DialPad.prototype, "callButtonLabel", void 0);
175
- __decorate([attr({ attribute: "delete-aria-label" })], DialPad.prototype, "deleteAriaLabel", void 0);
176
- __decorate([attr({ mode: "boolean" })], DialPad.prototype, "autofocus", void 0);
177
- __decorate([observable], DialPad.prototype, "_errorAnnouncement", void 0);
178
- //#endregion
179
- //#region src/lib/dial-pad/dial-pad.template.ts
180
- var DialPadButton = class {
181
- constructor(value, label, ariaLabel, icon, id) {
182
- this.value = value;
183
- this.label = label;
184
- this.ariaLabel = ariaLabel;
185
- this.icon = icon;
186
- this.id = id;
188
+ #getVisibleRange() {
189
+ const candidates = [this.start, this.end].filter(isDefined);
190
+ const isPartialRange = candidates.length === 1;
191
+ if (this._hoverDate && isPartialRange) candidates.push(this._hoverDate);
192
+ const [start, end] = candidates.sort(compareDateStr);
193
+ return {
194
+ start,
195
+ end
196
+ };
187
197
  }
188
- };
189
- var DIAL_PAD_BUTTONS = [
190
- new DialPadButton("1", "&nbsp;", "digitOneLabel", "one-solid", "btn1"),
191
- new DialPadButton("2", "ABC", "digitTwoLabel", "two-solid", "btn2"),
192
- new DialPadButton("3", "DEF", "digitThreeLabel", "three-solid", "btn3"),
193
- new DialPadButton("4", "GHI", "digitFourLabel", "four-solid", "btn4"),
194
- new DialPadButton("5", "JKL", "digitFiveLabel", "five-solid", "btn5"),
195
- new DialPadButton("6", "MNO", "digitSixLabel", "six-solid", "btn6"),
196
- new DialPadButton("7", "PQRS", "digitSevenLabel", "seven-solid", "btn7"),
197
- new DialPadButton("8", "TUV", "digitEightLabel", "eight-solid", "btn8"),
198
- new DialPadButton("9", "WXYZ", "digitNineLabel", "nine-solid", "btn9"),
199
- new DialPadButton("*", null, "digitAsteriskLabel", "asterisk-2-solid", "btnAsterisk"),
200
- new DialPadButton("0", "+", "digitZeroLabel", "zero-solid", "btn0"),
201
- new DialPadButton("#", null, "digitHashtagLabel", "hashtag-solid", "btnHashtag")
202
- ];
203
- var getClasses = ({ noInput, size }) => classNames("base", [`size-${size}`, Boolean(size)], ["no-input", Boolean(noInput)]);
204
- function handleKeyDown(x, e) {
205
- if (e.key === keyEnter && !x.pending && !x.disabled && !x.callActive && !x.noCall && x.value.length > 0 && e.target instanceof HTMLInputElement) x._onDial();
206
- else if (e.key === " " || e.key === "Space") {
207
- /* v8 ignore else -- @preserve */
208
- if (e.target instanceof HTMLInputElement) {
209
- e.preventDefault();
210
- /* v8 ignore else -- @preserve */
211
- if (!e.repeat) x._startKeyboardLongPress();
198
+ /**
199
+ * @internal
200
+ */
201
+ _isDateAriaSelected(date) {
202
+ return this._isDateInSelectedRange(date);
203
+ }
204
+ /**
205
+ * @internal
206
+ */
207
+ _isDateInSelectedRange(date) {
208
+ const { start, end } = this.#getVisibleRange();
209
+ if (start && end) return compareDateStr(date, start) >= 0 && compareDateStr(date, end) <= 0;
210
+ return false;
211
+ }
212
+ /**
213
+ * @internal
214
+ */
215
+ _isDateRangeStart(date) {
216
+ return date === this.#getVisibleRange().start;
217
+ }
218
+ /**
219
+ * @internal
220
+ */
221
+ _isDateRangeEnd(date) {
222
+ return date === this.#getVisibleRange().end;
223
+ }
224
+ /**
225
+ * @internal
226
+ */
227
+ _getSelectedDates() {
228
+ const dates = [];
229
+ if (this.start) dates.push(this.start);
230
+ if (this.end) dates.push(this.end);
231
+ return dates;
232
+ }
233
+ /**
234
+ * @internal
235
+ */
236
+ _onDateClick(date) {
237
+ if (this.start && this.end) this.#updateValues({
238
+ start: date,
239
+ end: ""
240
+ });
241
+ else if (this.start) {
242
+ this.#updateValues({ end: date });
243
+ this._closePopup();
244
+ } else if (this.end) {
245
+ this.#updateValues({ start: date });
246
+ this._closePopup();
247
+ } else this.#updateValues({ start: date });
248
+ }
249
+ /**
250
+ * @internal
251
+ */
252
+ get _textFieldPlaceholder() {
253
+ return formatRange(this.locale.calendarPicker.dateFormatPlaceholder, this.locale.calendarPicker.dateFormatPlaceholder);
254
+ }
255
+ /**
256
+ * @internal
257
+ */
258
+ _onTextFieldChange() {
259
+ if (this._presentationValue === "") {
260
+ this.#updateValues({
261
+ start: "",
262
+ end: ""
263
+ });
264
+ return;
212
265
  }
213
- } else {
214
- const elementIndex = DIAL_PAD_BUTTONS.findIndex((x) => x.value === e.key);
215
- if (elementIndex > -1) {
216
- const digit = x.shadowRoot.querySelector(".digits").children[elementIndex];
217
- /* v8 ignore else -- @preserve */
218
- if (digit) {
219
- digit.active = true;
220
- setTimeout(() => {
221
- digit.active = false;
222
- }, 200);
223
- }
266
+ try {
267
+ const { start, end } = parsePresentationDateRange(this._presentationValue, this.locale.calendarPicker);
268
+ this.#updateValues({
269
+ start,
270
+ end
271
+ });
272
+ } catch (_) {
273
+ const invalidPresentationValue = this._presentationValue;
274
+ this.#updateValues({
275
+ start: "",
276
+ end: ""
277
+ });
278
+ this._presentationValue = invalidPresentationValue;
279
+ return;
224
280
  }
225
281
  }
226
- return true;
227
- }
228
- function handleKeyUp(x, e) {
229
- /* v8 ignore else -- @preserve */
230
- if (e.key === " " || e.key === "Space") {
231
- /* v8 ignore else -- @preserve */
232
- if (e.target instanceof HTMLInputElement) {
233
- e.preventDefault();
234
- if (!x._endKeyboardLongPress() && !x.disabled && !x.callActive) {
235
- x.value += " ";
236
- x.$emit("input");
237
- x.$emit("change");
238
- }
282
+ /**
283
+ * @internal
284
+ */
285
+ _onDateMouseEnter(date) {
286
+ this._hoverDate = date;
287
+ }
288
+ /**
289
+ * @internal
290
+ */
291
+ _onDateMouseLeave() {
292
+ this._hoverDate = void 0;
293
+ }
294
+ /**
295
+ * @internal
296
+ */
297
+ _getCustomValidationError() {
298
+ if (this._isPresentationValueInvalid()) return this.locale.calendarPicker.invalidDateRangeError;
299
+ if (this.min && this.start && compareDateStr(this.start, this.min) < 0) return this.locale.calendarPicker.startDateAfterMinDateError(formatPresentationDate(this.min, this.locale.calendarPicker));
300
+ if (this.max && this.end && compareDateStr(this.end, this.max) > 0) return this.locale.calendarPicker.endDateBeforeMaxDateError(formatPresentationDate(this.max, this.locale.calendarPicker));
301
+ return null;
302
+ }
303
+ /**
304
+ * @internal
305
+ */
306
+ _isPresentationValueInvalid() {
307
+ if (this._presentationValue === "") return false;
308
+ try {
309
+ parsePresentationDateRange(this._presentationValue, this.locale.calendarPicker);
310
+ return false;
311
+ } catch (_) {
312
+ return true;
239
313
  }
240
314
  }
241
- return true;
242
- }
243
- function handleButtonKeyDown(digit, { parent: dialPad, event }) {
244
- /* v8 ignore else -- @preserve */
245
- if ((event.key === " " || event.key === "Space") && digit.value === "0") {
246
- event.preventDefault();
247
- /* v8 ignore else -- @preserve */
248
- if (!event.repeat) dialPad._startKeyboardLongPress();
315
+ /**
316
+ * @internal
317
+ */
318
+ _onClearClick() {
319
+ this.#updateValues({
320
+ start: "",
321
+ end: ""
322
+ });
323
+ super._onClearClick();
249
324
  }
250
- return true;
251
- }
252
- function handleButtonKeyUp(digit, { parent: dialPad, event }) {
253
- /* v8 ignore else -- @preserve */
254
- if ((event.key === " " || event.key === "Space") && digit.value === "0") {
255
- event.preventDefault();
256
- /* v8 ignore else -- @preserve */
257
- if (!dialPad._endKeyboardLongPress() && !dialPad.disabled && !dialPad.callActive) onDigitClick(digit, {
258
- parent: dialPad,
259
- event: new MouseEvent("click", { bubbles: true })
325
+ /**
326
+ * @internal
327
+ */
328
+ formResetCallback() {
329
+ this.#updateValues({
330
+ start: this.initialStart,
331
+ end: this.initialEnd
260
332
  });
333
+ super.formResetCallback();
261
334
  }
262
- return true;
263
- }
264
- function syncFieldAndPadValues(x) {
265
- x.value = x._textFieldEl.value;
266
- }
267
- function stopPropagation(_, { event: e }) {
268
- e.stopImmediatePropagation();
269
- }
270
- function deleteLastCharacter(dialPad) {
271
- dialPad.value = dialPad.value.slice(0, -1);
272
- dialPad.$emit("input");
273
- dialPad.$emit("change");
274
- if (dialPad.value === "") dialPad._textFieldEl?.focus();
275
- }
276
- function renderTextField(textFieldTag, buttonTag) {
277
- return html`<${textFieldTag} ${ref("_textFieldEl")} class="phone-field" internal-part type="tel"
278
- value="${(x) => x.value}" placeholder="${(x) => x.placeholder}"
279
- ?disabled="${(x) => x.disabled}" helper-text="${(x) => x.helperText}" pattern="${(x) => x.pattern}"
280
- aria-label="${(x) => x.locale.dialPad.inputLabel}"
281
- @keydown="${(x, c) => handleKeyDown(x, c.event)}"
282
- @keyup="${(x, c) => handleKeyUp(x, c.event)}"
283
- @input="${syncFieldAndPadValues}"
284
- @change="${syncFieldAndPadValues}"
285
- @focus="${stopPropagation}"
286
- @blur="${stopPropagation}"
287
- ?autofocus="${(x) => x.autofocus}"
288
- scale="${(x) => x.size === "condensed" ? "condensed" : "normal"}">
289
- >
290
- ${when((x) => x.value && x.value.length && x.value.length > 0, html`<${buttonTag}
291
- slot="action-items"
292
- size='super-condensed'
293
- icon="backspace-line"
294
- aria-label="${(x) => x.deleteAriaLabel || x.locale.dialPad.deleteButtonLabel}"
295
- appearance='ghost'
296
- ?disabled="${(x) => x.disabled || x.callActive}"
297
- @click="${(x) => deleteLastCharacter(x)}">
298
- </${buttonTag}>`)}
299
- </${textFieldTag}>`;
300
- }
301
- function onDigitClick(digit, { parent: dialPad, event }) {
302
- if (dialPad._suppressNextClick) {
303
- dialPad._suppressNextClick = false;
304
- return;
305
- }
306
- dialPad.value += digit.value;
307
- dialPad.$emit("keypad-click", event.currentTarget);
308
- dialPad.$emit("input");
309
- dialPad.$emit("change");
310
- }
311
- function renderDigits(buttonTag, iconTag) {
312
- return html`
313
- ${repeat((_) => DIAL_PAD_BUTTONS, html`
314
- <${buttonTag}
315
- id="${(x) => x.id}"
316
- value="${(x) => x.value}"
317
- stacked
318
- appearance="ghost-light"
319
- shape="pill"
320
- label="${(x) => x.label === "&nbsp;" ? "\xA0" : x.label}"
321
- size='condensed'
322
- class="digit-btn"
323
- ?autofocus="${(_, c) => c.parent.autofocus && c.parent.noInput && c.index === 0}"
324
- aria-label="${(x, c) => c.parent.locale.dialPad[x.ariaLabel]}"
325
- ?disabled="${(_, c) => c.parent.disabled}"
326
- @pointerdown="${(x, c) => c.parent._startLongPress(x.value, c.event)}"
327
- @pointerup="${(_, c) => c.parent._endLongPress()}"
328
- @pointercancel="${(_, c) => c.parent._cancelLongPress()}"
329
- @pointerleave="${(_, c) => c.parent._cancelLongPress()}"
330
- @keydown="${(x, c) => handleButtonKeyDown(x, {
331
- parent: c.parent,
332
- event: c.event
333
- })}"
334
- @keyup="${(x, c) => handleButtonKeyUp(x, {
335
- parent: c.parent,
336
- event: c.event
337
- })}"
338
- @click="${onDigitClick}">
339
- <${iconTag} slot="icon"
340
- name="${(x) => x.icon}"
341
- class="digit-btn-num"></${iconTag}>
342
- </${buttonTag}>
343
- `, { positioning: true })}
344
- `;
345
- }
346
- function renderDialButton(buttonTag) {
347
- return html`<${buttonTag} class="call-btn"
348
- size="${(x) => x.size === "condensed" ? "normal" : "expanded"}"
349
- appearance="filled"
350
- icon="${(x) => x.callActive ? "disable-call-line" : "call-line"}"
351
- connotation="${(x) => x.callActive ? "alert" : "cta"}"
352
- ?disabled="${(x) => x.disabled}"
353
- ?pending="${(x) => x.pending}"
354
- @click="${(x) => x._onDial()}"
355
- label="${(x) => x.callActive ? x.endCallButtonLabel || x.locale.dialPad.endCallButtonLabel : x.callButtonLabel || x.locale.dialPad.callButtonLabel}">
356
- </${buttonTag}>`;
357
- }
358
- function renderErrorAnnouncement(visuallyHiddenTag) {
359
- return html`<${visuallyHiddenTag} role="alert" aria-atomic="true">
360
- ${(x) => `${x.locale.dialPad.errorLabel} ${x._errorAnnouncement}`}
361
- </${visuallyHiddenTag}>`;
362
- }
363
- var DialPadTemplate = (context) => {
364
- const buttonTag = context.tagFor(Button);
365
- const iconTag = context.tagFor(Icon);
366
- const textFieldTag = context.tagFor(TextField);
367
- const visuallyHiddenTag = context.tagFor(VisuallyHidden);
368
- return html` <div class="${getClasses}">
369
- ${when((x) => !x.noInput, renderTextField(textFieldTag, buttonTag))}
370
- <div class="digits">${renderDigits(buttonTag, iconTag)}</div>
371
- ${when((x) => !x.noCall, renderDialButton(buttonTag))}
372
- ${renderErrorAnnouncement(visuallyHiddenTag)}
373
- </div>`;
335
+ /**
336
+ * @internal
337
+ */
338
+ get _pickerButtonLabel() {
339
+ if (this.start && this.end) return this.locale.calendarPicker.changeDatesLabel(formatPresentationDateRange({
340
+ start: this.start,
341
+ end: this.end
342
+ }, this.locale.calendarPicker));
343
+ else return this.locale.calendarPicker.chooseDatesLabel;
344
+ }
345
+ /**
346
+ * @internal
347
+ */
348
+ get _dialogLabel() {
349
+ return this.locale.calendarPicker.chooseDatesLabel;
350
+ }
351
+ /**
352
+ * @internal
353
+ */
354
+ _focusableElsWithinDialog() {
355
+ return this._dialogEl.querySelectorAll("button, .vwc-button");
356
+ }
357
+ /**
358
+ * @internal
359
+ */
360
+ get _pickerButtonIcon() {
361
+ return "calendar-line";
362
+ }
363
+ };
364
+ __decorate([attr({
365
+ mode: "fromView",
366
+ attribute: "start"
367
+ })], DateRangePicker.prototype, "initialStart", void 0);
368
+ __decorate([attr({
369
+ mode: "fromView",
370
+ attribute: "end"
371
+ })], DateRangePicker.prototype, "initialEnd", void 0);
372
+ __decorate([observable], DateRangePicker.prototype, "start", void 0);
373
+ __decorate([observable], DateRangePicker.prototype, "end", void 0);
374
+ __decorate([attr({ attribute: "current-start" })], DateRangePicker.prototype, "currentStart", void 0);
375
+ __decorate([attr({ attribute: "current-end" })], DateRangePicker.prototype, "currentEnd", void 0);
376
+ __decorate([observable], DateRangePicker.prototype, "_numCalendars", void 0);
377
+ __decorate([observable], DateRangePicker.prototype, "_hoverDate", void 0);
378
+ __decorate([volatile], DateRangePicker.prototype, "_pickerButtonLabel", null);
379
+ //#endregion
380
+ //#region src/lib/date-range-picker/date-range-picker.template.ts
381
+ var DateRangePickerTemplate = (context) => {
382
+ return PickerFieldTemplate(context, CalendarPickerTemplate(context), {
383
+ withSeparator: false,
384
+ padded: true
385
+ });
374
386
  };
375
387
  //#endregion
376
- //#region src/lib/dial-pad/definition.ts
388
+ //#region src/lib/date-range-picker/definition.ts
377
389
  /**
378
390
  * @internal
379
391
  */
380
- var dialPadDefinition = defineVividComponent("dial-pad", DialPad, DialPadTemplate, [
392
+ var dateRangePickerDefinition = defineVividComponent("date-range-picker", DateRangePicker, DateRangePickerTemplate, [
381
393
  buttonDefinition,
394
+ popupDefinition,
382
395
  textFieldDefinition,
383
- iconDefinition,
396
+ dividerDefinition,
384
397
  visuallyHiddenDefinition
385
- ], { styles: dial_pad_default });
398
+ ], {
399
+ styles: [picker_field_default, calendar_picker_default],
400
+ shadowOptions: { delegatesFocus: true }
401
+ });
386
402
  /**
387
- * Registers the dial-pad element with the design system.
403
+ * Registers the date-range-picker element with the design system.
388
404
  *
389
405
  * @param prefix - the prefix to use for the component name
390
406
  */
391
- var registerDialPad = createRegisterFunction(dialPadDefinition);
407
+ var registerDateRangePicker = createRegisterFunction(dateRangePickerDefinition);
392
408
  //#endregion
393
- export { registerDialPad as n, DialPad as r, dialPadDefinition as t };
409
+ export { registerDateRangePicker as n, DateRangePicker as r, dateRangePickerDefinition as t };