@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
@@ -0,0 +1,87 @@
1
+ ---
2
+ description: Build a Material 3 navigation bar — destinations with icon + label, vertical or horizontal layout, active indicator pill.
3
+ ---
4
+
5
+ # Navigation bar
6
+
7
+ `<u-navigation-bar>` hosts 3–5 top-level destinations at the bottom of a screen. Use `<u-navigation-bar-item>` for each destination — they render the active indicator pill, icon, and label per M3 expressive tokens.
8
+
9
+ ## Default (vertical) layout
10
+
11
+ ```html
12
+ <u-navigation-bar>
13
+ <u-navigation-bar-item active>
14
+ <span class="material-symbols-outlined" slot="icon">home</span>
15
+ Home
16
+ </u-navigation-bar-item>
17
+ <u-navigation-bar-item>
18
+ <span class="material-symbols-outlined" slot="icon">explore</span>
19
+ Browse
20
+ </u-navigation-bar-item>
21
+ <u-navigation-bar-item>
22
+ <span class="material-symbols-outlined" slot="icon">radio</span>
23
+ Radio
24
+ </u-navigation-bar-item>
25
+ <u-navigation-bar-item>
26
+ <span class="material-symbols-outlined" slot="icon">library_music</span>
27
+ Library
28
+ </u-navigation-bar-item>
29
+ </u-navigation-bar>
30
+ ```
31
+
32
+ M3 tokens applied automatically:
33
+ - container: 64dp height, `surface-container` color, level-2 elevation
34
+ - active indicator pill: 56×32dp, `secondary-container`
35
+ - icon: 24dp, `on-secondary-container` (active) / `on-surface-variant` (inactive)
36
+ - label: label-medium, `secondary` (active) / `on-surface-variant` (inactive)
37
+
38
+ ## Horizontal variant
39
+
40
+ For wider items where icon and label sit side-by-side inside a 40dp pill:
41
+
42
+ ```html
43
+ <u-navigation-bar>
44
+ <u-navigation-bar-item variant="horizontal" active>
45
+ <span class="material-symbols-outlined" slot="icon">home</span>
46
+ Home
47
+ </u-navigation-bar-item>
48
+ <u-navigation-bar-item variant="horizontal">
49
+ <span class="material-symbols-outlined" slot="icon">explore</span>
50
+ Browse
51
+ </u-navigation-bar-item>
52
+ </u-navigation-bar>
53
+ ```
54
+
55
+ ## Slots on `<u-navigation-bar-item>`
56
+
57
+ | Slot | Content |
58
+ | --- | --- |
59
+ | default | Destination label (text). |
60
+ | `icon` | 24dp icon (`<span class="material-symbols-outlined">…</span>`). |
61
+ | `badge` | Optional `<u-badge>` — auto-positions over the icon. |
62
+
63
+ ## Tracking selection
64
+
65
+ ```html
66
+ <u-navigation-bar id="nav">…</u-navigation-bar>
67
+
68
+ <script>
69
+ const nav = document.getElementById('nav');
70
+ nav.addEventListener('click', (e) => {
71
+ const item = e.target.closest('u-navigation-bar-item');
72
+ if (!item) return;
73
+ [...nav.children].forEach(i => i.active = i === item);
74
+ });
75
+ </script>
76
+ ```
77
+
78
+ In Angular/React, bind `[active]="route === 'home'"` on each item and switch the route on click.
79
+
80
+ ## Positioning
81
+
82
+ Same model as `<u-top-app-bar>`: `position="fixed"` by default (viewport bottom), or `position="absolute"` when slotted in a `<u-scaffold>` (auto-set). The internal `.spacing` filler reserves the bar's height in the scrolled flow so content isn't obscured.
83
+
84
+ ## Caveats
85
+
86
+ - Each item should have an icon AND a label per M3 spec; icon-only items look broken at 64dp.
87
+ - Don't use `<u-icon-button>` instead of `<u-navigation-bar-item>` — you'll lose the active indicator pill, label, and badge slot.
@@ -0,0 +1,127 @@
1
+ ---
2
+ description: Build a Material 3 responsive navigation rail — hidden on mobile, collapsed 96dp rail on medium with primary items, permanent expanded rail (220–360dp) on large with the full menu (including headlines). Two slots crossfade between the two states.
3
+ ---
4
+
5
+ # Navigation rail
6
+
7
+ `<u-navigation-rail>` is a responsive primary navigation surface with two independently configurable destination sets — one short list for the collapsed state, and an optional longer/grouped list for the expanded state. The two share the same on-screen area and the rail crossfades between them as it grows or shrinks.
8
+
9
+ ## Responsive behavior
10
+
11
+ - **Mobile (< 840px)**: rail is hidden. Provide a different nav pattern (e.g. `<u-navigation-bar>`) for small screens.
12
+ - **Medium (840–1199px)**: rail is a permanent 96dp **collapsed** sidebar showing `slot="rail"` items.
13
+ - **Large (≥ 1200px)**: rail is permanently **expanded** (220–360dp, default 360dp), showing `slot="expanded"` items grouped by `<u-navigation-rail-headline>`s. `toggle-drawer` collapses it back to the 96dp width and crossfades to the `slot="rail"` list. If `slot="expanded"` is empty, the rail keeps showing `slot="rail"` items even when expanded.
14
+
15
+ ## Basic usage
16
+
17
+ ```html
18
+ <u-navigation-rail id="nav">
19
+ <!-- Collapsed: short list of primary destinations -->
20
+ <u-navigation-rail-item slot="rail" active>
21
+ <span class="material-symbols-outlined" slot="icon">home</span>
22
+ Home
23
+ </u-navigation-rail-item>
24
+ <u-navigation-rail-item slot="rail">
25
+ <span class="material-symbols-outlined" slot="icon">explore</span>
26
+ Browse
27
+ </u-navigation-rail-item>
28
+ <u-navigation-rail-item slot="rail">
29
+ <span class="material-symbols-outlined" slot="icon">library_music</span>
30
+ Library
31
+ </u-navigation-rail-item>
32
+
33
+ <!-- Expanded: full menu, grouped with headlines -->
34
+ <u-navigation-rail-headline slot="expanded">Library</u-navigation-rail-headline>
35
+ <u-navigation-rail-item slot="expanded" active>
36
+ <span class="material-symbols-outlined" slot="icon">home</span>
37
+ Home
38
+ </u-navigation-rail-item>
39
+ <u-navigation-rail-item slot="expanded">
40
+ <span class="material-symbols-outlined" slot="icon">explore</span>
41
+ Browse
42
+ </u-navigation-rail-item>
43
+
44
+ <u-navigation-rail-headline slot="expanded">Recents</u-navigation-rail-headline>
45
+ <u-navigation-rail-item slot="expanded">
46
+ <span class="material-symbols-outlined" slot="icon">favorite</span>
47
+ Favorites
48
+ </u-navigation-rail-item>
49
+
50
+ <u-scaffold>
51
+ <u-top-app-bar slot="top-bar" headline="Mail">
52
+ <u-icon-button slot="leading-icon"
53
+ onclick="const r = this.closest('u-navigation-rail'); r.toggleDrawer = !r.toggleDrawer;">
54
+ <span class="material-symbols-outlined">menu</span>
55
+ </u-icon-button>
56
+ </u-top-app-bar>
57
+ <div>Page content</div>
58
+ </u-scaffold>
59
+ </u-navigation-rail>
60
+ ```
61
+
62
+ ## Slots on `<u-navigation-rail>`
63
+
64
+ | Slot | Content | Shown when |
65
+ | --- | --- | --- |
66
+ | `rail` | Primary destinations (`<u-navigation-rail-item>`s). | Collapsed state (mobile is hidden; md is permanent; lg shows when `toggle-drawer` is set). |
67
+ | `expanded` | Full destination list — items + `<u-navigation-rail-headline>`s. | Expanded state (lg without `toggle-drawer`). Falls back to `rail` when empty. |
68
+ | `top` | Menu button, brand mark, or other top-pinned content. | Always (within visible rail). |
69
+ | `bottom` | FAB or secondary action pinned to the bottom. | Always (within visible rail). |
70
+ | default | Page content (typically `<u-scaffold>`). | Always. |
71
+
72
+ The rail crossfades (200ms) between the `rail` and `expanded` layers when its state changes.
73
+
74
+ ## `<u-navigation-rail-item>`
75
+
76
+ The rail sets the item's `variant` automatically based on which slot it lives in:
77
+
78
+ - Inside `slot="rail"`: `variant="collapsed"` (vertical icon + label, 56×32dp pill around the icon, label-medium).
79
+ - Inside `slot="expanded"`: `variant="expanded"` (horizontal icon + label inside a content-sized 56dp pill aligned to the leading edge with 16dp inset; label-large).
80
+
81
+ Slots: default (label), `icon` (24dp icon), `badge` (optional `<u-badge>`).
82
+
83
+ ```html
84
+ <u-navigation-rail-item slot="expanded" active>
85
+ <span class="material-symbols-outlined" slot="icon">inbox</span>
86
+ Inbox
87
+ <u-badge slot="badge">12</u-badge>
88
+ </u-navigation-rail-item>
89
+ ```
90
+
91
+ ## `<u-navigation-rail-headline>`
92
+
93
+ Section header for grouping destinations inside `slot="expanded"`. Renders title-small typography in `on-surface-variant`, with M3-correct padding. Only visible while the rail is expanded — headlines never appear in the narrow collapsed form, since the collapsed `slot="rail"` is a separate, headline-free list.
94
+
95
+ ```html
96
+ <u-navigation-rail-headline slot="expanded">Recents</u-navigation-rail-headline>
97
+ ```
98
+
99
+ ## Tokens applied (M3 expressive spec)
100
+
101
+ Sources: `md.comp.nav-rail`, `md.comp.nav-rail-collapsed`, `md.comp.nav-rail-expanded`, `md.comp.nav-rail-item`, `md.comp.nav-rail-item-vertical`, `md.comp.nav-rail-item-horizontal`.
102
+
103
+ - **Rail container**: 96dp width (collapsed default; 80dp narrow opt-in) / 220–360dp width (expanded); `surface` color; level-0 elevation; `corner-none`; 44dp top space; 20dp vertical-trailing space.
104
+ - **Item container**: 64dp height (default); 4dp gap between items (collapsed) / 0dp (expanded).
105
+ - **Active indicator**: `secondary-container` background; `corner-full` shape; 56×32dp pill (collapsed/vertical) / content-sized 56dp pill (expanded/horizontal) aligned to the 16dp leading edge.
106
+ - **Icon**: 24dp; `on-secondary-container` (active) / `on-surface-variant` (inactive).
107
+ - **Label**: label-medium 12sp (collapsed) / label-large 14sp (expanded). Active color is `secondary` (collapsed/vertical) or `on-secondary-container` (expanded/horizontal); inactive is `on-surface-variant`. Active items use `weight-prominent` (700 / bold).
108
+ - **State layer**: `on-secondary-container` color; hover 8%, focus 10%, pressed 10% — applied **only inside the active-indicator pill**. Click target remains the entire item, ripples confined to the pill via `u-ripple` inside the indicator.
109
+
110
+ ## The two slots are the SAME navigation at two detail levels — not two different menus
111
+
112
+ `slot="rail"` (collapsed) and `slot="expanded"` are the **same destination set** shown at two levels of detail: collapsed = icons only; expanded = icons + labels grouped under headlines. They are *not* a place to put two different navigations.
113
+
114
+ A tempting-but-wrong idea: make the collapsed rail the product nav (Mail, Chat, Meet) and the expanded rail the current section's sub-navigation (mail folders — Inbox, Starred, Sent…). This breaks the user's mental model: toggling the rail should reveal *more detail about the same destinations*, not **swap** what the rail navigates. A user who expands the rail expecting fuller product labels instead finds an unrelated folder list. Don't do this.
115
+
116
+ Where section sub-navigation belongs instead:
117
+ - **A small set of peer views** (e.g. "All / Unread / Starred"): a `u-chip-set` or `u-tab-bar` in the list header.
118
+ - **A genuinely large folder tree** that warrants its own surface: a separate `<u-pane>` with a `<u-drawer>` — but first ask whether the screen actually needs it. A CRM "inbox" is a list of conversations; it usually does **not** need Gmail-style Sent/Drafts/Trash folders at all. Cut the layer rather than house it.
119
+
120
+ The rail carries **product-level** destinations only. If a sub-navigation doesn't fit as collapsed-icon + expanded-label of those same destinations, it doesn't belong in the rail.
121
+
122
+ ## Caveats
123
+
124
+ - Don't slot a `<u-drawer>`: the expanded rail is a distinct M3 surface with its own pill-shaped items, not a drawer.
125
+ - Mobile (< 840px) hides the rail entirely — give small screens a different nav (`<u-navigation-bar>`, modal etc).
126
+ - `slot="top"` / `slot="bottom"` children are sized intrinsically (not stretched), and align horizontally based on the rail state — centered when collapsed, leading-aligned with 16dp inset when expanded.
127
+ - The expanded layer scrolls when its content overflows the rail height; the collapsed layer does too if you slot more than ~5 items.
@@ -0,0 +1,44 @@
1
+ ---
2
+ description: Overview of @universal-material/web — what's in the library and which skills cover each area.
3
+ ---
4
+
5
+ # @universal-material/web — overview
6
+
7
+ Material Design 3 web components built with Lit. Custom elements with the `u-` prefix; class names match the tag without the prefix (`<u-button>` → `class Button`).
8
+
9
+ ## What's inside
10
+
11
+ | Area | Components | Skill |
12
+ | --- | --- | --- |
13
+ | Bootstrap | install, fonts, theme | `setup`, `theming` |
14
+ | Layout | `<u-scaffold>` | `scaffold` |
15
+ | App bars | `<u-top-app-bar>`, `<u-navigation-bar>` | `top-app-bar`, `navigation-bar` |
16
+ | Navigation | `<u-side-navigation>`, `<u-drawer>` | `drawer` |
17
+ | Common buttons | `<u-button>`, `<u-icon-button>`, `<u-button-set>` | `buttons` |
18
+ | FAB | `<u-fab>`, `<u-fab-menu>` | `fab` |
19
+ | Dialogs | `<u-dialog>` + `Dialog.message/.confirm` | `dialog` |
20
+ | Text input | `<u-text-field>`, `<u-text-area>` | `text-field` |
21
+ | Select | `<u-select>`, `<u-option>` | `select` |
22
+ | Chips | `<u-chip>`, `<u-chip-set>`, `<u-chip-field>` | `chips` |
23
+ | Selection controls | `<u-checkbox>`, `<u-radio>`, `<u-switch>` + list-items | `selection-controls` |
24
+ | Date | `<u-datepicker>`, `<u-range-datepicker>`, `<u-calendar>` | `datepicker` |
25
+ | Menus | `<u-menu>`, `<u-menu-item>`, `<u-overflow-menu>` | `menu` |
26
+ | Lists | `<u-list>`, `<u-list-item>` | `list` |
27
+ | Tabs | `<u-tab-bar>`, `<u-tab>` | `tab-bar` |
28
+ | Feedback | `Snackbar.show` | `snackbar` |
29
+ | Progress | `<u-progress-bar>`, `<u-circular-progress>` | `progress` |
30
+ | Badge | `<u-badge>` | `badge` |
31
+ | Cards | `<u-card>`, `<u-card-content>`, `<u-card-media>` | `card` |
32
+ | Autocomplete | `<u-typeahead>`, `<u-highlight>` | `typeahead` |
33
+ | Search | `<u-search>` (M3 search bar; pairs with `u-typeahead`) | `search` |
34
+
35
+ ## Core conventions
36
+
37
+ - Custom elements have the `u-` prefix; class names are unprefixed PascalCase (`<u-top-app-bar>` → `class TopAppBar`).
38
+ - Every component exposes its main inner boxes via `part` attributes — style externally with `::part(container)` etc.
39
+ - Theming is driven by CSS variables (`--u-color-primary`, ...). Use `ThemeBuilder.create(seedHex).build()` once at boot.
40
+ - Slot names match what they hold (`leading-icon`, `trailing-icon`, `headline`, `actions`, ...).
41
+ - Form-associated components participate in `<form>` submission natively.
42
+ - Major version follows Material spec version (M3 → `3.x`).
43
+
44
+ When unsure which skill to use, this overview maps it out.
@@ -0,0 +1,63 @@
1
+ ---
2
+ description: Show determinate or indeterminate progress — u-progress-bar (linear) and u-circular-progress (ring).
3
+ ---
4
+
5
+ # Progress indicators
6
+
7
+ Two components share the same value API: `<u-progress-bar>` (linear, M3 4dp track) and `<u-circular-progress>` (ring).
8
+
9
+ ## Determinate
10
+
11
+ `value` is a number; `max` defaults to `1`. So `value` is a fraction `0–1`, or pass a `max`:
12
+
13
+ ```html
14
+ <u-progress-bar value="0.81"></u-progress-bar> <!-- 81% -->
15
+ <u-progress-bar value="81" max="100"></u-progress-bar> <!-- same -->
16
+
17
+ <u-circular-progress value="0.66"></u-circular-progress>
18
+ ```
19
+
20
+ ## Indeterminate
21
+
22
+ Omit `value` (or set it to `undefined`) for the looping animation:
23
+
24
+ ```html
25
+ <u-progress-bar></u-progress-bar>
26
+ <u-circular-progress></u-circular-progress>
27
+ ```
28
+
29
+ ## Setting value from JS
30
+
31
+ ```ts
32
+ const bar = document.querySelector('u-progress-bar')!;
33
+ bar.value = 0.4; // determinate
34
+ bar.value = undefined; // back to indeterminate
35
+ ```
36
+
37
+ ## Sizing & color (tokens)
38
+
39
+ - **`<u-progress-bar>` is not full-width by default** — give it `display: block` (or a width) to span its container:
40
+ ```html
41
+ <u-progress-bar value="0.5" style="display: block"></u-progress-bar>
42
+ ```
43
+ - **`<u-circular-progress>`** size via `--u-circular-progress-size` (default `3rem`):
44
+ ```html
45
+ <u-circular-progress value="0.81" style="--u-circular-progress-size: 96px"></u-circular-progress>
46
+ ```
47
+ Arc color `--u-circular-progress-color` (default `primary`); track `--u-circular-progress-track-color` (default `secondary-container`).
48
+
49
+ ## Centered label in a ring (gauge)
50
+
51
+ Wrap the ring in a `position: relative` box and absolutely-center the label:
52
+
53
+ ```html
54
+ <div style="position: relative; width: 96px; height: 96px">
55
+ <u-circular-progress value="0.81" style="--u-circular-progress-size: 96px"></u-circular-progress>
56
+ <div style="position: absolute; inset: 0; display: flex; align-items: center; justify-content: center">81%</div>
57
+ </div>
58
+ ```
59
+
60
+ ## Caveats
61
+
62
+ - Determinate values are rounded (~2 decimals circular / 1 decimal bar) — sub-pixel differences won't render.
63
+ - Use indeterminate for unknown-duration waits; determinate when you can compute the fraction.