@universal-material/web 3.7.2 → 3.9.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 (453) hide show
  1. package/.claude-plugin/plugin.json +12 -0
  2. package/README.md +12 -0
  3. package/app-bar/top-app-bar.d.ts +20 -4
  4. package/app-bar/top-app-bar.d.ts.map +1 -1
  5. package/app-bar/top-app-bar.js +84 -33
  6. package/app-bar/top-app-bar.js.map +1 -1
  7. package/app-bar/top-app-bar.styles.d.ts.map +1 -1
  8. package/app-bar/top-app-bar.styles.js +18 -1
  9. package/app-bar/top-app-bar.styles.js.map +1 -1
  10. package/badge/badge.d.ts +5 -2
  11. package/badge/badge.d.ts.map +1 -1
  12. package/badge/badge.js +9 -6
  13. package/badge/badge.js.map +1 -1
  14. package/badge/badge.styles.d.ts.map +1 -1
  15. package/badge/badge.styles.js +1 -0
  16. package/badge/badge.styles.js.map +1 -1
  17. package/bundle.min.js +5480 -2170
  18. package/button/button-base.d.ts +9 -2
  19. package/button/button-base.d.ts.map +1 -1
  20. package/button/button-base.js +12 -5
  21. package/button/button-base.js.map +1 -1
  22. package/button/button-set.d.ts +3 -3
  23. package/button/button-set.d.ts.map +1 -1
  24. package/button/button-set.js +7 -7
  25. package/button/button-set.js.map +1 -1
  26. package/button/button.d.ts +10 -7
  27. package/button/button.d.ts.map +1 -1
  28. package/button/button.js +17 -14
  29. package/button/button.js.map +1 -1
  30. package/button/fab-menu-color-context.d.ts +2 -2
  31. package/button/fab-menu-color-context.d.ts.map +1 -1
  32. package/button/fab-menu-color-context.js.map +1 -1
  33. package/button/fab-menu-item.d.ts +3 -3
  34. package/button/fab-menu-item.d.ts.map +1 -1
  35. package/button/fab-menu-item.js +11 -11
  36. package/button/fab-menu-item.js.map +1 -1
  37. package/button/fab-menu.d.ts +20 -5
  38. package/button/fab-menu.d.ts.map +1 -1
  39. package/button/fab-menu.js +48 -11
  40. package/button/fab-menu.js.map +1 -1
  41. package/button/fab.d.ts +22 -7
  42. package/button/fab.d.ts.map +1 -1
  43. package/button/fab.js +49 -11
  44. package/button/fab.js.map +1 -1
  45. package/button/icon-button.d.ts +13 -7
  46. package/button/icon-button.d.ts.map +1 -1
  47. package/button/icon-button.js +14 -8
  48. package/button/icon-button.js.map +1 -1
  49. package/button/toggle-button.d.ts +6 -6
  50. package/button/toggle-button.d.ts.map +1 -1
  51. package/button/toggle-button.js +10 -10
  52. package/button/toggle-button.js.map +1 -1
  53. package/button-field/button-field.d.ts +6 -3
  54. package/button-field/button-field.d.ts.map +1 -1
  55. package/button-field/button-field.js +12 -9
  56. package/button-field/button-field.js.map +1 -1
  57. package/calendar/calendar-adapter.d.ts +3 -0
  58. package/calendar/calendar-adapter.d.ts.map +1 -1
  59. package/calendar/calendar-adapter.js.map +1 -1
  60. package/calendar/calendar-base.d.ts +18 -1
  61. package/calendar/calendar-base.d.ts.map +1 -1
  62. package/calendar/calendar-base.js +188 -25
  63. package/calendar/calendar-base.js.map +1 -1
  64. package/calendar/calendar.d.ts +6 -2
  65. package/calendar/calendar.d.ts.map +1 -1
  66. package/calendar/calendar.js +12 -8
  67. package/calendar/calendar.js.map +1 -1
  68. package/calendar/default-calendar-adapter.d.ts +3 -0
  69. package/calendar/default-calendar-adapter.d.ts.map +1 -1
  70. package/calendar/default-calendar-adapter.js +17 -5
  71. package/calendar/default-calendar-adapter.js.map +1 -1
  72. package/calendar/range-calendar.d.ts +2 -2
  73. package/calendar/range-calendar.d.ts.map +1 -1
  74. package/calendar/range-calendar.js +9 -9
  75. package/calendar/range-calendar.js.map +1 -1
  76. package/card/card-content.d.ts +7 -2
  77. package/card/card-content.d.ts.map +1 -1
  78. package/card/card-content.js +10 -5
  79. package/card/card-content.js.map +1 -1
  80. package/card/card-media.d.ts +5 -2
  81. package/card/card-media.d.ts.map +1 -1
  82. package/card/card-media.js +8 -5
  83. package/card/card-media.js.map +1 -1
  84. package/card/card.d.ts +4 -4
  85. package/card/card.d.ts.map +1 -1
  86. package/card/card.js +5 -5
  87. package/card/card.js.map +1 -1
  88. package/checkbox/checkbox-list-item.d.ts +4 -4
  89. package/checkbox/checkbox-list-item.d.ts.map +1 -1
  90. package/checkbox/checkbox-list-item.js +5 -5
  91. package/checkbox/checkbox-list-item.js.map +1 -1
  92. package/checkbox/checkbox.d.ts +10 -3
  93. package/checkbox/checkbox.d.ts.map +1 -1
  94. package/checkbox/checkbox.js +14 -7
  95. package/checkbox/checkbox.js.map +1 -1
  96. package/chip/chip-set.d.ts +3 -3
  97. package/chip/chip-set.d.ts.map +1 -1
  98. package/chip/chip-set.js +6 -6
  99. package/chip/chip-set.js.map +1 -1
  100. package/chip/chip.d.ts +8 -5
  101. package/chip/chip.d.ts.map +1 -1
  102. package/chip/chip.js +23 -20
  103. package/chip/chip.js.map +1 -1
  104. package/chip-field/chip-field.d.ts +6 -3
  105. package/chip-field/chip-field.d.ts.map +1 -1
  106. package/chip-field/chip-field.js +9 -9
  107. package/chip-field/chip-field.js.map +1 -1
  108. package/collapse/collapse.d.ts +26 -0
  109. package/collapse/collapse.d.ts.map +1 -0
  110. package/collapse/collapse.js +62 -0
  111. package/collapse/collapse.js.map +1 -0
  112. package/collapse/collapse.styles.d.ts +2 -0
  113. package/collapse/collapse.styles.d.ts.map +1 -0
  114. package/collapse/collapse.styles.js +8 -0
  115. package/collapse/collapse.styles.js.map +1 -0
  116. package/config.js.map +1 -1
  117. package/css/universal-material.css +2 -1
  118. package/css/universal-material.min.css +2 -1
  119. package/custom-elements.json +17175 -9684
  120. package/datepicker/datepicker.d.ts +54 -3
  121. package/datepicker/datepicker.d.ts.map +1 -1
  122. package/datepicker/datepicker.js +202 -6
  123. package/datepicker/datepicker.js.map +1 -1
  124. package/datepicker/datepicker.styles.d.ts.map +1 -1
  125. package/datepicker/datepicker.styles.js +25 -0
  126. package/datepicker/datepicker.styles.js.map +1 -1
  127. package/datepicker/format.d.ts +19 -0
  128. package/datepicker/format.d.ts.map +1 -0
  129. package/datepicker/format.js +47 -0
  130. package/datepicker/format.js.map +1 -0
  131. package/datepicker/range-datepicker.d.ts +58 -0
  132. package/datepicker/range-datepicker.d.ts.map +1 -0
  133. package/datepicker/range-datepicker.js +212 -0
  134. package/datepicker/range-datepicker.js.map +1 -0
  135. package/dialog/confirm-dialog-builder.d.ts +3 -3
  136. package/dialog/confirm-dialog-builder.d.ts.map +1 -1
  137. package/dialog/confirm-dialog-builder.js.map +1 -1
  138. package/dialog/dialog-builder.d.ts +5 -4
  139. package/dialog/dialog-builder.d.ts.map +1 -1
  140. package/dialog/dialog-builder.js +10 -3
  141. package/dialog/dialog-builder.js.map +1 -1
  142. package/dialog/dialog-button-def.d.ts +3 -3
  143. package/dialog/dialog-button-def.d.ts.map +1 -1
  144. package/dialog/dialog-button-def.js.map +1 -1
  145. package/dialog/dialog.d.ts +10 -2
  146. package/dialog/dialog.d.ts.map +1 -1
  147. package/dialog/dialog.js +22 -14
  148. package/dialog/dialog.js.map +1 -1
  149. package/dialog/message-dialog-builder.d.ts +2 -2
  150. package/dialog/message-dialog-builder.d.ts.map +1 -1
  151. package/dialog/message-dialog-builder.js.map +1 -1
  152. package/elevation/elevation.d.ts +2 -2
  153. package/elevation/elevation.d.ts.map +1 -1
  154. package/elevation/elevation.js +4 -4
  155. package/elevation/elevation.js.map +1 -1
  156. package/expansion-panel/expansion-panel-container.d.ts +24 -0
  157. package/expansion-panel/expansion-panel-container.d.ts.map +1 -0
  158. package/expansion-panel/expansion-panel-container.js +54 -0
  159. package/expansion-panel/expansion-panel-container.js.map +1 -0
  160. package/expansion-panel/expansion-panel-container.styles.d.ts +2 -0
  161. package/expansion-panel/expansion-panel-container.styles.d.ts.map +1 -0
  162. package/expansion-panel/expansion-panel-container.styles.js +9 -0
  163. package/expansion-panel/expansion-panel-container.styles.js.map +1 -0
  164. package/expansion-panel/expansion-panel.d.ts +37 -0
  165. package/expansion-panel/expansion-panel.d.ts.map +1 -0
  166. package/expansion-panel/expansion-panel.js +89 -0
  167. package/expansion-panel/expansion-panel.js.map +1 -0
  168. package/expansion-panel/expansion-panel.styles.d.ts +2 -0
  169. package/expansion-panel/expansion-panel.styles.d.ts.map +1 -0
  170. package/expansion-panel/expansion-panel.styles.js +66 -0
  171. package/expansion-panel/expansion-panel.styles.js.map +1 -0
  172. package/field/field-base.d.ts +17 -3
  173. package/field/field-base.d.ts.map +1 -1
  174. package/field/field-base.js +30 -20
  175. package/field/field-base.js.map +1 -1
  176. package/field/field-defaults-context.d.ts +2 -2
  177. package/field/field-defaults-context.d.ts.map +1 -1
  178. package/field/field-defaults-context.js.map +1 -1
  179. package/field/field-defaults.d.ts +3 -3
  180. package/field/field-defaults.d.ts.map +1 -1
  181. package/field/field-defaults.js.map +1 -1
  182. package/field/field-variant.d.ts +1 -1
  183. package/field/field-variant.d.ts.map +1 -1
  184. package/field/field-variant.js.map +1 -1
  185. package/field/field.d.ts +7 -3
  186. package/field/field.d.ts.map +1 -1
  187. package/field/field.js +10 -6
  188. package/field/field.js.map +1 -1
  189. package/icon/icon.d.ts +2 -2
  190. package/icon/icon.d.ts.map +1 -1
  191. package/icon/icon.js +4 -4
  192. package/icon/icon.js.map +1 -1
  193. package/index.d.ts +29 -1
  194. package/index.d.ts.map +1 -1
  195. package/index.js +29 -1
  196. package/index.js.map +1 -1
  197. package/list/list-item.d.ts +19 -2
  198. package/list/list-item.d.ts.map +1 -1
  199. package/list/list-item.js +29 -6
  200. package/list/list-item.js.map +1 -1
  201. package/list/list-item.styles.d.ts.map +1 -1
  202. package/list/list-item.styles.js +13 -0
  203. package/list/list-item.styles.js.map +1 -1
  204. package/list/list.d.ts +2 -2
  205. package/list/list.d.ts.map +1 -1
  206. package/list/list.js +4 -4
  207. package/list/list.js.map +1 -1
  208. package/menu/menu-item.d.ts +9 -3
  209. package/menu/menu-item.d.ts.map +1 -1
  210. package/menu/menu-item.js +16 -10
  211. package/menu/menu-item.js.map +1 -1
  212. package/menu/menu.d.ts +18 -2
  213. package/menu/menu.d.ts.map +1 -1
  214. package/menu/menu.js +37 -18
  215. package/menu/menu.js.map +1 -1
  216. package/menu/menu.styles.d.ts.map +1 -1
  217. package/menu/menu.styles.js +5 -0
  218. package/menu/menu.styles.js.map +1 -1
  219. package/navigation/drawer-headline.d.ts +2 -2
  220. package/navigation/drawer-headline.d.ts.map +1 -1
  221. package/navigation/drawer-headline.js +6 -6
  222. package/navigation/drawer-headline.js.map +1 -1
  223. package/navigation/drawer-headline.styles.js +1 -1
  224. package/navigation/drawer-headline.styles.js.map +1 -1
  225. package/navigation/drawer-item.d.ts +3 -3
  226. package/navigation/drawer-item.d.ts.map +1 -1
  227. package/navigation/drawer-item.js +17 -12
  228. package/navigation/drawer-item.js.map +1 -1
  229. package/navigation/drawer.d.ts +2 -2
  230. package/navigation/drawer.d.ts.map +1 -1
  231. package/navigation/drawer.js +4 -4
  232. package/navigation/drawer.js.map +1 -1
  233. package/navigation/side-navigation.d.ts +9 -2
  234. package/navigation/side-navigation.d.ts.map +1 -1
  235. package/navigation/side-navigation.js +15 -8
  236. package/navigation/side-navigation.js.map +1 -1
  237. package/navigation-bar/navigation-bar-item.d.ts +40 -0
  238. package/navigation-bar/navigation-bar-item.d.ts.map +1 -0
  239. package/navigation-bar/navigation-bar-item.js +113 -0
  240. package/navigation-bar/navigation-bar-item.js.map +1 -0
  241. package/navigation-bar/navigation-bar-item.styles.d.ts +2 -0
  242. package/navigation-bar/navigation-bar-item.styles.d.ts.map +1 -0
  243. package/navigation-bar/navigation-bar-item.styles.js +101 -0
  244. package/navigation-bar/navigation-bar-item.styles.js.map +1 -0
  245. package/navigation-bar/navigation-bar.d.ts +40 -0
  246. package/navigation-bar/navigation-bar.d.ts.map +1 -0
  247. package/navigation-bar/navigation-bar.js +85 -0
  248. package/navigation-bar/navigation-bar.js.map +1 -0
  249. package/navigation-bar/navigation-bar.styles.d.ts +2 -0
  250. package/navigation-bar/navigation-bar.styles.d.ts.map +1 -0
  251. package/navigation-bar/navigation-bar.styles.js +44 -0
  252. package/navigation-bar/navigation-bar.styles.js.map +1 -0
  253. package/navigation-rail/navigation-rail-headline.d.ts +23 -0
  254. package/navigation-rail/navigation-rail-headline.d.ts.map +1 -0
  255. package/navigation-rail/navigation-rail-headline.js +28 -0
  256. package/navigation-rail/navigation-rail-headline.js.map +1 -0
  257. package/navigation-rail/navigation-rail-headline.styles.d.ts +2 -0
  258. package/navigation-rail/navigation-rail-headline.styles.d.ts.map +1 -0
  259. package/navigation-rail/navigation-rail-headline.styles.js +19 -0
  260. package/navigation-rail/navigation-rail-headline.styles.js.map +1 -0
  261. package/navigation-rail/navigation-rail-item.d.ts +58 -0
  262. package/navigation-rail/navigation-rail-item.d.ts.map +1 -0
  263. package/navigation-rail/navigation-rail-item.js +160 -0
  264. package/navigation-rail/navigation-rail-item.js.map +1 -0
  265. package/navigation-rail/navigation-rail-item.styles.d.ts +2 -0
  266. package/navigation-rail/navigation-rail-item.styles.d.ts.map +1 -0
  267. package/navigation-rail/navigation-rail-item.styles.js +182 -0
  268. package/navigation-rail/navigation-rail-item.styles.js.map +1 -0
  269. package/navigation-rail/navigation-rail.d.ts +66 -0
  270. package/navigation-rail/navigation-rail.d.ts.map +1 -0
  271. package/navigation-rail/navigation-rail.js +223 -0
  272. package/navigation-rail/navigation-rail.js.map +1 -0
  273. package/navigation-rail/navigation-rail.styles.d.ts +2 -0
  274. package/navigation-rail/navigation-rail.styles.d.ts.map +1 -0
  275. package/navigation-rail/navigation-rail.styles.js +220 -0
  276. package/navigation-rail/navigation-rail.styles.js.map +1 -0
  277. package/overflow-menu/overflow-menu-item.d.ts +8 -0
  278. package/overflow-menu/overflow-menu-item.d.ts.map +1 -1
  279. package/overflow-menu/overflow-menu-item.js +8 -0
  280. package/overflow-menu/overflow-menu-item.js.map +1 -1
  281. package/overflow-menu/overflow-menu.d.ts +8 -2
  282. package/overflow-menu/overflow-menu.d.ts.map +1 -1
  283. package/overflow-menu/overflow-menu.js +10 -1
  284. package/overflow-menu/overflow-menu.js.map +1 -1
  285. package/package.json +21 -5
  286. package/progress/circular-progress.d.ts +9 -2
  287. package/progress/circular-progress.d.ts.map +1 -1
  288. package/progress/circular-progress.js +9 -6
  289. package/progress/circular-progress.js.map +1 -1
  290. package/progress/progress-bar.d.ts +9 -2
  291. package/progress/progress-bar.d.ts.map +1 -1
  292. package/progress/progress-bar.js +9 -6
  293. package/progress/progress-bar.js.map +1 -1
  294. package/radio/radio-list-item.d.ts +4 -4
  295. package/radio/radio-list-item.d.ts.map +1 -1
  296. package/radio/radio-list-item.js +5 -5
  297. package/radio/radio-list-item.js.map +1 -1
  298. package/radio/radio.d.ts +6 -3
  299. package/radio/radio.d.ts.map +1 -1
  300. package/radio/radio.js +9 -6
  301. package/radio/radio.js.map +1 -1
  302. package/ripple/ripple.d.ts +2 -2
  303. package/ripple/ripple.d.ts.map +1 -1
  304. package/ripple/ripple.js +9 -9
  305. package/ripple/ripple.js.map +1 -1
  306. package/scaffold/pane.d.ts +127 -0
  307. package/scaffold/pane.d.ts.map +1 -0
  308. package/scaffold/pane.js +220 -0
  309. package/scaffold/pane.js.map +1 -0
  310. package/scaffold/pane.styles.d.ts +2 -0
  311. package/scaffold/pane.styles.d.ts.map +1 -0
  312. package/scaffold/pane.styles.js +1909 -0
  313. package/scaffold/pane.styles.js.map +1 -0
  314. package/scaffold/scaffold.d.ts +45 -0
  315. package/scaffold/scaffold.d.ts.map +1 -0
  316. package/scaffold/scaffold.js +170 -0
  317. package/scaffold/scaffold.js.map +1 -0
  318. package/scaffold/scaffold.styles.d.ts +2 -0
  319. package/scaffold/scaffold.styles.d.ts.map +1 -0
  320. package/scaffold/scaffold.styles.js +69 -0
  321. package/scaffold/scaffold.styles.js.map +1 -0
  322. package/scaffold/scroll-container-context.d.ts +4 -0
  323. package/scaffold/scroll-container-context.d.ts.map +1 -0
  324. package/scaffold/scroll-container-context.js +3 -0
  325. package/scaffold/scroll-container-context.js.map +1 -0
  326. package/scss/utilities/_divider.scss +4 -0
  327. package/search/search.d.ts +6 -3
  328. package/search/search.d.ts.map +1 -1
  329. package/search/search.js +10 -7
  330. package/search/search.js.map +1 -1
  331. package/search/search.styles.d.ts.map +1 -1
  332. package/search/search.styles.js +7 -2
  333. package/search/search.styles.js.map +1 -1
  334. package/select/option.d.ts +9 -3
  335. package/select/option.d.ts.map +1 -1
  336. package/select/option.js +14 -8
  337. package/select/option.js.map +1 -1
  338. package/select/select-navigation-controller.d.ts +4 -4
  339. package/select/select-navigation-controller.d.ts.map +1 -1
  340. package/select/select-navigation-controller.js.map +1 -1
  341. package/select/select.d.ts +22 -12
  342. package/select/select.d.ts.map +1 -1
  343. package/select/select.js +81 -31
  344. package/select/select.js.map +1 -1
  345. package/shared/button-wrapper.d.ts +4 -1
  346. package/shared/button-wrapper.d.ts.map +1 -1
  347. package/shared/button-wrapper.js +8 -8
  348. package/shared/button-wrapper.js.map +1 -1
  349. package/shared/char-count-text-field/native-text-field-wrapper.d.ts +15 -2
  350. package/shared/char-count-text-field/native-text-field-wrapper.d.ts.map +1 -1
  351. package/shared/char-count-text-field/native-text-field-wrapper.js +16 -6
  352. package/shared/char-count-text-field/native-text-field-wrapper.js.map +1 -1
  353. package/shared/menu-field/menu-field-navigation-controller.d.ts +3 -3
  354. package/shared/menu-field/menu-field-navigation-controller.d.ts.map +1 -1
  355. package/shared/menu-field/menu-field-navigation-controller.js.map +1 -1
  356. package/shared/menu-field/menu-field.d.ts +5 -5
  357. package/shared/menu-field/menu-field.d.ts.map +1 -1
  358. package/shared/menu-field/menu-field.js.map +1 -1
  359. package/shared/selection-control/selection-control-list-item.d.ts +2 -2
  360. package/shared/selection-control/selection-control-list-item.d.ts.map +1 -1
  361. package/shared/selection-control/selection-control-list-item.js +14 -1
  362. package/shared/selection-control/selection-control-list-item.js.map +1 -1
  363. package/shared/selection-control/selection-control.d.ts +10 -1
  364. package/shared/selection-control/selection-control.d.ts.map +1 -1
  365. package/shared/selection-control/selection-control.js +24 -7
  366. package/shared/selection-control/selection-control.js.map +1 -1
  367. package/shared/sets/set-base.d.ts +1 -1
  368. package/shared/sets/set-base.d.ts.map +1 -1
  369. package/shared/sets/set-base.js +2 -2
  370. package/shared/sets/set-base.js.map +1 -1
  371. package/shared/text-field-base/text-field-base.d.ts +37 -2
  372. package/shared/text-field-base/text-field-base.d.ts.map +1 -1
  373. package/shared/text-field-base/text-field-base.js +66 -4
  374. package/shared/text-field-base/text-field-base.js.map +1 -1
  375. package/skills/badge/SKILL.md +43 -0
  376. package/skills/buttons/SKILL.md +115 -0
  377. package/skills/card/SKILL.md +162 -0
  378. package/skills/chips/SKILL.md +95 -0
  379. package/skills/collapse/SKILL.md +37 -0
  380. package/skills/datepicker/SKILL.md +110 -0
  381. package/skills/dialog/SKILL.md +92 -0
  382. package/skills/drawer/SKILL.md +94 -0
  383. package/skills/expansion-panel/SKILL.md +65 -0
  384. package/skills/fab/SKILL.md +79 -0
  385. package/skills/list/SKILL.md +105 -0
  386. package/skills/menu/SKILL.md +120 -0
  387. package/skills/navigation-bar/SKILL.md +87 -0
  388. package/skills/navigation-rail/SKILL.md +127 -0
  389. package/skills/overview/SKILL.md +44 -0
  390. package/skills/progress/SKILL.md +63 -0
  391. package/skills/scaffold/SKILL.md +392 -0
  392. package/skills/search/SKILL.md +65 -0
  393. package/skills/select/SKILL.md +120 -0
  394. package/skills/selection-controls/SKILL.md +88 -0
  395. package/skills/setup/SKILL.md +58 -0
  396. package/skills/slider/SKILL.md +119 -0
  397. package/skills/snackbar/SKILL.md +70 -0
  398. package/skills/tab-bar/SKILL.md +55 -0
  399. package/skills/text-field/SKILL.md +114 -0
  400. package/skills/theming/SKILL.md +80 -0
  401. package/skills/top-app-bar/SKILL.md +64 -0
  402. package/skills/typeahead/SKILL.md +113 -0
  403. package/slider/slider.d.ts +73 -0
  404. package/slider/slider.d.ts.map +1 -0
  405. package/slider/slider.js +506 -0
  406. package/slider/slider.js.map +1 -0
  407. package/slider/slider.styles.d.ts +2 -0
  408. package/slider/slider.styles.d.ts.map +1 -0
  409. package/slider/slider.styles.js +292 -0
  410. package/slider/slider.styles.js.map +1 -0
  411. package/snackbar/snackbar.d.ts +13 -4
  412. package/snackbar/snackbar.d.ts.map +1 -1
  413. package/snackbar/snackbar.js +37 -28
  414. package/snackbar/snackbar.js.map +1 -1
  415. package/snackbar/snackbar.styles.js +1 -1
  416. package/snackbar/snackbar.styles.js.map +1 -1
  417. package/switch/switch-list-item.d.ts +4 -4
  418. package/switch/switch-list-item.d.ts.map +1 -1
  419. package/switch/switch-list-item.js +5 -5
  420. package/switch/switch-list-item.js.map +1 -1
  421. package/switch/switch.d.ts +3 -3
  422. package/switch/switch.d.ts.map +1 -1
  423. package/switch/switch.js +5 -5
  424. package/switch/switch.js.map +1 -1
  425. package/tab-bar/tab-bar.d.ts +9 -6
  426. package/tab-bar/tab-bar.d.ts.map +1 -1
  427. package/tab-bar/tab-bar.js +43 -23
  428. package/tab-bar/tab-bar.js.map +1 -1
  429. package/tab-bar/tab.d.ts +10 -5
  430. package/tab-bar/tab.d.ts.map +1 -1
  431. package/tab-bar/tab.js +14 -9
  432. package/tab-bar/tab.js.map +1 -1
  433. package/text-area/text-area.d.ts +6 -3
  434. package/text-area/text-area.d.ts.map +1 -1
  435. package/text-area/text-area.js +12 -9
  436. package/text-area/text-area.js.map +1 -1
  437. package/text-field/text-field.d.ts +31 -3
  438. package/text-field/text-field.d.ts.map +1 -1
  439. package/text-field/text-field.js +53 -13
  440. package/text-field/text-field.js.map +1 -1
  441. package/typeahead/highlight.d.ts +2 -2
  442. package/typeahead/highlight.d.ts.map +1 -1
  443. package/typeahead/highlight.js +7 -7
  444. package/typeahead/highlight.js.map +1 -1
  445. package/typeahead/typeahead-template-render.d.ts +4 -0
  446. package/typeahead/typeahead-template-render.d.ts.map +1 -1
  447. package/typeahead/typeahead-template-render.js +4 -0
  448. package/typeahead/typeahead-template-render.js.map +1 -1
  449. package/typeahead/typeahead.d.ts +14 -7
  450. package/typeahead/typeahead.d.ts.map +1 -1
  451. package/typeahead/typeahead.js +29 -18
  452. package/typeahead/typeahead.js.map +1 -1
  453. package/vscode.html-custom-data.json +1146 -326
