@vonage/vivid 5.23.1 → 5.24.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 (406) hide show
  1. package/accordion/index.cjs +1 -1
  2. package/accordion/index.js +1 -1
  3. package/accordion-item/index.cjs +1 -1
  4. package/accordion-item/index.js +1 -1
  5. package/audio-player/index.cjs +2 -2
  6. package/audio-player/index.js +3 -3
  7. package/badge/index.cjs +1 -1
  8. package/badge/index.js +1 -1
  9. package/bundled/definition15.cjs +8 -7
  10. package/bundled/definition15.js +26 -24
  11. package/bundled/definition17.cjs +2 -2
  12. package/bundled/definition17.js +2 -2
  13. package/bundled/definition18.cjs +12 -83
  14. package/bundled/definition18.js +35 -419
  15. package/bundled/definition19.cjs +87 -7
  16. package/bundled/definition19.js +432 -16
  17. package/bundled/definition20.cjs +7 -37
  18. package/bundled/definition20.js +17 -172
  19. package/bundled/definition21.cjs +35 -27
  20. package/bundled/definition21.js +154 -154
  21. package/bundled/definition22.cjs +29 -6
  22. package/bundled/definition22.js +172 -20
  23. package/bundled/definition23.cjs +6 -12
  24. package/bundled/definition23.js +17 -32
  25. package/bundled/definition24.cjs +12 -39
  26. package/bundled/definition24.js +32 -67
  27. package/bundled/definition25.cjs +44 -0
  28. package/bundled/definition25.js +77 -0
  29. package/bundled/extractOptions.cjs +1 -0
  30. package/bundled/extractOptions.js +11 -0
  31. package/bundled/listbox.cjs +1 -1
  32. package/bundled/listbox.js +24 -11
  33. package/bundled/render-in-light-dom.cjs +1 -1
  34. package/bundled/render-in-light-dom.js +16 -19
  35. package/bundled/vivid-element.cjs +1 -1
  36. package/bundled/vivid-element.js +9 -1
  37. package/combobox/definition.cjs +1 -1
  38. package/combobox/definition.js +1 -1
  39. package/combobox/index.cjs +7 -7
  40. package/combobox/index.js +29 -21
  41. package/country/definition.cjs +1 -1
  42. package/country/definition.js +1 -1
  43. package/country/index.cjs +1 -1
  44. package/country/index.js +1 -1
  45. package/country-group/definition.cjs +1 -1
  46. package/country-group/definition.js +1 -1
  47. package/country-group/index.cjs +1 -1
  48. package/country-group/index.js +2 -2
  49. package/custom-elements.json +3102 -2842
  50. package/data-grid/definition.cjs +1 -1
  51. package/data-grid/definition.js +1 -1
  52. package/data-grid/index.cjs +4 -4
  53. package/data-grid/index.js +5 -5
  54. package/date-picker/definition.cjs +1 -1
  55. package/date-picker/definition.js +1 -1
  56. package/date-picker/index.cjs +1 -1
  57. package/date-picker/index.js +1 -1
  58. package/date-range-picker/definition.cjs +1 -1
  59. package/date-range-picker/definition.js +1 -1
  60. package/date-range-picker/index.cjs +1 -1
  61. package/date-range-picker/index.js +1 -1
  62. package/date-time-picker/definition.cjs +1 -1
  63. package/date-time-picker/definition.js +1 -1
  64. package/date-time-picker/index.cjs +1 -1
  65. package/date-time-picker/index.js +1 -1
  66. package/dial-pad/definition.cjs +1 -1
  67. package/dial-pad/definition.js +1 -1
  68. package/dial-pad/index.cjs +24 -24
  69. package/dial-pad/index.js +120 -51
  70. package/dialog/definition.cjs +1 -1
  71. package/dialog/definition.js +1 -1
  72. package/divider/definition.cjs +1 -1
  73. package/divider/definition.js +1 -1
  74. package/divider/index.cjs +1 -1
  75. package/divider/index.js +1 -1
  76. package/empty-state/definition.cjs +1 -1
  77. package/empty-state/definition.js +1 -1
  78. package/fab/definition.cjs +1 -1
  79. package/fab/definition.js +1 -1
  80. package/file-picker/definition.cjs +1 -1
  81. package/file-picker/definition.js +1 -1
  82. package/flag/definition.cjs +1 -1
  83. package/flag/definition.js +1 -1
  84. package/header/definition.cjs +1 -1
  85. package/header/definition.js +1 -1
  86. package/header/index.cjs +3 -3
  87. package/header/index.js +3 -3
  88. package/index.cjs +200 -196
  89. package/index.js +53 -52
  90. package/kbd-key/definition.cjs +1 -1
  91. package/kbd-key/definition.js +1 -1
  92. package/kbd-shortcut/definition.cjs +1 -1
  93. package/kbd-shortcut/definition.js +1 -1
  94. package/layout/definition.cjs +1 -1
  95. package/layout/definition.js +1 -1
  96. package/lib/accordion-item/accordion-item.d.ts +2 -1
  97. package/lib/action-group/action-group.d.ts +1 -1
  98. package/lib/alert/alert.d.ts +2 -2
  99. package/lib/audio-player/audio-player.d.ts +1 -1
  100. package/lib/avatar/avatar.d.ts +1 -1
  101. package/lib/badge/badge.d.ts +1 -1
  102. package/lib/banner/banner.d.ts +3 -3
  103. package/lib/breadcrumb/breadcrumb.d.ts +1 -1
  104. package/lib/breadcrumb-item/breadcrumb-item.d.ts +1 -1
  105. package/lib/button/button.d.ts +3 -3
  106. package/lib/calendar-event/calendar-event.d.ts +1 -1
  107. package/lib/card/card.d.ts +1 -1
  108. package/lib/checkbox/checkbox.d.ts +6 -6
  109. package/lib/color-picker/color-picker.d.ts +7 -7
  110. package/lib/combobox/combobox.d.ts +7 -7
  111. package/lib/components.d.ts +1 -0
  112. package/lib/country-group/country-group.d.ts +2 -2
  113. package/lib/data-grid/data-grid-cell.d.ts +4 -3
  114. package/lib/data-grid/data-grid-row.d.ts +3 -2
  115. package/lib/data-grid/data-grid.options.d.ts +5 -0
  116. package/lib/date-picker/date-picker.d.ts +8 -8
  117. package/lib/date-range-picker/date-range-picker.d.ts +4 -4
  118. package/lib/date-time-picker/date-time-picker.d.ts +8 -8
  119. package/lib/dial-pad/dial-pad.d.ts +2 -1
  120. package/lib/dialog/dialog.d.ts +2 -2
  121. package/lib/divider/divider.d.ts +1 -1
  122. package/lib/fab/fab.d.ts +1 -1
  123. package/lib/file-picker/file-picker.d.ts +7 -7
  124. package/lib/header/header.d.ts +1 -1
  125. package/lib/menu/menu.d.ts +2 -2
  126. package/lib/menu-item/menu-item.d.ts +3 -3
  127. package/lib/nav/nav.d.ts +1 -1
  128. package/lib/nav-disclosure/nav-disclosure.d.ts +2 -2
  129. package/lib/nav-item/nav-item.d.ts +2 -2
  130. package/lib/note/note.d.ts +1 -1
  131. package/lib/number-field/number-field.d.ts +9 -9
  132. package/lib/optgroup/definition.d.ts +3 -0
  133. package/lib/optgroup/index.d.ts +1 -0
  134. package/lib/optgroup/optgroup.d.ts +430 -0
  135. package/lib/optgroup/optgroup.template.d.ts +2 -0
  136. package/lib/optgroup/variations.browser-spec.d.ts +1 -0
  137. package/lib/option/option.d.ts +2 -2
  138. package/lib/pagination/pagination.d.ts +1 -1
  139. package/lib/popover/popover.d.ts +2 -2
  140. package/lib/progress/progress.d.ts +1 -1
  141. package/lib/progress-ring/progress-ring.d.ts +1 -1
  142. package/lib/radio/radio.d.ts +3 -3
  143. package/lib/radio-group/radio-group.d.ts +1 -1
  144. package/lib/range-slider/range-slider.d.ts +3 -3
  145. package/lib/rich-text-editor/rich-text-editor.d.ts +1 -1
  146. package/lib/searchable-select/option-tag.d.ts +1 -1
  147. package/lib/searchable-select/searchable-select.d.ts +47 -47
  148. package/lib/select/select.d.ts +9 -9
  149. package/lib/selectable-box/selectable-box.d.ts +1 -1
  150. package/lib/simple-color-picker/simple-color-picker.d.ts +2 -2
  151. package/lib/slider/slider.d.ts +3 -3
  152. package/lib/split-button/split-button.d.ts +3 -3
  153. package/lib/status/status.d.ts +1 -1
  154. package/lib/switch/switch.d.ts +2 -2
  155. package/lib/tab/tab.d.ts +3 -3
  156. package/lib/tab-panel/tab-panel.d.ts +1 -1
  157. package/lib/table/table-cell.d.ts +1 -1
  158. package/lib/table/table-header-cell.d.ts +1 -1
  159. package/lib/table/table-row.d.ts +1 -1
  160. package/lib/table/table-sorting-button.d.ts +1 -1
  161. package/lib/tag/tag.d.ts +3 -3
  162. package/lib/tag-group/tag-group.d.ts +1 -1
  163. package/lib/tag-name-map.d.ts +2 -1
  164. package/lib/text-area/text-area.d.ts +8 -8
  165. package/lib/text-field/text-field.d.ts +9 -9
  166. package/lib/time-picker/time-picker.d.ts +4 -4
  167. package/lib/toggletip/toggletip.d.ts +2 -2
  168. package/lib/tooltip/tooltip.d.ts +2 -2
  169. package/lib/tree-item/tree-item.d.ts +2 -2
  170. package/lib/tree-view/tree-view.d.ts +1 -1
  171. package/lib/video-player/video-player.d.ts +1 -1
  172. package/menu/index.cjs +1 -1
  173. package/menu/index.js +1 -1
  174. package/menu-item/index.cjs +1 -1
  175. package/menu-item/index.js +1 -1
  176. package/nav/definition.cjs +1 -1
  177. package/nav/definition.js +1 -1
  178. package/nav-disclosure/definition.cjs +1 -1
  179. package/nav-disclosure/definition.js +1 -1
  180. package/nav-item/definition.cjs +1 -1
  181. package/nav-item/definition.js +1 -1
  182. package/note/definition.cjs +1 -1
  183. package/note/definition.js +1 -1
  184. package/number-field/definition.cjs +1 -1
  185. package/number-field/definition.js +1 -1
  186. package/number-field/index.cjs +1 -1
  187. package/number-field/index.js +1 -1
  188. package/optgroup/definition.cjs +5 -0
  189. package/optgroup/definition.js +2 -0
  190. package/optgroup/index.cjs +1 -0
  191. package/optgroup/index.js +4 -0
  192. package/package.json +6 -6
  193. package/pagination/definition.cjs +1 -1
  194. package/pagination/definition.js +1 -1
  195. package/platform-switch/definition.cjs +1 -1
  196. package/platform-switch/definition.js +1 -1
  197. package/popover/definition.cjs +1 -1
  198. package/popover/definition.js +1 -1
  199. package/progress/definition.cjs +1 -1
  200. package/progress/definition.js +1 -1
  201. package/radio/definition.cjs +1 -1
  202. package/radio/definition.js +1 -1
  203. package/radio-group/definition.cjs +1 -1
  204. package/radio-group/definition.js +1 -1
  205. package/range-slider/definition.cjs +1 -1
  206. package/range-slider/definition.js +1 -1
  207. package/rich-text-editor/definition.cjs +1 -1
  208. package/rich-text-editor/definition.js +1 -1
  209. package/rich-text-editor/index.cjs +1 -1
  210. package/rich-text-editor/index.js +4 -4
  211. package/rich-text-view/definition.cjs +1 -1
  212. package/rich-text-view/definition.js +1 -1
  213. package/searchable-select/definition.cjs +1 -1
  214. package/searchable-select/definition.js +1 -1
  215. package/searchable-select/index.cjs +19 -19
  216. package/searchable-select/index.js +60 -45
  217. package/select/definition.cjs +1 -1
  218. package/select/definition.js +1 -1
  219. package/select/index.cjs +1 -1
  220. package/select/index.js +1 -1
  221. package/selectable-box/definition.cjs +1 -1
  222. package/selectable-box/definition.js +1 -1
  223. package/shared/aria/delegates-aria.d.ts +1 -1
  224. package/shared/aria/host-semantics.d.ts +1 -1
  225. package/shared/color-picker/base-color-picker.d.ts +1 -1
  226. package/shared/feedback/feedback-message.d.ts +1 -1
  227. package/shared/feedback/mixins.d.ts +2 -2
  228. package/shared/foundation/button/button.d.ts +2 -2
  229. package/shared/foundation/form-associated/form-associated.d.ts +2 -2
  230. package/shared/foundation/listbox/extractOptions.d.ts +2 -0
  231. package/shared/foundation/listbox/listbox.d.ts +2 -0
  232. package/shared/patterns/affix.d.ts +2 -2
  233. package/shared/patterns/anchored.d.ts +2 -2
  234. package/shared/patterns/char-count/char-count.d.ts +1 -1
  235. package/shared/patterns/form-elements/form-element.d.ts +1 -1
  236. package/shared/patterns/form-elements/with-contextual-help.d.ts +1 -1
  237. package/shared/patterns/form-elements/with-error-text.d.ts +1 -1
  238. package/shared/patterns/form-elements/with-success-text.d.ts +1 -1
  239. package/shared/patterns/kbd-shortcut.d.ts +1 -1
  240. package/shared/patterns/linkable.d.ts +1 -1
  241. package/shared/patterns/localized.d.ts +2 -2
  242. package/shared/patterns/trapped-focus.d.ts +1 -1
  243. package/shared/picker-field/mixins/calendar-picker.d.ts +2 -2
  244. package/shared/picker-field/mixins/calendar-picker.template.d.ts +2 -2
  245. package/shared/picker-field/mixins/inline-time-picker/inline-time-picker.d.ts +1 -1
  246. package/shared/picker-field/mixins/min-max-calendar-picker.d.ts +2 -2
  247. package/shared/picker-field/mixins/single-date-picker.d.ts +2 -2
  248. package/shared/picker-field/mixins/single-value-picker.d.ts +2 -2
  249. package/shared/picker-field/mixins/time-selection-picker.d.ts +2 -2
  250. package/shared/picker-field/mixins/time-selection-picker.template.d.ts +4 -4
  251. package/shared/picker-field/picker-field.d.ts +7 -7
  252. package/side-drawer/definition.cjs +1 -1
  253. package/side-drawer/definition.js +1 -1
  254. package/simple-color-picker/definition.cjs +1 -1
  255. package/simple-color-picker/definition.js +1 -1
  256. package/split-button/definition.cjs +1 -1
  257. package/split-button/definition.js +1 -1
  258. package/split-button/index.cjs +1 -0
  259. package/split-button/index.js +1 -0
  260. package/status/definition.cjs +1 -1
  261. package/status/definition.js +1 -1
  262. package/switch/definition.cjs +1 -1
  263. package/switch/definition.js +1 -1
  264. package/switch/index.cjs +6 -5
  265. package/switch/index.js +16 -14
  266. package/tab/definition.cjs +1 -1
  267. package/tab/definition.js +1 -1
  268. package/tab-panel/definition.cjs +1 -1
  269. package/tab-panel/definition.js +1 -1
  270. package/table/definition.cjs +1 -1
  271. package/table/definition.js +1 -1
  272. package/tabs/definition.cjs +1 -1
  273. package/tabs/definition.js +1 -1
  274. package/tag/definition.cjs +1 -1
  275. package/tag/definition.js +1 -1
  276. package/tag-group/definition.cjs +1 -1
  277. package/tag-group/definition.js +1 -1
  278. package/text-area/definition.cjs +1 -1
  279. package/text-area/definition.js +1 -1
  280. package/time-picker/definition.cjs +1 -1
  281. package/time-picker/definition.js +1 -1
  282. package/tree-item/definition.cjs +1 -1
  283. package/tree-item/definition.js +1 -1
  284. package/tree-view/definition.cjs +1 -1
  285. package/tree-view/definition.js +1 -1
  286. package/unbundled/definition13.cjs +1 -1
  287. package/unbundled/definition13.js +1 -1
  288. package/unbundled/definition2.cjs +9 -3
  289. package/unbundled/definition2.js +9 -3
  290. package/unbundled/definition23.cjs +1 -0
  291. package/unbundled/definition23.js +2 -1
  292. package/unbundled/definition29.cjs +2 -2
  293. package/unbundled/definition29.js +2 -2
  294. package/unbundled/definition30.cjs +65 -484
  295. package/unbundled/definition30.js +57 -482
  296. package/unbundled/definition31.cjs +501 -39
  297. package/unbundled/definition31.js +499 -37
  298. package/unbundled/definition32.cjs +38 -239
  299. package/unbundled/definition32.js +35 -236
  300. package/unbundled/definition33.cjs +236 -74
  301. package/unbundled/definition33.js +233 -71
  302. package/unbundled/definition34.cjs +74 -1968
  303. package/unbundled/definition34.js +70 -1940
  304. package/unbundled/definition35.cjs +1992 -26
  305. package/unbundled/definition35.js +1964 -27
  306. package/unbundled/definition36.cjs +26 -111
  307. package/unbundled/definition36.js +23 -103
  308. package/unbundled/definition37.cjs +53 -294
  309. package/unbundled/definition37.js +50 -291
  310. package/unbundled/definition38.cjs +282 -132
  311. package/unbundled/definition38.js +279 -129
  312. package/unbundled/definition39.cjs +165 -339
  313. package/unbundled/definition39.js +163 -337
  314. package/unbundled/definition40.cjs +394 -228
  315. package/unbundled/definition40.js +391 -225
  316. package/unbundled/definition41.cjs +263 -46
  317. package/unbundled/definition41.js +258 -41
  318. package/unbundled/definition42.cjs +47 -67
  319. package/unbundled/definition42.js +45 -65
  320. package/unbundled/definition43.cjs +56 -383
  321. package/unbundled/definition43.js +55 -382
  322. package/unbundled/definition44.cjs +386 -44
  323. package/unbundled/definition44.js +382 -40
  324. package/unbundled/definition45.cjs +53 -45
  325. package/unbundled/definition45.js +49 -41
  326. package/unbundled/definition46.cjs +40 -164
  327. package/unbundled/definition46.js +36 -160
  328. package/unbundled/definition47.cjs +171 -31
  329. package/unbundled/definition47.js +168 -22
  330. package/unbundled/definition48.cjs +30 -89
  331. package/unbundled/definition48.js +22 -87
  332. package/unbundled/definition49.cjs +70 -33
  333. package/unbundled/definition49.js +67 -30
  334. package/unbundled/definition50.cjs +54 -23
  335. package/unbundled/definition50.js +52 -18
  336. package/unbundled/definition51.cjs +23 -39
  337. package/unbundled/definition51.js +17 -36
  338. package/unbundled/definition52.cjs +29 -314
  339. package/unbundled/definition52.js +27 -312
  340. package/unbundled/definition53.cjs +301 -195
  341. package/unbundled/definition53.js +297 -191
  342. package/unbundled/definition54.cjs +210 -40
  343. package/unbundled/definition54.js +206 -36
  344. package/unbundled/definition55.cjs +42 -266
  345. package/unbundled/definition55.js +38 -262
  346. package/unbundled/definition56.cjs +266 -50
  347. package/unbundled/definition56.js +263 -46
  348. package/unbundled/definition57.cjs +48 -146
  349. package/unbundled/definition57.js +47 -143
  350. package/unbundled/definition58.cjs +127 -225
  351. package/unbundled/definition58.js +122 -223
  352. package/unbundled/definition59.cjs +199 -418
  353. package/unbundled/definition59.js +196 -415
  354. package/unbundled/definition60.cjs +441 -3738
  355. package/unbundled/definition60.js +431 -3565
  356. package/unbundled/definition61.cjs +3712 -728
  357. package/unbundled/definition61.js +3538 -717
  358. package/unbundled/definition62.cjs +769 -97
  359. package/unbundled/definition62.js +766 -94
  360. package/unbundled/definition63.cjs +100 -981
  361. package/unbundled/definition63.js +98 -976
  362. package/unbundled/definition64.cjs +988 -93
  363. package/unbundled/definition64.js +982 -90
  364. package/unbundled/definition65.cjs +109 -73
  365. package/unbundled/definition65.js +105 -63
  366. package/unbundled/definition66.cjs +69 -155
  367. package/unbundled/definition66.js +60 -152
  368. package/unbundled/definition67.cjs +154 -118
  369. package/unbundled/definition67.js +151 -115
  370. package/unbundled/definition68.cjs +124 -49
  371. package/unbundled/definition68.js +120 -45
  372. package/unbundled/definition69.cjs +51 -84
  373. package/unbundled/definition69.js +50 -80
  374. package/unbundled/definition70.cjs +91 -19
  375. package/unbundled/definition70.js +86 -14
  376. package/unbundled/definition71.cjs +20 -87
  377. package/unbundled/definition71.js +14 -84
  378. package/unbundled/definition72.cjs +76 -294
  379. package/unbundled/definition72.js +71 -217
  380. package/unbundled/definition73.cjs +288 -311
  381. package/unbundled/definition73.js +218 -306
  382. package/unbundled/definition74.cjs +326 -26
  383. package/unbundled/definition74.js +317 -23
  384. package/unbundled/definition75.cjs +27 -122
  385. package/unbundled/definition75.js +22 -118
  386. package/unbundled/definition76.cjs +103 -232
  387. package/unbundled/definition76.js +99 -228
  388. package/unbundled/definition77.cjs +259 -26
  389. package/unbundled/definition77.js +249 -23
  390. package/unbundled/definition78.cjs +29 -148
  391. package/unbundled/definition78.js +27 -133
  392. package/unbundled/definition79.cjs +117 -173
  393. package/unbundled/definition79.js +108 -169
  394. package/unbundled/definition80.cjs +181 -477
  395. package/unbundled/definition80.js +176 -471
  396. package/unbundled/definition81.cjs +517 -0
  397. package/unbundled/definition81.js +497 -0
  398. package/unbundled/extractOptions.cjs +21 -0
  399. package/unbundled/extractOptions.js +16 -0
  400. package/unbundled/listbox.cjs +23 -6
  401. package/unbundled/listbox.js +23 -6
  402. package/unbundled/vivid-element.cjs +10 -1
  403. package/unbundled/vivid-element.js +10 -1
  404. package/video-player/definition.cjs +1 -1
  405. package/video-player/definition.js +1 -1
  406. package/vivid.api.json +194 -0
