@vonage/vivid 5.15.0 → 5.16.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 (730) hide show
  1. package/README.md +1 -1
  2. package/accordion/definition.cjs +7 -212
  3. package/accordion/definition.js +2 -204
  4. package/accordion/index.cjs +4 -4
  5. package/accordion/index.js +93 -138
  6. package/accordion-item/definition.cjs +6 -146
  7. package/accordion-item/definition.js +2 -139
  8. package/accordion-item/index.cjs +1 -1
  9. package/accordion-item/index.js +6 -2
  10. package/action-group/definition.cjs +5 -69
  11. package/action-group/definition.js +1 -62
  12. package/action-group/index.cjs +4 -4
  13. package/action-group/index.js +16 -46
  14. package/alert/definition.cjs +6 -201
  15. package/alert/definition.js +2 -194
  16. package/alert/index.cjs +15 -15
  17. package/alert/index.js +90 -136
  18. package/audio-player/definition.cjs +6 -463
  19. package/audio-player/definition.js +2 -456
  20. package/audio-player/index.cjs +49 -49
  21. package/audio-player/index.js +234 -308
  22. package/avatar/definition.cjs +6 -117
  23. package/avatar/definition.js +2 -110
  24. package/avatar/index.cjs +14 -14
  25. package/avatar/index.js +44 -84
  26. package/badge/definition.cjs +6 -85
  27. package/badge/definition.js +2 -78
  28. package/badge/index.cjs +4 -4
  29. package/badge/index.js +21 -65
  30. package/banner/definition.cjs +6 -160
  31. package/banner/definition.js +2 -153
  32. package/banner/index.cjs +13 -13
  33. package/banner/index.js +76 -109
  34. package/breadcrumb/definition.cjs +5 -98
  35. package/breadcrumb/definition.js +1 -91
  36. package/breadcrumb/index.cjs +4 -4
  37. package/breadcrumb/index.js +33 -60
  38. package/breadcrumb-item/definition.cjs +7 -47
  39. package/breadcrumb-item/definition.js +3 -40
  40. package/breadcrumb-item/index.cjs +5 -5
  41. package/breadcrumb-item/index.js +20 -32
  42. package/bundled/affix.cjs +10 -10
  43. package/bundled/affix.js +44 -57
  44. package/bundled/anchored.cjs +3 -3
  45. package/bundled/anchored.js +47 -65
  46. package/bundled/aria.cjs +1 -1
  47. package/bundled/aria.js +6 -6
  48. package/bundled/attribute-binding-behaviour.cjs +1 -1
  49. package/bundled/attribute-binding-behaviour.js +17 -30
  50. package/bundled/base-color-picker.cjs +10 -10
  51. package/bundled/base-color-picker.js +115 -202
  52. package/bundled/base-progress.cjs +1 -1
  53. package/bundled/base-progress.js +29 -59
  54. package/bundled/breadcrumb-item.cjs +1 -1
  55. package/bundled/breadcrumb-item.js +11 -20
  56. package/bundled/button.cjs +1 -1
  57. package/bundled/button.js +65 -109
  58. package/bundled/calendar-event.cjs +1 -1
  59. package/bundled/calendar-event.js +11 -34
  60. package/bundled/calendar-picker.template.cjs +77 -77
  61. package/bundled/calendar-picker.template.js +2881 -3297
  62. package/bundled/char-count.cjs +7 -7
  63. package/bundled/char-count.js +31 -46
  64. package/bundled/children.cjs +1 -1
  65. package/bundled/children.js +27 -45
  66. package/bundled/class-names.cjs +1 -1
  67. package/bundled/class-names.js +8 -8
  68. package/bundled/data-grid.options.cjs +1 -1
  69. package/bundled/data-grid.options.js +22 -26
  70. package/bundled/decorate.cjs +1 -0
  71. package/bundled/decorate.js +9 -0
  72. package/bundled/definition.cjs +1 -39
  73. package/bundled/definition.js +5 -122
  74. package/bundled/definition10.cjs +27 -69
  75. package/bundled/definition10.js +173 -362
  76. package/bundled/definition11.cjs +19 -12
  77. package/bundled/definition11.js +77 -93
  78. package/bundled/definition12.cjs +11 -11
  79. package/bundled/definition12.js +122 -217
  80. package/bundled/definition13.cjs +18 -9
  81. package/bundled/definition13.js +76 -42
  82. package/bundled/definition14.cjs +10 -1
  83. package/bundled/definition14.js +28 -19
  84. package/bundled/definition15.cjs +73 -5
  85. package/bundled/definition15.js +194 -28
  86. package/bundled/definition16.cjs +5 -30
  87. package/bundled/definition16.js +16 -79
  88. package/bundled/definition17.cjs +13 -19
  89. package/bundled/definition17.js +81 -105
  90. package/bundled/definition18.cjs +12 -13
  91. package/bundled/definition18.js +67 -147
  92. package/bundled/definition19.cjs +48 -48
  93. package/bundled/definition19.js +365 -699
  94. package/bundled/definition2.cjs +8 -8
  95. package/bundled/definition2.js +80 -124
  96. package/bundled/definition20.cjs +5 -20
  97. package/bundled/definition20.js +11 -106
  98. package/bundled/definition21.cjs +20 -5
  99. package/bundled/definition21.js +57 -18
  100. package/bundled/definition22.cjs +16 -16
  101. package/bundled/definition22.js +79 -141
  102. package/bundled/definition3.cjs +1 -29
  103. package/bundled/definition3.js +183 -195
  104. package/bundled/definition4.cjs +39 -6
  105. package/bundled/definition4.js +71 -41
  106. package/bundled/definition5.cjs +30 -1
  107. package/bundled/definition5.js +48 -351
  108. package/bundled/definition6.cjs +28 -30
  109. package/bundled/definition6.js +110 -265
  110. package/bundled/definition7.cjs +6 -30
  111. package/bundled/definition7.js +22 -291
  112. package/bundled/definition8.cjs +13 -18
  113. package/bundled/definition8.js +150 -143
  114. package/bundled/definition9.cjs +29 -13
  115. package/bundled/definition9.js +157 -232
  116. package/bundled/delegates-aria.cjs +1 -1
  117. package/bundled/delegates-aria.js +56 -90
  118. package/bundled/dialog.cjs +1 -0
  119. package/bundled/dialog.js +6 -0
  120. package/bundled/divider.cjs +1 -1
  121. package/bundled/divider.js +16 -33
  122. package/bundled/dom.cjs +1 -1
  123. package/bundled/dom.js +5 -5
  124. package/bundled/enums.cjs +1 -1
  125. package/bundled/enums.js +16 -9
  126. package/bundled/floating-ui.dom.cjs +1 -1
  127. package/bundled/floating-ui.dom.js +953 -1234
  128. package/bundled/form-associated.cjs +1 -1
  129. package/bundled/form-associated.js +165 -327
  130. package/bundled/form-element.cjs +1 -1
  131. package/bundled/form-element.js +33 -55
  132. package/bundled/host-semantics.cjs +1 -1
  133. package/bundled/host-semantics.js +46 -69
  134. package/bundled/key-codes.cjs +1 -1
  135. package/bundled/key-codes.js +4 -16
  136. package/bundled/linkable.cjs +6 -6
  137. package/bundled/linkable.js +25 -45
  138. package/bundled/listbox.cjs +1 -1
  139. package/bundled/listbox.js +176 -368
  140. package/bundled/localized.cjs +1 -1
  141. package/bundled/localized.js +451 -564
  142. package/bundled/mixins.cjs +20 -20
  143. package/bundled/mixins.js +162 -213
  144. package/bundled/normalize.cjs +1 -1
  145. package/bundled/normalize.js +6 -6
  146. package/bundled/numbers.cjs +1 -1
  147. package/bundled/numbers.js +9 -11
  148. package/bundled/picker-field.template.cjs +23 -23
  149. package/bundled/picker-field.template.js +108 -172
  150. package/bundled/playbackRates.cjs +1 -1
  151. package/bundled/playbackRates.js +10 -10
  152. package/bundled/ref.cjs +1 -1
  153. package/bundled/ref.js +10 -14
  154. package/bundled/repeat.cjs +1 -1
  155. package/bundled/repeat.js +421 -552
  156. package/bundled/scrollIntoView.cjs +1 -1
  157. package/bundled/scrollIntoView.js +26 -32
  158. package/bundled/single-date-picker.cjs +1 -1
  159. package/bundled/single-date-picker.js +23 -38
  160. package/bundled/single-value-picker.cjs +1 -1
  161. package/bundled/single-value-picker.js +58 -86
  162. package/bundled/slider.template.cjs +13 -13
  163. package/bundled/slider.template.js +67 -78
  164. package/bundled/slottable-request.cjs +4 -4
  165. package/bundled/slottable-request.js +1937 -2904
  166. package/bundled/slotted.cjs +1 -1
  167. package/bundled/slotted.js +47 -97
  168. package/bundled/strings.cjs +1 -1
  169. package/bundled/strings.js +6 -6
  170. package/bundled/text-field.cjs +1 -1
  171. package/bundled/text-field.js +4 -4
  172. package/bundled/time-selection-picker.template.cjs +26 -26
  173. package/bundled/time-selection-picker.template.js +355 -555
  174. package/bundled/trapped-focus.cjs +1 -1
  175. package/bundled/trapped-focus.js +18 -25
  176. package/bundled/vivid-element.cjs +4 -5
  177. package/bundled/vivid-element.js +1778 -2794
  178. package/bundled/when.cjs +1 -1
  179. package/bundled/when.js +10 -10
  180. package/bundled/with-contextual-help.cjs +1 -1
  181. package/bundled/with-contextual-help.js +15 -31
  182. package/bundled/with-error-text.cjs +1 -1
  183. package/bundled/with-error-text.js +25 -38
  184. package/bundled/with-success-text.cjs +1 -1
  185. package/bundled/with-success-text.js +8 -15
  186. package/button/definition.cjs +6 -14
  187. package/button/definition.js +3 -4
  188. package/button/index.cjs +1 -1
  189. package/button/index.js +6 -2
  190. package/calendar/definition.cjs +5 -360
  191. package/calendar/definition.js +1 -353
  192. package/calendar/index.cjs +20 -20
  193. package/calendar/index.js +346 -403
  194. package/calendar-event/definition.cjs +6 -58
  195. package/calendar-event/definition.js +2 -51
  196. package/calendar-event/index.cjs +7 -7
  197. package/calendar-event/index.js +25 -41
  198. package/card/definition.cjs +6 -194
  199. package/card/definition.js +2 -187
  200. package/card/index.cjs +34 -34
  201. package/card/index.js +80 -133
  202. package/checkbox/definition.cjs +6 -210
  203. package/checkbox/definition.js +2 -203
  204. package/checkbox/index.cjs +1 -1
  205. package/checkbox/index.js +6 -2
  206. package/color-picker/definition.cjs +6 -1180
  207. package/color-picker/definition.js +2 -1173
  208. package/color-picker/index.cjs +94 -94
  209. package/color-picker/index.js +605 -742
  210. package/combobox/definition.cjs +6 -653
  211. package/combobox/definition.js +2 -646
  212. package/combobox/index.cjs +37 -37
  213. package/combobox/index.js +254 -465
  214. package/contextual-help/definition.cjs +6 -63
  215. package/contextual-help/definition.js +2 -56
  216. package/contextual-help/index.cjs +1 -1
  217. package/contextual-help/index.js +6 -2
  218. package/country/definition.cjs +6 -340
  219. package/country/definition.js +2 -333
  220. package/country/index.cjs +6 -6
  221. package/country/index.js +1209 -308
  222. package/custom-elements.json +550 -1571
  223. package/data-grid/definition.cjs +10 -2363
  224. package/data-grid/definition.js +2 -2352
  225. package/data-grid/index.cjs +61 -61
  226. package/data-grid/index.js +642 -1024
  227. package/date-picker/definition.cjs +6 -152
  228. package/date-picker/definition.js +2 -145
  229. package/date-picker/index.cjs +1 -1
  230. package/date-picker/index.js +66 -114
  231. package/date-range-picker/definition.cjs +6 -469
  232. package/date-range-picker/definition.js +2 -462
  233. package/date-range-picker/index.cjs +1 -1
  234. package/date-range-picker/index.js +218 -338
  235. package/date-time-picker/definition.cjs +6 -285
  236. package/date-time-picker/definition.js +2 -278
  237. package/date-time-picker/index.cjs +4 -4
  238. package/date-time-picker/index.js +116 -211
  239. package/dial-pad/definition.cjs +6 -469
  240. package/dial-pad/definition.js +2 -462
  241. package/dial-pad/index.cjs +42 -42
  242. package/dial-pad/index.js +195 -311
  243. package/dialog/definition.cjs +6 -350
  244. package/dialog/definition.js +2 -343
  245. package/dialog/index.cjs +28 -28
  246. package/dialog/index.js +148 -230
  247. package/divider/definition.cjs +6 -42
  248. package/divider/definition.js +2 -35
  249. package/divider/index.cjs +1 -1
  250. package/divider/index.js +5 -2
  251. package/elevation/definition.cjs +4 -11
  252. package/elevation/definition.js +2 -2
  253. package/elevation/index.cjs +1 -1
  254. package/elevation/index.js +5 -2
  255. package/empty-state/definition.cjs +6 -86
  256. package/empty-state/definition.js +2 -79
  257. package/empty-state/index.cjs +9 -9
  258. package/empty-state/index.js +28 -60
  259. package/fab/definition.cjs +6 -106
  260. package/fab/definition.js +2 -99
  261. package/fab/index.cjs +17 -17
  262. package/fab/index.js +46 -82
  263. package/file-picker/definition.cjs +6 -526
  264. package/file-picker/definition.js +2 -519
  265. package/file-picker/index.cjs +25 -25
  266. package/file-picker/index.js +246 -354
  267. package/header/definition.cjs +5 -78
  268. package/header/definition.js +1 -71
  269. package/header/index.cjs +5 -5
  270. package/header/index.js +28 -42
  271. package/icon/definition.cjs +5 -200
  272. package/icon/definition.js +1 -193
  273. package/icon/index.cjs +1 -1
  274. package/icon/index.js +5 -2
  275. package/index.cjs +350 -356
  276. package/index.js +79 -78
  277. package/layout/definition.cjs +5 -72
  278. package/layout/definition.js +1 -65
  279. package/layout/index.cjs +2 -2
  280. package/layout/index.js +10 -51
  281. package/lib/alert/alert.d.ts +0 -1
  282. package/lib/audio-player/audio-player.d.ts +0 -1
  283. package/lib/banner/banner.d.ts +0 -2
  284. package/lib/button/button.d.ts +0 -1
  285. package/lib/calendar/calendar.d.ts +0 -1
  286. package/lib/card/card.d.ts +0 -2
  287. package/lib/combobox/combobox.d.ts +1 -1
  288. package/lib/data-grid/data-grid-cell.d.ts +0 -3
  289. package/lib/data-grid/data-grid-row.d.ts +0 -3
  290. package/lib/data-grid/data-grid.d.ts +0 -1
  291. package/lib/fab/fab.d.ts +0 -1
  292. package/lib/file-picker/file-picker.d.ts +1 -1
  293. package/lib/icon/icon.d.ts +0 -2
  294. package/lib/menu/menu.d.ts +0 -1
  295. package/lib/menu-item/menu-item.d.ts +0 -1
  296. package/lib/option/option.d.ts +4 -0
  297. package/lib/pagination/pagination.d.ts +0 -7
  298. package/lib/popover/popover.d.ts +0 -5
  299. package/lib/select/select.d.ts +2 -2
  300. package/lib/split-button/split-button.d.ts +0 -2
  301. package/lib/tab/tab.d.ts +0 -2
  302. package/lib/table/table-head.d.ts +1 -0
  303. package/lib/tabs/tabs.d.ts +0 -1
  304. package/lib/tag/tag.d.ts +0 -2
  305. package/lib/text-field/text-field.d.ts +0 -1
  306. package/lib/toggletip/toggletip.d.ts +0 -1
  307. package/lib/tree-item/tree-item.d.ts +0 -2
  308. package/lib/tree-view/tree-view.d.ts +0 -1
  309. package/locales/de-DE.cjs +382 -492
  310. package/locales/de-DE.js +383 -490
  311. package/locales/en-GB.cjs +271 -382
  312. package/locales/en-GB.js +272 -380
  313. package/locales/en-US.cjs +2 -552
  314. package/locales/en-US.js +1 -549
  315. package/locales/ja-JP.cjs +376 -492
  316. package/locales/ja-JP.js +377 -490
  317. package/locales/zh-CN.cjs +378 -495
  318. package/locales/zh-CN.js +379 -493
  319. package/menu/definition.cjs +6 -394
  320. package/menu/definition.js +2 -387
  321. package/menu/index.cjs +1 -1
  322. package/menu/index.js +6 -2
  323. package/menu-item/definition.cjs +7 -14
  324. package/menu-item/definition.js +3 -3
  325. package/menu-item/index.cjs +1 -1
  326. package/menu-item/index.js +6 -2
  327. package/nav/definition.cjs +5 -27
  328. package/nav/definition.js +1 -20
  329. package/nav/index.cjs +3 -3
  330. package/nav/index.js +7 -10
  331. package/nav-disclosure/definition.cjs +6 -122
  332. package/nav-disclosure/definition.js +2 -115
  333. package/nav-disclosure/index.cjs +8 -8
  334. package/nav-disclosure/index.js +49 -86
  335. package/nav-item/definition.cjs +6 -79
  336. package/nav-item/definition.js +2 -72
  337. package/nav-item/index.cjs +2 -2
  338. package/nav-item/index.js +33 -58
  339. package/note/definition.cjs +6 -61
  340. package/note/definition.js +2 -54
  341. package/note/index.cjs +5 -5
  342. package/note/index.js +24 -38
  343. package/number-field/definition.cjs +6 -440
  344. package/number-field/definition.js +2 -433
  345. package/number-field/index.cjs +31 -31
  346. package/number-field/index.js +160 -328
  347. package/option/definition.cjs +6 -13
  348. package/option/definition.js +3 -3
  349. package/option/index.cjs +1 -1
  350. package/option/index.js +6 -2
  351. package/package.json +24 -23
  352. package/pagination/definition.cjs +6 -256
  353. package/pagination/definition.js +2 -249
  354. package/pagination/index.cjs +37 -37
  355. package/pagination/index.js +148 -188
  356. package/popover/definition.cjs +6 -363
  357. package/popover/definition.js +2 -356
  358. package/popover/index.cjs +16 -16
  359. package/popover/index.js +161 -250
  360. package/popup/definition.cjs +5 -13
  361. package/popup/definition.js +3 -4
  362. package/popup/index.cjs +1 -1
  363. package/popup/index.js +6 -2
  364. package/progress/definition.cjs +5 -87
  365. package/progress/definition.js +1 -80
  366. package/progress/index.cjs +9 -9
  367. package/progress/index.js +33 -55
  368. package/progress-ring/definition.cjs +5 -95
  369. package/progress-ring/definition.js +1 -88
  370. package/progress-ring/index.cjs +1 -1
  371. package/progress-ring/index.js +5 -2
  372. package/radio/definition.cjs +5 -231
  373. package/radio/definition.js +1 -224
  374. package/radio/index.cjs +1 -1
  375. package/radio/index.js +5 -2
  376. package/radio-group/definition.cjs +6 -361
  377. package/radio-group/definition.js +2 -354
  378. package/radio-group/index.cjs +10 -10
  379. package/radio-group/index.js +160 -242
  380. package/range-slider/definition.cjs +6 -632
  381. package/range-slider/definition.js +2 -625
  382. package/range-slider/index.cjs +41 -41
  383. package/range-slider/index.js +259 -429
  384. package/rich-text-editor/definition.cjs +32 -15609
  385. package/rich-text-editor/definition.js +2 -15576
  386. package/rich-text-editor/index.cjs +17 -17
  387. package/rich-text-editor/index.js +9061 -11419
  388. package/rich-text-view/definition.cjs +5 -171
  389. package/rich-text-view/definition.js +1 -164
  390. package/rich-text-view/index.cjs +1 -1
  391. package/rich-text-view/index.js +68 -102
  392. package/searchable-select/definition.cjs +5 -1404
  393. package/searchable-select/definition.js +2 -1398
  394. package/searchable-select/index.cjs +94 -94
  395. package/searchable-select/index.js +600 -1019
  396. package/select/definition.cjs +6 -1012
  397. package/select/definition.js +2 -1005
  398. package/select/index.cjs +1 -1
  399. package/select/index.js +6 -2
  400. package/selectable-box/definition.cjs +6 -174
  401. package/selectable-box/definition.js +2 -167
  402. package/selectable-box/index.cjs +18 -18
  403. package/selectable-box/index.js +66 -127
  404. package/side-drawer/definition.cjs +5 -130
  405. package/side-drawer/definition.js +1 -123
  406. package/side-drawer/index.cjs +7 -7
  407. package/side-drawer/index.js +47 -92
  408. package/simple-color-picker/definition.cjs +6 -216
  409. package/simple-color-picker/definition.js +2 -209
  410. package/simple-color-picker/index.cjs +15 -15
  411. package/simple-color-picker/index.js +98 -135
  412. package/slider/definition.cjs +6 -504
  413. package/slider/definition.js +2 -497
  414. package/slider/index.cjs +1 -1
  415. package/slider/index.js +6 -2
  416. package/split-button/definition.cjs +6 -176
  417. package/split-button/definition.js +2 -169
  418. package/split-button/index.cjs +15 -15
  419. package/split-button/index.js +74 -135
  420. package/status/definition.cjs +6 -76
  421. package/status/definition.js +2 -69
  422. package/status/index.cjs +10 -7
  423. package/status/index.js +38 -48
  424. package/styles/core/all.css +6 -5
  425. package/styles/core/theme.css +6 -5
  426. package/styles/core/typography.css +1 -2
  427. package/styles/tokens/theme-dark.css +17 -21
  428. package/styles/tokens/theme-light.css +17 -21
  429. package/styles/tokens/vivid-2-compat.css +1 -2
  430. package/switch/definition.cjs +6 -149
  431. package/switch/definition.js +2 -142
  432. package/switch/index.cjs +8 -8
  433. package/switch/index.js +48 -93
  434. package/tab/definition.cjs +6 -127
  435. package/tab/definition.js +2 -120
  436. package/tab/index.cjs +1 -1
  437. package/tab/index.js +6 -2
  438. package/tab-panel/definition.cjs +5 -29
  439. package/tab-panel/definition.js +1 -22
  440. package/tab-panel/index.cjs +1 -1
  441. package/tab-panel/index.js +5 -2
  442. package/table/definition.cjs +15 -168
  443. package/table/definition.js +1 -151
  444. package/table/index.cjs +20 -16
  445. package/table/index.js +36 -85
  446. package/tabs/definition.cjs +7 -469
  447. package/tabs/definition.js +2 -461
  448. package/tabs/index.cjs +11 -11
  449. package/tabs/index.js +169 -298
  450. package/tag/definition.cjs +6 -176
  451. package/tag/definition.js +2 -169
  452. package/tag/index.cjs +26 -26
  453. package/tag/index.js +65 -126
  454. package/tag-group/definition.cjs +5 -40
  455. package/tag-group/definition.js +1 -33
  456. package/tag-group/index.cjs +4 -4
  457. package/tag-group/index.js +10 -21
  458. package/text-area/definition.cjs +6 -361
  459. package/text-area/definition.js +2 -354
  460. package/text-area/index.cjs +11 -11
  461. package/text-area/index.js +153 -266
  462. package/text-field/definition.cjs +6 -433
  463. package/text-field/definition.js +2 -426
  464. package/text-field/index.cjs +1 -1
  465. package/text-field/index.js +6 -2
  466. package/time-picker/definition.cjs +7 -43
  467. package/time-picker/definition.js +3 -36
  468. package/time-picker/index.cjs +1 -1
  469. package/time-picker/index.js +24 -29
  470. package/toggletip/definition.cjs +6 -161
  471. package/toggletip/definition.js +2 -154
  472. package/toggletip/index.cjs +1 -1
  473. package/toggletip/index.js +6 -2
  474. package/tooltip/definition.cjs +6 -140
  475. package/tooltip/definition.js +2 -133
  476. package/tooltip/index.cjs +1 -1
  477. package/tooltip/index.js +6 -2
  478. package/tree-item/definition.cjs +6 -13
  479. package/tree-item/definition.js +3 -3
  480. package/tree-item/index.cjs +1 -1
  481. package/tree-item/index.js +6 -2
  482. package/tree-view/definition.cjs +6 -318
  483. package/tree-view/definition.js +2 -311
  484. package/tree-view/index.cjs +11 -11
  485. package/tree-view/index.js +145 -190
  486. package/unbundled/affix.cjs +89 -62
  487. package/unbundled/affix.js +58 -55
  488. package/unbundled/anchored.cjs +87 -94
  489. package/unbundled/anchored.js +74 -90
  490. package/unbundled/attribute-binding-behaviour.cjs +37 -43
  491. package/unbundled/attribute-binding-behaviour.js +31 -41
  492. package/unbundled/base-color-picker.cjs +226 -278
  493. package/unbundled/base-color-picker.js +214 -275
  494. package/unbundled/base-progress.cjs +63 -81
  495. package/unbundled/base-progress.js +57 -79
  496. package/unbundled/breadcrumb-item.cjs +24 -28
  497. package/unbundled/breadcrumb-item.js +18 -26
  498. package/unbundled/button.cjs +115 -175
  499. package/unbundled/button.js +109 -173
  500. package/unbundled/calendar-event.cjs +28 -41
  501. package/unbundled/calendar-event.js +22 -39
  502. package/unbundled/calendar-picker.template.cjs +620 -785
  503. package/unbundled/calendar-picker.template.js +560 -774
  504. package/unbundled/char-count.cjs +50 -80
  505. package/unbundled/char-count.js +44 -78
  506. package/unbundled/chunk.cjs +50 -0
  507. package/unbundled/chunk.js +33 -0
  508. package/unbundled/data-grid.options.cjs +80 -29
  509. package/unbundled/data-grid.options.js +51 -23
  510. package/unbundled/decorate.cjs +14 -0
  511. package/unbundled/decorate.js +9 -0
  512. package/unbundled/definition.cjs +42 -226
  513. package/unbundled/definition.js +24 -221
  514. package/unbundled/definition10.cjs +253 -0
  515. package/unbundled/definition10.js +229 -0
  516. package/unbundled/definition11.cjs +397 -0
  517. package/unbundled/definition11.js +379 -0
  518. package/unbundled/definition12.cjs +317 -0
  519. package/unbundled/definition12.js +287 -0
  520. package/unbundled/definition13.cjs +328 -0
  521. package/unbundled/definition13.js +310 -0
  522. package/unbundled/definition14.cjs +406 -0
  523. package/unbundled/definition14.js +388 -0
  524. package/unbundled/definition15.cjs +107 -0
  525. package/unbundled/definition15.js +89 -0
  526. package/unbundled/definition16.cjs +63 -0
  527. package/unbundled/definition16.js +45 -0
  528. package/unbundled/definition17.cjs +151 -0
  529. package/unbundled/definition17.js +133 -0
  530. package/unbundled/definition18.cjs +47 -0
  531. package/unbundled/definition18.js +35 -0
  532. package/unbundled/definition19.cjs +98 -0
  533. package/unbundled/definition19.js +80 -0
  534. package/unbundled/definition2.cjs +179 -401
  535. package/unbundled/definition2.js +161 -395
  536. package/unbundled/definition20.cjs +56 -0
  537. package/unbundled/definition20.js +43 -0
  538. package/unbundled/definition21.cjs +305 -0
  539. package/unbundled/definition21.js +286 -0
  540. package/unbundled/definition22.cjs +174 -0
  541. package/unbundled/definition22.js +156 -0
  542. package/unbundled/definition23.cjs +161 -0
  543. package/unbundled/definition23.js +143 -0
  544. package/unbundled/definition24.cjs +1038 -0
  545. package/unbundled/definition24.js +1020 -0
  546. package/unbundled/definition25.cjs +360 -0
  547. package/unbundled/definition25.js +342 -0
  548. package/unbundled/definition26.cjs +137 -0
  549. package/unbundled/definition26.js +119 -0
  550. package/unbundled/definition27.cjs +235 -0
  551. package/unbundled/definition27.js +211 -0
  552. package/unbundled/definition28.cjs +546 -0
  553. package/unbundled/definition28.js +528 -0
  554. package/unbundled/definition29.cjs +157 -0
  555. package/unbundled/definition29.js +139 -0
  556. package/unbundled/definition3.cjs +131 -285
  557. package/unbundled/definition3.js +113 -280
  558. package/unbundled/definition30.cjs +75 -0
  559. package/unbundled/definition30.js +57 -0
  560. package/unbundled/definition31.cjs +1265 -0
  561. package/unbundled/definition31.js +1247 -0
  562. package/unbundled/definition32.cjs +1908 -0
  563. package/unbundled/definition32.js +1866 -0
  564. package/unbundled/definition33.cjs +261 -0
  565. package/unbundled/definition33.js +183 -0
  566. package/unbundled/definition34.cjs +46 -0
  567. package/unbundled/definition34.js +33 -0
  568. package/unbundled/definition35.cjs +152 -0
  569. package/unbundled/definition35.js +134 -0
  570. package/unbundled/definition36.cjs +426 -0
  571. package/unbundled/definition36.js +408 -0
  572. package/unbundled/definition37.cjs +243 -0
  573. package/unbundled/definition37.js +225 -0
  574. package/unbundled/definition38.cjs +409 -0
  575. package/unbundled/definition38.js +391 -0
  576. package/unbundled/definition39.cjs +298 -0
  577. package/unbundled/definition39.js +280 -0
  578. package/unbundled/definition4.cjs +186 -206
  579. package/unbundled/definition4.js +162 -201
  580. package/unbundled/definition40.cjs +81 -0
  581. package/unbundled/definition40.js +63 -0
  582. package/unbundled/definition41.cjs +100 -0
  583. package/unbundled/definition41.js +82 -0
  584. package/unbundled/definition42.cjs +457 -0
  585. package/unbundled/definition42.js +439 -0
  586. package/unbundled/definition43.cjs +86 -0
  587. package/unbundled/definition43.js +68 -0
  588. package/unbundled/definition44.cjs +60 -0
  589. package/unbundled/definition44.js +41 -0
  590. package/unbundled/definition45.cjs +124 -0
  591. package/unbundled/definition45.js +106 -0
  592. package/unbundled/definition46.cjs +85 -0
  593. package/unbundled/definition46.js +67 -0
  594. package/unbundled/definition47.cjs +52 -0
  595. package/unbundled/definition47.js +31 -0
  596. package/unbundled/definition48.cjs +69 -0
  597. package/unbundled/definition48.js +51 -0
  598. package/unbundled/definition49.cjs +377 -0
  599. package/unbundled/definition49.js +359 -0
  600. package/unbundled/definition5.cjs +69 -298
  601. package/unbundled/definition5.js +44 -293
  602. package/unbundled/definition50.cjs +246 -0
  603. package/unbundled/definition50.js +228 -0
  604. package/unbundled/definition51.cjs +337 -0
  605. package/unbundled/definition51.js +319 -0
  606. package/unbundled/definition52.cjs +86 -0
  607. package/unbundled/definition52.js +67 -0
  608. package/unbundled/definition53.cjs +193 -0
  609. package/unbundled/definition53.js +174 -0
  610. package/unbundled/definition54.cjs +297 -0
  611. package/unbundled/definition54.js +279 -0
  612. package/unbundled/definition55.cjs +510 -0
  613. package/unbundled/definition55.js +492 -0
  614. package/unbundled/definition56.cjs +12728 -0
  615. package/unbundled/definition56.js +12553 -0
  616. package/unbundled/definition57.cjs +837 -0
  617. package/unbundled/definition57.js +819 -0
  618. package/unbundled/definition58.cjs +146 -0
  619. package/unbundled/definition58.js +128 -0
  620. package/unbundled/definition59.cjs +1080 -0
  621. package/unbundled/definition59.js +1062 -0
  622. package/unbundled/definition6.cjs +88 -56
  623. package/unbundled/definition6.js +69 -52
  624. package/unbundled/definition60.cjs +149 -0
  625. package/unbundled/definition60.js +131 -0
  626. package/unbundled/definition61.cjs +116 -0
  627. package/unbundled/definition61.js +97 -0
  628. package/unbundled/definition62.cjs +213 -0
  629. package/unbundled/definition62.js +195 -0
  630. package/unbundled/definition63.cjs +159 -0
  631. package/unbundled/definition63.js +141 -0
  632. package/unbundled/definition64.cjs +86 -0
  633. package/unbundled/definition64.js +68 -0
  634. package/unbundled/definition65.cjs +126 -0
  635. package/unbundled/definition65.js +107 -0
  636. package/unbundled/definition66.cjs +49 -0
  637. package/unbundled/definition66.js +28 -0
  638. package/unbundled/definition67.cjs +119 -0
  639. package/unbundled/definition67.js +101 -0
  640. package/unbundled/definition68.cjs +374 -0
  641. package/unbundled/definition68.js +349 -0
  642. package/unbundled/definition69.cjs +57 -0
  643. package/unbundled/definition69.js +38 -0
  644. package/unbundled/definition7.cjs +190 -0
  645. package/unbundled/definition7.js +166 -0
  646. package/unbundled/definition70.cjs +155 -0
  647. package/unbundled/definition70.js +137 -0
  648. package/unbundled/definition71.cjs +302 -0
  649. package/unbundled/definition71.js +284 -0
  650. package/unbundled/definition72.cjs +49 -0
  651. package/unbundled/definition72.js +38 -0
  652. package/unbundled/definition73.cjs +171 -0
  653. package/unbundled/definition73.js +147 -0
  654. package/unbundled/definition74.cjs +232 -0
  655. package/unbundled/definition74.js +213 -0
  656. package/unbundled/definition75.cjs +52241 -0
  657. package/unbundled/definition75.js +52223 -0
  658. package/unbundled/definition8.cjs +63 -0
  659. package/unbundled/definition8.js +44 -0
  660. package/unbundled/definition9.cjs +183 -0
  661. package/unbundled/definition9.js +165 -0
  662. package/unbundled/delegates-aria.cjs +90 -131
  663. package/unbundled/delegates-aria.js +77 -127
  664. package/unbundled/dialog.cjs +15 -0
  665. package/unbundled/dialog.js +10 -0
  666. package/unbundled/divider.cjs +42 -50
  667. package/unbundled/divider.js +30 -47
  668. package/unbundled/en-US.cjs +447 -0
  669. package/unbundled/en-US.js +443 -0
  670. package/unbundled/enums.cjs +166 -107
  671. package/unbundled/enums.js +95 -94
  672. package/unbundled/form-associated.cjs +408 -464
  673. package/unbundled/form-associated.js +396 -461
  674. package/unbundled/form-element.cjs +74 -83
  675. package/unbundled/form-element.js +68 -81
  676. package/unbundled/host-semantics.cjs +70 -88
  677. package/unbundled/host-semantics.js +57 -84
  678. package/unbundled/key-codes.cjs +16 -10
  679. package/unbundled/key-codes.js +5 -7
  680. package/unbundled/linkable.cjs +35 -56
  681. package/unbundled/linkable.js +27 -52
  682. package/unbundled/listbox.cjs +363 -473
  683. package/unbundled/listbox.js +357 -471
  684. package/unbundled/localized.cjs +79 -74
  685. package/unbundled/localized.js +61 -70
  686. package/unbundled/mixins.cjs +222 -225
  687. package/unbundled/mixins.js +186 -213
  688. package/unbundled/picker-field.template.cjs +188 -218
  689. package/unbundled/picker-field.template.js +165 -209
  690. package/unbundled/playbackRates.cjs +18 -11
  691. package/unbundled/playbackRates.js +13 -9
  692. package/unbundled/scrollIntoView.cjs +38 -44
  693. package/unbundled/scrollIntoView.js +33 -42
  694. package/unbundled/single-date-picker.cjs +48 -45
  695. package/unbundled/single-date-picker.js +43 -43
  696. package/unbundled/single-value-picker.cjs +106 -114
  697. package/unbundled/single-value-picker.js +101 -112
  698. package/unbundled/slider.template.cjs +107 -73
  699. package/unbundled/slider.template.js +67 -62
  700. package/unbundled/slottable-request.cjs +3114 -3503
  701. package/unbundled/slottable-request.js +2995 -3484
  702. package/unbundled/text-field.cjs +9 -5
  703. package/unbundled/text-field.js +4 -3
  704. package/unbundled/time-selection-picker.template.cjs +611 -758
  705. package/unbundled/time-selection-picker.template.js +554 -745
  706. package/unbundled/trapped-focus.cjs +45 -35
  707. package/unbundled/trapped-focus.js +34 -32
  708. package/unbundled/vivid-element.cjs +281 -273
  709. package/unbundled/vivid-element.js +239 -265
  710. package/unbundled/with-contextual-help.cjs +35 -39
  711. package/unbundled/with-contextual-help.js +29 -37
  712. package/unbundled/with-error-text.cjs +45 -55
  713. package/unbundled/with-error-text.js +39 -53
  714. package/unbundled/with-success-text.cjs +18 -22
  715. package/unbundled/with-success-text.js +12 -20
  716. package/video-player/definition.cjs +5 -69602
  717. package/video-player/definition.js +1 -69595
  718. package/video-player/index.cjs +44 -55
  719. package/video-player/index.js +23548 -35488
  720. package/visually-hidden/definition.cjs +5 -30
  721. package/visually-hidden/definition.js +1 -23
  722. package/visually-hidden/index.cjs +1 -1
  723. package/visually-hidden/index.js +5 -2
  724. package/vivid.api.json +197 -2003
  725. package/bundled/index.cjs +0 -1
  726. package/bundled/index.js +0 -6
  727. package/unbundled/_commonjsHelpers.cjs +0 -36
  728. package/unbundled/_commonjsHelpers.js +0 -32
  729. package/unbundled/index.cjs +0 -11
  730. package/unbundled/index.js +0 -9