@@ -4,38 +4,87 @@ import { property, state } from 'lit/decorators.js';
4
4
  import { classMap } from 'lit/directives/class-map.js';
5
5
  import { styles } from './calendar-base.styles.js';
6
6
  import { DefaultCalendarAdapter } from './default-calendar-adapter.js';
7
- export class UmCalendarBase extends LitElement {
7
+ export class CalendarBase extends LitElement {
8
8
  static { this.styles = [styles]; }
9
9
  get year() {
10
10
  return this._displayingMonthDate.getFullYear();
11
11
  }
12
12
  set year(year) {
13
- this._displayingMonthDate.setFullYear(year);
14
- this._displayingMonthDate = new Date(this._displayingMonthDate);
13
+ this._displayingMonthDate = new Date(year, this._displayingMonthDate.getMonth(), 1);
15
14
  }
16
15
  get month() {
17
16
  return this._displayingMonthDate.getMonth();
18
17
  }
19
18
  set month(month) {
20
- this._displayingMonthDate.setMonth(month);
21
- this._displayingMonthDate = new Date(this._displayingMonthDate);
19
+ this._displayingMonthDate = new Date(this._displayingMonthDate.getFullYear(), month, 1);
22
20
  }
23
21
  #currentDate;
24
22
  constructor() {
25
23
  super();
26
24
  this.weekDays = [];
25
+ this._firstDayOfWeek = 0;
27
26
  this.dateRenderer = null;
27
+ /**
28
+ * Whether to render dates from the previous and next months that
29
+ * fall inside the displayed weeks
30
+ */
28
31
  this.dateOutsideMonth = false;
32
+ /**
33
+ * Number of years displayed per page in the year picker view.
34
+ */
35
+ this.yearRange = 24;
29
36
  this.#currentDate = new Date();
37
+ this.view = 'day';
38
+ this._yearPageStart = 0;
39
+ /**
40
+ * The BCP 47 locale tag used to format month names and weekdays.
41
+ * When `null`, falls back to the browser's `navigator.language`.
42
+ */
30
43
  this.locale = null;
31
44
  this._innerLocale = navigator.language;
32
45
  this.adapter = new DefaultCalendarAdapter();
46
+ this.#toggleYearView = () => {
47
+ if (this.view === 'day') {
48
+ this._yearPageStart = this.#computeYearPageStart(this.year);
49
+ this.view = 'year';
50
+ return;
51
+ }
52
+ if (this.view === 'month') {
53
+ this._yearPageStart = this.#computeYearPageStart(this.year);
54
+ this.view = 'year';
55
+ return;
56
+ }
57
+ this.view = 'day';
58
+ };
59
+ this.#handlePrevClick = () => {
60
+ if (this.view === 'year') {
61
+ this._yearPageStart -= this.yearRange;
62
+ return;
63
+ }
64
+ if (this.view === 'month') {
65
+ this.year -= 1;
66
+ return;
67
+ }
68
+ this.#addMonth(-1);
69
+ };
70
+ this.#handleNextClick = () => {
71
+ if (this.view === 'year') {
72
+ this._yearPageStart += this.yearRange;
73
+ return;
74
+ }
75
+ if (this.view === 'month') {
76
+ this.year += 1;
77
+ return;
78
+ }
79
+ this.#addMonth(1);
80
+ };
33
81
  this.#currentDate.setHours(0);
