@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
@@ -1,9 +1,60 @@
1
- import { LitElement } from 'lit';
2
- export declare class UmDatepicker extends LitElement {
1
+ import { CSSResultGroup } from '@lit/reactive-element/css-tag';
2
+ import { HTMLTemplateResult } from 'lit';
3
+ import { NativeTextFieldWrapper } from '../shared/char-count-text-field/native-text-field-wrapper.js';
4
+ import { DatepickerFormat } from './format.js';
5
+ import '../button/icon-button.js';
6
+ import '../calendar/calendar.js';
7
+ import '../menu/menu.js';
8
+ import '../ripple/ripple.js';
9
+ export declare class Datepicker extends NativeTextFieldWrapper {
10
+ #private;
11
+ static styles: CSSResultGroup;
12
+ /**
13
+ * The BCP 47 locale tag forwarded to the underlying calendar and used for
14
+ * non-editable display formatting.
15
+ * When `null`, the calendar falls back to the browser's `navigator.language`.
16
+ */
17
+ locale: string | null;
18
+ /**
19
+ * Format used when displaying the value while the field is not editable.
20
+ * Accepts the named presets `'short'`, `'medium'`, `'long'`, `'full'`,
21
+ * the literal `'iso'` (keeps the ISO `YYYY-MM-DD` value), or an
22
+ * `Intl.DateTimeFormatOptions` object for custom formatting.
23
+ * In editable mode the input uses the browser's native `type="date"` mask
24
+ * and ignores this property.
25
+ */
26
+ format: DatepickerFormat;
27
+ /**
28
+ * Whether the input accepts manually-typed dates. When `false` (default),
29
+ * the field is read-only and clicking anywhere opens the calendar popover.
30
+ * When `true`, the input uses native `type="date"` and accepts keyboard input;
31
+ * the calendar popover is opened via the trailing icon.
32
+ */
33
+ editable: boolean;
34
+ /**
35
+ * Whether the input is read-only. When set, manual typing is disabled even
36
+ * if `editable` is `true`; the calendar popover remains available.
37
+ */
38
+ readOnly: boolean;
39
+ /**
40
+ * The positioning strategy used by the calendar popover. Use `'fixed'`
41
+ * when the datepicker is rendered inside a clipped/scrollable container.
42
+ */
43
+ menuPositioning: 'relative' | 'fixed';
44
+ input: HTMLInputElement;
45
+ private _menu;
46
+ private _calendar;
47
+ private _trailingSlot;
48
+ protected renderControl(): HTMLTemplateResult;
49
+ protected renderDefaultTrailingIcon(): import("lit-html").TemplateResult<1> | import("lit-html").TemplateResult<2>;
50
+ protected renderAfterContent(): import("lit-html").TemplateResult<1>;
51
+ connectedCallback(): void;
52
+ disconnectedCallback(): void;
53
+ protected _handleInput(): void;
3
54
  }
4
55
  declare global {
5
56
  interface HTMLElementTagNameMap {
6
- 'u-datepicker': UmDatepicker;
57
+ 'u-datepicker': Datepicker;
7
58
  }
8
59
  }
9
60
  //# sourceMappingURL=datepicker.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"datepicker.d.ts","sourceRoot":"","sources":["../../src/datepicker/datepicker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,KAAK,CAAC;AAGjC,qBACa,YAAa,SAAQ,UAAU;CAE3C;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,cAAc,EAAE,YAAY,CAAC;KAC9B;CACF"}
1
+ {"version":3,"file":"datepicker.d.ts","sourceRoot":"","sources":["../../src/datepicker/datepicker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAE/D,OAAO,EAAQ,kBAAkB,EAAgB,MAAM,KAAK,CAAC;AAM7D,OAAO,EAAE,sBAAsB,EAAE,MAAM,8DAA8D,CAAC;AAKtG,OAAO,EAAE,gBAAgB,EAAiB,MAAM,aAAa,CAAC;AAE9D,OAAO,0BAA0B,CAAC;AAClC,OAAO,yBAAyB,CAAC;AACjC,OAAO,iBAAiB,CAAC;AACzB,OAAO,qBAAqB,CAAC;AAI7B,qBACa,UAAW,SAAQ,sBAAsB;;IACpD,OAAgB,MAAM,EAAE,cAAc,CAAmD;IAEzF;;;;OAIG;IACS,MAAM,EAAE,MAAM,GAAG,IAAI,CAAQ;IAEzC;;;;;;;OAOG;IACS,MAAM,EAAE,gBAAgB,CAAW;IAE/C;;;;;OAKG;IACyC,QAAQ,UAAS;IAE7D;;;OAGG;IACyC,QAAQ,UAAS;IAE7D;;;OAGG;IACyD,eAAe,EAAE,UAAU,GAAG,OAAO,CAAc;IAE/F,KAAK,EAAG,gBAAgB,CAAC;IAClB,OAAO,CAAC,KAAK,CAAQ;IACjB,OAAO,CAAC,SAAS,CAAY;IACzB,OAAO,CAAC,aAAa,CAAmB;cAEpD,aAAa,IAAI,kBAAkB;cAoCnC,yBAAyB;cAmBzB,kBAAkB;IAkB5B,iBAAiB,IAAI,IAAI;IAKzB,oBAAoB,IAAI,IAAI;cAKlB,YAAY,IAAI,IAAI;CAmDxC;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,cAAc,EAAE,UAAU,CAAC;KAC5B;CACF"}
@@ -1,10 +1,206 @@
1
1
  import { __decorate } from "tslib";
2
- import { LitElement } from 'lit';
3
- import { customElement } from 'lit/decorators.js';
4
- let UmDatepicker = class UmDatepicker extends LitElement {
2
+ import { html, nothing, svg } from 'lit';
3
+ import { customElement, property, query } from 'lit/decorators.js';
4
+ import { live } from 'lit/directives/live.js';
5
+ import { NativeTextFieldWrapper } from '../shared/char-count-text-field/native-text-field-wrapper.js';
6
+ import { TextFieldBase } from '../shared/text-field-base/text-field-base.js';
7
+ import { styles as textFieldStyles } from '../text-field/text-field.styles.js';
8
+ import { styles } from './datepicker.styles.js';
9
+ import { formatIsoDate } from './format.js';
10
+ import '../button/icon-button.js';
11
+ import '../calendar/calendar.js';
12
+ import '../menu/menu.js';
13
+ import '../ripple/ripple.js';
14
+ const ISO_DATE = /^\d{4}-\d{2}-\d{2}$/;
15
+ let Datepicker = class Datepicker extends NativeTextFieldWrapper {
16
+ constructor() {
17
+ super(...arguments);
18
+ /**
19
+ * The BCP 47 locale tag forwarded to the underlying calendar and used for
20
+ * non-editable display formatting.
21
+ * When `null`, the calendar falls back to the browser's `navigator.language`.
22
+ */
23
+ this.locale = null;
24
+ /**
25
+ * Format used when displaying the value while the field is not editable.
26
+ * Accepts the named presets `'short'`, `'medium'`, `'long'`, `'full'`,
27
+ * the literal `'iso'` (keeps the ISO `YYYY-MM-DD` value), or an
28
+ * `Intl.DateTimeFormatOptions` object for custom formatting.
29
+ * In editable mode the input uses the browser's native `type="date"` mask
30
+ * and ignores this property.
31
+ */
32
+ this.format = 'short';
33
+ /**
34
+ * Whether the input accepts manually-typed dates. When `false` (default),
35
+ * the field is read-only and clicking anywhere opens the calendar popover.
36
+ * When `true`, the input uses native `type="date"` and accepts keyboard input;
37
+ * the calendar popover is opened via the trailing icon.
38
+ */
39
+ this.editable = false;
40
+ /**
41
+ * Whether the input is read-only. When set, manual typing is disabled even
42
+ * if `editable` is `true`; the calendar popover remains available.
43
+ */
44
+ this.readOnly = false;
45
+ /**
46
+ * The positioning strategy used by the calendar popover. Use `'fixed'`
47
+ * when the datepicker is rendered inside a clipped/scrollable container.
48
+ */
49
+ this.menuPositioning = 'relative';
50
+ this.#handleKeyDown = (e) => {
51
+ if (e.key === 'ArrowDown' && !this._menu.open) {
52
+ e.preventDefault();
53
+ this._menu.show();
54
+ return;
55
+ }
56
+ if (e.key === 'Escape' && this._menu.open) {
57
+ e.preventDefault();
58
+ this._menu.close();
59
+ return;
60
+ }
61
+ this._handleKeyDown(e);
62
+ };
63
+ this.#handleCalendarInput = (e) => {
64
+ e.stopPropagation();
65
+ const value = e.target.value;
66
+ this.value = value;
67
+ this.dispatchEvent(new InputEvent('input', { bubbles: true, composed: true }));
68
+ this.dispatchEvent(new Event('change', { bubbles: true }));
69
+ this._menu.close();
70
+ };
71
+ this.#stopPropagation = (e) => {
72
+ e.stopPropagation();
73
+ };
74
+ this.#toggleMenu = () => {
75
+ if (this.disabled) {
76
+ return;
77
+ }
78
+ this._menu.toggle();
79
+ };
80
+ }
81
+ static { this.styles = [TextFieldBase.styles, textFieldStyles, styles]; }
82
+ renderControl() {
83
+ const displayValue = this.editable
84
+ ? this._value
85
+ : formatIsoDate(this._value, this.format, this.locale);
86
+ return html `
87
+ ${this.editable
88
+ ? nothing
89
+ : html `
90
+ <button
91
+ class="trigger"
92
+ type="button"
93
+ aria-haspopup="dialog"
94
+ ?disabled=${this.disabled}
95
+ @click=${this.#toggleMenu}></button>
96
+ <u-ripple ?disabled=${this.disabled}></u-ripple>
97
+ `}
98
+ <div class="input">
99
+ <input
100
+ type=${this.editable ? 'date' : 'text'}
101
+ part="input"
102
+ id=${this.id || nothing}
103
+ aria-labelledby="label"
104
+ aria-describedby="supporting-text"
105
+ aria-haspopup="dialog"
106
+ tabindex=${this.editable ? nothing : -1}
107
+ ?readonly=${this.readOnly || !this.editable}
108
+ ?disabled=${this.disabled}
109
+ placeholder=${this.placeholder ?? nothing}
110
+ .value=${live(displayValue)}
111
+ @input=${this._handleInput}
112
+ @keydown=${this.#handleKeyDown} />
113
+ </div>
114
+ `;
115
+ }
116
+ renderDefaultTrailingIcon() {
117
+ const icon = svg `
118
+ <svg xmlns="http://www.w3.org/2000/svg" height="1em" viewBox="0 -960 960 960" width="1em" fill="currentColor">
119
+ <path d="M200-80q-33 0-56.5-23.5T120-160v-560q0-33 23.5-56.5T200-800h40v-80h80v80h320v-80h80v80h40q33 0 56.5 23.5T840-720v560q0 33-23.5 56.5T760-80H200Zm0-80h560v-400H200v400Zm0-480h560v-80H200v80Zm0 0v-80 80Z"/>
120
+ </svg>`;
121
+ // In editable mode the field itself is typeable, so the icon must be a
122
+ // dedicated button for opening the calendar. In non-editable mode the
123
+ // .trigger button covers the whole field, so the icon is just visual.
124
+ return this.editable
125
+ ? html `<u-icon-button
126
+ type="button"
127
+ aria-haspopup="dialog"
128
+ aria-label="Open calendar"
129
+ ?disabled=${this.disabled}
130
+ @click=${this.#toggleMenu}>${icon}</u-icon-button>`
131
+ : icon;
132
+ }
133
+ renderAfterContent() {
134
+ return html `
135
+ <u-menu
136
+ positioning=${this.menuPositioning}
137
+ autoclose="outside"
138
+ anchor-corner="end-start"
139
+ direction="down-end"
140
+ allow-overflow
141
+ manualFocus
142
+ @click=${this.#stopPropagation}>
143
+ <u-calendar
144
+ .value=${this._value}
145
+ .locale=${this.locale}
146
+ @input=${this.#handleCalendarInput}></u-calendar>
147
+ </u-menu>
148
+ `;
149
+ }
150
+ connectedCallback() {
151
+ super.connectedCallback();
152
+ void this.#attach();
153
+ }
154
+ disconnectedCallback() {
155
+ super.disconnectedCallback();
156
+ this._trailingSlot?.removeEventListener('click', this.#toggleMenu);
157
+ }
158
+ _handleInput() {
159
+ super._handleInput();
160
+ if (ISO_DATE.test(this._value)) {
161
+ this._calendar.value = this._value;
162
+ }
163
+ this.dispatchEvent(new InputEvent('input', { bubbles: true, composed: true }));
164
+ }
165
+ #handleKeyDown;
166
+ #handleCalendarInput;
167
+ #stopPropagation;
168
+ #toggleMenu;
169
+ async #attach() {
170
+ await this.updateComplete;
171
+ this._menu.anchorElement = this._container;
172
+ this._trailingSlot.addEventListener('click', this.#toggleMenu);
173
+ }
5
174
  };
6
- UmDatepicker = __decorate([
175
+ __decorate([
176
+ property()
177
+ ], Datepicker.prototype, "locale", void 0);
178
+ __decorate([
179
+ property()
180
+ ], Datepicker.prototype, "format", void 0);
181
+ __decorate([
182
+ property({ type: Boolean, reflect: true })
183
+ ], Datepicker.prototype, "editable", void 0);
184
+ __decorate([
185
+ property({ type: Boolean, reflect: true })
186
+ ], Datepicker.prototype, "readOnly", void 0);
187
+ __decorate([
188
+ property({ reflect: true, attribute: 'menu-positioning' })
189
+ ], Datepicker.prototype, "menuPositioning", void 0);
190
+ __decorate([
191
+ query('input')
192
+ ], Datepicker.prototype, "input", void 0);
193
+ __decorate([
194
+ query('u-menu', true)
195
+ ], Datepicker.prototype, "_menu", void 0);
196
+ __decorate([
197
+ query('u-calendar', true)
198
+ ], Datepicker.prototype, "_calendar", void 0);
199
+ __decorate([
200
+ query('.trailing-icon', true)
201
+ ], Datepicker.prototype, "_trailingSlot", void 0);
202
+ Datepicker = __decorate([
7
203
  customElement('u-datepicker')
8
- ], UmDatepicker);
9
- export { UmDatepicker };
204
+ ], Datepicker);
205
+ export { Datepicker };
10
206
  //# sourceMappingURL=datepicker.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"datepicker.js","sourceRoot":"","sources":["../../src/datepicker/datepicker.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,KAAK,CAAC;AACjC,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAG3C,IAAM,YAAY,GAAlB,MAAM,YAAa,SAAQ,UAAU;CAE3C,CAAA;AAFY,YAAY;IADxB,aAAa,CAAC,cAAc,CAAC;GACjB,YAAY,CAExB","sourcesContent":["import { LitElement } from 'lit';\nimport { customElement } from 'lit/decorators.js';\n\n@customElement('u-datepicker')\nexport class UmDatepicker extends LitElement {\n\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'u-datepicker': UmDatepicker;\n }\n}\n"]}
1
+ {"version":3,"file":"datepicker.js","sourceRoot":"","sources":["../../src/datepicker/datepicker.ts"],"names":[],"mappings":"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","sourcesContent":["import { CSSResultGroup } from '@lit/reactive-element/css-tag';\n\nimport { html, HTMLTemplateResult, nothing, svg } from 'lit';\nimport { customElement, property, query } from 'lit/decorators.js';\nimport { live } from 'lit/directives/live.js';\n\nimport { Calendar } from '../calendar/calendar.js';\nimport { Menu } from '../menu/menu.js';\nimport { NativeTextFieldWrapper } from '../shared/char-count-text-field/native-text-field-wrapper.js';\nimport { TextFieldBase } from '../shared/text-field-base/text-field-base.js';\n\nimport { styles as textFieldStyles } from '../text-field/text-field.styles.js';\nimport { styles } from './datepicker.styles.js';\nimport { DatepickerFormat, formatIsoDate } from './format.js';\n\nimport '../button/icon-button.js';\nimport '../calendar/calendar.js';\nimport '../menu/menu.js';\nimport '../ripple/ripple.js';\n\nconst ISO_DATE = /^\\d{4}-\\d{2}-\\d{2}$/;\n\n@customElement('u-datepicker')\nexport class Datepicker extends NativeTextFieldWrapper {\n static override styles: CSSResultGroup = [TextFieldBase.styles, textFieldStyles, styles];\n\n /**\n * The BCP 47 locale tag forwarded to the underlying calendar and used for\n * non-editable display formatting.\n * When `null`, the calendar falls back to the browser's `navigator.language`.\n */\n @property() locale: string | null = null;\n\n /**\n * Format used when displaying the value while the field is not editable.\n * Accepts the named presets `'short'`, `'medium'`, `'long'`, `'full'`,\n * the literal `'iso'` (keeps the ISO `YYYY-MM-DD` value), or an\n * `Intl.DateTimeFormatOptions` object for custom formatting.\n * In editable mode the input uses the browser's native `type=\"date\"` mask\n * and ignores this property.\n */\n @property() format: DatepickerFormat = 'short';\n\n /**\n * Whether the input accepts manually-typed dates. When `false` (default),\n * the field is read-only and clicking anywhere opens the calendar popover.\n * When `true`, the input uses native `type=\"date\"` and accepts keyboard input;\n * the calendar popover is opened via the trailing icon.\n */\n @property({ type: Boolean, reflect: true }) editable = false;\n\n /**\n * Whether the input is read-only. When set, manual typing is disabled even\n * if `editable` is `true`; the calendar popover remains available.\n */\n @property({ type: Boolean, reflect: true }) readOnly = false;\n\n /**\n * The positioning strategy used by the calendar popover. Use `'fixed'`\n * when the datepicker is rendered inside a clipped/scrollable container.\n */\n @property({ reflect: true, attribute: 'menu-positioning' }) menuPositioning: 'relative' | 'fixed' = 'relative';\n\n @query('input') input!: HTMLInputElement;\n @query('u-menu', true) private _menu!: Menu;\n @query('u-calendar', true) private _calendar!: Calendar;\n @query('.trailing-icon', true) private _trailingSlot!: HTMLSlotElement;\n\n protected override renderControl(): HTMLTemplateResult {\n const displayValue = this.editable\n ? this._value\n : formatIsoDate(this._value, this.format, this.locale);\n\n return html`\n ${this.editable\n ? nothing\n : html`\n <button\n class=\"trigger\"\n type=\"button\"\n aria-haspopup=\"dialog\"\n ?disabled=${this.disabled}\n @click=${this.#toggleMenu}></button>\n <u-ripple ?disabled=${this.disabled}></u-ripple>\n `}\n <div class=\"input\">\n <input\n type=${this.editable ? 'date' : 'text'}\n part=\"input\"\n id=${this.id || nothing}\n aria-labelledby=\"label\"\n aria-describedby=\"supporting-text\"\n aria-haspopup=\"dialog\"\n tabindex=${this.editable ? nothing : -1}\n ?readonly=${this.readOnly || !this.editable}\n ?disabled=${this.disabled}\n placeholder=${this.placeholder ?? nothing}\n .value=${live(displayValue)}\n @input=${this._handleInput}\n @keydown=${this.#handleKeyDown} />\n </div>\n `;\n }\n\n protected override renderDefaultTrailingIcon() {\n const icon = svg`\n <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"1em\" viewBox=\"0 -960 960 960\" width=\"1em\" fill=\"currentColor\">\n <path d=\"M200-80q-33 0-56.5-23.5T120-160v-560q0-33 23.5-56.5T200-800h40v-80h80v80h320v-80h80v80h40q33 0 56.5 23.5T840-720v560q0 33-23.5 56.5T760-80H200Zm0-80h560v-400H200v400Zm0-480h560v-80H200v80Zm0 0v-80 80Z\"/>\n </svg>`;\n\n // In editable mode the field itself is typeable, so the icon must be a\n // dedicated button for opening the calendar. In non-editable mode the\n // .trigger button covers the whole field, so the icon is just visual.\n return this.editable\n ? html`<u-icon-button\n type=\"button\"\n aria-haspopup=\"dialog\"\n aria-label=\"Open calendar\"\n ?disabled=${this.disabled}\n @click=${this.#toggleMenu}>${icon}</u-icon-button>`\n : icon;\n }\n\n protected override renderAfterContent() {\n return html`\n <u-menu\n positioning=${this.menuPositioning}\n autoclose=\"outside\"\n anchor-corner=\"end-start\"\n direction=\"down-end\"\n allow-overflow\n manualFocus\n @click=${this.#stopPropagation}>\n <u-calendar\n .value=${this._value}\n .locale=${this.locale}\n @input=${this.#handleCalendarInput}></u-calendar>\n </u-menu>\n `;\n }\n\n override connectedCallback(): void {\n super.connectedCallback();\n void this.#attach();\n }\n\n override disconnectedCallback(): void {\n super.disconnectedCallback();\n this._trailingSlot?.removeEventListener('click', this.#toggleMenu);\n }\n\n protected override _handleInput(): void {\n super._handleInput();\n\n if (ISO_DATE.test(this._value)) {\n this._calendar.value = this._value;\n }\n\n this.dispatchEvent(new InputEvent('input', { bubbles: true, composed: true }));\n }\n\n #handleKeyDown = (e: KeyboardEvent): void => {\n if (e.key === 'ArrowDown' && !this._menu.open) {\n e.preventDefault();\n this._menu.show();\n return;\n }\n\n if (e.key === 'Escape' && this._menu.open) {\n e.preventDefault();\n this._menu.close();\n return;\n }\n\n this._handleKeyDown(e);\n };\n\n #handleCalendarInput = (e: Event): void => {\n e.stopPropagation();\n const value = (e.target as Calendar).value;\n this.value = value;\n this.dispatchEvent(new InputEvent('input', { bubbles: true, composed: true }));\n this.dispatchEvent(new Event('change', { bubbles: true }));\n this._menu.close();\n };\n\n #stopPropagation = (e: Event): void => {\n e.stopPropagation();\n };\n\n #toggleMenu = (): void => {\n if (this.disabled) {\n return;\n }\n this._menu.toggle();\n };\n\n async #attach(): Promise<void> {\n await this.updateComplete;\n this._menu.anchorElement = this._container;\n this._trailingSlot.addEventListener('click', this.#toggleMenu);\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'u-datepicker': Datepicker;\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"datepicker.styles.d.ts","sourceRoot":"","sources":["../../src/datepicker/datepicker.styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,MAAM,yBAElB,CAAC"}
1
+ {"version":3,"file":"datepicker.styles.d.ts","sourceRoot":"","sources":["../../src/datepicker/datepicker.styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,MAAM,yBA2BlB,CAAC"}
@@ -1,5 +1,30 @@
1
1
  import { css } from 'lit';
2
2
  export const styles = css `
3
+ :host(:not([editable]):not([disabled])) .container {
4
+ cursor: pointer;
5
+ }
3
6
 
7
+ .trigger {
8
+ position: absolute;
9
+ inset: 0;
10
+ margin: 0;
11
+ padding: 0;
12
+ background: transparent;
13
+ border: none;
14
+ appearance: none;
15
+ cursor: inherit;
16
+ }
17
+
18
+ input[type=date]::-webkit-calendar-picker-indicator {
19
+ display: none;
20
+ }
21
+
22
+ input[type=date]::-webkit-inner-spin-button, input[type=date]::-webkit-clear-button {
23
+ display: none;
24
+ }
25
+
26
+ :host([empty]:not(:focus-within)) .container:not(.no-label) input[type=date]::-webkit-datetime-edit {
27
+ color: transparent;
28
+ }
4
29
  `;
5
30
  //# sourceMappingURL=datepicker.styles.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"datepicker.styles.js","sourceRoot":"","sources":["../../src/datepicker/datepicker.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAC;;CAEzB,CAAC","sourcesContent":["import { css } from 'lit';\n\nexport const styles = css `\n\n`;\n"]}
1
+ {"version":3,"file":"datepicker.styles.js","sourceRoot":"","sources":["../../src/datepicker/datepicker.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2BzB,CAAC","sourcesContent":["import { css } from 'lit';\n\nexport const styles = css `\n :host(:not([editable]):not([disabled])) .container {\n cursor: pointer;\n }\n\n .trigger {\n position: absolute;\n inset: 0;\n margin: 0;\n padding: 0;\n background: transparent;\n border: none;\n appearance: none;\n cursor: inherit;\n }\n\n input[type=date]::-webkit-calendar-picker-indicator {\n display: none;\n }\n\n input[type=date]::-webkit-inner-spin-button, input[type=date]::-webkit-clear-button {\n display: none;\n }\n\n :host([empty]:not(:focus-within)) .container:not(.no-label) input[type=date]::-webkit-datetime-edit {\n color: transparent;\n }\n`;\n"]}
@@ -0,0 +1,19 @@
1
+ export type DatepickerFormat = 'short' | 'medium' | 'long' | 'full' | 'iso' | Intl.DateTimeFormatOptions;
2
+ /**
3
+ * Parses an ISO `YYYY-MM-DD` string into a `Date` at local midnight,
4
+ * sidestepping the UTC-vs-local parsing ambiguity of the `Date` constructor
5
+ * when given a string.
6
+ */
7
+ export declare function parseIsoDate(iso: string): Date | null;
8
+ /**
9
+ * Formats an ISO date string (`YYYY-MM-DD`) for display, following the
10
+ * datepicker `format` property. Non-ISO inputs are passed through
11
+ * unchanged so partially-typed values aren't mangled.
12
+ */
13
+ export declare function formatIsoDate(value: string, format: DatepickerFormat, locale: string | null): string;
14
+ /**
15
+ * Formats a range value (`YYYY-MM-DD - YYYY-MM-DD`) by formatting each end
16
+ * with `formatIsoDate` and rejoining them with the same separator.
17
+ */
18
+ export declare function formatIsoDateRange(value: string, format: DatepickerFormat, locale: string | null): string;
19
+ //# sourceMappingURL=format.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../../src/datepicker/format.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,gBAAgB,GACxB,OAAO,GACP,QAAQ,GACR,MAAM,GACN,MAAM,GACN,KAAK,GACL,IAAI,CAAC,qBAAqB,CAAC;AAI/B;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAOrD;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAC3B,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,gBAAgB,EACxB,MAAM,EAAE,MAAM,GAAG,IAAI,GACpB,MAAM,CAgBR;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,gBAAgB,EACxB,MAAM,EAAE,MAAM,GAAG,IAAI,GACpB,MAAM,CAYR"}
@@ -0,0 +1,47 @@
1
+ const ISO_DATE = /^\d{4}-\d{2}-\d{2}$/;
2
+ /**
3
+ * Parses an ISO `YYYY-MM-DD` string into a `Date` at local midnight,
4
+ * sidestepping the UTC-vs-local parsing ambiguity of the `Date` constructor
5
+ * when given a string.
6
+ */
7
+ export function parseIsoDate(iso) {
8
+ if (!ISO_DATE.test(iso)) {
9
+ return null;
10
+ }
11
+ const [year, month, day] = iso.split('-').map(Number);
12
+ return new Date(year, month - 1, day);
13
+ }
14
+ /**
15
+ * Formats an ISO date string (`YYYY-MM-DD`) for display, following the
16
+ * datepicker `format` property. Non-ISO inputs are passed through
17
+ * unchanged so partially-typed values aren't mangled.
18
+ */
19
+ export function formatIsoDate(value, format, locale) {
20
+ if (!value || format === 'iso') {
21
+ return value;
22
+ }
23
+ const date = parseIsoDate(value);
24
+ if (!date) {
25
+ return value;
26
+ }
27
+ const options = typeof format === 'string'
28
+ ? { dateStyle: format }
29
+ : format;
30
+ return new Intl.DateTimeFormat(locale ?? undefined, options).format(date);
31
+ }
32
+ /**
33
+ * Formats a range value (`YYYY-MM-DD - YYYY-MM-DD`) by formatting each end
34
+ * with `formatIsoDate` and rejoining them with the same separator.
35
+ */
36
+ export function formatIsoDateRange(value, format, locale) {
37
+ if (!value || format === 'iso') {
38
+ return value;
39
+ }
40
+ const parts = value.split(' - ');
41
+ if (parts.length !== 2) {
42
+ return value;
43
+ }
44
+ const [start, end] = parts;
45
+ return `${formatIsoDate(start, format, locale)} - ${formatIsoDate(end, format, locale)}`;
46
+ }
47
+ //# sourceMappingURL=format.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"format.js","sourceRoot":"","sources":["../../src/datepicker/format.ts"],"names":[],"mappings":"AAQA,MAAM,QAAQ,GAAG,qBAAqB,CAAC;AAEvC;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAAC,GAAW;IACtC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QACxB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACtD,OAAO,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;AACxC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAC3B,KAAa,EACb,MAAwB,EACxB,MAAqB;IAErB,IAAI,CAAC,KAAK,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC;QAC/B,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,IAAI,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;IACjC,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,OAAO,GACX,OAAO,MAAM,KAAK,QAAQ;QACxB,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE;QACvB,CAAC,CAAC,MAAM,CAAC;IAEb,OAAO,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,IAAI,SAAS,EAAE,OAAO,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AAC5E,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAChC,KAAa,EACb,MAAwB,EACxB,MAAqB;IAErB,IAAI,CAAC,KAAK,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC;QAC/B,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACjC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC;IAC3B,OAAO,GAAG,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC;AAC3F,CAAC","sourcesContent":["export type DatepickerFormat =\n | 'short'\n | 'medium'\n | 'long'\n | 'full'\n | 'iso'\n | Intl.DateTimeFormatOptions;\n\nconst ISO_DATE = /^\\d{4}-\\d{2}-\\d{2}$/;\n\n/**\n * Parses an ISO `YYYY-MM-DD` string into a `Date` at local midnight,\n * sidestepping the UTC-vs-local parsing ambiguity of the `Date` constructor\n * when given a string.\n */\nexport function parseIsoDate(iso: string): Date | null {\n if (!ISO_DATE.test(iso)) {\n return null;\n }\n\n const [year, month, day] = iso.split('-').map(Number);\n return new Date(year, month - 1, day);\n}\n\n/**\n * Formats an ISO date string (`YYYY-MM-DD`) for display, following the\n * datepicker `format` property. Non-ISO inputs are passed through\n * unchanged so partially-typed values aren't mangled.\n */\nexport function formatIsoDate(\n value: string,\n format: DatepickerFormat,\n locale: string | null,\n): string {\n if (!value || format === 'iso') {\n return value;\n }\n\n const date = parseIsoDate(value);\n if (!date) {\n return value;\n }\n\n const options: Intl.DateTimeFormatOptions =\n typeof format === 'string'\n ? { dateStyle: format }\n : format;\n\n return new Intl.DateTimeFormat(locale ?? undefined, options).format(date);\n}\n\n/**\n * Formats a range value (`YYYY-MM-DD - YYYY-MM-DD`) by formatting each end\n * with `formatIsoDate` and rejoining them with the same separator.\n */\nexport function formatIsoDateRange(\n value: string,\n format: DatepickerFormat,\n locale: string | null,\n): string {\n if (!value || format === 'iso') {\n return value;\n }\n\n const parts = value.split(' - ');\n if (parts.length !== 2) {\n return value;\n }\n\n const [start, end] = parts;\n return `${formatIsoDate(start, format, locale)} - ${formatIsoDate(end, format, locale)}`;\n}\n"]}
@@ -0,0 +1,58 @@
1
+ import { CSSResultGroup } from '@lit/reactive-element/css-tag';
2
+ import { HTMLTemplateResult } from 'lit';
3
+ import { NativeTextFieldWrapper } from '../shared/char-count-text-field/native-text-field-wrapper.js';
4
+ import { DatepickerFormat } from './format.js';
5
+ import '../button/icon-button.js';
6
+ import '../calendar/range-calendar.js';
7
+ import '../menu/menu.js';
8
+ import '../ripple/ripple.js';
9
+ export declare class RangeDatepicker extends NativeTextFieldWrapper {
10
+ #private;
11
+ static styles: CSSResultGroup;
12
+ /**
13
+ * The BCP 47 locale tag forwarded to the underlying range calendar and used
14
+ * for non-editable display formatting.
15
+ * When `null`, the calendar falls back to the browser's `navigator.language`.
16
+ */
17
+ locale: string | null;
18
+ /**
19
+ * Format used when displaying the value while the field is not editable.
20
+ * Accepts `'short'`, `'medium'`, `'long'`, `'full'`, `'iso'`, or an
21
+ * `Intl.DateTimeFormatOptions` object. Each end of the range is formatted
22
+ * independently and joined with ` - `.
23
+ */
24
+ format: DatepickerFormat;
25
+ /**
26
+ * Whether the input accepts manually-typed ranges. When `false` (default),
27
+ * the field is read-only and clicking anywhere opens the calendar popover.
28
+ * When `true`, the input accepts text in the `YYYY-MM-DD - YYYY-MM-DD` format;
29
+ * the calendar popover is opened via the trailing icon.
30
+ */
31
+ editable: boolean;
32
+ /**
33
+ * Whether the input is read-only. When set, manual typing is disabled even
34
+ * if `editable` is `true`; the calendar popover remains available.
35
+ */
36
+ readOnly: boolean;
37
+ /**
38
+ * The positioning strategy used by the calendar popover. Use `'fixed'`
39
+ * when the datepicker is rendered inside a clipped/scrollable container.
40
+ */
41
+ menuPositioning: 'relative' | 'fixed';
42
+ input: HTMLInputElement;
43
+ private _menu;
44
+ private _calendar;
45
+ private _trailingSlot;
46
+ protected renderControl(): HTMLTemplateResult;
47
+ protected renderDefaultTrailingIcon(): import("lit-html").TemplateResult<1> | import("lit-html").TemplateResult<2>;
48
+ protected renderAfterContent(): import("lit-html").TemplateResult<1>;
49
+ connectedCallback(): void;
50
+ disconnectedCallback(): void;
51
+ protected _handleInput(): void;
52
+ }
53
+ declare global {
54
+ interface HTMLElementTagNameMap {
55
+ 'u-range-datepicker': RangeDatepicker;
56
+ }
57
+ }
58
+ //# sourceMappingURL=range-datepicker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"range-datepicker.d.ts","sourceRoot":"","sources":["../../src/datepicker/range-datepicker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAE/D,OAAO,EAAQ,kBAAkB,EAAgB,MAAM,KAAK,CAAC;AAM7D,OAAO,EAAE,sBAAsB,EAAE,MAAM,8DAA8D,CAAC;AAKtG,OAAO,EAAE,gBAAgB,EAAsB,MAAM,aAAa,CAAC;AAEnE,OAAO,0BAA0B,CAAC;AAClC,OAAO,+BAA+B,CAAC;AACvC,OAAO,iBAAiB,CAAC;AACzB,OAAO,qBAAqB,CAAC;AAI7B,qBACa,eAAgB,SAAQ,sBAAsB;;IACzD,OAAgB,MAAM,EAAE,cAAc,CAAmD;IAEzF;;;;OAIG;IACS,MAAM,EAAE,MAAM,GAAG,IAAI,CAAQ;IAEzC;;;;;OAKG;IACS,MAAM,EAAE,gBAAgB,CAAW;IAE/C;;;;;OAKG;IACyC,QAAQ,UAAS;IAE7D;;;OAGG;IACyC,QAAQ,UAAS;IAE7D;;;OAGG;IACyD,eAAe,EAAE,UAAU,GAAG,OAAO,CAAc;IAE/F,KAAK,EAAG,gBAAgB,CAAC;IAClB,OAAO,CAAC,KAAK,CAAQ;IACX,OAAO,CAAC,SAAS,CAAiB;IACpC,OAAO,CAAC,aAAa,CAAmB;cAEpD,aAAa,IAAI,kBAAkB;cAoCnC,yBAAyB;cAmBzB,kBAAkB;IAmB5B,iBAAiB,IAAI,IAAI;IAKzB,oBAAoB,IAAI,IAAI;cAKlB,YAAY,IAAI,IAAI;CA4DxC;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,oBAAoB,EAAE,eAAe,CAAC;KACvC;CACF"}