@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
@@ -4,200 +4,350 @@ import { t as buttonDefinition } from "./definition6.js";
4
4
  import { t as popupDefinition } from "./definition9.js";
5
5
  import { n as visuallyHiddenDefinition } from "./definition22.js";
6
6
  import { n as textFieldDefinition } from "./definition26.js";
7
- import { t as dividerDefinition } from "./definition35.js";
7
+ import { t as dividerDefinition } from "./definition36.js";
8
8
  import { n as PickerField, r as picker_field_default, t as PickerFieldTemplate } from "./picker-field.template.js";
9
- import { a as formatPresentationDate, c as currentDateStr, i as CalendarPicker, l as isValidDateStr, o as parsePresentationDate, r as ValidDateFilter, s as compareDateStr, t as CalendarPickerTemplate, u as calendar_picker_default } from "./calendar-picker.template.js";
10
- import { t as SingleValuePicker } from "./single-value-picker.js";
11
- import { t as SingleDatePickerMixin } from "./single-date-picker.js";
12
- import { a as formatPresentationTime, c as compareTimeStr, i as TimeSelectionPicker, l as isValidTimeStr, o as parsePresentationTime, r as ValidTimeFilter, s as inlineTimePickerDefinition, t as TimeSelectionPickerTemplate } from "./time-selection-picker.template.js";
13
- import { attr, html } from "@microsoft/fast-element";
14
- //#region src/lib/date-time-picker/date-time-picker.scss?inline
15
- var date_time_picker_default = ".date-time-picker{gap:28px;padding-inline-start:12px;display:flex}.time-picker{padding-block:4px 12px}";
16
- //#endregion
17
- //#region src/shared/datetime/dateTimeStr.ts
18
- var extractDatePart = (dateTimeStr) => dateTimeStr.split("T")[0] || "";
19
- var extractTimePart = (dateTimeStr) => dateTimeStr.split("T")[1] || "";
20
- var isValidDateTimeStr = (string) => {
21
- const [dateStr = "", timeStr = ""] = string.split("T");
22
- return isValidDateStr(dateStr) && isValidTimeStr(timeStr);
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}`;
23
14
  };
24
- //#endregion
25
- //#region src/shared/datetime/presentationDateTime.ts
26
- var formatPresentationDateTime = (dateTimeStr, locale, includeSeconds, use12HourClock) => {
27
- const [dateStr, timeStr] = dateTimeStr.split("T");
28
- return `${formatPresentationDate(dateStr, locale)} ${formatPresentationTime(timeStr, includeSeconds, use12HourClock)}`;
15
+ var formatPresentationDateRange = (dateRange, locale) => {
16
+ return formatRange(formatPresentationDate(dateRange.start, locale), formatPresentationDate(dateRange.end, locale));
29
17
  };
30
18
  /**
31
- * Attempts to parse user input as date time.
32
- * Throws if input can't be parsed.
19
+ * Parse a presentation date range, which combines two presentation dates with a dash.
20
+ * Will throw if the range can't be parsed
33
21
  */
34
- var parsePresentationDateTime = (presentationDateTime, locale, use12HourClock) => {
35
- const [datePart, ...timeParts] = presentationDateTime.split(" ");
36
- return `${parsePresentationDate(datePart, locale)}T${parsePresentationTime(timeParts.join(" "), use12HourClock)}`;
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
+ };
37
30
  };
38
31
  //#endregion
39
- //#region src/lib/date-time-picker/date-time-picker.ts
40
- var ValidDateTimeFilter = {
41
- fromView: (value) => {
42
- if (value && isValidDateTimeStr(value)) return value;
43
- return "";
44
- },
45
- toView(value) {
46
- return value;
47
- }
48
- };
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
+ }
49
37
  /**
50
- * Single date picker component.
51
- *
52
38
  * @public
53
- * @component date-time-picker
54
- * @slot helper-text - Describes how to use the date-picker. Alternative to the `helper-text` attribute.
55
- * @event {CustomEvent<undefined>} input - Emitted when the date is changed by the user.
56
- * @event {CustomEvent<undefined>} change - Emitted when the date is changed by the user.
57
- * @vueModel modelValue value input,@lazy:change `event.currentTarget.value`
58
- * @testAction selectDateTime selectDateTime
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
59
49
  */
60
- var DateTimePicker = class extends TimeSelectionPicker(SingleDatePickerMixin(SingleValuePicker(CalendarPicker(PickerField)))) {
50
+ var DateRangePicker = class extends MinMaxCalendarPicker(CalendarPicker(PickerField)) {
51
+ constructor(..._args) {
52
+ super(..._args);
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);
61
+ };
62
+ this._numCalendars = 2;
63
+ this._hideDatesOutsideMonth = true;
64
+ this._textFieldSize = "30";
65
+ }
66
+ /** @internal */
67
+ initialStartChanged() {
68
+ if (!this.dirtyValue) {
69
+ this.start = this.initialStart;
70
+ this.dirtyValue = false;
71
+ }
72
+ }
73
+ /** @internal */
74
+ initialEndChanged() {
75
+ if (!this.dirtyValue) {
76
+ this.end = this.initialEnd;
77
+ this.dirtyValue = false;
78
+ }
79
+ }
80
+ #isInternalValueUpdate;
61
81
  /** @internal */
62
- get _resolvedMinDate() {
63
- return this.minDate || extractDatePart(this.min);
82
+ startChanged() {
83
+ if (this.start && !isValidDateStr(this.start)) {
84
+ this.start = "";
85
+ return;
86
+ }
87
+ this.currentStart = this.start;
88
+ this.dirtyValue = true;
89
+ if (!this.#isInternalValueUpdate) this.#handleChangedValues();
64
90
  }
65
91
  /** @internal */
66
- get _resolvedMaxDate() {
67
- return this.maxDate || extractDatePart(this.max);
92
+ endChanged() {
93
+ if (this.end && !isValidDateStr(this.end)) {
94
+ this.end = "";
95
+ return;
96
+ }
97
+ this.currentEnd = this.end;
98
+ this.dirtyValue = true;
99
+ if (!this.#isInternalValueUpdate) this.#handleChangedValues();
68
100
  }
69
101
  /** @internal */
70
- get _resolvedMinTime() {
71
- return this.minTime || this.min && extractDatePart(this.min) === this._dateValue() && extractTimePart(this.min) || "";
102
+ currentStartChanged() {
103
+ this.start = this.currentStart;
72
104
  }
73
105
  /** @internal */
74
- get _resolvedMaxTime() {
75
- return this.maxTime || this.max && extractDatePart(this.max) === this._dateValue() && extractTimePart(this.max) || "";
106
+ currentEndChanged() {
107
+ this.end = this.currentEnd;
108
+ }
109
+ #updateValues(range) {
110
+ this.#isInternalValueUpdate = true;
111
+ if (range.start !== void 0) {
112
+ this.start = range.start;
113
+ this.$emit("input:start");
114
+ }
115
+ if (range.end !== void 0) {
116
+ this.end = range.end;
117
+ this.$emit("input:end");
118
+ }
119
+ this.#isInternalValueUpdate = false;
120
+ this.$emit("input");
121
+ this.$emit("change");
122
+ this.#handleChangedValues();
123
+ }
124
+ #handleChangedValues() {
125
+ if (this.start && this.end) {
126
+ if (compareDateStr(this.start, this.end) > 0) {
127
+ this.#updateValues({
128
+ start: this.end,
129
+ end: this.start
130
+ });
131
+ return;
132
+ }
133
+ this.value = formatRange(this.start, this.end);
134
+ } else this.value = "";
135
+ this._updatePresentationValue();
136
+ const dateToEnsureVisibilityOf = this.start || this.end;
137
+ if (dateToEnsureVisibilityOf) this._adjustSelectedMonthToEnsureVisibilityOf(dateToEnsureVisibilityOf);
138
+ this.#updateFormValue();
76
139
  }
77
140
  /** @internal */
78
- _toPresentationValue(value) {
79
- return formatPresentationDateTime(value, this.locale.calendarPicker, this._displaySeconds, this._use12hClock);
141
+ _updatePresentationValue() {
142
+ if (this.start && this.end) this._presentationValue = formatPresentationDateRange({
143
+ start: this.start,
144
+ end: this.end
145
+ }, this.locale.calendarPicker);
146
+ else this._presentationValue = "";
80
147
  }
81
148
  /** @internal */
82
- _parsePresentationValue(presentationValue) {
83
- return parsePresentationDateTime(presentationValue, this.locale.calendarPicker, this._use12hClock);
149
+ nameChanged(previous, next) {
150
+ super.nameChanged(previous, next);
151
+ this.#updateFormValue();
152
+ }
153
+ #updateFormValue() {
154
+ if (!this.name || !this.start || !this.end) this.setFormValue(null);
155
+ else {
156
+ const formData = new FormData();
157
+ formData.append(this.name, this.start);
158
+ formData.append(this.name, this.end);
159
+ this.setFormValue(formData);
160
+ }
84
161
  }
85
162
  /** @internal */
86
- _dateValue() {
87
- return extractDatePart(this.value);
163
+ connectedCallback() {
164
+ super.connectedCallback();
165
+ /* v8 ignore else -- @preserve */
166
+ if (!this.start) this.start = this.initialStart;
167
+ /* v8 ignore else -- @preserve */
168
+ if (!this.end) this.end = this.initialEnd;
169
+ }
170
+ #getVisibleRange() {
171
+ const candidates = [this.start, this.end].filter(isDefined);
172
+ const isPartialRange = candidates.length === 1;
173
+ if (this._hoverDate && isPartialRange) candidates.push(this._hoverDate);
174
+ const [start, end] = candidates.sort(compareDateStr);
175
+ return {
176
+ start,
177
+ end
178
+ };
88
179
  }
89
180
  /** @internal */
90
- _withUpdatedDate(dateStr) {
91
- return `${dateStr}T${extractTimePart(this.value) || "00:00:00"}`;
181
+ _isDateAriaSelected(date) {
182
+ return this._isDateInSelectedRange(date);
92
183
  }
93
184
  /** @internal */
94
- get _timeValue() {
95
- return extractTimePart(this.value);
185
+ _isDateInSelectedRange(date) {
186
+ const { start, end } = this.#getVisibleRange();
187
+ if (start && end) return compareDateStr(date, start) >= 0 && compareDateStr(date, end) <= 0;
188
+ return false;
96
189
  }
97
190
  /** @internal */
98
- _withUpdatedTime(timeStr) {
99
- return `${extractDatePart(this.value) || currentDateStr()}T${timeStr}`;
191
+ _isDateRangeStart(date) {
192
+ return date === this.#getVisibleRange().start;
100
193
  }
101
- constructor() {
102
- super();
103
- this._isValidValue = isValidDateTimeStr;
104
- this._textFieldSize = "30";
105
- this.proxy.type = "datetime-local";
106
- this.proxy.step = "1";
107
- this.min = "";
108
- this.minDate = "";
109
- this.minTime = "";
110
- this.max = "";
111
- this.maxDate = "";
112
- this.maxTime = "";
194
+ /** @internal */
195
+ _isDateRangeEnd(date) {
196
+ return date === this.#getVisibleRange().end;
197
+ }
198
+ /** @internal */
199
+ _getSelectedDates() {
200
+ const dates = [];
201
+ if (this.start) dates.push(this.start);
202
+ if (this.end) dates.push(this.end);
203
+ return dates;
204
+ }
205
+ /** @internal */
206
+ _onDateClick(date) {
207
+ if (this.start && this.end) this.#updateValues({
208
+ start: date,
209
+ end: ""
210
+ });
211
+ else if (this.start) {
212
+ this.#updateValues({ end: date });
213
+ this._closePopup();
214
+ } else if (this.end) {
215
+ this.#updateValues({ start: date });
216
+ this._closePopup();
217
+ } else this.#updateValues({ start: date });
218
+ }
219
+ /** @internal */
220
+ get _textFieldPlaceholder() {
221
+ return formatRange(this.locale.calendarPicker.dateFormatPlaceholder, this.locale.calendarPicker.dateFormatPlaceholder);
222
+ }
223
+ /** @internal */
224
+ _onTextFieldChange() {
225
+ if (this._presentationValue === "") {
226
+ this.#updateValues({
227
+ start: "",
228
+ end: ""
229
+ });
230
+ return;
231
+ }
232
+ try {
233
+ const { start, end } = parsePresentationDateRange(this._presentationValue, this.locale.calendarPicker);
234
+ this.#updateValues({
235
+ start,
236
+ end
237
+ });
238
+ } catch (_) {
239
+ const invalidPresentationValue = this._presentationValue;
240
+ this.#updateValues({
241
+ start: "",
242
+ end: ""
243
+ });
244
+ this._presentationValue = invalidPresentationValue;
245
+ return;
246
+ }
247
+ }
248
+ /** @internal */
249
+ _onDateMouseEnter(date) {
250
+ this._hoverDate = date;
251
+ }
252
+ /** @internal */
253
+ _onDateMouseLeave() {
254
+ this._hoverDate = void 0;
113
255
  }
114
256
  /** @internal */
115
257
  _getCustomValidationError() {
116
- if (this._isPresentationValueInvalid()) return this.locale.dateTimePicker.invalidDateTimeError;
117
- if (this._dateValue() && this._resolvedMinDate && compareDateStr(this._dateValue(), this._resolvedMinDate) < 0) return this.locale.dateTimePicker.dateBeforeMinDateError(formatPresentationDate(this._resolvedMinDate, this.locale.calendarPicker));
118
- if (this._dateValue() && this._resolvedMaxDate && compareDateStr(this._dateValue(), this._resolvedMaxDate) > 0) return this.locale.dateTimePicker.dateAfterMaxDateError(formatPresentationDate(this._resolvedMaxDate, this.locale.calendarPicker));
119
- if (this._timeValue && this._resolvedMinTime && compareTimeStr(this._timeValue, this._resolvedMinTime) < 0) return this.locale.dateTimePicker.timeBeforeMinTimeError(formatPresentationTime(this._resolvedMinTime, this._displaySeconds, this._use12hClock));
120
- if (this._timeValue && this._resolvedMaxTime && compareTimeStr(this._timeValue, this._resolvedMaxTime) > 0) return this.locale.dateTimePicker.timeAfterMaxTimeError(formatPresentationTime(this._resolvedMaxTime, this._displaySeconds, this._use12hClock));
258
+ if (this._isPresentationValueInvalid()) return this.locale.calendarPicker.invalidDateRangeError;
259
+ if (this.min && this.start && compareDateStr(this.start, this.min) < 0) return this.locale.calendarPicker.startDateAfterMinDateError(formatPresentationDate(this.min, this.locale.calendarPicker));
260
+ if (this.max && this.end && compareDateStr(this.end, this.max) > 0) return this.locale.calendarPicker.endDateBeforeMaxDateError(formatPresentationDate(this.max, this.locale.calendarPicker));
121
261
  return null;
122
262
  }
123
263
  /** @internal */
124
- get _textFieldPlaceholder() {
125
- return `${this.locale.calendarPicker.dateFormatPlaceholder} ${this._timePlaceholder}`;
264
+ _isPresentationValueInvalid() {
265
+ if (this._presentationValue === "") return false;
266
+ try {
267
+ parsePresentationDateRange(this._presentationValue, this.locale.calendarPicker);
268
+ return false;
269
+ } catch (_) {
270
+ return true;
271
+ }
126
272
  }
127
273
  /** @internal */
128
- get _pickerButtonLabel() {
129
- if (this.value) return this.locale.dateTimePicker.changeDateTimeLabel(this._toPresentationValue(this.value));
130
- else return this.locale.dateTimePicker.chooseDateTimeLabel;
274
+ _onClearClick() {
275
+ this.#updateValues({
276
+ start: "",
277
+ end: ""
278
+ });
279
+ super._onClearClick();
131
280
  }
132
281
  /** @internal */
133
- _focusableElsWithinDialog() {
134
- return this._dialogEl.querySelectorAll("#inline-time-picker, button, .vwc-button");
282
+ formResetCallback() {
283
+ this.#updateValues({
284
+ start: this.initialStart,
285
+ end: this.initialEnd
286
+ });
287
+ super.formResetCallback();
135
288
  }
136
289
  /** @internal */
137
- get _pickerButtonIcon() {
138
- return "calendar-clock-line";
290
+ get _pickerButtonLabel() {
291
+ if (this.start && this.end) return this.locale.calendarPicker.changeDatesLabel(formatPresentationDateRange({
292
+ start: this.start,
293
+ end: this.end
294
+ }, this.locale.calendarPicker));
295
+ else return this.locale.calendarPicker.chooseDatesLabel;
139
296
  }
140
297
  /** @internal */
141
298
  get _dialogLabel() {
142
- return this.locale.dateTimePicker.chooseDateTimeLabel;
299
+ return this.locale.calendarPicker.chooseDatesLabel;
300
+ }
301
+ /** @internal */
302
+ _focusableElsWithinDialog() {
303
+ return this._dialogEl.querySelectorAll("button, .vwc-button");
304
+ }
305
+ /** @internal */
306
+ get _pickerButtonIcon() {
307
+ return "calendar-line";
143
308
  }
144
309
  };
145
- __decorate([attr({ converter: ValidDateTimeFilter })], DateTimePicker.prototype, "min", void 0);
146
- __decorate([attr({
147
- converter: ValidTimeFilter,
148
- attribute: "min-time"
149
- })], DateTimePicker.prototype, "minTime", void 0);
150
- __decorate([attr({
151
- converter: ValidDateFilter,
152
- attribute: "min-date"
153
- })], DateTimePicker.prototype, "minDate", void 0);
154
- __decorate([attr({ converter: ValidDateTimeFilter })], DateTimePicker.prototype, "max", void 0);
155
310
  __decorate([attr({
156
- converter: ValidTimeFilter,
157
- attribute: "max-time"
158
- })], DateTimePicker.prototype, "maxTime", void 0);
311
+ mode: "fromView",
312
+ attribute: "start"
313
+ })], DateRangePicker.prototype, "initialStart", void 0);
159
314
  __decorate([attr({
160
- converter: ValidDateFilter,
161
- attribute: "max-date"
162
- })], DateTimePicker.prototype, "maxDate", void 0);
315
+ mode: "fromView",
316
+ attribute: "end"
317
+ })], DateRangePicker.prototype, "initialEnd", void 0);
318
+ __decorate([observable], DateRangePicker.prototype, "start", void 0);
319
+ __decorate([observable], DateRangePicker.prototype, "end", void 0);
320
+ __decorate([attr({ attribute: "current-start" })], DateRangePicker.prototype, "currentStart", void 0);
321
+ __decorate([attr({ attribute: "current-end" })], DateRangePicker.prototype, "currentEnd", void 0);
322
+ __decorate([observable], DateRangePicker.prototype, "_numCalendars", void 0);
323
+ __decorate([observable], DateRangePicker.prototype, "_hoverDate", void 0);
324
+ __decorate([volatile], DateRangePicker.prototype, "_pickerButtonLabel", null);
163
325
  //#endregion
164
- //#region src/lib/date-time-picker/date-time-picker.template.ts
165
- var DateTimePickerTemplate = (context) => {
166
- return PickerFieldTemplate(context, html`
167
- <div class="date-time-picker">
168
- ${() => CalendarPickerTemplate(context)}
169
- <div class="time-picker">
170
- ${() => TimeSelectionPickerTemplate(context, 9)}
171
- </div>
172
- </div>
173
- `, {
326
+ //#region src/lib/date-range-picker/date-range-picker.template.ts
327
+ var DateRangePickerTemplate = (context) => {
328
+ return PickerFieldTemplate(context, CalendarPickerTemplate(context), {
174
329
  withSeparator: false,
175
- padded: false
330
+ padded: true
176
331
  });
177
332
  };
178
333
  //#endregion
179
- //#region src/lib/date-time-picker/definition.ts
334
+ //#region src/lib/date-range-picker/definition.ts
180
335
  /** @internal */
181
- var dateTimePickerDefinition = defineVividComponent("date-time-picker", DateTimePicker, DateTimePickerTemplate, [
336
+ var dateRangePickerDefinition = defineVividComponent("date-range-picker", DateRangePicker, DateRangePickerTemplate, [
182
337
  buttonDefinition,
183
338
  popupDefinition,
184
339
  textFieldDefinition,
185
340
  dividerDefinition,
186
- inlineTimePickerDefinition,
187
341
  visuallyHiddenDefinition
188
342
  ], {
189
- styles: [
190
- picker_field_default,
191
- calendar_picker_default,
192
- date_time_picker_default
193
- ],
343
+ styles: [picker_field_default, calendar_picker_default],
194
344
  shadowOptions: { delegatesFocus: true }
195
345
  });
196
346
  /**
197
- * Registers the date-time-picker element with the design system.
347
+ * Registers the date-range-picker element with the design system.
198
348
  *
199
349
  * @param prefix - the prefix to use for the component name
200
350
  */
201
- var registerDateTimePicker = createRegisterFunction(dateTimePickerDefinition);
351
+ var registerDateRangePicker = createRegisterFunction(dateRangePickerDefinition);
202
352
  //#endregion
203
- export { registerDateTimePicker as n, DateTimePicker as r, dateTimePickerDefinition as t };
353
+ export { registerDateRangePicker as n, DateRangePicker as r, dateRangePickerDefinition as t };