34
82
  this.#currentDate.setMinutes(0);
35
83
  this.#currentDate.setSeconds(0);
36
84
  this.#currentDate.setMilliseconds(0);
37
85
  this._displayingMonthDate = new Date(this.#currentDate);
38
86
  this._displayingMonthDate.setDate(1);
87
+ this._yearPageStart = this.#computeYearPageStart(this.year);
39
88
  }
40
89
  connectedCallback() {
41
90
  super.connectedCallback();
@@ -48,14 +97,29 @@ export class UmCalendarBase extends LitElement {
48
97
  this.#setLocaleDependantProperties();
49
98
  });
50
99
  }
100
+ willUpdate(changed) {
101
+ if (changed.has('locale')) {
102
+ this._innerLocale = this.locale ?? navigator.language;
103
+ this.#setLocaleDependantProperties();
104
+ }
105
+ }
51
106
  render() {
52
107
  return html `
53
108
  <div>
54
109
  <u-button-set>
55
- <u-button class="month-button" type="button" variant="text">
56
- ${this.adapter.getMonth(this.#getDisplayingMonthDate())}
110
+ <u-button class="month-button" type="button" variant="text" @click=${this.#toggleYearView}>
111
+ ${this.#getHeaderLabel()}
112
+ <svg
113
+ class="month-button-icon ${this.view !== 'day' ? 'open' : ''}"
114
+ xmlns="http://www.w3.org/2000/svg"
115
+ height="1.5em"
116
+ viewBox="0 -960 960 960"
117
+ width="1.5em"
118
+ fill="currentColor">
119
+ <path d="M480-360 280-560h400L480-360Z" />
120
+ </svg>
57
121
  </u-button>
58
- <u-icon-button class="previous-month-button" @click=${() => this.#addMonth(-1)}>
122
+ <u-icon-button class="previous-month-button" @click=${this.#handlePrevClick}>
59
123
  <svg
60
124
  xmlns="http://www.w3.org/2000/svg"
61
125
  height="1em"
@@ -65,7 +129,7 @@ export class UmCalendarBase extends LitElement {
65
129
  <path d="M560-240 320-480l240-240 56 56-184 184 184 184-56 56Z" />
66
130
  </svg>
67
131
  </u-icon-button>
68
- <u-icon-button @click=${() => this.#addMonth(1)}>
132
+ <u-icon-button @click=${this.#handleNextClick}>
69
133
  <svg
70
134
  xmlns="http://www.w3.org/2000/svg"
71
135
  height="1em"
@@ -77,9 +141,26 @@ export class UmCalendarBase extends LitElement {
77
141
  </u-icon-button>
78
142
  </u-button-set>
79
143
  </div>
144
+ ${this.#renderBody()}
145
+ `;
146
+ }
147
+ #renderBody() {
148
+ if (this.view === 'year') {
149
+ return html `<div class="year-grid">${this.#renderYears()}</div>`;
150
+ }
151
+ if (this.view === 'month') {
152
+ return html `<div class="month-grid">${this.#renderMonths()}</div>`;
153
+ }
154
+ return html `
80
155
  <div class="calendar ${this._getCalendarClassMap()}">${this.#renderWeekDays()}${this.#renderDays()}</div>
81
156
  `;