@@ -5,217 +5,367 @@ const require_definition = require("./definition6.cjs");
5
5
  const require_definition$1 = require("./definition9.cjs");
6
6
  const require_definition$2 = require("./definition22.cjs");
7
7
  const require_definition$3 = require("./definition26.cjs");
8
- const require_definition$4 = require("./definition35.cjs");
8
+ const require_definition$4 = require("./definition36.cjs");
9
9
  const require_picker_field_template = require("./picker-field.template.cjs");
10
10
  const require_calendar_picker_template = require("./calendar-picker.template.cjs");
11
- const require_single_value_picker = require("./single-value-picker.cjs");
12
- const require_single_date_picker = require("./single-date-picker.cjs");
13
- const require_time_selection_picker_template = require("./time-selection-picker.template.cjs");
14
11
  let _microsoft_fast_element = require("@microsoft/fast-element");
15
- //#region src/lib/date-time-picker/date-time-picker.scss?inline
16
- var date_time_picker_default = ".date-time-picker{gap:28px;padding-inline-start:12px;display:flex}.time-picker{padding-block:4px 12px}";
17
- //#endregion
18
- //#region src/shared/datetime/dateTimeStr.ts
19
- var extractDatePart = (dateTimeStr) => dateTimeStr.split("T")[0] || "";
20
- var extractTimePart = (dateTimeStr) => dateTimeStr.split("T")[1] || "";
21
- var isValidDateTimeStr = (string) => {
22
- const [dateStr = "", timeStr = ""] = string.split("T");
23
- return require_calendar_picker_template.isValidDateStr(dateStr) && require_time_selection_picker_template.isValidTimeStr(timeStr);
12
+ //#region src/shared/datetime/presentationDateRange.ts
13
+ var formatRange = (from, to) => {
14
+ return `${from} – ${to}`;
24
15
  };
25
- //#endregion
26
- //#region src/shared/datetime/presentationDateTime.ts
27
- var formatPresentationDateTime = (dateTimeStr, locale, includeSeconds, use12HourClock) => {
28
- const [dateStr, timeStr] = dateTimeStr.split("T");
29
- return `${require_calendar_picker_template.formatPresentationDate(dateStr, locale)} ${require_time_selection_picker_template.formatPresentationTime(timeStr, includeSeconds, use12HourClock)}`;
16
+ var formatPresentationDateRange = (dateRange, locale) => {
17
+ return formatRange(require_calendar_picker_template.formatPresentationDate(dateRange.start, locale), require_calendar_picker_template.formatPresentationDate(dateRange.end, locale));
30
18
  };
31
19
  /**
32
- * Attempts to parse user input as date time.
33
- * Throws if input can't be parsed.
20
+ * Parse a presentation date range, which combines two presentation dates with a dash.
21
+ * Will throw if the range can't be parsed
34
22
  */
35
- var parsePresentationDateTime = (presentationDateTime, locale, use12HourClock) => {
36
- const [datePart, ...timeParts] = presentationDateTime.split(" ");
37
- return `${require_calendar_picker_template.parsePresentationDate(datePart, locale)}T${require_time_selection_picker_template.parsePresentationTime(timeParts.join(" "), use12HourClock)}`;
23
+ var parsePresentationDateRange = (presentationDateRange, locale) => {
24
+ const fragments = presentationDateRange.trim().split(/[\s—–-]+/);
25
+ if (fragments.length !== 2) throw new Error(`Invalid date range: ${presentationDateRange}`);
26
+ const [start, end] = fragments.map((fragment) => require_calendar_picker_template.parsePresentationDate(fragment, locale));
27
+ return {
28
+ start,
29
+ end
30
+ };
38
31
  };
39
32
  //#endregion
40
- //#region src/lib/date-time-picker/date-time-picker.ts
41
- var ValidDateTimeFilter = {
42
- fromView: (value) => {
43
- if (value && isValidDateTimeStr(value)) return value;
44
- return "";
45
- },
46
- toView(value) {
47
- return value;
48
- }
49
- };
33
+ //#region src/lib/date-range-picker/date-range-picker.ts
34
+ var isFormAssociatedTryingToSetFormValue = (value) => typeof value === "string";
35
+ function isDefined(value) {
36
+ return !!value;
37
+ }
50
38
  /**
51
- * Single date picker component.
52
- *
53
39
  * @public
54
- * @component date-time-picker
55
- * @slot helper-text - Describes how to use the date-picker. Alternative to the `helper-text` attribute.
56
- * @event {CustomEvent<undefined>} input - Emitted when the date is changed by the user.
57
- * @event {CustomEvent<undefined>} change - Emitted when the date is changed by the user.
58
- * @vueModel modelValue value input,@lazy:change `event.currentTarget.value`
59
- * @testAction selectDateTime selectDateTime
40
+ * @component date-range-picker
41
+ * @slot helper-text - Describes how to use the date-range-picker. Alternative to the `helper-text` attribute.
42
+ * @event {CustomEvent<undefined>} input:start - Event emitted when the start value changes
43
+ * @event {CustomEvent<undefined>} input:end - Event emitted when the end value changes
44
+ * @event {CustomEvent<undefined>} input - Emitted when either the start or end value changes
45
+ * @event {CustomEvent<undefined>} change - Emitted when either the start or end value changes
46
+ * @vueModel start start input:start `event.currentTarget.start`
47
+ * @vueModel end end input:end `event.currentTarget.end`
48
+ * @testAction selectDateRange selectDateRange
49
+ * @testQuery range range
60
50
  */
61
- var DateTimePicker = class extends require_time_selection_picker_template.TimeSelectionPicker(require_single_date_picker.SingleDatePickerMixin(require_single_value_picker.SingleValuePicker(require_calendar_picker_template.CalendarPicker(require_picker_field_template.PickerField)))) {
51
+ var DateRangePicker = class extends require_calendar_picker_template.MinMaxCalendarPicker(require_calendar_picker_template.CalendarPicker(require_picker_field_template.PickerField)) {
52
+ constructor(..._args) {
53
+ super(..._args);
54
+ this.initialStart = "";
55
+ this.initialEnd = "";
56
+ this.#isInternalValueUpdate = false;
57
+ this.start = "";
58
+ this.end = "";
59
+ this.setFormValue = (value, state) => {
60
+ if (isFormAssociatedTryingToSetFormValue(value)) return;
61
+ super.setFormValue(value, state);
62
+ };
63
+ this._numCalendars = 2;
64
+ this._hideDatesOutsideMonth = true;
65
+ this._textFieldSize = "30";
66
+ }
67
+ /** @internal */
68
+ initialStartChanged() {
69
+ if (!this.dirtyValue) {
70
+ this.start = this.initialStart;
71
+ this.dirtyValue = false;
72
+ }
73
+ }
74
+ /** @internal */
75
+ initialEndChanged() {
76
+ if (!this.dirtyValue) {
77
+ this.end = this.initialEnd;
78
+ this.dirtyValue = false;
79
+ }
80
+ }
81
+ #isInternalValueUpdate;
62
82
  /** @internal */
63
- get _resolvedMinDate() {
64
- return this.minDate || extractDatePart(this.min);
83
+ startChanged() {
84
+ if (this.start && !require_calendar_picker_template.isValidDateStr(this.start)) {
85
+ this.start = "";
86
+ return;
87
+ }
88
+ this.currentStart = this.start;
89
+ this.dirtyValue = true;
90
+ if (!this.#isInternalValueUpdate) this.#handleChangedValues();
65
91
  }
66
92
  /** @internal */
67
- get _resolvedMaxDate() {
68
- return this.maxDate || extractDatePart(this.max);
93
+ endChanged() {
94
+ if (this.end && !require_calendar_picker_template.isValidDateStr(this.end)) {
95
+ this.end = "";
96
+ return;
97
+ }
98
+ this.currentEnd = this.end;
99
+ this.dirtyValue = true;
100
+ if (!this.#isInternalValueUpdate) this.#handleChangedValues();
69
101
  }
70
102
  /** @internal */
71
- get _resolvedMinTime() {
72
- return this.minTime || this.min && extractDatePart(this.min) === this._dateValue() && extractTimePart(this.min) || "";
103
+ currentStartChanged() {
104
+ this.start = this.currentStart;
73
105
  }
74
106
  /** @internal */
75
- get _resolvedMaxTime() {
76
- return this.maxTime || this.max && extractDatePart(this.max) === this._dateValue() && extractTimePart(this.max) || "";
107
+ currentEndChanged() {
108
+ this.end = this.currentEnd;
109
+ }
110
+ #updateValues(range) {
111
+ this.#isInternalValueUpdate = true;
112
+ if (range.start !== void 0) {
113
+ this.start = range.start;
114
+ this.$emit("input:start");
115
+ }
116
+ if (range.end !== void 0) {
117
+ this.end = range.end;
118
+ this.$emit("input:end");
119
+ }
120
+ this.#isInternalValueUpdate = false;
121
+ this.$emit("input");
122
+ this.$emit("change");
123
+ this.#handleChangedValues();
124
+ }
125
+ #handleChangedValues() {
126
+ if (this.start && this.end) {
127
+ if (require_calendar_picker_template.compareDateStr(this.start, this.end) > 0) {
128
+ this.#updateValues({
129
+ start: this.end,
130
+ end: this.start
131
+ });
132
+ return;
133
+ }
134
+ this.value = formatRange(this.start, this.end);
135
+ } else this.value = "";
136
+ this._updatePresentationValue();
137
+ const dateToEnsureVisibilityOf = this.start || this.end;
138
+ if (dateToEnsureVisibilityOf) this._adjustSelectedMonthToEnsureVisibilityOf(dateToEnsureVisibilityOf);
139
+ this.#updateFormValue();
77
140
  }
78
141
  /** @internal */
79
- _toPresentationValue(value) {
80
- return formatPresentationDateTime(value, this.locale.calendarPicker, this._displaySeconds, this._use12hClock);
142
+ _updatePresentationValue() {
143
+ if (this.start && this.end) this._presentationValue = formatPresentationDateRange({
144
+ start: this.start,
145
+ end: this.end
146
+ }, this.locale.calendarPicker);
147
+ else this._presentationValue = "";
81
148
  }
82
149
  /** @internal */
83
- _parsePresentationValue(presentationValue) {
84
- return parsePresentationDateTime(presentationValue, this.locale.calendarPicker, this._use12hClock);
150
+ nameChanged(previous, next) {
151
+ super.nameChanged(previous, next);
152
+ this.#updateFormValue();
153
+ }
154
+ #updateFormValue() {
155
+ if (!this.name || !this.start || !this.end) this.setFormValue(null);
156
+ else {
157
+ const formData = new FormData();
158
+ formData.append(this.name, this.start);
159
+ formData.append(this.name, this.end);
160
+ this.setFormValue(formData);
161
+ }
85
162
  }
86
163
  /** @internal */
87
- _dateValue() {
88
- return extractDatePart(this.value);
164
+ connectedCallback() {
165
+ super.connectedCallback();
166
+ /* v8 ignore else -- @preserve */
167
+ if (!this.start) this.start = this.initialStart;
168
+ /* v8 ignore else -- @preserve */
169
+ if (!this.end) this.end = this.initialEnd;
170
+ }
171
+ #getVisibleRange() {
172
+ const candidates = [this.start, this.end].filter(isDefined);
173
+ const isPartialRange = candidates.length === 1;
174
+ if (this._hoverDate && isPartialRange) candidates.push(this._hoverDate);
175
+ const [start, end] = candidates.sort(require_calendar_picker_template.compareDateStr);
176
+ return {
177
+ start,
178
+ end
179
+ };
89
180
  }
90
181
  /** @internal */
91
- _withUpdatedDate(dateStr) {
92
- return `${dateStr}T${extractTimePart(this.value) || "00:00:00"}`;
182
+ _isDateAriaSelected(date) {
183
+ return this._isDateInSelectedRange(date);
93
184
  }
94
185
  /** @internal */
95
- get _timeValue() {
96
- return extractTimePart(this.value);
186
+ _isDateInSelectedRange(date) {
187
+ const { start, end } = this.#getVisibleRange();
188
+ if (start && end) return require_calendar_picker_template.compareDateStr(date, start) >= 0 && require_calendar_picker_template.compareDateStr(date, end) <= 0;
189
+ return false;
97
190
  }
98
191
  /** @internal */
99
- _withUpdatedTime(timeStr) {
100
- return `${extractDatePart(this.value) || require_calendar_picker_template.currentDateStr()}T${timeStr}`;
192
+ _isDateRangeStart(date) {
193
+ return date === this.#getVisibleRange().start;
101
194
  }
102
- constructor() {
103
- super();
104
- this._isValidValue = isValidDateTimeStr;
105
- this._textFieldSize = "30";
106
- this.proxy.type = "datetime-local";
107
- this.proxy.step = "1";
108
- this.min = "";
109
- this.minDate = "";
110
- this.minTime = "";
111
- this.max = "";
112
- this.maxDate = "";
113
- this.maxTime = "";
195
+ /** @internal */
196
+ _isDateRangeEnd(date) {
197
+ return date === this.#getVisibleRange().end;
198
+ }
199
+ /** @internal */
200
+ _getSelectedDates() {
201
+ const dates = [];
202
+ if (this.start) dates.push(this.start);
203
+ if (this.end) dates.push(this.end);
204
+ return dates;
205
+ }
206
+ /** @internal */
207
+ _onDateClick(date) {
208
+ if (this.start && this.end) this.#updateValues({
209
+ start: date,
210
+ end: ""
211
+ });
212
+ else if (this.start) {
213
+ this.#updateValues({ end: date });
214
+ this._closePopup();
215
+ } else if (this.end) {
216
+ this.#updateValues({ start: date });
217
+ this._closePopup();
218
+ } else this.#updateValues({ start: date });
219
+ }
220
+ /** @internal */
221
+ get _textFieldPlaceholder() {
222
+ return formatRange(this.locale.calendarPicker.dateFormatPlaceholder, this.locale.calendarPicker.dateFormatPlaceholder);
223
+ }
224
+ /** @internal */
225
+ _onTextFieldChange() {
226
+ if (this._presentationValue === "") {
227
+ this.#updateValues({
228
+ start: "",
229
+ end: ""
230
+ });
231
+ return;
232
+ }
233
+ try {
234
+ const { start, end } = parsePresentationDateRange(this._presentationValue, this.locale.calendarPicker);
235
+ this.#updateValues({
236
+ start,
237
+ end
238
+ });
239
+ } catch (_) {
240
+ const invalidPresentationValue = this._presentationValue;
241
+ this.#updateValues({
242
+ start: "",
243
+ end: ""
244
+ });
245
+ this._presentationValue = invalidPresentationValue;
246
+ return;
247
+ }
248
+ }
249
+ /** @internal */
250
+ _onDateMouseEnter(date) {
251
+ this._hoverDate = date;
252
+ }
253
+ /** @internal */
254
+ _onDateMouseLeave() {
255
+ this._hoverDate = void 0;
114
256
  }
115
257
  /** @internal */
116
258
  _getCustomValidationError() {
117
- if (this._isPresentationValueInvalid()) return this.locale.dateTimePicker.invalidDateTimeError;
118
- if (this._dateValue() && this._resolvedMinDate && require_calendar_picker_template.compareDateStr(this._dateValue(), this._resolvedMinDate) < 0) return this.locale.dateTimePicker.dateBeforeMinDateError(require_calendar_picker_template.formatPresentationDate(this._resolvedMinDate, this.locale.calendarPicker));
119
- if (this._dateValue() && this._resolvedMaxDate && require_calendar_picker_template.compareDateStr(this._dateValue(), this._resolvedMaxDate) > 0) return this.locale.dateTimePicker.dateAfterMaxDateError(require_calendar_picker_template.formatPresentationDate(this._resolvedMaxDate, this.locale.calendarPicker));
120
- if (this._timeValue && this._resolvedMinTime && require_time_selection_picker_template.compareTimeStr(this._timeValue, this._resolvedMinTime) < 0) return this.locale.dateTimePicker.timeBeforeMinTimeError(require_time_selection_picker_template.formatPresentationTime(this._resolvedMinTime, this._displaySeconds, this._use12hClock));
121
- if (this._timeValue && this._resolvedMaxTime && require_time_selection_picker_template.compareTimeStr(this._timeValue, this._resolvedMaxTime) > 0) return this.locale.dateTimePicker.timeAfterMaxTimeError(require_time_selection_picker_template.formatPresentationTime(this._resolvedMaxTime, this._displaySeconds, this._use12hClock));
259
+ if (this._isPresentationValueInvalid()) return this.locale.calendarPicker.invalidDateRangeError;
260
+ if (this.min && this.start && require_calendar_picker_template.compareDateStr(this.start, this.min) < 0) return this.locale.calendarPicker.startDateAfterMinDateError(require_calendar_picker_template.formatPresentationDate(this.min, this.locale.calendarPicker));
261
+ if (this.max && this.end && require_calendar_picker_template.compareDateStr(this.end, this.max) > 0) return this.locale.calendarPicker.endDateBeforeMaxDateError(require_calendar_picker_template.formatPresentationDate(this.max, this.locale.calendarPicker));
122
262
  return null;
123
263
  }
124
264
  /** @internal */
125
- get _textFieldPlaceholder() {
126
- return `${this.locale.calendarPicker.dateFormatPlaceholder} ${this._timePlaceholder}`;
265
+ _isPresentationValueInvalid() {
266
+ if (this._presentationValue === "") return false;
267
+ try {
268
+ parsePresentationDateRange(this._presentationValue, this.locale.calendarPicker);
269
+ return false;
270
+ } catch (_) {
271
+ return true;
272
+ }
127
273
  }
128
274
  /** @internal */
129
- get _pickerButtonLabel() {
130
- if (this.value) return this.locale.dateTimePicker.changeDateTimeLabel(this._toPresentationValue(this.value));
131
- else return this.locale.dateTimePicker.chooseDateTimeLabel;
275
+ _onClearClick() {
276
+ this.#updateValues({
277
+ start: "",
278
+ end: ""
279
+ });
280
+ super._onClearClick();
132
281
  }
133
282
  /** @internal */
134
- _focusableElsWithinDialog() {
135
- return this._dialogEl.querySelectorAll("#inline-time-picker, button, .vwc-button");
283
+ formResetCallback() {
284
+ this.#updateValues({
285
+ start: this.initialStart,
286
+ end: this.initialEnd
287
+ });
288
+ super.formResetCallback();
136
289
  }
137
290
  /** @internal */
138
- get _pickerButtonIcon() {
139
- return "calendar-clock-line";
291
+ get _pickerButtonLabel() {
292
+ if (this.start && this.end) return this.locale.calendarPicker.changeDatesLabel(formatPresentationDateRange({
293
+ start: this.start,
294
+ end: this.end
295
+ }, this.locale.calendarPicker));
296
+ else return this.locale.calendarPicker.chooseDatesLabel;
140
297
  }
141
298
  /** @internal */
142
299
  get _dialogLabel() {
143
- return this.locale.dateTimePicker.chooseDateTimeLabel;
300
+ return this.locale.calendarPicker.chooseDatesLabel;
301
+ }
302
+ /** @internal */
303
+ _focusableElsWithinDialog() {
304
+ return this._dialogEl.querySelectorAll("button, .vwc-button");
305
+ }
306
+ /** @internal */
307
+ get _pickerButtonIcon() {
308
+ return "calendar-line";
144
309
  }
145
310
  };
146
- require_decorate.__decorate([(0, _microsoft_fast_element.attr)({ converter: ValidDateTimeFilter })], DateTimePicker.prototype, "min", void 0);
147
- require_decorate.__decorate([(0, _microsoft_fast_element.attr)({
148
- converter: require_time_selection_picker_template.ValidTimeFilter,
149
- attribute: "min-time"
150
- })], DateTimePicker.prototype, "minTime", void 0);
151
- require_decorate.__decorate([(0, _microsoft_fast_element.attr)({
152
- converter: require_calendar_picker_template.ValidDateFilter,
153
- attribute: "min-date"
154
- })], DateTimePicker.prototype, "minDate", void 0);
155
- require_decorate.__decorate([(0, _microsoft_fast_element.attr)({ converter: ValidDateTimeFilter })], DateTimePicker.prototype, "max", void 0);
156
311
  require_decorate.__decorate([(0, _microsoft_fast_element.attr)({
157
- converter: require_time_selection_picker_template.ValidTimeFilter,
158
- attribute: "max-time"
159
- })], DateTimePicker.prototype, "maxTime", void 0);
312
+ mode: "fromView",
313
+ attribute: "start"
314
+ })], DateRangePicker.prototype, "initialStart", void 0);
160
315
  require_decorate.__decorate([(0, _microsoft_fast_element.attr)({
161
- converter: require_calendar_picker_template.ValidDateFilter,
162
- attribute: "max-date"
163
- })], DateTimePicker.prototype, "maxDate", void 0);
316
+ mode: "fromView",
317
+ attribute: "end"
318
+ })], DateRangePicker.prototype, "initialEnd", void 0);
319
+ require_decorate.__decorate([_microsoft_fast_element.observable], DateRangePicker.prototype, "start", void 0);
320
+ require_decorate.__decorate([_microsoft_fast_element.observable], DateRangePicker.prototype, "end", void 0);
321
+ require_decorate.__decorate([(0, _microsoft_fast_element.attr)({ attribute: "current-start" })], DateRangePicker.prototype, "currentStart", void 0);
322
+ require_decorate.__decorate([(0, _microsoft_fast_element.attr)({ attribute: "current-end" })], DateRangePicker.prototype, "currentEnd", void 0);
323
+ require_decorate.__decorate([_microsoft_fast_element.observable], DateRangePicker.prototype, "_numCalendars", void 0);
324
+ require_decorate.__decorate([_microsoft_fast_element.observable], DateRangePicker.prototype, "_hoverDate", void 0);
325
+ require_decorate.__decorate([_microsoft_fast_element.volatile], DateRangePicker.prototype, "_pickerButtonLabel", null);
164
326
  //#endregion