@@ -1,607 +1,523 @@
1
- import { formatISO, format, parse, addDays as addDays$1 } from 'date-fns';
2
- import { observable, volatile, Updates, attr, repeat, when, html } from '@microsoft/fast-element';
3
- import { classNames } from '@microsoft/fast-web-utilities';
4
- import { D as Divider } from './divider.js';
5
- import { B as Button } from './definition.js';
6
- import { VwcVisuallyHiddenElement as VisuallyHidden } from '../visually-hidden/definition.js';
7
-
8
- const calendarStyles = ".segments{gap:24px}@media (width >= 648px){.segments{display:inline-flex}}.segment{display:flex;flex-direction:column;gap:12px}.segment .header{display:flex;align-items:center;padding-block:8px}.segment .title{display:flex;flex-grow:1;justify-content:center}.segment .title-action{border-radius:8px;block-size:24px;font:var(--vvd-typography-base-extended);padding-inline:8px}.calendar{display:flex;flex-direction:column;margin-top:8px;gap:4px}.calendar .calendar-separator{margin-inline:10px}.calendar .calendar-weekdays{display:flex;justify-content:center}.calendar .calendar-weekday{display:inline-flex;align-items:center;justify-content:center;block-size:16px;font:var(--vvd-typography-base-condensed);inline-size:40px}.calendar .calendar-week{display:flex;justify-content:center}.calendar .calendar-day{display:inline-flex;align-items:center;justify-content:center;border-radius:50%;aspect-ratio:1/1;block-size:28px;font:var(--vvd-typography-base);margin-inline:6px}.calendar .calendar-day.start,.calendar .calendar-day.end{border:2px solid var(--vvd-color-cta-50);background-color:var(--vvd-color-cta-200)}.calendar:focus-visible .calendar .calendar-day.start,.calendar:focus-visible .calendar .calendar-day.end{border-width:3px}.calendar .calendar-day:before,.calendar .calendar-day:after{position:absolute;z-index:-1;display:block;width:20px;height:28px}.calendar .calendar-day:before{right:50%}.calendar .calendar-day:after{left:50%}.calendar .calendar-day.range:before,.calendar .calendar-day.range:after{background-color:var(--vvd-color-cta-50)}.calendar .calendar-day.range:not(.start):before,.calendar .calendar-day.range:not(.end):after{content:\"\"}.calendar .calendar-day.outside-month,.calendar .calendar-day:disabled{color:var(--vvd-color-neutral-400)}.months-separator{margin-inline:-12px}.month-grid{display:flex;flex-direction:column;gap:34px}.month-grid .months-row{display:flex;justify-content:center;gap:29px}.month-grid .month{display:inline-flex;align-items:center;justify-content:center;border-radius:50%;aspect-ratio:1/1;block-size:48px;font:var(--vvd-typography-base-extended);text-transform:uppercase}.month-grid .month:disabled{color:var(--vvd-color-neutral-400)}.button{--_connotation-color-primary: var(--vvd-date-picker-accent-primary, var(--vvd-color-canvas-text));--_connotation-color-firm: var(--vvd-date-picker-accent-firm, var(--vvd-color-canvas-text));--_connotation-color-faint: var(--vvd-date-picker-accent-faint, var(--vvd-color-neutral-50));--_connotation-color-soft: var(--vvd-date-picker-accent-soft, var(--vvd-color-neutral-100));--_connotation-color-dim: var(--vvd-date-picker-accent-dim, var(--vvd-color-neutral-200));--_connotation-color-pale: var(--vvd-date-picker-accent-pale, var(--vvd-color-neutral-300))}.button{--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: transparent;--_appearance-color-outline: transparent}@media (hover: hover){.button:hover:where(:not(.disabled,:disabled,.readonly)){--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: var(--_connotation-color-faint);--_appearance-color-outline: transparent}}.button.hover:where(:not(.disabled,:disabled,.readonly)){--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: var(--_connotation-color-faint);--_appearance-color-outline: transparent}.button:active:where(:not(.disabled,:disabled)){--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: var(--_connotation-color-soft);--_appearance-color-outline: transparent}.button.active:where(:not(.disabled,:disabled)){--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: var(--_connotation-color-soft);--_appearance-color-outline: transparent}.button.selected:where(:not(.disabled,:disabled)){--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: var(--_connotation-color-soft);--_appearance-color-outline: transparent}@media (hover: hover){.button.selected:hover:where(:not(.disabled,:disabled,.readonly)){--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: var(--_connotation-color-dim);--_appearance-color-outline: transparent}}.button.selected.hover:where(:not(.disabled,:disabled,.readonly)){--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: var(--_connotation-color-dim);--_appearance-color-outline: transparent}.button.selected:disabled{--_appearance-color-text: var(--vvd-color-neutral-300);--_appearance-color-fill: var(--vvd-color-neutral-200);--_appearance-color-outline: transparent}.button.selected.disabled{--_appearance-color-text: var(--vvd-color-neutral-300);--_appearance-color-fill: var(--vvd-color-neutral-200);--_appearance-color-outline: transparent}.button{position:relative;padding:0;border:none;background-color:var(--_appearance-color-fill);color:var(--_appearance-color-text);cursor:pointer}.button:disabled{cursor:not-allowed}.button:focus:not(.title-action),.button.title-action:focus-visible{--focus-stroke-gap-color: transparent;color:var(--vvd-color-canvas-text);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))}.button:focus:not(.title-action).start,.button:focus:not(.title-action).end,.button.title-action:focus-visible.start,.button.title-action:focus-visible.end{border-width:3px}.button.current{border:1px solid var(--vvd-color-neutral-200)}.button.selected{border:1px solid var(--vvd-color-neutral-900)}";
9
-
10
- const formatDateStr = (date) => formatISO(date, { representation: "date" });
11
- const currentDateStr = (now = /* @__PURE__ */ new Date()) => formatDateStr(now);
12
- const parseDateStr = (dateStr) => {
13
- const [year, month, day] = dateStr.split("-");
14
- return new Date(parseInt(year), parseInt(month) - 1, parseInt(day));
1
+ import { r as VisuallyHidden } from "./definition.js";
2
+ import { t as __decorate } from "./decorate.js";
3
+ import { i as Button } from "./definition7.js";
4
+ import { t as Divider } from "./divider.js";
5
+ import { Updates, attr, html, observable, repeat, volatile, when } from "@microsoft/fast-element";
6
+ import { classNames } from "@microsoft/fast-web-utilities";
7
+ import { addDays, format, formatISO, parse } from "date-fns";
8
+ //#region src/shared/picker-field/mixins/calendar-picker.scss?inline
9
+ var calendar_picker_default = ".segments{gap:24px}@media (width>=648px){.segments{display:inline-flex}}.segment{flex-direction:column;gap:12px;display:flex}.segment .header{align-items:center;padding-block:8px;display:flex}.segment .title{flex-grow:1;justify-content:center;display:flex}.segment .title-action{block-size:24px;font:var(--vvd-typography-base-extended);border-radius:8px;padding-inline:8px}.calendar{flex-direction:column;gap:4px;margin-top:8px;display:flex}.calendar .calendar-separator{margin-inline:10px}.calendar .calendar-weekdays{justify-content:center;display:flex}.calendar .calendar-weekday{block-size:16px;font:var(--vvd-typography-base-condensed);justify-content:center;align-items:center;inline-size:40px;display:inline-flex}.calendar .calendar-week{justify-content:center;display:flex}.calendar .calendar-day{aspect-ratio:1;block-size:28px;font:var(--vvd-typography-base);border-radius:50%;justify-content:center;align-items:center;margin-inline:6px;display:inline-flex}.calendar .calendar-day.start,.calendar .calendar-day.end{border:2px solid var(--vvd-color-cta-50);background-color:var(--vvd-color-cta-200)}.calendar:focus-visible .calendar .calendar-day.start,.calendar:focus-visible .calendar .calendar-day.end{border-width:3px}.calendar .calendar-day:before,.calendar .calendar-day:after{z-index:-1;width:20px;height:28px;display:block;position:absolute}.calendar .calendar-day:before{right:50%}.calendar .calendar-day:after{left:50%}.calendar .calendar-day.range:before,.calendar .calendar-day.range:after{background-color:var(--vvd-color-cta-50)}.calendar .calendar-day.range:not(.start):before,.calendar .calendar-day.range:not(.end):after{content:\"\"}.calendar .calendar-day.outside-month,.calendar .calendar-day:disabled{color:var(--vvd-color-neutral-400)}.months-separator{margin-inline:-12px}.month-grid{flex-direction:column;gap:34px;display:flex}.month-grid .months-row{justify-content:center;gap:29px;display:flex}.month-grid .month{aspect-ratio:1;block-size:48px;font:var(--vvd-typography-base-extended);text-transform:uppercase;border-radius:50%;justify-content:center;align-items:center;display:inline-flex}.month-grid .month:disabled{color:var(--vvd-color-neutral-400)}.button{--_connotation-color-primary:var(--vvd-date-picker-accent-primary,var(--vvd-color-canvas-text));--_connotation-color-firm:var(--vvd-date-picker-accent-firm,var(--vvd-color-canvas-text));--_connotation-color-faint:var(--vvd-date-picker-accent-faint,var(--vvd-color-neutral-50));--_connotation-color-soft:var(--vvd-date-picker-accent-soft,var(--vvd-color-neutral-100));--_connotation-color-dim:var(--vvd-date-picker-accent-dim,var(--vvd-color-neutral-200));--_connotation-color-pale:var(--vvd-date-picker-accent-pale,var(--vvd-color-neutral-300));--_appearance-color-text:var(--_connotation-color-firm);--_appearance-color-fill:transparent;--_appearance-color-outline:transparent}@media (hover:hover){.button:hover:where(:not(.disabled,:disabled,.readonly)){--_appearance-color-text:var(--_connotation-color-firm);--_appearance-color-fill:var(--_connotation-color-faint);--_appearance-color-outline:transparent}}.button.hover:where(:not(.disabled,:disabled,.readonly)){--_appearance-color-text:var(--_connotation-color-firm);--_appearance-color-fill:var(--_connotation-color-faint);--_appearance-color-outline:transparent}.button:active:where(:not(.disabled,:disabled)),.button.active:where(:not(.disabled,:disabled)),.button.selected:where(:not(.disabled,:disabled)){--_appearance-color-text:var(--_connotation-color-firm);--_appearance-color-fill:var(--_connotation-color-soft);--_appearance-color-outline:transparent}@media (hover:hover){.button.selected:hover:where(:not(.disabled,:disabled,.readonly)){--_appearance-color-text:var(--_connotation-color-firm);--_appearance-color-fill:var(--_connotation-color-dim);--_appearance-color-outline:transparent}}.button.selected.hover:where(:not(.disabled,:disabled,.readonly)){--_appearance-color-text:var(--_connotation-color-firm);--_appearance-color-fill:var(--_connotation-color-dim);--_appearance-color-outline:transparent}.button.selected:disabled,.button.selected.disabled{--_appearance-color-text:var(--vvd-color-neutral-300);--_appearance-color-fill:var(--vvd-color-neutral-200);--_appearance-color-outline:transparent}.button{background-color:var(--_appearance-color-fill);color:var(--_appearance-color-text);cursor:pointer;border:none;padding:0;position:relative}.button:disabled{cursor:not-allowed}.button:focus:not(.title-action),.button.title-action:focus-visible{--focus-stroke-gap-color:transparent;color:var(--vvd-color-canvas-text);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))}.button:focus:not(.title-action).start,.button:focus:not(.title-action).end,.button.title-action:focus-visible.start,.button.title-action:focus-visible.end{border-width:3px}.button.current{border:1px solid var(--vvd-color-neutral-200)}.button.selected{border:1px solid var(--vvd-color-neutral-900)}";
10
+ //#endregion
11
+ //#region src/shared/datetime/dateStr.ts
12
+ var formatDateStr = (date) => formatISO(date, { representation: "date" });
13
+ var currentDateStr = (now = /* @__PURE__ */ new Date()) => formatDateStr(now);
14
+ var parseDateStr = (dateStr) => {
15
+ const [year, month, day] = dateStr.split("-");
16
+ return new Date(parseInt(year), parseInt(month) - 1, parseInt(day));
15
17
  };
16
- const addDays = (dateStr, days) => {
17
- const date = parseDateStr(dateStr);
18
- const resultDate = new Date(date);
19
- resultDate.setDate(resultDate.getDate() + days);
20
- return formatDateStr(resultDate);
18
+ var addDays$1 = (dateStr, days) => {
19
+ const date = parseDateStr(dateStr);
20
+ const resultDate = new Date(date);
21
+ resultDate.setDate(resultDate.getDate() + days);
22
+ return formatDateStr(resultDate);
21
23
  };
22
- const compareDateStr = (a, b) => a > b ? 1 : a < b ? -1 : 0;
23
- const hasThreeComponents = (components) => components.length === 3;
24
- const allComponentsAreNumbers = (components) => components.every((component) => /^\d+$/.test(component));
25
- const isValidDate = ([yearStr, monthStr, dayStr]) => {
26
- const year = parseInt(yearStr);
27
- const month = parseInt(monthStr) - 1;
28
- const day = parseInt(dayStr);
29
- const date = new Date(year, month, day);
30
- return date.getFullYear() === year && date.getMonth() === month && date.getDate() === day;
24
+ var compareDateStr = (a, b) => a > b ? 1 : a < b ? -1 : 0;
25
+ var hasThreeComponents = (components) => components.length === 3;
26
+ var allComponentsAreNumbers = (components) => components.every((component) => /^\d+$/.test(component));
27
+ var isValidDate = ([yearStr, monthStr, dayStr]) => {
28
+ const year = parseInt(yearStr);
29
+ const month = parseInt(monthStr) - 1;
30
+ const day = parseInt(dayStr);
31
+ const date = new Date(year, month, day);
32
+ return date.getFullYear() === year && date.getMonth() === month && date.getDate() === day;
31
33
  };
32
- const isValidDateStr = (string) => {
33
- const components = string.split("-");
34
- return hasThreeComponents(components) && allComponentsAreNumbers(components) && isValidDate(components);
34
+ var isValidDateStr = (string) => {
35
+ const components = string.split("-");
36
+ return hasThreeComponents(components) && allComponentsAreNumbers(components) && isValidDate(components);
35
37
  };
36
-
37
- const formatPresentationDate = (dateStr, locale) => {
38
- const date = parseDateStr(dateStr);
39
- return format(date, locale.dateFormat);
38
+ //#endregion
39
+ //#region src/shared/datetime/presentationDate.ts
40
+ var formatPresentationDate = (dateStr, locale) => {
41
+ return format(parseDateStr(dateStr), locale.dateFormat);
40
42
  };
41
- const parsePresentationDate = (presentationDate, locale) => {
42
- const date = parse(presentationDate, locale.dateFormat, /* @__PURE__ */ new Date());
43
- return formatDateStr(date);
43
+ /**
44
+ * Parse a presentation date, which is the locale specific format (e.g. DD/MM/YYYY for en-GB).
45
+ * Accepts partial dates, e.g. 1/1/2021 will be parsed as 01/01/2021.
46
+ * Will throw if the date is can't be parsed
47
+ */
48
+ var parsePresentationDate = (presentationDate, locale) => {
49
+ return formatDateStr(parse(presentationDate, locale.dateFormat, /* @__PURE__ */ new Date()));
44
50
  };
45
-
46
- const getCurrentMonth = (now = /* @__PURE__ */ new Date()) => ({
47
- month: now.getMonth(),
48
- year: now.getFullYear()
51
+ //#endregion
52
+ //#region src/shared/datetime/month.ts
53
+ var getCurrentMonth = (now = /* @__PURE__ */ new Date()) => ({
54
+ month: now.getMonth(),
55
+ year: now.getFullYear()
49
56
  });
50
- const monthOfDate = (dateStr) => {
51
- const date = parseDateStr(dateStr);
52
- return { month: date.getMonth(), year: date.getFullYear() };
57
+ var monthOfDate = (dateStr) => {
58
+ const date = parseDateStr(dateStr);
59
+ return {
60
+ month: date.getMonth(),
61
+ year: date.getFullYear()
62
+ };
53
63
  };
54
- const addMonths = ({ month, year }, months) => {
55
- const date = new Date(year, month);
56
- date.setMonth(date.getMonth() + months);
57
- return { month: date.getMonth(), year: date.getFullYear() };
64
+ var addMonths = ({ month, year }, months) => {
65
+ const date = new Date(year, month);
66
+ date.setMonth(date.getMonth() + months);
67
+ return {
68
+ month: date.getMonth(),
69
+ year: date.getFullYear()
70
+ };
58
71
  };
59
- const compareMonths = (a, b) => a.year === b.year ? a.month - b.month : a.year - b.year;
60
- const areMonthsEqual = (a, b) => compareMonths(a, b) === 0;
61
- const monthToStr = ({ month, year }) => `${year.toString().padStart(4, "0")}-${(month + 1).toString().padStart(2, "0")}`;
62
-
63
- const yearOfDate = (dateStr) => {
64
- const date = parseDateStr(dateStr);
65
- return date.getFullYear();
72
+ var compareMonths = (a, b) => a.year === b.year ? a.month - b.month : a.year - b.year;
73
+ var areMonthsEqual = (a, b) => compareMonths(a, b) === 0;
74
+ var monthToStr = ({ month, year }) => `${year.toString().padStart(4, "0")}-${(month + 1).toString().padStart(2, "0")}`;
75
+ //#endregion
76
+ //#region src/shared/datetime/year.ts
77
+ var yearOfDate = (dateStr) => {
78
+ return parseDateStr(dateStr).getFullYear();
66
79
  };
67
-
68
- const MonthsPerRow = 4;
69
- const buildMonthPickerGrid = (year, locale) => {
70
- const grid = [];
71
- let row = [];
72
- for (let i = 0; i < 12; i++) {
73
- const month = { month: i, year };
74
- row.push({
75
- label: locale.months.shorthand[i],
76
- monthName: locale.months.name[i],
77
- month
78
- });
79
- if (row.length === MonthsPerRow) {
80
- grid.push(row);
81
- row = [];
82
- }
83
- }
84
- return grid;
80
+ var buildMonthPickerGrid = (year, locale) => {
81
+ const grid = [];
82
+ let row = [];
83
+ for (let i = 0; i < 12; i++) {
84
+ const month = {
85
+ month: i,
86
+ year
87
+ };
88
+ row.push({
89
+ label: locale.months.shorthand[i],
90
+ monthName: locale.months.name[i],
91
+ month
92
+ });
93
+ if (row.length === 4) {
94
+ grid.push(row);
95
+ row = [];
96
+ }
97
+ }
98
+ return grid;
85
99
  };
86
-
87
- const getWeekdays = (locale) => {
88
- const firstDayOfWeek = locale.firstDayOfWeek;
89
- const localeWeekdayToNative = (day) => (day + firstDayOfWeek) % 7;
90
- const days = [];
91
- for (let i = 0; i < 7; i++) {
92
- days.push({
93
- name: locale.weekdays.name[localeWeekdayToNative(i)],
94
- shortName: locale.weekdays.shorthand[localeWeekdayToNative(i)]
95
- });
96
- }
97
- return days;
100
+ //#endregion
101
+ //#region src/shared/picker-field/mixins/calendar-segments/calendarGrid.ts
102
+ var getWeekdays = (locale) => {
103
+ const firstDayOfWeek = locale.firstDayOfWeek;
104
+ const localeWeekdayToNative = (day) => (day + firstDayOfWeek) % 7;
105
+ const days = [];
106
+ for (let i = 0; i < 7; i++) days.push({
107
+ name: locale.weekdays.name[localeWeekdayToNative(i)],
108
+ shortName: locale.weekdays.shorthand[localeWeekdayToNative(i)]
109
+ });
110
+ return days;
98
111
  };
99
- const gridDate = (date, isOutsideMonth2) => ({
100
- date: formatDateStr(date),
101
- label: `${date.getDate()}`,
102
- isOutsideMonth: isOutsideMonth2
112
+ var gridDate = (date, isOutsideMonth) => ({
113
+ date: formatDateStr(date),
114
+ label: `${date.getDate()}`,
115
+ isOutsideMonth
103
116
  });
104
117
  function isOutsideMonth(dayIndexInMonth, daysInMonth) {
105
- return dayIndexInMonth < 0 || dayIndexInMonth >= daysInMonth;
118
+ return dayIndexInMonth < 0 || dayIndexInMonth >= daysInMonth;
106
119
  }
107
- const buildDateGrid = ({ month, year }, getDay) => {
108
- const grid = [];
109
- const firstDay = new Date(year, month, 1);
110
- const lastDay = new Date(year, month + 1, 0);
111
- const firstDayInWeek = getDay(firstDay);
112
- const daysInMonth = lastDay.getDate();
113
- const daysOutsideMonthInLastWeek = 7 - getDay(lastDay);
114
- const totalDaysInCalendar = daysInMonth + firstDayInWeek + daysOutsideMonthInLastWeek;
115
- let week = [];
116
- for (let i = 0; i < totalDaysInCalendar; i++) {
117
- const dayIndexInMonth = i - firstDayInWeek;
118
- week.push(
119
- gridDate(
120
- addDays$1(firstDay, dayIndexInMonth),
121
- isOutsideMonth(dayIndexInMonth, daysInMonth)
122
- )
123
- );
124
- if (week.length === 7) {
125
- grid.push(week);
126
- week = [];
127
- }
128
- }
129
- return grid;
120
+ var buildDateGrid = ({ month, year }, getDay) => {
121
+ const grid = [];
122
+ const firstDay = new Date(year, month, 1);
123
+ const lastDay = new Date(year, month + 1, 0);
124
+ const firstDayInWeek = getDay(firstDay);
125
+ const daysInMonth = lastDay.getDate();
126
+ const daysOutsideMonthInLastWeek = 7 - getDay(lastDay);
127
+ const totalDaysInCalendar = daysInMonth + firstDayInWeek + daysOutsideMonthInLastWeek;
128
+ let week = [];
129
+ for (let i = 0; i < totalDaysInCalendar; i++) {
130
+ const dayIndexInMonth = i - firstDayInWeek;
131
+ week.push(gridDate(addDays(firstDay, dayIndexInMonth), isOutsideMonth(dayIndexInMonth, daysInMonth)));
132
+ if (week.length === 7) {
133
+ grid.push(week);
134
+ week = [];
135
+ }
136
+ }
137
+ return grid;
130
138
  };
131
- const buildCalendarGrid = (month, locale) => {
132
- const { firstDayOfWeek } = locale;
133
- const getShiftedDay = (date) => (date.getDay() - firstDayOfWeek + 7) % 7;
134
- return {
135
- weekdays: getWeekdays(locale),
136
- grid: buildDateGrid(month, getShiftedDay)
137
- };
139
+ var buildCalendarGrid = (month, locale) => {
140
+ const { firstDayOfWeek } = locale;
141
+ const getShiftedDay = (date) => (date.getDay() - firstDayOfWeek + 7) % 7;
142
+ return {
143
+ weekdays: getWeekdays(locale),
144
+ grid: buildDateGrid(month, getShiftedDay)
145
+ };
138
146
  };
139
-
140
- var __defProp$1 = Object.defineProperty;
141
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
142
- var __decorateClass$1 = (decorators, target, key, kind) => {
143
- var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
144
- for (var i = decorators.length - 1, decorator; i >= 0; i--)
145
- if (decorator = decorators[i])
146
- result = (kind ? decorator(target, key, result) : decorator(result)) || result;
147
- if (kind && result) __defProp$1(target, key, result);
148
- return result;
149
- };
150
- const CalendarPicker = (Base) => {
151
- class CalendarPickerElement extends Base {
152
- // --- Core ---
153
- constructor(...args) {
154
- super(...args);
155
- this._selectedMonth = getCurrentMonth();
156
- /**
157
- * Today's date.
158
- * @internal
159
- */
160
- this._currentDate = currentDateStr();
161
- /**
162
- * Today's month.
163
- * @internal
164
- */
165
- this._currentMonth = getCurrentMonth();
166
- this._numCalendars = 1;
167
- // --- Date picker ---
168
- /**
169
- * @internal
170
- */
171
- this._hideDatesOutsideMonth = false;
172
- this._lastFocussedDate = null;
173
- this._monthPickerYear = null;
174
- this._lastFocussedMonth = null;
175
- this.value = "";
176
- }
177
- /**
178
- * @internal
179
- */
180
- _adjustSelectedMonthToEnsureVisibilityOf(date) {
181
- const month = monthOfDate(date);
182
- const firstDisplayedMonth = this._selectedMonth;
183
- const lastDisplayedMonth = addMonths(
184
- this._selectedMonth,
185
- this._numCalendars - 1
186
- );
187
- if (compareMonths(month, firstDisplayedMonth) < 0) {
188
- this._selectedMonth = month;
189
- return true;
190
- } else if (compareMonths(month, lastDisplayedMonth) > 0) {
191
- this._selectedMonth = addMonths(month, 1 - this._numCalendars);
192
- return true;
193
- }
194
- return false;
195
- }
196
- /**
197
- * @internal
198
- */
199
- _isDateInValidRange(date) {
200
- return (!this._resolvedMinDate || compareDateStr(date, this._resolvedMinDate) >= 0) && (!this._resolvedMaxDate || compareDateStr(date, this._resolvedMaxDate) <= 0);
201
- }
202
- #isMonthAfterValidRange(month) {
203
- return this._resolvedMaxDate && compareMonths(month, monthOfDate(this._resolvedMaxDate)) > 0;
204
- }
205
- #isMonthBeforeValidRange(month) {
206
- return this._resolvedMinDate && compareMonths(month, monthOfDate(this._resolvedMinDate)) < 0;
207
- }
208
- /**
209
- * @internal
210
- */
211
- _isMonthInValidRange(month) {
212
- return !(this.#isMonthBeforeValidRange(month) || this.#isMonthAfterValidRange(month));
213
- }
214
- /**
215
- * @internal
216
- */
217
- _closePopup(restoreFocusToTextField = true) {
218
- super._closePopup(restoreFocusToTextField);
219
- this._monthPickerYear = null;
220
- }
221
- /**
222
- * @internal
223
- */
224
- _onPickerButtonClick() {
225
- super._onPickerButtonClick();
226
- if (this._popupOpen) {
227
- Updates.process();
228
- const tabbableDate = this._tabbableDate;
229
- if (tabbableDate)
230
- this.shadowRoot.querySelector(
231
- `[data-date="${tabbableDate}"]`
232
- ).focus();
233
- }
234
- }
235
- // --- Calendar header ---
236
- /**
237
- * @internal
238
- */
239
- _onTitleActionClick() {
240
- if (this._inMonthPicker) {
241
- this._monthPickerYear = null;
242
- } else {
243
- this._monthPickerYear = this._selectedMonth.year;
244
- }
245
- }
246
- get _isPrevYearDisabled() {
247
- const currentYear = this._inMonthPicker ? this._monthPickerYear : this._selectedMonth.year;
248
- const prevYear = currentYear - 1;
249
- return this._resolvedMinDate && prevYear < yearOfDate(this._resolvedMinDate);
250
- }
251
- /**
252
- * @internal
253
- */
254
- _onPrevYearClick() {
255
- if (this._inMonthPicker) {
256
- this._monthPickerYear = this._monthPickerYear - 1;
257
- } else {
258
- this._selectedMonth = {
259
- year: this._selectedMonth.year - 1,
260
- month: this._selectedMonth.month
261
- };
262
- }
263
- }
264
- get _isNextYearDisabled() {
265
- const currentYear = this._inMonthPicker ? this._monthPickerYear : this._selectedMonth.year;
266
- const nextYear = currentYear + 1;
267
- return this._resolvedMaxDate && nextYear > yearOfDate(this._resolvedMaxDate);
268
- }
269
- /**
270
- * @internal
271
- */
272
- _onNextYearClick() {
273
- if (this._inMonthPicker) {
274
- this._monthPickerYear = this._monthPickerYear + 1;
275
- } else {
276
- this._selectedMonth = {
277
- year: this._selectedMonth.year + 1,
278
- month: this._selectedMonth.month
279
- };
280
- }
281
- }
282
- /**
283
- * @internal
284
- */
285
- get _isPrevMonthDisabled() {
286
- return this.#isMonthBeforeValidRange(addMonths(this._selectedMonth, -1));
287
- }
288
- /**
289
- * @internal
290
- */
291
- _onPrevMonthClick() {
292
- this._selectedMonth = addMonths(this._selectedMonth, -1);
293
- }
294
- /**
295
- * @internal
296
- */
297
- get _isNextMonthDisabled() {
298
- return this.#isMonthAfterValidRange(addMonths(this._selectedMonth, 1));
299
- }
300
- /**
301
- * @internal
302
- */
303
- _onNextMonthClick() {
304
- this._selectedMonth = addMonths(this._selectedMonth, 1);
305
- }
306
- /**
307
- * @internal
308
- */
309
- get _segments() {
310
- const segments = [];
311
- if (this._inMonthPicker) {
312
- segments.push({
313
- id: 0,
314
- type: "month-picker",
315
- title: `${this._monthPickerYear}`,
316
- titleClickable: true,
317
- titleAriaLabel: this.locale.calendarPicker.showCalendarForMonthLabel(
318
- `${this.locale.calendarPicker.months.name[this._selectedMonth.month]} ${this._selectedMonth.year}`
319
- ),
320
- prevYearButton: true,
321
- nextYearButton: true,
322
- months: buildMonthPickerGrid(
323
- this._monthPickerYear,
324
- this.locale.calendarPicker
325
- )
326
- });
327
- } else {
328
- for (let i = 0; i < this._numCalendars; i++) {
329
- const month = addMonths(this._selectedMonth, i);
330
- const isSingle = this._numCalendars === 1;
331
- const isFirst = i === 0;
332
- const isLast = i === this._numCalendars - 1;
333
- segments.push({
334
- id: i,
335
- type: "calendar",
336
- title: `${this.locale.calendarPicker.months.name[month.month]} ${month.year}`,
337
- titleClickable: isSingle,
338
- titleAriaLabel: this.locale.calendarPicker.changeMonthLabel(
339
- `${this.locale.calendarPicker.months.name[month.month]} ${month.year}`
340
- ),
341
- prevYearButton: isFirst && isSingle,
342
- prevMonthButton: isFirst,
343
- nextMonthButton: isLast,
344
- nextYearButton: isLast && isSingle,
345
- calendar: buildCalendarGrid(month, this.locale.calendarPicker)
346
- });
347
- }
348
- }
349
- return segments;
350
- }
351
- /**
352
- * @internal
353
- */
354
- _isDateSelected(_) {
355
- return false;
356
- }
357
- /**
358
- * @internal
359
- * @private
360
- */
361
- _isDateInSelectedRange(_) {
362
- return false;
363
- }
364
- /**
365
- * @internal
366
- */
367
- _isDateRangeStart(_) {
368
- return false;
369
- }
370
- /**
371
- * @internal
372
- */
373
- _isDateRangeEnd(_) {
374
- return false;
375
- }
376
- /**
377
- * @internal
378
- */
379
- _onDateMouseEnter(_) {
380
- }
381
- /**
382
- * @internal
383
- */
384
- _onDateMouseLeave(_) {
385
- }
386
- /**
387
- * Handle keydown on a date in the calendar.
388
- * @internal
389
- */
390
- _onDateKeydown(date, event) {
391
- let newDate = null;
392
- if (event.key === "ArrowUp") {
393
- newDate = addDays(date, -7);
394
- } else if (event.key === "ArrowDown") {
395
- newDate = addDays(date, 7);
396
- } else if (event.key === "ArrowLeft") {
397
- newDate = addDays(date, -1);
398
- } else if (event.key === "ArrowRight") {
399
- newDate = addDays(date, 1);
400
- }
401
- if (newDate && this._isDateInValidRange(newDate)) {
402
- if (this._adjustSelectedMonthToEnsureVisibilityOf(newDate)) {
403
- Updates.process();
404
- }
405
- this._dialogEl.querySelector(
406
- `[data-date="${newDate}"]`
407
- ).focus();
408
- return false;
409
- }
410
- return true;
411
- }
412
- /**
413
- * @internal
414
- */
415
- _onDateFocus(date) {
416
- this._lastFocussedDate = date;
417
- }
418
- get _tabbableDate() {
419
- const datesInSegments = this._segments.filter(
420
- (segment) => segment.type === "calendar"
421
- ).flatMap((segment) => segment.calendar.grid.flat().map((d) => d.date));
422
- const candidates = [
423
- this._lastFocussedDate,
424
- ...this._getSelectedDates(),
425
- currentDateStr(),
426
- ...datesInSegments
427
- ];
428
- const firstVisibleMonth = this._selectedMonth;
429
- const lastVisibleMonth = addMonths(
430
- this._selectedMonth,
431
- this._numCalendars - 1
432
- );
433
- return candidates.find(
434
- (date) => date && compareMonths(monthOfDate(date), firstVisibleMonth) >= 0 && compareMonths(monthOfDate(date), lastVisibleMonth) <= 0 && this._isDateInValidRange(date)
435
- ) ?? null;
436
- }
437
- /**
438
- * @internal
439
- */
440
- get _inMonthPicker() {
441
- return this._monthPickerYear !== null;
442
- }
443
- /**
444
- * Handle month selected in the month picker.
445
- * @internal
446
- */
447
- _onMonthClick(month) {
448
- this._selectedMonth = month;
449
- this._monthPickerYear = null;
450
- }
451
- /**
452
- * Handle keydown on a month in the month picker.
453
- * @internal
454
- */
455
- _onMonthKeydown(month, event) {
456
- let newMonth = null;
457
- if (event.key === "ArrowUp") {
458
- newMonth = addMonths(month, -MonthsPerRow);
459
- } else if (event.key === "ArrowDown") {
460
- newMonth = addMonths(month, MonthsPerRow);
461
- } else if (event.key === "ArrowLeft") {
462
- newMonth = addMonths(month, -1);
463
- } else if (event.key === "ArrowRight") {
464
- newMonth = addMonths(month, 1);
465
- }
466
- if (newMonth && this._isMonthInValidRange(newMonth)) {
467
- if (newMonth.year !== this._monthPickerYear) {
468
- this._monthPickerYear = newMonth.year;
469
- Updates.process();
470
- }
471
- this._dialogEl.querySelector(
472
- `[data-month="${monthToStr(newMonth)}"]`
473
- ).focus();
474
- return false;
475
- }
476
- return true;
477
- }
478
- /**
479
- * @internal
480
- */
481
- _onMonthFocus(month) {
482
- this._lastFocussedMonth = month;
483
- }
484
- get _tabbableMonth() {
485
- const monthsInSegments = this._segments.filter(
486
- (segments) => segments.type === "month-picker"
487
- ).flatMap((segment) => segment.months.flat().map((c) => c.month));
488
- const candidates = [
489
- this._lastFocussedMonth,
490
- this._selectedMonth,
491
- getCurrentMonth(),
492
- ...monthsInSegments
493
- ];
494
- return candidates.find(
495
- (month) => month && month.year === this._monthPickerYear && this._isMonthInValidRange(month)
496
- ) ?? null;
497
- }
498
- }
499
- __decorateClass$1([
500
- observable
501
- ], CalendarPickerElement.prototype, "_selectedMonth", 2);
502
- __decorateClass$1([
503
- volatile
504
- ], CalendarPickerElement.prototype, "_isPrevYearDisabled", 1);
505
- __decorateClass$1([
506
- volatile
507
- ], CalendarPickerElement.prototype, "_isNextYearDisabled", 1);
508
- __decorateClass$1([
509
- observable
510
- ], CalendarPickerElement.prototype, "_numCalendars", 2);
511
- __decorateClass$1([
512
- observable
513
- ], CalendarPickerElement.prototype, "_lastFocussedDate", 2);
514
- __decorateClass$1([
515
- volatile
516
- ], CalendarPickerElement.prototype, "_tabbableDate", 1);
517
- __decorateClass$1([
518
- observable
519
- ], CalendarPickerElement.prototype, "_monthPickerYear", 2);
520
- __decorateClass$1([
521
- observable
522
- ], CalendarPickerElement.prototype, "_lastFocussedMonth", 2);
523
- __decorateClass$1([
524
- volatile
525
- ], CalendarPickerElement.prototype, "_tabbableMonth", 1);
526
- return CalendarPickerElement;
527
- };
528
-
529
- var __defProp = Object.defineProperty;
530
- var __decorateClass = (decorators, target, key, kind) => {
531
- var result = void 0 ;
532
- for (var i = decorators.length - 1, decorator; i >= 0; i--)
533
- if (decorator = decorators[i])
534
- result = (decorator(target, key, result) ) || result;
535
- if (result) __defProp(target, key, result);
536
- return result;
147
+ //#endregion
148
+ //#region src/shared/picker-field/mixins/calendar-picker.ts
149
+ /**
150
+ * Mixin for pickers that show a calendar. Subclasses need to override the
151
+ * abstract methods to control the calendar.
152
+ */
153
+ var CalendarPicker = (Base) => {
154
+ class CalendarPickerElement extends Base {
155
+ /**
156
+ * @internal
157
+ */
158
+ _adjustSelectedMonthToEnsureVisibilityOf(date) {
159
+ const month = monthOfDate(date);
160
+ const firstDisplayedMonth = this._selectedMonth;
161
+ const lastDisplayedMonth = addMonths(this._selectedMonth, this._numCalendars - 1);
162
+ if (compareMonths(month, firstDisplayedMonth) < 0) {
163
+ this._selectedMonth = month;
164
+ return true;
165
+ } else if (compareMonths(month, lastDisplayedMonth) > 0) {
166
+ this._selectedMonth = addMonths(month, 1 - this._numCalendars);
167
+ return true;
168
+ }
169
+ return false;
170
+ }
171
+ /**
172
+ * @internal
173
+ */
174
+ _isDateInValidRange(date) {
175
+ return (!this._resolvedMinDate || compareDateStr(date, this._resolvedMinDate) >= 0) && (!this._resolvedMaxDate || compareDateStr(date, this._resolvedMaxDate) <= 0);
176
+ }
177
+ #isMonthAfterValidRange(month) {
178
+ return this._resolvedMaxDate && compareMonths(month, monthOfDate(this._resolvedMaxDate)) > 0;
179
+ }
180
+ #isMonthBeforeValidRange(month) {
181
+ return this._resolvedMinDate && compareMonths(month, monthOfDate(this._resolvedMinDate)) < 0;
182
+ }
183
+ /**
184
+ * @internal
185
+ */
186
+ _isMonthInValidRange(month) {
187
+ return !(this.#isMonthBeforeValidRange(month) || this.#isMonthAfterValidRange(month));
188
+ }
189
+ constructor(...args) {
190
+ super(...args);
191
+ this._selectedMonth = getCurrentMonth();
192
+ this._currentDate = currentDateStr();
193
+ this._currentMonth = getCurrentMonth();
194
+ this._numCalendars = 1;
195
+ this._hideDatesOutsideMonth = false;
196
+ this._lastFocussedDate = null;
197
+ this._monthPickerYear = null;
198
+ this._lastFocussedMonth = null;
199
+ this.value = "";
200
+ }
201
+ /**
202
+ * @internal
203
+ */
204
+ _closePopup(restoreFocusToTextField = true) {
205
+ super._closePopup(restoreFocusToTextField);
206
+ this._monthPickerYear = null;
207
+ }
208
+ /**
209
+ * @internal
210
+ */
211
+ _onPickerButtonClick() {
212
+ super._onPickerButtonClick();
213
+ if (this._popupOpen) {
214
+ Updates.process();
215
+ const tabbableDate = this._tabbableDate;
216
+ if (tabbableDate) this.shadowRoot.querySelector(`[data-date="${tabbableDate}"]`).focus();
217
+ }
218
+ }
219
+ /**
220
+ * @internal
221
+ */
222
+ _onTitleActionClick() {
223
+ if (this._inMonthPicker) this._monthPickerYear = null;
224
+ else this._monthPickerYear = this._selectedMonth.year;
225
+ }
226
+ /**
227
+ * @internal
228
+ */
229
+ get _isPrevYearDisabled() {
230
+ const prevYear = (this._inMonthPicker ? this._monthPickerYear : this._selectedMonth.year) - 1;
231
+ return this._resolvedMinDate && prevYear < yearOfDate(this._resolvedMinDate);
232
+ }
233
+ /**
234
+ * @internal
235
+ */
236
+ _onPrevYearClick() {
237
+ if (this._inMonthPicker) this._monthPickerYear = this._monthPickerYear - 1;
238
+ else this._selectedMonth = {
239
+ year: this._selectedMonth.year - 1,
240
+ month: this._selectedMonth.month
241
+ };
242
+ }
243
+ /**
244
+ * @internal
245
+ */
246
+ get _isNextYearDisabled() {
247
+ const nextYear = (this._inMonthPicker ? this._monthPickerYear : this._selectedMonth.year) + 1;
248
+ return this._resolvedMaxDate && nextYear > yearOfDate(this._resolvedMaxDate);
249
+ }
250
+ /**
251
+ * @internal
252
+ */
253
+ _onNextYearClick() {
254
+ if (this._inMonthPicker) this._monthPickerYear = this._monthPickerYear + 1;
255
+ else this._selectedMonth = {
256
+ year: this._selectedMonth.year + 1,
257
+ month: this._selectedMonth.month
258
+ };
259
+ }
260
+ /**
261
+ * @internal
262
+ */
263
+ get _isPrevMonthDisabled() {
264
+ return this.#isMonthBeforeValidRange(addMonths(this._selectedMonth, -1));
265
+ }
266
+ /**
267
+ * @internal
268
+ */
269
+ _onPrevMonthClick() {
270
+ this._selectedMonth = addMonths(this._selectedMonth, -1);
271
+ }
272
+ /**
273
+ * @internal
274
+ */
275
+ get _isNextMonthDisabled() {
276
+ return this.#isMonthAfterValidRange(addMonths(this._selectedMonth, 1));
277
+ }
278
+ /**
279
+ * @internal
280
+ */
281
+ _onNextMonthClick() {
282
+ this._selectedMonth = addMonths(this._selectedMonth, 1);
283
+ }
284
+ /**
285
+ * @internal
286
+ */
287
+ get _segments() {
288
+ const segments = [];
289
+ if (this._inMonthPicker) segments.push({
290
+ id: 0,
291
+ type: "month-picker",
292
+ title: `${this._monthPickerYear}`,
293
+ titleClickable: true,
294
+ titleAriaLabel: this.locale.calendarPicker.showCalendarForMonthLabel(`${this.locale.calendarPicker.months.name[this._selectedMonth.month]} ${this._selectedMonth.year}`),
295
+ prevYearButton: true,
296
+ nextYearButton: true,
297
+ months: buildMonthPickerGrid(this._monthPickerYear, this.locale.calendarPicker)
298
+ });
299
+ else for (let i = 0; i < this._numCalendars; i++) {
300
+ const month = addMonths(this._selectedMonth, i);
301
+ const isSingle = this._numCalendars === 1;
302
+ const isFirst = i === 0;
303
+ const isLast = i === this._numCalendars - 1;
304
+ segments.push({
305
+ id: i,
306
+ type: "calendar",
307
+ title: `${this.locale.calendarPicker.months.name[month.month]} ${month.year}`,
308
+ titleClickable: isSingle,
309
+ titleAriaLabel: this.locale.calendarPicker.changeMonthLabel(`${this.locale.calendarPicker.months.name[month.month]} ${month.year}`),
310
+ prevYearButton: isFirst && isSingle,
311
+ prevMonthButton: isFirst,
312
+ nextMonthButton: isLast,
313
+ nextYearButton: isLast && isSingle,
314
+ calendar: buildCalendarGrid(month, this.locale.calendarPicker)
315
+ });
316
+ }
317
+ return segments;
318
+ }
319
+ /**
320
+ * @internal
321
+ */
322
+ _isDateSelected(_) {
323
+ return false;
324
+ }
325
+ /**
326
+ * @internal
327
+ * @private
328
+ */
329
+ _isDateInSelectedRange(_) {
330
+ return false;
331
+ }
332
+ /**
333
+ * @internal
334
+ */
335
+ _isDateRangeStart(_) {
336
+ return false;
337
+ }
338
+ /**
339
+ * @internal
340
+ */
341
+ _isDateRangeEnd(_) {
342
+ return false;
343
+ }
344
+ /**
345
+ * @internal
346
+ */
347
+ _onDateMouseEnter(_) {}
348
+ /**
349
+ * @internal
350
+ */
351
+ _onDateMouseLeave(_) {}
352
+ /**
353
+ * Handle keydown on a date in the calendar.
354
+ * @internal
355
+ */
356
+ _onDateKeydown(date, event) {
357
+ let newDate = null;
358
+ if (event.key === "ArrowUp") newDate = addDays$1(date, -7);
359
+ else if (event.key === "ArrowDown") newDate = addDays$1(date, 7);
360
+ else if (event.key === "ArrowLeft") newDate = addDays$1(date, -1);
361
+ else if (event.key === "ArrowRight") newDate = addDays$1(date, 1);
362
+ if (newDate && this._isDateInValidRange(newDate)) {
363
+ if (this._adjustSelectedMonthToEnsureVisibilityOf(newDate)) Updates.process();
364
+ this._dialogEl.querySelector(`[data-date="${newDate}"]`).focus();
365
+ return false;
366
+ }
367
+ return true;
368
+ }
369
+ /**
370
+ * @internal
371
+ */
372
+ _onDateFocus(date) {
373
+ this._lastFocussedDate = date;
374
+ }
375
+ /**
376
+ * Only one date should be in the tab order at a time (tab roving).
377
+ * @internal
378
+ */
379
+ get _tabbableDate() {
380
+ const datesInSegments = this._segments.filter((segment) => segment.type === "calendar").flatMap((segment) => segment.calendar.grid.flat().map((d) => d.date));
381
+ const candidates = [
382
+ this._lastFocussedDate,
383
+ ...this._getSelectedDates(),
384
+ currentDateStr(),
385
+ ...datesInSegments
386
+ ];
387
+ const firstVisibleMonth = this._selectedMonth;
388
+ const lastVisibleMonth = addMonths(this._selectedMonth, this._numCalendars - 1);
389
+ return candidates.find((date) => date && compareMonths(monthOfDate(date), firstVisibleMonth) >= 0 && compareMonths(monthOfDate(date), lastVisibleMonth) <= 0 && this._isDateInValidRange(date)) ?? null;
390
+ }
391
+ /**
392
+ * @internal
393
+ */
394
+ get _inMonthPicker() {
395
+ return this._monthPickerYear !== null;
396
+ }
397
+ /**
398
+ * Handle month selected in the month picker.
399
+ * @internal
400
+ */
401
+ _onMonthClick(month) {
402
+ this._selectedMonth = month;
403
+ this._monthPickerYear = null;
404
+ }
405
+ /**
406
+ * Handle keydown on a month in the month picker.
407
+ * @internal
408
+ */
409
+ _onMonthKeydown(month, event) {
410
+ let newMonth = null;
411
+ if (event.key === "ArrowUp") newMonth = addMonths(month, -4);
412
+ else if (event.key === "ArrowDown") newMonth = addMonths(month, 4);
413
+ else if (event.key === "ArrowLeft") newMonth = addMonths(month, -1);
414
+ else if (event.key === "ArrowRight") newMonth = addMonths(month, 1);
415
+ if (newMonth && this._isMonthInValidRange(newMonth)) {
416
+ if (newMonth.year !== this._monthPickerYear) {
417
+ this._monthPickerYear = newMonth.year;
418
+ Updates.process();
419
+ }
420
+ this._dialogEl.querySelector(`[data-month="${monthToStr(newMonth)}"]`).focus();
421
+ return false;
422
+ }
423
+ return true;
424
+ }
425
+ /**
426
+ * @internal
427
+ */
428
+ _onMonthFocus(month) {
429
+ this._lastFocussedMonth = month;
430
+ }
431
+ /**
432
+ * Only one month should be in the tab order at a time (tab roving).
433
+ * @internal
434
+ */
435
+ get _tabbableMonth() {
436
+ const monthsInSegments = this._segments.filter((segments) => segments.type === "month-picker").flatMap((segment) => segment.months.flat().map((c) => c.month));
437
+ return [
438
+ this._lastFocussedMonth,
439
+ this._selectedMonth,
440
+ getCurrentMonth(),
441
+ ...monthsInSegments
442
+ ].find((month) => month && month.year === this._monthPickerYear && this._isMonthInValidRange(month)) ?? null;
443
+ }
444
+ }
445
+ __decorate([observable], CalendarPickerElement.prototype, "_selectedMonth", void 0);
446
+ __decorate([volatile], CalendarPickerElement.prototype, "_isPrevYearDisabled", null);
447
+ __decorate([volatile], CalendarPickerElement.prototype, "_isNextYearDisabled", null);
448
+ __decorate([observable], CalendarPickerElement.prototype, "_numCalendars", void 0);
449
+ __decorate([observable], CalendarPickerElement.prototype, "_lastFocussedDate", void 0);
450
+ __decorate([volatile], CalendarPickerElement.prototype, "_tabbableDate", null);
451
+ __decorate([observable], CalendarPickerElement.prototype, "_monthPickerYear", void 0);
452
+ __decorate([observable], CalendarPickerElement.prototype, "_lastFocussedMonth", void 0);
453
+ __decorate([volatile], CalendarPickerElement.prototype, "_tabbableMonth", null);
454
+ return CalendarPickerElement;
537
455
  };
538
- const ValidDateFilter = {
539
- fromView: (value) => {
540
- if (value && isValidDateStr(value)) {
541
- return value;
542
- }
543
- return "";
544
- },
545
- toView(value) {
546
- return value;
547
- }
456
+ //#endregion
457
+ //#region src/shared/picker-field/mixins/min-max-calendar-picker.ts
458
+ var ValidDateFilter = {
459
+ fromView: (value) => {
460
+ if (value && isValidDateStr(value)) return value;
461
+ return "";
462
+ },
463
+ toView(value) {
464
+ return value;
465
+ }
548
466
  };
549
- const MinMaxCalendarPicker = (SuperClass) => {
550
- class MinMaxDatePickerElement extends SuperClass {
551
- /**
552
- * @internal
553
- */
554
- minChanged(_, newMin) {
555
- /* v8 ignore if -- @preserve */
556
- if (this.proxy instanceof HTMLInputElement) {
557
- this.proxy.min = newMin;
558
- this.validate();
559
- }
560
- }
561
- /**
562
- * @internal
563
- */
564
- get _resolvedMinDate() {
565
- return this.min;
566
- }
567
- /**
568
- * @internal
569
- */
570
- maxChanged(_, newMax) {
571
- /* v8 ignore if -- @preserve */
572
- if (this.proxy instanceof HTMLInputElement) {
573
- this.proxy.max = newMax;
574
- this.validate();
575
- }
576
- }
577
- /**
578
- * The latest accepted date.
579
- * @internal
580
- */
581
- get _resolvedMaxDate() {
582
- return this.max;
583
- }
584
- constructor(...args) {
585
- super(...args);
586
- this.min = "";
587
- this.max = "";
588
- }
589
- }
590
- __decorateClass([
591
- attr({ converter: ValidDateFilter })
592
- ], MinMaxDatePickerElement.prototype, "min");
593
- __decorateClass([
594
- attr({ converter: ValidDateFilter })
595
- ], MinMaxDatePickerElement.prototype, "max");
596
- return MinMaxDatePickerElement;
467
+ /**
468
+ * Mixin for calendar pickers where min/max is a date.
469
+ */
470
+ var MinMaxCalendarPicker = (SuperClass) => {
471
+ class MinMaxDatePickerElement extends SuperClass {
472
+ /**
473
+ * @internal
474
+ */
475
+ minChanged(_, newMin) {
476
+ /* v8 ignore if -- @preserve */
477
+ if (this.proxy instanceof HTMLInputElement) {
478
+ this.proxy.min = newMin;
479
+ this.validate();
480
+ }
481
+ }
482
+ /**
483
+ * @internal
484
+ */
485
+ get _resolvedMinDate() {
486
+ return this.min;
487
+ }
488
+ /**
489
+ * @internal
490
+ */
491
+ maxChanged(_, newMax) {
492
+ /* v8 ignore if -- @preserve */
493
+ if (this.proxy instanceof HTMLInputElement) {
494
+ this.proxy.max = newMax;
495
+ this.validate();
496
+ }
497
+ }
498
+ /**
499
+ * The latest accepted date.
500
+ * @internal
501
+ */
502
+ get _resolvedMaxDate() {
503
+ return this.max;
504
+ }
505
+ constructor(...args) {
506
+ super(...args);
507
+ this.min = "";
508
+ this.max = "";
509
+ }
510
+ }
511
+ __decorate([attr({ converter: ValidDateFilter })], MinMaxDatePickerElement.prototype, "min", void 0);
512
+ __decorate([attr({ converter: ValidDateFilter })], MinMaxDatePickerElement.prototype, "max", void 0);
513
+ return MinMaxDatePickerElement;
597
514
  };
598
-
515
+ //#endregion
516
+ //#region src/shared/picker-field/mixins/calendar-picker.template.ts
599
517
  function renderDialogHeader(context) {
600
- const buttonTag = context.tagFor(Button);
601
- return html`<div class="header" tabindex="-1">
602
- ${when(
603
- (x) => x.prevYearButton,
604
- html`
518
+ const buttonTag = context.tagFor(Button);
519
+ return html`<div class="header" tabindex="-1">
520
+ ${when((x) => x.prevYearButton, html`
605
521
  <${buttonTag}
606
522
  tabindex='1'
607
523
  class='vwc-button'
@@ -611,11 +527,8 @@ function renderDialogHeader(context) {
611
527
  ?disabled='${(_, c) => c.parent._isPrevYearDisabled}'
612
528
  @click='${(_, c) => c.parent._onPrevYearClick()}'
613
529
  ></${buttonTag}>
614
- `
615
- )}
616
- ${when(
617
- (x) => x.prevMonthButton,
618
- html`
530
+ `)}
531
+ ${when((x) => x.prevMonthButton, html`
619
532
  <${buttonTag}
620
533
  tabindex='1'
621
534
  class='vwc-button'
@@ -625,12 +538,9 @@ function renderDialogHeader(context) {
625
538
  ?disabled='${(_, c) => c.parent._isPrevMonthDisabled}'
626
539
  @click='${(_, c) => c.parent._onPrevMonthClick()}'
627
540
  ></${buttonTag}>
628
- `
629
- )}
541
+ `)}
630
542
  <div class="title">
631
- ${when(
632
- (x) => x.titleClickable,
633
- html`
543
+ ${when((x) => x.titleClickable, html`
634
544
  <button
635
545
  tabindex="1"
636
546
  id="${(x) => `grid-label-${x.id}`}"
@@ -641,11 +551,8 @@ function renderDialogHeader(context) {
641
551
  >
642
552
  ${(x) => x.title}
643
553
  </button>
644
- `
645
- )}
646
- ${when(
647
- (x) => !x.titleClickable,
648
- html`
554
+ `)}
555
+ ${when((x) => !x.titleClickable, html`
649
556
  <div
650
557
  id="${(x) => `grid-label-${x.id}`}"
651
558
  class="title-action"
@@ -653,13 +560,10 @@ function renderDialogHeader(context) {
653
560
  >
654
561
  ${(x) => x.title}
655
562
  </div>
656
- `
657
- )}
563
+ `)}
658
564
  </div>
659
565
 
660
- ${when(
661
- (x) => x.nextMonthButton,
662
- html`
566
+ ${when((x) => x.nextMonthButton, html`
663
567
  <${buttonTag}
664
568
  tabindex='1'
665
569
  class='vwc-button'
@@ -669,11 +573,8 @@ function renderDialogHeader(context) {
669
573
  ?disabled='${(_, c) => c.parent._isNextMonthDisabled}'
670
574
  @click='${(_, c) => c.parent._onNextMonthClick()}'
671
575
  ></${buttonTag}>
672
- `
673
- )}
674
- ${when(
675
- (x) => x.nextYearButton,
676
- html`
576
+ `)}
577
+ ${when((x) => x.nextYearButton, html`
677
578
  <${buttonTag}
678
579
  tabindex='1'
679
580
  class='vwc-button'
@@ -683,23 +584,20 @@ function renderDialogHeader(context) {
683
584
  ?disabled='${(_, c) => c.parent._isNextYearDisabled}'
684
585
  @click='${(_, c) => c.parent._onNextYearClick()}'
685
586
  ></${buttonTag}>
686
- `
687
- )}
587
+ `)}
688
588
  </div>`;
689
589
  }
690
590
  function renderCalendarGrid(context) {
691
- const dividerTag = context.tagFor(Divider);
692
- const visuallyHiddenTag = context.tagFor(VisuallyHidden);
693
- return html`
591
+ const dividerTag = context.tagFor(Divider);
592
+ const visuallyHiddenTag = context.tagFor(VisuallyHidden);
593
+ return html`
694
594
  <div
695
595
  class='calendar'
696
596
  role='grid'
697
597
  aria-labelledby='${(x) => `grid-label-${x.id}`}'
698
598
  >
699
599
  <div class='calendar-weekdays' role='row'>
700
- ${repeat(
701
- (x) => x.calendar.weekdays,
702
- html`
600
+ ${repeat((x) => x.calendar.weekdays, html`
703
601
  <div
704
602
  class="calendar-weekday"
705
603
  role="columnheader"
@@ -707,104 +605,42 @@ function renderCalendarGrid(context) {
707
605
  >
708
606
  ${(x) => x.shortName}
709
607
  </div>
710
- `
711
- )}
608
+ `)}
712
609
  </div>
713
610
  <${dividerTag} class='calendar-separator' role='presentation'></${dividerTag}>
714
- ${repeat(
715
- (x) => x.calendar.grid,
716
- html` <div class="calendar-week" role="row">
717
- ${repeat(
718
- (x) => x,
719
- html`
720
- ${when(
721
- (x, c) => c.parentContext.parentContext.parent._hideDatesOutsideMonth && x.isOutsideMonth,
722
- html`<div class="calendar-day"></div>`
723
- )}
724
- ${when(
725
- (x, c) => !c.parentContext.parentContext.parent._hideDatesOutsideMonth || !x.isOutsideMonth,
726
- html` <span role="gridcell">
611
+ ${repeat((x) => x.calendar.grid, html` <div class="calendar-week" role="row">
612
+ ${repeat((x) => x, html`
613
+ ${when((x, c) => c.parentContext.parentContext.parent._hideDatesOutsideMonth && x.isOutsideMonth, html`<div class="calendar-day"></div>`)}
614
+ ${when((x, c) => !c.parentContext.parentContext.parent._hideDatesOutsideMonth || !x.isOutsideMonth, html` <span role="gridcell">
727
615
  <button
728
- class="${(x, c) => classNames(
729
- "calendar-day",
730
- "button",
731
- [
732
- "current",
733
- x.date === c.parentContext.parentContext.parent._currentDate
734
- ],
735
- [
736
- "selected",
737
- c.parentContext.parentContext.parent._isDateSelected(
738
- x.date
739
- )
740
- ],
741
- [
742
- "range",
743
- c.parentContext.parentContext.parent._isDateInSelectedRange(
744
- x.date
745
- )
746
- ],
747
- [
748
- "start",
749
- c.parentContext.parentContext.parent._isDateRangeStart(
750
- x.date
751
- )
752
- ],
753
- [
754
- "end",
755
- c.parentContext.parentContext.parent._isDateRangeEnd(
756
- x.date
757
- )
758
- ],
759
- ["outside-month", x.isOutsideMonth]
760
- )}"
761
- ?disabled="${(x, c) => !c.parentContext.parentContext.parent._isDateInValidRange(
762
- x.date
763
- )}"
616
+ class="${(x, c) => classNames("calendar-day", "button", ["current", x.date === c.parentContext.parentContext.parent._currentDate], ["selected", c.parentContext.parentContext.parent._isDateSelected(x.date)], ["range", c.parentContext.parentContext.parent._isDateInSelectedRange(x.date)], ["start", c.parentContext.parentContext.parent._isDateRangeStart(x.date)], ["end", c.parentContext.parentContext.parent._isDateRangeEnd(x.date)], ["outside-month", x.isOutsideMonth])}"
617
+ ?disabled="${(x, c) => !c.parentContext.parentContext.parent._isDateInValidRange(x.date)}"
764
618
  tabindex="${(x, c) => x.date === c.parentContext.parentContext.parent._tabbableDate ? 1 : -1}"
765
619
  data-date="${(x) => x.date}"
766
620
  @click="${(x, c) => c.parentContext.parentContext.parent._onDateClick(x.date)}"
767
621
  @focus="${(x, c) => c.parentContext.parentContext.parent._onDateFocus(x.date)}"
768
- @mouseenter="${(x, c) => c.parentContext.parentContext.parent._onDateMouseEnter(
769
- x.date
770
- )}"
771
- @mouseleave="${(x, c) => c.parentContext.parentContext.parent._onDateMouseLeave(
772
- x.date
773
- )}"
774
- @keydown="${(x, c) => c.parentContext.parentContext.parent._onDateKeydown(
775
- x.date,
776
- c.event
777
- )}"
622
+ @mouseenter="${(x, c) => c.parentContext.parentContext.parent._onDateMouseEnter(x.date)}"
623
+ @mouseleave="${(x, c) => c.parentContext.parentContext.parent._onDateMouseLeave(x.date)}"
624
+ @keydown="${(x, c) => c.parentContext.parentContext.parent._onDateKeydown(x.date, c.event)}"
778
625
  >
779
626
  ${(x) => x.label}
780
627
  <${visuallyHiddenTag}>${(x, c) => {
781
- const picker = c.parentContext.parentContext.parent;
782
- const announcements = [];
783
- if (x.date === picker._currentDate) {
784
- announcements.push(
785
- picker.locale.calendarPicker.todayLabel
786
- );
787
- }
788
- if (picker._isDateAriaSelected(x.date)) {
789
- announcements.push(
790
- picker.locale.calendarPicker.selectedLabel
791
- );
792
- }
793
- return announcements.join(" ");
794
- }}</${visuallyHiddenTag}>
628
+ const picker = c.parentContext.parentContext.parent;
629
+ const announcements = [];
630
+ if (x.date === picker._currentDate) announcements.push(picker.locale.calendarPicker.todayLabel);
631
+ if (picker._isDateAriaSelected(x.date)) announcements.push(picker.locale.calendarPicker.selectedLabel);
632
+ return announcements.join(" ");
633
+ }}</${visuallyHiddenTag}>
795
634
  </button>
796
- </span>`
797
- )}
635
+ </span>`)}
798
636
  </div>
799
- `
800
- )}
801
- </div>`
802
- )}`;
637
+ `)}
638
+ </div>`)}`;
803
639
  }
804
640
  function renderMonthPickerGrid(context) {
805
- const dividerTag = context.tagFor(Divider);
806
- const visuallyHiddenTag = context.tagFor(VisuallyHidden);
807
- return html`
641
+ const dividerTag = context.tagFor(Divider);
642
+ const visuallyHiddenTag = context.tagFor(VisuallyHidden);
643
+ return html`
808
644
  <${dividerTag}
809
645
  class='months-separator'
810
646
  role='presentation'
@@ -814,95 +650,45 @@ function renderMonthPickerGrid(context) {
814
650
  role='grid'
815
651
  aria-labelledby='grid-label'
816
652
  >
817
- ${repeat(
818
- (x) => x.months,
819
- html`
653
+ ${repeat((x) => x.months, html`
820
654
  <div class="months-row" role="row">
821
- ${repeat(
822
- (x) => x,
823
- html`
655
+ ${repeat((x) => x, html`
824
656
  <span role="gridcell">
825
657
  <button
826
- class="${(x, c) => classNames(
827
- "month",
828
- "button",
829
- [
830
- "current",
831
- areMonthsEqual(
832
- x.month,
833
- c.parentContext.parentContext.parent._currentMonth
834
- )
835
- ],
836
- [
837
- "selected",
838
- areMonthsEqual(
839
- x.month,
840
- c.parentContext.parentContext.parent._selectedMonth
841
- )
842
- ]
843
- )}"
844
- tabindex="${(x, c) => c.parentContext.parentContext.parent._tabbableMonth && areMonthsEqual(
845
- x.month,
846
- c.parentContext.parentContext.parent._tabbableMonth
847
- ) ? 1 : -1}"
658
+ class="${(x, c) => classNames("month", "button", ["current", areMonthsEqual(x.month, c.parentContext.parentContext.parent._currentMonth)], ["selected", areMonthsEqual(x.month, c.parentContext.parentContext.parent._selectedMonth)])}"
659
+ tabindex="${(x, c) => c.parentContext.parentContext.parent._tabbableMonth && areMonthsEqual(x.month, c.parentContext.parentContext.parent._tabbableMonth) ? 1 : -1}"
848
660
  aria-label="${(x) => x.monthName}"
849
661
  data-month="${(x) => monthToStr(x.month)}"
850
- ?disabled="${(x, c) => !c.parentContext.parentContext.parent._isMonthInValidRange(
851
- x.month
852
- )}"
853
- @click="${(x, c) => c.parentContext.parentContext.parent._onMonthClick(
854
- x.month
855
- )}"
856
- @focus="${(x, c) => c.parentContext.parentContext.parent._onMonthFocus(
857
- x.month
858
- )}"
859
- @keydown="${(x, c) => c.parentContext.parentContext.parent._onMonthKeydown(
860
- x.month,
861
- c.event
862
- )}"
662
+ ?disabled="${(x, c) => !c.parentContext.parentContext.parent._isMonthInValidRange(x.month)}"
663
+ @click="${(x, c) => c.parentContext.parentContext.parent._onMonthClick(x.month)}"
664
+ @focus="${(x, c) => c.parentContext.parentContext.parent._onMonthFocus(x.month)}"
665
+ @keydown="${(x, c) => c.parentContext.parentContext.parent._onMonthKeydown(x.month, c.event)}"
863
666
  >
864
667
  ${(x) => x.label}
865
668
  <${visuallyHiddenTag}>${(x, c) => {
866
- const picker = c.parentContext.parentContext.parent;
867
- const announcements = [];
868
- if (areMonthsEqual(x.month, picker._currentMonth)) {
869
- announcements.push(picker.locale.calendarPicker.currentLabel);
870
- }
871
- if (areMonthsEqual(x.month, picker._selectedMonth)) {
872
- announcements.push(
873
- picker.locale.calendarPicker.selectedLabel
874
- );
875
- }
876
- return announcements.join(" ");
877
- }}</${visuallyHiddenTag}>
669
+ const picker = c.parentContext.parentContext.parent;
670
+ const announcements = [];
671
+ if (areMonthsEqual(x.month, picker._currentMonth)) announcements.push(picker.locale.calendarPicker.currentLabel);
672
+ if (areMonthsEqual(x.month, picker._selectedMonth)) announcements.push(picker.locale.calendarPicker.selectedLabel);
673
+ return announcements.join(" ");
674
+ }}</${visuallyHiddenTag}>
878
675
  </button>
879
676
  </span>
880
- `
881
- )}
677
+ `)}
882
678
  </div>
883
- `
884
- )}
679
+ `)}
885
680
  </div>`;
886
681
  }
887
- const CalendarPickerTemplate = (context) => {
888
- return html`
682
+ var CalendarPickerTemplate = (context) => {
683
+ return html`
889
684
  <div class="segments">
890
- ${repeat(
891
- (x) => x._segments,
892
- html` <div class="segment">
685
+ ${repeat((x) => x._segments, html` <div class="segment">
893
686
  ${renderDialogHeader(context)}
894
- ${when(
895
- (x) => x.type === "month-picker",
896
- html`${renderMonthPickerGrid(context)}`
897
- )}
898
- ${when(
899
- (x) => x.type === "calendar",
900
- html`${renderCalendarGrid(context)}`
901
- )}
902
- </div>`
903
- )}
687
+ ${when((x) => x.type === "month-picker", html`${renderMonthPickerGrid(context)}`)}
688
+ ${when((x) => x.type === "calendar", html`${renderCalendarGrid(context)}`)}
689
+ </div>`)}
904
690
  </div>
905
691
  `;
906
692
  };
907
-
908
- export { CalendarPicker as C, MinMaxCalendarPicker as M, ValidDateFilter as V, CalendarPickerTemplate as a, compareDateStr as b, calendarStyles as c, currentDateStr as d, formatPresentationDate as f, isValidDateStr as i, parsePresentationDate as p };
693
+ //#endregion
694
+ export { formatPresentationDate as a, currentDateStr as c, CalendarPicker as i, isValidDateStr as l, MinMaxCalendarPicker as n, parsePresentationDate as o, ValidDateFilter as r, compareDateStr as s, CalendarPickerTemplate as t, calendar_picker_default as u };