82
157
  }
158
+ #getHeaderLabel() {
159
+ if (this.view === 'month') {
160
+ return this.adapter.getYear(this.#getDisplayingMonthDate());
161
+ }
162
+ return this.adapter.getMonth(this.#getDisplayingMonthDate());
163
+ }
83
164
  #renderWeekDays() {
84
165
  return this.weekDays.map(weekDay => html `
85
166
  <div class="calendar-item">
@@ -88,15 +169,16 @@ export class UmCalendarBase extends LitElement {
88
169
  `);
89
170
  }
90
171
  #getDisplayingMonthDate() {
91
- return this._getDateFromIsoDate(`${this.year}-${this.month + 1}-1`);
172
+ return new Date(this.year, this.month, 1);
92
173
  }
93
174
  #renderDays() {
94
- const date = new Date(this._displayingMonthDate);
95
- date.setDate(date.getDate() - date.getDay());
96
- const month = this.month;
97
175
  const year = this.year;
176
+ const month = this.month;
177
+ const firstOfMonth = new Date(year, month, 1);
178
+ const diffToFirstDayOfWeek = (firstOfMonth.getDay() - this._firstDayOfWeek + 7) % 7;
179
+ const date = new Date(year, month, 1 - diffToFirstDayOfWeek);
98
180
  const daysTemplates = [];
99
- do {
181
+ for (let row = 0; row < 6; row++) {
100
182
  for (let i = 0; i < 7; i++) {
101
183
  const dateOutsideMonth = date.getMonth() !== month;
102
184
  const dateClasses = this._getSelectedDateClasses(date);
@@ -107,31 +189,98 @@ export class UmCalendarBase extends LitElement {
107
189
  dateClasses['date-outside-month'] = true;
108
190
  }
109
191
  const classes = classMap(dateClasses);
110
- const dateTemplate = dateOutsideMonth && !this.dateOutsideMonth
111
- ? null
112
- : html `
192
+ const renderDate = !dateOutsideMonth || this.dateOutsideMonth;
193
+ const dateTemplate = renderDate
194
+ ? html `
113
195
  <u-ripple></u-ripple>
114
196
  <span class="date">
115
197
  ${this.dateRenderer
116
198
  ? this.dateRenderer(new Date(date), this.adapter.getDay(date))
117
199
  : this.adapter.getDay(date)}
118
200
  </span>
119
- `;
201
+ `
202
+ : null;
203
+ const click = renderDate ? this.#handleDateClick(new Date(date)) : null;
120
204
  daysTemplates.push(html `
121
205
  <div
122
206
  class="calendar-item ${classes}"
123
- @click=${this.#handleDateClick(new Date(date))}>
207
+ @click=${click}>
124
208
  ${dateTemplate}
125
209
  </div>
126
210
  `);
127
211
  date.setDate(date.getDate() + 1);
128
212
  }
129
- } while (date.getMonth() <= month && date.getFullYear() <= year);
213
+ }
130
214
  return daysTemplates;
131
215
  }
216
+ #renderYears() {
217
+ const templates = [];
218
+ const currentYear = this.#currentDate.getFullYear();
219
+ const selectedYear = this.year;
220
+ for (let i = 0; i < this.yearRange; i++) {
221
+ const year = this._yearPageStart + i;
222
+ const classes = classMap({
223
+ 'year-cell': true,
224
+ 'current-year': year === currentYear && year !== selectedYear,
225
+ 'selected-year': year === selectedYear,
226
+ });
227
+ templates.push(html `
228
+ <div class=${classes} @click=${this.#handleYearClick(year)}>
229
+ <span class="year-label">
230
+ <u-ripple></u-ripple>
231
+ ${year}
232
+ </span>
233
+ </div>
234
+ `);
235
+ }
236
+ return templates;
237
+ }
238
+ #renderMonths() {
239
+ const templates = [];
240
+ const currentYear = this.#currentDate.getFullYear();
241
+ const currentMonth = this.#currentDate.getMonth();
242
+ const selectedMonth = this.month;
243
+ const displayedYear = this.year;
244
+ for (let month = 0; month < 12; month++) {
245
+ const isCurrent = displayedYear === currentYear && month === currentMonth;
246
+ const isSelected = month === selectedMonth;
247
+ const classes = classMap({
248
+ 'month-cell': true,
249
+ 'current-month': isCurrent && !isSelected,
250
+ 'selected-month': isSelected,
251
+ });
252
+ templates.push(html `
253
+ <div class=${classes} @click=${this.#handleMonthClick(month)}>
254
+ <span class="month-label">
255
+ <u-ripple></u-ripple>
256
+ ${this.adapter.getMonthShort(month, this._innerLocale)}
257
+ </span>
258
+ </div>
259
+ `);
260
+ }
261
+ return templates;
262
+ }
132
263
  #handleDateClick(date) {
133
264
  return () => this._selectDate(date);
134
265
  }
266
+ #handleYearClick(year) {
267
+ return () => {
268
+ this.year = year;
269
+ this.view = 'month';
270
+ };
271
+ }
272
+ #handleMonthClick(month) {
273
+ return () => {
274
+ this.month = month;
275
+ this.view = 'day';
276
+ };
277
+ }
278
+ #toggleYearView;
279
+ #handlePrevClick;
280
+ #handleNextClick;
281
+ #computeYearPageStart(year) {
282
+ return year - Math.floor(this.yearRange / 2);
283
+ }
135
284
  _getCalendarClassMap() {
136
285
  return null;
137
286
  }
@@ -167,22 +316,36 @@ export class UmCalendarBase extends LitElement {
167
316
  this.month += value;
168
317
  }
169
318
  #setLocaleDependantProperties() {
319
+ this.adapter.locale = this._innerLocale;
170
320
  this.weekDays = this.adapter.getWeekDays(this._innerLocale);
321
+ this._firstDayOfWeek = this.adapter.getFirstDayOfWeek(this._innerLocale);
171
322
  }
172
323
  }