165
- //#region src/lib/date-time-picker/date-time-picker.template.ts
166
- var DateTimePickerTemplate = (context) => {
167
- return require_picker_field_template.PickerFieldTemplate(context, _microsoft_fast_element.html`
168
- <div class="date-time-picker">
169
- ${() => require_calendar_picker_template.CalendarPickerTemplate(context)}
170
- <div class="time-picker">
171
- ${() => require_time_selection_picker_template.TimeSelectionPickerTemplate(context, 9)}
172
- </div>
173
- </div>
174
- `, {
327
+ //#region src/lib/date-range-picker/date-range-picker.template.ts
328
+ var DateRangePickerTemplate = (context) => {
329
+ return require_picker_field_template.PickerFieldTemplate(context, require_calendar_picker_template.CalendarPickerTemplate(context), {
175
330
  withSeparator: false,
176
- padded: false
331
+ padded: true
177
332
  });
178
333
  };
179
334
  //#endregion
180
- //#region src/lib/date-time-picker/definition.ts
335
+ //#region src/lib/date-range-picker/definition.ts
181
336
  /** @internal */
182
- var dateTimePickerDefinition = require_vivid_element.defineVividComponent("date-time-picker", DateTimePicker, DateTimePickerTemplate, [
337
+ var dateRangePickerDefinition = require_vivid_element.defineVividComponent("date-range-picker", DateRangePicker, DateRangePickerTemplate, [
183
338
  require_definition.buttonDefinition,
184
339
  require_definition$1.popupDefinition,
185
340
  require_definition$3.textFieldDefinition,
186
341
  require_definition$4.dividerDefinition,
187
- require_time_selection_picker_template.inlineTimePickerDefinition,
188
342
  require_definition$2.visuallyHiddenDefinition
189
343
  ], {
190
- styles: [
191
- require_picker_field_template.picker_field_default,
192
- require_calendar_picker_template.calendar_picker_default,
193
- date_time_picker_default
194
- ],
344
+ styles: [require_picker_field_template.picker_field_default, require_calendar_picker_template.calendar_picker_default],
195
345
  shadowOptions: { delegatesFocus: true }
196
346
  });
197
347
  /**
198
- * Registers the date-time-picker element with the design system.
348
+ * Registers the date-range-picker element with the design system.
199
349
  *
200
350
  * @param prefix - the prefix to use for the component name
201
351
  */
202
- var registerDateTimePicker = require_vivid_element.createRegisterFunction(dateTimePickerDefinition);
352
+ var registerDateRangePicker = require_vivid_element.createRegisterFunction(dateRangePickerDefinition);
203
353
  //#endregion
204
- Object.defineProperty(exports, "DateTimePicker", {
354
+ Object.defineProperty(exports, "DateRangePicker", {
205
355
  enumerable: true,
206
356
  get: function() {
207
- return DateTimePicker;
357
+ return DateRangePicker;
208
358
  }
209
359
  });
210
- Object.defineProperty(exports, "dateTimePickerDefinition", {
360
+ Object.defineProperty(exports, "dateRangePickerDefinition", {
211
361
  enumerable: true,
212
362
  get: function() {
213
- return dateTimePickerDefinition;
363
+ return dateRangePickerDefinition;
214
364
  }
215
365
  });
216
- Object.defineProperty(exports, "registerDateTimePicker", {
366
+ Object.defineProperty(exports, "registerDateRangePicker", {
217
367
  enumerable: true,
218
368
  get: function() {
219
- return registerDateTimePicker;
369
+ return registerDateRangePicker;
220
370
  }
221
371
  });