173
324
  __decorate([
174
325
  state()
175
- ], UmCalendarBase.prototype, "weekDays", void 0);
326
+ ], CalendarBase.prototype, "weekDays", void 0);
327
+ __decorate([
328
+ state()
329
+ ], CalendarBase.prototype, "_firstDayOfWeek", void 0);
176
330
  __decorate([
177
331
  state()
178
- ], UmCalendarBase.prototype, "dateRenderer", void 0);
332
+ ], CalendarBase.prototype, "dateRenderer", void 0);
179
333
  __decorate([
180
334
  property({ type: Boolean })
181
- ], UmCalendarBase.prototype, "dateOutsideMonth", void 0);
335
+ ], CalendarBase.prototype, "dateOutsideMonth", void 0);
336
+ __decorate([
337
+ property({ type: Number, attribute: 'year-range' })
338
+ ], CalendarBase.prototype, "yearRange", void 0);
339
+ __decorate([
340
+ state()
341
+ ], CalendarBase.prototype, "_displayingMonthDate", void 0);
342
+ __decorate([
343
+ state()
344
+ ], CalendarBase.prototype, "view", void 0);
182
345
  __decorate([
183
346
  state()
184
- ], UmCalendarBase.prototype, "_displayingMonthDate", void 0);
347
+ ], CalendarBase.prototype, "_yearPageStart", void 0);
185
348
  __decorate([
186
349
  property()
187
- ], UmCalendarBase.prototype, "locale", void 0);
350
+ ], CalendarBase.prototype, "locale", void 0);
188
351
  //# sourceMappingURL=calendar-base.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"calendar-base.js","sourceRoot":"","sources":["../../src/calendar/calendar-base.ts"],"names":[],"mappings":"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","sourcesContent":["import { CSSResultGroup } from '@lit/reactive-element/css-tag';\n\nimport { html, HTMLTemplateResult, LitElement } from 'lit';\nimport { DirectiveResult } from 'lit-html/directive.js';\nimport { ClassMapDirective } from 'lit-html/directives/class-map';\nimport { property, state } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\n\nimport { styles } from './calendar-base.styles.js';\nimport { DefaultCalendarAdapter } from './default-calendar-adapter.js';\n\nexport abstract class UmCalendarBase extends LitElement {\n static override styles: CSSResultGroup = [styles];\n\n @state() weekDays: string[] = [];\n @state() dateRenderer: ((date: Date, day: string) => HTMLElement) | null = null;\n @property({ type: Boolean }) dateOutsideMonth = false;\n\n get year(): number {\n return this._displayingMonthDate.getFullYear();\n }\n\n set year(year: number) {\n this._displayingMonthDate.setFullYear(year);\n this._displayingMonthDate = new Date(this._displayingMonthDate);\n }\n\n get month(): number {\n return this._displayingMonthDate.getMonth();\n }\n\n set month(month: number) {\n this._displayingMonthDate.setMonth(month);\n this._displayingMonthDate = new Date(this._displayingMonthDate);\n }\n\n readonly #currentDate = new Date();\n @state() _displayingMonthDate: Date;\n\n @property() locale: string | null = null;\n _innerLocale: string = navigator.language;\n adapter = new DefaultCalendarAdapter();\n\n protected constructor() {\n super();\n\n this.#currentDate.setHours(0);\n this.#currentDate.setMinutes(0);\n this.#currentDate.setSeconds(0);\n this.#currentDate.setMilliseconds(0);\n this._displayingMonthDate = new Date(this.#currentDate);\n this._displayingMonthDate.setDate(1);\n }\n\n override connectedCallback() {\n super.connectedCallback();\n\n this.#setLocaleDependantProperties();\n\n window.addEventListener('languagechange', () => {\n if (this.locale !== null) {\n return;\n }\n\n this._innerLocale = navigator.language;\n this.#setLocaleDependantProperties();\n });\n }\n\n override render(): HTMLTemplateResult {\n return html`\n <div>\n <u-button-set>\n <u-button class=\"month-button\" type=\"button\" variant=\"text\">\n ${this.adapter.getMonth(this.#getDisplayingMonthDate())}\n </u-button>\n <u-icon-button class=\"previous-month-button\" @click=${() => this.#addMonth(-1)}>\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n height=\"1em\"\n viewBox=\"0 -960 960 960\"\n width=\"1em\"\n fill=\"currentColor\">\n <path d=\"M560-240 320-480l240-240 56 56-184 184 184 184-56 56Z\" />\n </svg>\n </u-icon-button>\n <u-icon-button @click=${() => this.#addMonth(1)}>\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n height=\"1em\"\n viewBox=\"0 -960 960 960\"\n width=\"1em\"\n fill=\"currentColor\">\n <path d=\"M504-480 320-664l56-56 240 240-240 240-56-56 184-184Z\" />\n </svg>\n </u-icon-button>\n </u-button-set>\n </div>\n <div class=\"calendar ${this._getCalendarClassMap()}\">${this.#renderWeekDays()}${this.#renderDays()}</div>\n `;\n }\n\n #renderWeekDays(): HTMLTemplateResult[] {\n return this.weekDays.map(\n weekDay =>\n html`\n <div class=\"calendar-item\">\n <span class=\"week-day\">${weekDay}</span>\n </div>\n `,\n );\n }\n\n #getDisplayingMonthDate(): Date {\n return this._getDateFromIsoDate(`${this.year}-${this.month + 1}-1`);\n }\n\n #renderDays(): HTMLTemplateResult[] {\n const date = new Date(this._displayingMonthDate);\n\n date.setDate(date.getDate() - date.getDay());\n\n const month = this.month;\n const year = this.year;\n\n const daysTemplates: HTMLTemplateResult[] = [];\n\n do {\n for (let i = 0; i < 7; i++) {\n const dateOutsideMonth = date.getMonth() !== month;\n\n const dateClasses = this._getSelectedDateClasses(date);\n\n if (!Object.keys(dateClasses).length && this.#currentDate.getTime() === date.getTime()) {\n dateClasses['current-date'] = true;\n }\n\n if (dateOutsideMonth) {\n dateClasses['date-outside-month'] = true;\n }\n\n const classes = classMap(dateClasses);\n\n const dateTemplate = dateOutsideMonth && !this.dateOutsideMonth\n ? null\n : html`\n <u-ripple></u-ripple>\n <span class=\"date\">\n ${this.dateRenderer\n ? this.dateRenderer(new Date(date), this.adapter.getDay(date))\n : this.adapter.getDay(date)}\n </span>\n `;\n\n daysTemplates.push(html`\n <div\n class=\"calendar-item ${classes}\"\n @click=${this.#handleDateClick(new Date(date))}>\n ${dateTemplate}\n </div>\n `);\n\n date.setDate(date.getDate() + 1);\n }\n } while (date.getMonth() <= month && date.getFullYear() <= year);\n\n return daysTemplates;\n }\n\n #handleDateClick(date: Date): () => void {\n return () => this._selectDate(date);\n }\n\n protected _getCalendarClassMap(): DirectiveResult<typeof ClassMapDirective> | null {\n return null;\n }\n\n protected abstract _selectDate(date: Date): void;\n protected abstract _getSelectedDateClasses(date: Date): Record<string, boolean>;\n\n protected _getDateFromIsoDate(isoDate: string): Date {\n const date = new Date(isoDate);\n const offsetMs = date.getTimezoneOffset() * 60 * 1000;\n date.setTime(date.getTime() + offsetMs);\n\n return date;\n }\n\n protected _getDateString(date: Date | null): string {\n\n if (!date) {\n return '';\n }\n\n return Intl\n .DateTimeFormat('en-CA', {\n year: 'numeric',\n month: '2-digit',\n day: '2-digit',\n })\n .format(date);\n }\n\n protected _getDateFromString(dateString: string): Date | null {\n if (!dateString) {\n return null;\n }\n\n const dateTime = Date.parse(dateString);\n\n if (!dateTime && dateTime !== 0) {\n return null;\n }\n\n return this._getDateFromIsoDate(dateString);\n }\n\n #addMonth(value: number): void {\n this.month += value;\n }\n\n #setLocaleDependantProperties(): void {\n this.weekDays = this.adapter.getWeekDays(this._innerLocale);\n }\n}\n"]}
1
+ {"version":3,"file":"calendar-base.js","sourceRoot":"","sources":["../../src/calendar/calendar-base.ts"],"names":[],"mappings":"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","sourcesContent":["import { CSSResultGroup } from '@lit/reactive-element/css-tag';\n\nimport { html, HTMLTemplateResult, LitElement } from 'lit';\nimport { DirectiveResult } from 'lit-html/directive.js';\nimport { ClassMapDirective } from 'lit-html/directives/class-map';\nimport { property, state } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\n\nimport { styles } from './calendar-base.styles.js';\nimport { DefaultCalendarAdapter } from './default-calendar-adapter.js';\n\nexport type CalendarView = 'day' | 'month' | 'year';\n\nexport abstract class CalendarBase extends LitElement {\n static override styles: CSSResultGroup = [styles];\n\n @state() weekDays: string[] = [];\n @state() private _firstDayOfWeek = 0;\n @state() dateRenderer: ((date: Date, day: string) => HTMLElement) | null = null;\n /**\n * Whether to render dates from the previous and next months that\n * fall inside the displayed weeks\n */\n @property({ type: Boolean }) dateOutsideMonth = false;\n\n /**\n * Number of years displayed per page in the year picker view.\n */\n @property({ type: Number, attribute: 'year-range' }) yearRange = 24;\n\n get year(): number {\n return this._displayingMonthDate.getFullYear();\n }\n\n set year(year: number) {\n this._displayingMonthDate = new Date(year, this._displayingMonthDate.getMonth(), 1);\n }\n\n get month(): number {\n return this._displayingMonthDate.getMonth();\n }\n\n set month(month: number) {\n this._displayingMonthDate = new Date(this._displayingMonthDate.getFullYear(), month, 1);\n }\n\n readonly #currentDate = new Date();\n @state() _displayingMonthDate: Date;\n @state() view: CalendarView = 'day';\n @state() _yearPageStart = 0;\n\n /**\n * The BCP 47 locale tag used to format month names and weekdays.\n * When `null`, falls back to the browser's `navigator.language`.\n */\n @property() locale: string | null = null;\n _innerLocale: string = navigator.language;\n adapter = new DefaultCalendarAdapter();\n\n protected constructor() {\n super();\n\n this.#currentDate.setHours(0);\n this.#currentDate.setMinutes(0);\n this.#currentDate.setSeconds(0);\n this.#currentDate.setMilliseconds(0);\n this._displayingMonthDate = new Date(this.#currentDate);\n this._displayingMonthDate.setDate(1);\n this._yearPageStart = this.#computeYearPageStart(this.year);\n }\n\n override connectedCallback() {\n super.connectedCallback();\n\n this.#setLocaleDependantProperties();\n\n window.addEventListener('languagechange', () => {\n if (this.locale !== null) {\n return;\n }\n\n this._innerLocale = navigator.language;\n this.#setLocaleDependantProperties();\n });\n }\n\n override willUpdate(changed: Map<string, unknown>): void {\n if (changed.has('locale')) {\n this._innerLocale = this.locale ?? navigator.language;\n this.#setLocaleDependantProperties();\n }\n }\n\n override render(): HTMLTemplateResult {\n return html`\n <div>\n <u-button-set>\n <u-button class=\"month-button\" type=\"button\" variant=\"text\" @click=${this.#toggleYearView}>\n ${this.#getHeaderLabel()}\n <svg\n class=\"month-button-icon ${this.view !== 'day' ? 'open' : ''}\"\n xmlns=\"http://www.w3.org/2000/svg\"\n height=\"1.5em\"\n viewBox=\"0 -960 960 960\"\n width=\"1.5em\"\n fill=\"currentColor\">\n <path d=\"M480-360 280-560h400L480-360Z\" />\n </svg>\n </u-button>\n <u-icon-button class=\"previous-month-button\" @click=${this.#handlePrevClick}>\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n height=\"1em\"\n viewBox=\"0 -960 960 960\"\n width=\"1em\"\n fill=\"currentColor\">\n <path d=\"M560-240 320-480l240-240 56 56-184 184 184 184-56 56Z\" />\n </svg>\n </u-icon-button>\n <u-icon-button @click=${this.#handleNextClick}>\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n height=\"1em\"\n viewBox=\"0 -960 960 960\"\n width=\"1em\"\n fill=\"currentColor\">\n <path d=\"M504-480 320-664l56-56 240 240-240 240-56-56 184-184Z\" />\n </svg>\n </u-icon-button>\n </u-button-set>\n </div>\n ${this.#renderBody()}\n `;\n }\n\n #renderBody(): HTMLTemplateResult {\n if (this.view === 'year') {\n return html`<div class=\"year-grid\">${this.#renderYears()}</div>`;\n }\n\n if (this.view === 'month') {\n return html`<div class=\"month-grid\">${this.#renderMonths()}</div>`;\n }\n\n return html`\n <div class=\"calendar ${this._getCalendarClassMap()}\">${this.#renderWeekDays()}${this.#renderDays()}</div>\n `;\n }\n\n #getHeaderLabel(): string {\n if (this.view === 'month') {\n return this.adapter.getYear(this.#getDisplayingMonthDate());\n }\n\n return this.adapter.getMonth(this.#getDisplayingMonthDate());\n }\n\n #renderWeekDays(): HTMLTemplateResult[] {\n return this.weekDays.map(\n weekDay =>\n html`\n <div class=\"calendar-item\">\n <span class=\"week-day\">${weekDay}</span>\n </div>\n `,\n );\n }\n\n #getDisplayingMonthDate(): Date {\n return new Date(this.year, this.month, 1);\n }\n\n #renderDays(): HTMLTemplateResult[] {\n const year = this.year;\n const month = this.month;\n const firstOfMonth = new Date(year, month, 1);\n const diffToFirstDayOfWeek = (firstOfMonth.getDay() - this._firstDayOfWeek + 7) % 7;\n const date = new Date(year, month, 1 - diffToFirstDayOfWeek);\n\n const daysTemplates: HTMLTemplateResult[] = [];\n\n for (let row = 0; row < 6; row++) {\n for (let i = 0; i < 7; i++) {\n const dateOutsideMonth = date.getMonth() !== month;\n\n const dateClasses = this._getSelectedDateClasses(date);\n\n if (!Object.keys(dateClasses).length && this.#currentDate.getTime() === date.getTime()) {\n dateClasses['current-date'] = true;\n }\n\n if (dateOutsideMonth) {\n dateClasses['date-outside-month'] = true;\n }\n\n const classes = classMap(dateClasses);\n\n const renderDate = !dateOutsideMonth || this.dateOutsideMonth;\n const dateTemplate = renderDate\n ? html`\n <u-ripple></u-ripple>\n <span class=\"date\">\n ${this.dateRenderer\n ? this.dateRenderer(new Date(date), this.adapter.getDay(date))\n : this.adapter.getDay(date)}\n </span>\n `\n : null;\n\n const click = renderDate ? this.#handleDateClick(new Date(date)) : null;\n\n daysTemplates.push(html`\n <div\n class=\"calendar-item ${classes}\"\n @click=${click}>\n ${dateTemplate}\n </div>\n `);\n\n date.setDate(date.getDate() + 1);\n }\n }\n\n return daysTemplates;\n }\n\n #renderYears(): HTMLTemplateResult[] {\n const templates: HTMLTemplateResult[] = [];\n const currentYear = this.#currentDate.getFullYear();\n const selectedYear = this.year;\n\n for (let i = 0; i < this.yearRange; i++) {\n const year = this._yearPageStart + i;\n const classes = classMap({\n 'year-cell': true,\n 'current-year': year === currentYear && year !== selectedYear,\n 'selected-year': year === selectedYear,\n });\n\n templates.push(html`\n <div class=${classes} @click=${this.#handleYearClick(year)}>\n <span class=\"year-label\">\n <u-ripple></u-ripple>\n ${year}\n </span>\n </div>\n `);\n }\n\n return templates;\n }\n\n #renderMonths(): HTMLTemplateResult[] {\n const templates: HTMLTemplateResult[] = [];\n const currentYear = this.#currentDate.getFullYear();\n const currentMonth = this.#currentDate.getMonth();\n const selectedMonth = this.month;\n const displayedYear = this.year;\n\n for (let month = 0; month < 12; month++) {\n const isCurrent = displayedYear === currentYear && month === currentMonth;\n const isSelected = month === selectedMonth;\n\n const classes = classMap({\n 'month-cell': true,\n 'current-month': isCurrent && !isSelected,\n 'selected-month': isSelected,\n });\n\n templates.push(html`\n <div class=${classes} @click=${this.#handleMonthClick(month)}>\n <span class=\"month-label\">\n <u-ripple></u-ripple>\n ${this.adapter.getMonthShort(month, this._innerLocale)}\n </span>\n </div>\n `);\n }\n\n return templates;\n }\n\n #handleDateClick(date: Date): () => void {\n return () => this._selectDate(date);\n }\n\n #handleYearClick(year: number): () => void {\n return () => {\n this.year = year;\n this.view = 'month';\n };\n }\n\n #handleMonthClick(month: number): () => void {\n return () => {\n this.month = month;\n this.view = 'day';\n };\n }\n\n #toggleYearView = (): void => {\n if (this.view === 'day') {\n this._yearPageStart = this.#computeYearPageStart(this.year);\n this.view = 'year';\n return;\n }\n\n if (this.view === 'month') {\n this._yearPageStart = this.#computeYearPageStart(this.year);\n this.view = 'year';\n return;\n }\n\n this.view = 'day';\n };\n\n #handlePrevClick = (): void => {\n if (this.view === 'year') {\n this._yearPageStart -= this.yearRange;\n return;\n }\n\n if (this.view === 'month') {\n this.year -= 1;\n return;\n }\n\n this.#addMonth(-1);\n };\n\n #handleNextClick = (): void => {\n if (this.view === 'year') {\n this._yearPageStart += this.yearRange;\n return;\n }\n\n if (this.view === 'month') {\n this.year += 1;\n return;\n }\n\n this.#addMonth(1);\n };\n\n #computeYearPageStart(year: number): number {\n return year - Math.floor(this.yearRange / 2);\n }\n\n protected _getCalendarClassMap(): DirectiveResult<typeof ClassMapDirective> | null {\n return null;\n }\n\n protected abstract _selectDate(date: Date): void;\n protected abstract _getSelectedDateClasses(date: Date): Record<string, boolean>;\n\n protected _getDateFromIsoDate(isoDate: string): Date {\n const date = new Date(isoDate);\n const offsetMs = date.getTimezoneOffset() * 60 * 1000;\n date.setTime(date.getTime() + offsetMs);\n\n return date;\n }\n\n protected _getDateString(date: Date | null): string {\n\n if (!date) {\n return '';\n }\n\n return Intl\n .DateTimeFormat('en-CA', {\n year: 'numeric',\n month: '2-digit',\n day: '2-digit',\n })\n .format(date);\n }\n\n protected _getDateFromString(dateString: string): Date | null {\n if (!dateString) {\n return null;\n }\n\n const dateTime = Date.parse(dateString);\n\n if (!dateTime && dateTime !== 0) {\n return null;\n }\n\n return this._getDateFromIsoDate(dateString);\n }\n\n #addMonth(value: number): void {\n this.month += value;\n }\n\n #setLocaleDependantProperties(): void {\n this.adapter.locale = this._innerLocale;\n this.weekDays = this.adapter.getWeekDays(this._innerLocale);\n this._firstDayOfWeek = this.adapter.getFirstDayOfWeek(this._innerLocale);\n }\n}\n"]}
@@ -1,8 +1,12 @@
1
1
  import { CSSResultGroup } from '@lit/reactive-element/css-tag';
2
- import { UmCalendarBase } from './calendar-base.js';
3
- export declare class UmCalendar extends UmCalendarBase {
2
+ import { CalendarBase } from './calendar-base.js';
3
+ export declare class Calendar extends CalendarBase {
4
4
  static styles: CSSResultGroup;
5
5
  dateValue: Date | null;
6
+ /**
7
+ * The selected date as an ISO date string (`YYYY-MM-DD`), or an empty
8
+ * string when no date is selected
9
+ */
6
10
  get value(): string;
7
11
  set value(value: string);
8
12
  protected _selectDate(date: Date): void;
@@ -1 +1 @@
1
- {"version":3,"file":"calendar.d.ts","sourceRoot":"","sources":["../../src/calendar/calendar.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAI/D,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAGpD,qBACa,UAAW,SAAQ,cAAc;IAC5C,OAAgB,MAAM,EAAE,cAAc,CAAmC;IAEhE,SAAS,EAAE,IAAI,GAAG,IAAI,CAAQ;IAEvC,IACI,KAAK,IAAI,MAAM,CAElB;IAED,IAAI,KAAK,CAAC,KAAK,EAAE,MAAM,EAEtB;cAEkB,WAAW,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI;cAe7B,uBAAuB,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAMhF"}
1
+ {"version":3,"file":"calendar.d.ts","sourceRoot":"","sources":["../../src/calendar/calendar.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAI/D,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAGlD,qBACa,QAAS,SAAQ,YAAY;IACxC,OAAgB,MAAM,EAAE,cAAc,CAAiC;IAE9D,SAAS,EAAE,IAAI,GAAG,IAAI,CAAQ;IAEvC;;;OAGG;IACH,IACI,KAAK,IAAI,MAAM,CAElB;IAED,IAAI,KAAK,CAAC,KAAK,EAAE,MAAM,EAEtB;cAEkB,WAAW,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI;cAe7B,uBAAuB,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAMhF"}
@@ -1,13 +1,17 @@
1
1
  import { __decorate } from "tslib";
2
2
  import { customElement, property, state } from 'lit/decorators.js';
3
- import { UmCalendarBase } from './calendar-base.js';
3
+ import { CalendarBase } from './calendar-base.js';
4
4
  import { styles } from './calendar.styles.js';
5
- let UmCalendar = class UmCalendar extends UmCalendarBase {
5
+ let Calendar = class Calendar extends CalendarBase {
6
6
  constructor() {
7
7
  super(...arguments);
8
8
  this.dateValue = null;
9
9
  }
10
- static { this.styles = [styles, UmCalendarBase.styles]; }
10
+ static { this.styles = [styles, CalendarBase.styles]; }
11
+ /**
12
+ * The selected date as an ISO date string (`YYYY-MM-DD`), or an empty
13
+ * string when no date is selected
14
+ */
11
15
  get value() {
12
16
  return this._getDateString(this.dateValue);
13
17
  }
@@ -32,12 +36,12 @@ let UmCalendar = class UmCalendar extends UmCalendarBase {
32
36
  };
33
37
  __decorate([
34
38
  state()
35
- ], UmCalendar.prototype, "dateValue", void 0);
39
+ ], Calendar.prototype, "dateValue", void 0);
36
40
  __decorate([
37
41
  property()
38
- ], UmCalendar.prototype, "value", null);
39
- UmCalendar = __decorate([
42
+ ], Calendar.prototype, "value", null);
43
+ Calendar = __decorate([
40
44
  customElement('u-calendar')
41
- ], UmCalendar);
42
- export { UmCalendar };
45
+ ], Calendar);
46
+ export { Calendar };
43
47
  //# sourceMappingURL=calendar.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"calendar.js","sourceRoot":"","sources":["../../src/calendar/calendar.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAEnE,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAGvC,IAAM,UAAU,GAAhB,MAAM,UAAW,SAAQ,cAAc;IAAvC;;QAGI,cAAS,GAAgB,IAAI,CAAC;IAgCzC,CAAC;aAlCiB,WAAM,GAAmB,CAAC,MAAM,EAAE,cAAc,CAAC,MAAM,CAAC,AAAlD,CAAmD;IAKzE,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC7C,CAAC;IAED,IAAI,KAAK,CAAC,KAAa;QACrB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;IAClD,CAAC;IAEkB,WAAW,CAAC,IAAU;QACvC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QAEtB,IAAI,CAAC,aAAa,CAAC,IAAI,UAAU,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QAC/E,IAAI,CAAC,aAAa,CAAC,IAAI,KAAK,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QAE3D,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,QAAQ,EAAE,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;YACvE,OAAO;QACT,CAAC;QAED,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC7B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;IAEjC,CAAC;IAEkB,uBAAuB,CAAC,IAAU;QACnD,OAAO,IAAI,CAAC,SAAS,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC,OAAO,EAAE;YACjD,CAAC,CAAC,EAAE,eAAe,EAAE,IAAI,EAAE;YAC3B,CAAC,CAAC,EAAE,CAAC;IAET,CAAC;;AA/BQ;IAAR,KAAK,EAAE;6CAA+B;AAGvC;IADC,QAAQ,EAAE;uCAGV;AARU,UAAU;IADtB,aAAa,CAAC,YAAY,CAAC;GACf,UAAU,CAmCtB","sourcesContent":["import { CSSResultGroup } from '@lit/reactive-element/css-tag';\n\nimport { customElement, property, state } from 'lit/decorators.js';\n\nimport { UmCalendarBase } from './calendar-base.js';\nimport { styles } from './calendar.styles.js';\n\n@customElement('u-calendar')\nexport class UmCalendar extends UmCalendarBase {\n static override styles: CSSResultGroup = [styles, UmCalendarBase.styles];\n\n @state() dateValue: Date | null = null;\n\n @property()\n get value(): string {\n return this._getDateString(this.dateValue);\n }\n\n set value(value: string) {\n this.dateValue = this._getDateFromString(value);\n }\n\n protected override _selectDate(date: Date): void {\n this.dateValue = date;\n\n this.dispatchEvent(new InputEvent('input', { bubbles: true, composed: true }));\n this.dispatchEvent(new Event('change', { bubbles: true }));\n\n if (this.month === date.getMonth() && this.year === date.getFullYear()) {\n return;\n }\n\n this.month = date.getMonth();\n this.year = date.getFullYear();\n\n }\n\n protected override _getSelectedDateClasses(date: Date): Record<string, boolean> {\n return this.dateValue?.getTime() === date.getTime()\n ? { 'selected-date': true }\n : {};\n\n }\n}\n"]}
1
+ {"version":3,"file":"calendar.js","sourceRoot":"","sources":["../../src/calendar/calendar.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAEnE,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAGvC,IAAM,QAAQ,GAAd,MAAM,QAAS,SAAQ,YAAY;IAAnC;;QAGI,cAAS,GAAgB,IAAI,CAAC;IAoCzC,CAAC;aAtCiB,WAAM,GAAmB,CAAC,MAAM,EAAE,YAAY,CAAC,MAAM,CAAC,AAAhD,CAAiD;IAIvE;;;OAGG;IAEH,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC7C,CAAC;IAED,IAAI,KAAK,CAAC,KAAa;QACrB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;IAClD,CAAC;IAEkB,WAAW,CAAC,IAAU;QACvC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QAEtB,IAAI,CAAC,aAAa,CAAC,IAAI,UAAU,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QAC/E,IAAI,CAAC,aAAa,CAAC,IAAI,KAAK,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QAE3D,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,QAAQ,EAAE,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;YACvE,OAAO;QACT,CAAC;QAED,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC7B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;IAEjC,CAAC;IAEkB,uBAAuB,CAAC,IAAU;QACnD,OAAO,IAAI,CAAC,SAAS,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC,OAAO,EAAE;YACjD,CAAC,CAAC,EAAE,eAAe,EAAE,IAAI,EAAE;YAC3B,CAAC,CAAC,EAAE,CAAC;IAET,CAAC;;AAnCQ;IAAR,KAAK,EAAE;2CAA+B;AAOvC;IADC,QAAQ,EAAE;qCAGV;AAZU,QAAQ;IADpB,aAAa,CAAC,YAAY,CAAC;GACf,QAAQ,CAuCpB","sourcesContent":["import { CSSResultGroup } from '@lit/reactive-element/css-tag';\n\nimport { customElement, property, state } from 'lit/decorators.js';\n\nimport { CalendarBase } from './calendar-base.js';\nimport { styles } from './calendar.styles.js';\n\n@customElement('u-calendar')\nexport class Calendar extends CalendarBase {\n static override styles: CSSResultGroup = [styles, CalendarBase.styles];\n\n @state() dateValue: Date | null = null;\n\n /**\n * The selected date as an ISO date string (`YYYY-MM-DD`), or an empty\n * string when no date is selected\n */\n @property()\n get value(): string {\n return this._getDateString(this.dateValue);\n }\n\n set value(value: string) {\n this.dateValue = this._getDateFromString(value);\n }\n\n protected override _selectDate(date: Date): void {\n this.dateValue = date;\n\n this.dispatchEvent(new InputEvent('input', { bubbles: true, composed: true }));\n this.dispatchEvent(new Event('change', { bubbles: true }));\n\n if (this.month === date.getMonth() && this.year === date.getFullYear()) {\n return;\n }\n\n this.month = date.getMonth();\n this.year = date.getFullYear();\n\n }\n\n protected override _getSelectedDateClasses(date: Date): Record<string, boolean> {\n return this.dateValue?.getTime() === date.getTime()\n ? { 'selected-date': true }\n : {};\n\n }\n}\n"]}
@@ -4,7 +4,10 @@ export declare class DefaultCalendarAdapter implements CalendarAdapter {
4
4
  weekDayFormat: 'long' | 'short' | 'narrow';
5
5
  locale: string;
6
6
  getWeekDays(locale: string): string[];
7
+ getFirstDayOfWeek(locale: string): number;
7
8
  getDay(date: Date): string;
8
9
  getMonth(date: Date): string;
10
+ getYear(date: Date): string;
11
+ getMonthShort(month: number, locale: string): string;
9
12
  }
10
13
  //# sourceMappingURL=default-calendar-adapter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"default-calendar-adapter.d.ts","sourceRoot":"","sources":["../../src/calendar/default-calendar-adapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExD,qBAAa,sBAAuB,YAAW,eAAe;;IAC5D,aAAa,EAAE,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAY;IACtD,MAAM,SAAW;IAEjB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE;IAuBrC,MAAM,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM;IAI1B,QAAQ,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM;CAM7B"}
1
+ {"version":3,"file":"default-calendar-adapter.d.ts","sourceRoot":"","sources":["../../src/calendar/default-calendar-adapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExD,qBAAa,sBAAuB,YAAW,eAAe;;IAC5D,aAAa,EAAE,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAY;IACtD,MAAM,SAAW;IAEjB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE;IAerC,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAazC,MAAM,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM;IAI1B,QAAQ,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM;IAO5B,OAAO,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM;IAI3B,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM;CAIrD"}
@@ -5,9 +5,8 @@ export class DefaultCalendarAdapter {
5
5
  }
6
6
  getWeekDays(locale) {
7
7
  const date = new Date();
8
- const intlLocale = new Intl.Locale(locale);
9
- const weekInfo = intlLocale.getWeekInfo ? intlLocale.getWeekInfo() : intlLocale.weekinfo;
10
- this.#setDateToFirstDayOfWeek(date, weekInfo.firstDay);
8
+ const firstDay = this.getFirstDayOfWeek(locale);
9
+ this.#setDateToFirstDayOfWeek(date, firstDay);
11
10
  const weekDays = [];
12
11
  for (let i = 0; i < 7; i++) {
13
12
  weekDays.push(date.toLocaleDateString(locale, { weekday: this.weekDayFormat }));
@@ -15,8 +14,14 @@ export class DefaultCalendarAdapter {
15
14
  }
16
15
  return weekDays;
17
16
  }
18
- #setDateToFirstDayOfWeek(date, firstDayOfWeek) {
19
- const diffToFirstDayOfWeek = (firstDayOfWeek - date.getDay() + 7) % 7;
17
+ getFirstDayOfWeek(locale) {
18
+ const intlLocale = new Intl.Locale(locale);
19
+ const weekInfo = intlLocale.getWeekInfo ? intlLocale.getWeekInfo() : intlLocale.weekinfo;
20
+ // CLDR convention (1=Mon..7=Sun) → JS Date convention (0=Sun..6=Sat)
21
+ return weekInfo.firstDay % 7;
22
+ }
23
+ #setDateToFirstDayOfWeek(date, jsFirstDayOfWeek) {
24
+ const diffToFirstDayOfWeek = (jsFirstDayOfWeek - date.getDay() + 7) % 7;
20
25
  date.setDate(date.getDate() + diffToFirstDayOfWeek);
21
26
  }
22
27
  getDay(date) {
@@ -28,5 +33,12 @@ export class DefaultCalendarAdapter {
28
33
  year: 'numeric',
29
34
  });
30
35
  }
36
+ getYear(date) {
37
+ return date.toLocaleDateString(this.locale, { year: 'numeric' });
38
+ }
39
+ getMonthShort(month, locale) {
40
+ const date = new Date(2000, month, 1);
41
+ return date.toLocaleDateString(locale, { month: 'short' });
42
+ }
31
43
  }
32
44
  //# sourceMappingURL=default-calendar-adapter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"default-calendar-adapter.js","sourceRoot":"","sources":["../../src/calendar/default-calendar-adapter.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,sBAAsB;IAAnC;QACE,kBAAa,GAAgC,QAAQ,CAAC;QACtD,WAAM,GAAG,OAAO,CAAC;IAmCnB,CAAC;IAjCC,WAAW,CAAC,MAAc;QACxB,MAAM,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;QAExB,MAAM,UAAU,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC3C,MAAM,QAAQ,GAAG,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,CAAC,CAAE,UAAkB,CAAC,QAAQ,CAAC;QAElG,IAAI,CAAC,wBAAwB,CAAC,IAAI,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACvD,MAAM,QAAQ,GAAa,EAAE,CAAC;QAE9B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC3B,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC;YAChF,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;QACnC,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,wBAAwB,CAAC,IAAU,EAAE,cAAsB;QACzD,MAAM,oBAAoB,GAAG,CAAC,cAAc,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;QAEtE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,oBAAoB,CAAC,CAAC;IACtD,CAAC;IAED,MAAM,CAAC,IAAU;QACf,OAAO,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC,CAAC;IAClE,CAAC;IAED,QAAQ,CAAC,IAAU;QACjB,OAAO,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,MAAM,EAAE;YAC1C,KAAK,EAAE,MAAM;YACb,IAAI,EAAE,SAAS;SAChB,CAAC,CAAC;IACL,CAAC;CACF","sourcesContent":["import { CalendarAdapter } from './calendar-adapter.js';\n\nexport class DefaultCalendarAdapter implements CalendarAdapter {\n weekDayFormat: 'long' | 'short' | 'narrow' = 'narrow';\n locale = 'pt-br';\n\n getWeekDays(locale: string): string[] {\n const date = new Date();\n\n const intlLocale = new Intl.Locale(locale);\n const weekInfo = intlLocale.getWeekInfo ? intlLocale.getWeekInfo() : (intlLocale as any).weekinfo;\n\n this.#setDateToFirstDayOfWeek(date, weekInfo.firstDay);\n const weekDays: string[] = [];\n\n for (let i = 0; i < 7; i++) {\n weekDays.push(date.toLocaleDateString(locale, { weekday: this.weekDayFormat }));\n date.setDate(date.getDate() + 1);\n }\n\n return weekDays;\n }\n\n #setDateToFirstDayOfWeek(date: Date, firstDayOfWeek: number): void {\n const diffToFirstDayOfWeek = (firstDayOfWeek - date.getDay() + 7) % 7;\n\n date.setDate(date.getDate() + diffToFirstDayOfWeek);\n }\n\n getDay(date: Date): string {\n return date.toLocaleDateString(this.locale, { day: 'numeric' });\n }\n\n getMonth(date: Date): string {\n return date.toLocaleDateString(this.locale, {\n month: 'long',\n year: 'numeric',\n });\n }\n}\n"]}
1
+ {"version":3,"file":"default-calendar-adapter.js","sourceRoot":"","sources":["../../src/calendar/default-calendar-adapter.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,sBAAsB;IAAnC;QACE,kBAAa,GAAgC,QAAQ,CAAC;QACtD,WAAM,GAAG,OAAO,CAAC;IAiDnB,CAAC;IA/CC,WAAW,CAAC,MAAc;QACxB,MAAM,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;QACxB,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;QAEhD,IAAI,CAAC,wBAAwB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QAC9C,MAAM,QAAQ,GAAa,EAAE,CAAC;QAE9B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC3B,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC;YAChF,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;QACnC,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,iBAAiB,CAAC,MAAc;QAC9B,MAAM,UAAU,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC3C,MAAM,QAAQ,GAAG,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,CAAC,CAAE,UAAkB,CAAC,QAAQ,CAAC;QAClG,qEAAqE;QACrE,OAAO,QAAQ,CAAC,QAAQ,GAAG,CAAC,CAAC;IAC/B,CAAC;IAED,wBAAwB,CAAC,IAAU,EAAE,gBAAwB;QAC3D,MAAM,oBAAoB,GAAG,CAAC,gBAAgB,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;QAExE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,oBAAoB,CAAC,CAAC;IACtD,CAAC;IAED,MAAM,CAAC,IAAU;QACf,OAAO,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC,CAAC;IAClE,CAAC;IAED,QAAQ,CAAC,IAAU;QACjB,OAAO,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,MAAM,EAAE;YAC1C,KAAK,EAAE,MAAM;YACb,IAAI,EAAE,SAAS;SAChB,CAAC,CAAC;IACL,CAAC;IAED,OAAO,CAAC,IAAU;QAChB,OAAO,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;IACnE,CAAC;IAED,aAAa,CAAC,KAAa,EAAE,MAAc;QACzC,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;QACtC,OAAO,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;IAC7D,CAAC;CACF","sourcesContent":["import { CalendarAdapter } from './calendar-adapter.js';\n\nexport class DefaultCalendarAdapter implements CalendarAdapter {\n weekDayFormat: 'long' | 'short' | 'narrow' = 'narrow';\n locale = 'pt-br';\n\n getWeekDays(locale: string): string[] {\n const date = new Date();\n const firstDay = this.getFirstDayOfWeek(locale);\n\n this.#setDateToFirstDayOfWeek(date, firstDay);\n const weekDays: string[] = [];\n\n for (let i = 0; i < 7; i++) {\n weekDays.push(date.toLocaleDateString(locale, { weekday: this.weekDayFormat }));\n date.setDate(date.getDate() + 1);\n }\n\n return weekDays;\n }\n\n getFirstDayOfWeek(locale: string): number {\n const intlLocale = new Intl.Locale(locale);\n const weekInfo = intlLocale.getWeekInfo ? intlLocale.getWeekInfo() : (intlLocale as any).weekinfo;\n // CLDR convention (1=Mon..7=Sun) → JS Date convention (0=Sun..6=Sat)\n return weekInfo.firstDay % 7;\n }\n\n #setDateToFirstDayOfWeek(date: Date, jsFirstDayOfWeek: number): void {\n const diffToFirstDayOfWeek = (jsFirstDayOfWeek - date.getDay() + 7) % 7;\n\n date.setDate(date.getDate() + diffToFirstDayOfWeek);\n }\n\n getDay(date: Date): string {\n return date.toLocaleDateString(this.locale, { day: 'numeric' });\n }\n\n getMonth(date: Date): string {\n return date.toLocaleDateString(this.locale, {\n month: 'long',\n year: 'numeric',\n });\n }\n\n getYear(date: Date): string {\n return date.toLocaleDateString(this.locale, { year: 'numeric' });\n }\n\n getMonthShort(month: number, locale: string): string {\n const date = new Date(2000, month, 1);\n return date.toLocaleDateString(locale, { month: 'short' });\n }\n}\n"]}
@@ -1,8 +1,8 @@
1
1
  import { CSSResultGroup } from '@lit/reactive-element/css-tag';
2
2
  import { DirectiveResult } from 'lit-html/directive.js';
3
3
  import { ClassMapDirective } from 'lit-html/directives/class-map.js';
4
- import { UmCalendarBase } from './calendar-base.js';
5
- export declare class UmRangeCalendar extends UmCalendarBase {
4
+ import { CalendarBase } from './calendar-base.js';
5
+ export declare class RangeCalendar extends CalendarBase {
6
6
  #private;
7
7
  static styles: CSSResultGroup;
8
8
  startDateValue: Date | null;
@@ -1 +1 @@
1
- {"version":3,"file":"range-calendar.d.ts","sourceRoot":"","sources":["../../src/calendar/range-calendar.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAE/D,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AAIrE,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAGpD,qBACa,eAAgB,SAAQ,cAAc;;IACjD,OAAgB,MAAM,EAAE,cAAc,CAAmC;IAEhE,cAAc,EAAE,IAAI,GAAG,IAAI,CAAQ;IACnC,YAAY,EAAE,IAAI,GAAG,IAAI,CAAQ;IAE1C,IACI,KAAK,IAAI,MAAM,GAAG,IAAI,CAMzB;IAED,IAAI,KAAK,CAAC,KAAK,EAAE,MAAM,EAoBtB;cAUkB,WAAW,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI;cAc7B,oBAAoB,IAAI,eAAe,CAAC,OAAO,iBAAiB,CAAC,GAAG,IAAI;cAgDxE,uBAAuB,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAgBhF"}
1
+ {"version":3,"file":"range-calendar.d.ts","sourceRoot":"","sources":["../../src/calendar/range-calendar.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAE/D,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AAIrE,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAGlD,qBACa,aAAc,SAAQ,YAAY;;IAC7C,OAAgB,MAAM,EAAE,cAAc,CAAiC;IAE9D,cAAc,EAAE,IAAI,GAAG,IAAI,CAAQ;IACnC,YAAY,EAAE,IAAI,GAAG,IAAI,CAAQ;IAE1C,IACI,KAAK,IAAI,MAAM,GAAG,IAAI,CAMzB;IAED,IAAI,KAAK,CAAC,KAAK,EAAE,MAAM,EAoBtB;cAUkB,WAAW,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI;cAc7B,oBAAoB,IAAI,eAAe,CAAC,OAAO,iBAAiB,CAAC,GAAG,IAAI;cAgDxE,uBAAuB,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAgBhF"}
@@ -1,15 +1,15 @@
1
1
  import { __decorate } from "tslib";
2
2
  import { customElement, property, state } from 'lit/decorators.js';
3
3
  import { classMap } from 'lit/directives/class-map.js';
4
- import { UmCalendarBase } from './calendar-base.js';
4
+ import { CalendarBase } from './calendar-base.js';
5
5
  import { styles } from './range-calendar.styles.js';
6
- let UmRangeCalendar = class UmRangeCalendar extends UmCalendarBase {
6
+ let RangeCalendar = class RangeCalendar extends CalendarBase {
7
7
  constructor() {
8
8
  super(...arguments);
9
9
  this.startDateValue = null;
10
10
  this.endDateValue = null;
11
11
  }
12
- static { this.styles = [styles, UmCalendarBase.styles]; }
12
+ static { this.styles = [styles, CalendarBase.styles]; }
13
13
  get value() {
14
14
  if (!this.startDateValue && !this.endDateValue) {
15
15
  return '';
@@ -99,15 +99,15 @@ let UmRangeCalendar = class UmRangeCalendar extends UmCalendarBase {
99
99
  };
100
100
  __decorate([
101
101
  state()
102
- ], UmRangeCalendar.prototype, "startDateValue", void 0);
102
+ ], RangeCalendar.prototype, "startDateValue", void 0);
103
103
  __decorate([
104
104
  state()
105
- ], UmRangeCalendar.prototype, "endDateValue", void 0);
105
+ ], RangeCalendar.prototype, "endDateValue", void 0);
106
106
  __decorate([
107
107
  property()
108
- ], UmRangeCalendar.prototype, "value", null);
109
- UmRangeCalendar = __decorate([
108
+ ], RangeCalendar.prototype, "value", null);
109
+ RangeCalendar = __decorate([
110
110
  customElement('u-range-calendar')
111
- ], UmRangeCalendar);
112
- export { UmRangeCalendar };
111
+ ], RangeCalendar);
112
+ export { RangeCalendar };
113
113
  //# sourceMappingURL=range-calendar.js.map