@universal-material/web 3.8.0 → 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 (429) 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 +7 -6
  4. package/app-bar/top-app-bar.d.ts.map +1 -1
  5. package/app-bar/top-app-bar.js +71 -35
  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 +2 -2
  11. package/badge/badge.d.ts.map +1 -1
  12. package/badge/badge.js +6 -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 +4469 -1277
  18. package/button/button-base.d.ts +2 -2
  19. package/button/button-base.d.ts.map +1 -1
  20. package/button/button-base.js +5 -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 +7 -7
  27. package/button/button.d.ts.map +1 -1
  28. package/button/button.js +14 -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 +7 -7
  46. package/button/icon-button.d.ts.map +1 -1
  47. package/button/icon-button.js +8 -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 +3 -3
  54. package/button-field/button-field.d.ts.map +1 -1
  55. package/button-field/button-field.js +9 -9
  56. package/button-field/button-field.js.map +1 -1
  57. package/calendar/calendar-base.d.ts +1 -1
  58. package/calendar/calendar-base.d.ts.map +1 -1
  59. package/calendar/calendar-base.js +10 -10
  60. package/calendar/calendar-base.js.map +1 -1
  61. package/calendar/calendar.d.ts +2 -2
  62. package/calendar/calendar.d.ts.map +1 -1
  63. package/calendar/calendar.js +8 -8
  64. package/calendar/calendar.js.map +1 -1
  65. package/calendar/range-calendar.d.ts +2 -2
  66. package/calendar/range-calendar.d.ts.map +1 -1
  67. package/calendar/range-calendar.js +9 -9
  68. package/calendar/range-calendar.js.map +1 -1
  69. package/card/card-content.d.ts +2 -2
  70. package/card/card-content.d.ts.map +1 -1
  71. package/card/card-content.js +5 -5
  72. package/card/card-content.js.map +1 -1
  73. package/card/card-media.d.ts +2 -2
  74. package/card/card-media.d.ts.map +1 -1
  75. package/card/card-media.js +5 -5
  76. package/card/card-media.js.map +1 -1
  77. package/card/card.d.ts +4 -4
  78. package/card/card.d.ts.map +1 -1
  79. package/card/card.js +5 -5
  80. package/card/card.js.map +1 -1
  81. package/checkbox/checkbox-list-item.d.ts +4 -4
  82. package/checkbox/checkbox-list-item.d.ts.map +1 -1
  83. package/checkbox/checkbox-list-item.js +5 -5
  84. package/checkbox/checkbox-list-item.js.map +1 -1
  85. package/checkbox/checkbox.d.ts +3 -3
  86. package/checkbox/checkbox.d.ts.map +1 -1
  87. package/checkbox/checkbox.js +7 -7
  88. package/checkbox/checkbox.js.map +1 -1
  89. package/chip/chip-set.d.ts +3 -3
  90. package/chip/chip-set.d.ts.map +1 -1
  91. package/chip/chip-set.js +6 -6
  92. package/chip/chip-set.js.map +1 -1
  93. package/chip/chip.d.ts +5 -5
  94. package/chip/chip.d.ts.map +1 -1
  95. package/chip/chip.js +20 -20
  96. package/chip/chip.js.map +1 -1
  97. package/chip-field/chip-field.d.ts +3 -3
  98. package/chip-field/chip-field.d.ts.map +1 -1
  99. package/chip-field/chip-field.js +9 -9
  100. package/chip-field/chip-field.js.map +1 -1
  101. package/collapse/collapse.d.ts +26 -0
  102. package/collapse/collapse.d.ts.map +1 -0
  103. package/collapse/collapse.js +62 -0
  104. package/collapse/collapse.js.map +1 -0
  105. package/collapse/collapse.styles.d.ts +2 -0
  106. package/collapse/collapse.styles.d.ts.map +1 -0
  107. package/collapse/collapse.styles.js +8 -0
  108. package/collapse/collapse.styles.js.map +1 -0
  109. package/config.js.map +1 -1
  110. package/css/universal-material.css +2 -1
  111. package/css/universal-material.min.css +2 -1
  112. package/custom-elements.json +16615 -12152
  113. package/datepicker/datepicker.d.ts +6 -4
  114. package/datepicker/datepicker.d.ts.map +1 -1
  115. package/datepicker/datepicker.js +33 -19
  116. package/datepicker/datepicker.js.map +1 -1
  117. package/datepicker/datepicker.styles.d.ts.map +1 -1
  118. package/datepicker/datepicker.styles.js +25 -0
  119. package/datepicker/datepicker.styles.js.map +1 -1
  120. package/datepicker/range-datepicker.d.ts +6 -4
  121. package/datepicker/range-datepicker.d.ts.map +1 -1
  122. package/datepicker/range-datepicker.js +33 -19
  123. package/datepicker/range-datepicker.js.map +1 -1
  124. package/dialog/confirm-dialog-builder.d.ts +3 -3
  125. package/dialog/confirm-dialog-builder.d.ts.map +1 -1
  126. package/dialog/confirm-dialog-builder.js.map +1 -1
  127. package/dialog/dialog-builder.d.ts +5 -4
  128. package/dialog/dialog-builder.d.ts.map +1 -1
  129. package/dialog/dialog-builder.js +10 -3
  130. package/dialog/dialog-builder.js.map +1 -1
  131. package/dialog/dialog-button-def.d.ts +3 -3
  132. package/dialog/dialog-button-def.d.ts.map +1 -1
  133. package/dialog/dialog-button-def.js.map +1 -1
  134. package/dialog/dialog.d.ts +2 -2
  135. package/dialog/dialog.d.ts.map +1 -1
  136. package/dialog/dialog.js +14 -14
  137. package/dialog/dialog.js.map +1 -1
  138. package/dialog/message-dialog-builder.d.ts +2 -2
  139. package/dialog/message-dialog-builder.d.ts.map +1 -1
  140. package/dialog/message-dialog-builder.js.map +1 -1
  141. package/elevation/elevation.d.ts +2 -2
  142. package/elevation/elevation.d.ts.map +1 -1
  143. package/elevation/elevation.js +4 -4
  144. package/elevation/elevation.js.map +1 -1
  145. package/expansion-panel/expansion-panel-container.d.ts +24 -0
  146. package/expansion-panel/expansion-panel-container.d.ts.map +1 -0
  147. package/expansion-panel/expansion-panel-container.js +54 -0
  148. package/expansion-panel/expansion-panel-container.js.map +1 -0
  149. package/expansion-panel/expansion-panel-container.styles.d.ts +2 -0
  150. package/expansion-panel/expansion-panel-container.styles.d.ts.map +1 -0
  151. package/expansion-panel/expansion-panel-container.styles.js +9 -0
  152. package/expansion-panel/expansion-panel-container.styles.js.map +1 -0
  153. package/expansion-panel/expansion-panel.d.ts +37 -0
  154. package/expansion-panel/expansion-panel.d.ts.map +1 -0
  155. package/expansion-panel/expansion-panel.js +89 -0
  156. package/expansion-panel/expansion-panel.js.map +1 -0
  157. package/expansion-panel/expansion-panel.styles.d.ts +2 -0
  158. package/expansion-panel/expansion-panel.styles.d.ts.map +1 -0
  159. package/expansion-panel/expansion-panel.styles.js +66 -0
  160. package/expansion-panel/expansion-panel.styles.js.map +1 -0
  161. package/field/field-base.d.ts +3 -3
  162. package/field/field-base.d.ts.map +1 -1
  163. package/field/field-base.js +20 -20
  164. package/field/field-base.js.map +1 -1
  165. package/field/field-defaults-context.d.ts +2 -2
  166. package/field/field-defaults-context.d.ts.map +1 -1
  167. package/field/field-defaults-context.js.map +1 -1
  168. package/field/field-defaults.d.ts +3 -3
  169. package/field/field-defaults.d.ts.map +1 -1
  170. package/field/field-defaults.js.map +1 -1
  171. package/field/field-variant.d.ts +1 -1
  172. package/field/field-variant.d.ts.map +1 -1
  173. package/field/field-variant.js.map +1 -1
  174. package/field/field.d.ts +3 -3
  175. package/field/field.d.ts.map +1 -1
  176. package/field/field.js +6 -6
  177. package/field/field.js.map +1 -1
  178. package/icon/icon.d.ts +2 -2
  179. package/icon/icon.d.ts.map +1 -1
  180. package/icon/icon.js +4 -4
  181. package/icon/icon.js.map +1 -1
  182. package/index.d.ts +24 -1
  183. package/index.d.ts.map +1 -1
  184. package/index.js +24 -1
  185. package/index.js.map +1 -1
  186. package/list/list-item.d.ts +16 -2
  187. package/list/list-item.d.ts.map +1 -1
  188. package/list/list-item.js +26 -6
  189. package/list/list-item.js.map +1 -1
  190. package/list/list-item.styles.d.ts.map +1 -1
  191. package/list/list-item.styles.js +13 -0
  192. package/list/list-item.styles.js.map +1 -1
  193. package/list/list.d.ts +2 -2
  194. package/list/list.d.ts.map +1 -1
  195. package/list/list.js +4 -4
  196. package/list/list.js.map +1 -1
  197. package/menu/menu-item.d.ts +3 -3
  198. package/menu/menu-item.d.ts.map +1 -1
  199. package/menu/menu-item.js +10 -10
  200. package/menu/menu-item.js.map +1 -1
  201. package/menu/menu.d.ts +2 -2
  202. package/menu/menu.d.ts.map +1 -1
  203. package/menu/menu.js +13 -13
  204. package/menu/menu.js.map +1 -1
  205. package/navigation/drawer-headline.d.ts +2 -2
  206. package/navigation/drawer-headline.d.ts.map +1 -1
  207. package/navigation/drawer-headline.js +6 -6
  208. package/navigation/drawer-headline.js.map +1 -1
  209. package/navigation/drawer-item.d.ts +3 -3
  210. package/navigation/drawer-item.d.ts.map +1 -1
  211. package/navigation/drawer-item.js +17 -12
  212. package/navigation/drawer-item.js.map +1 -1
  213. package/navigation/drawer.d.ts +2 -2
  214. package/navigation/drawer.d.ts.map +1 -1
  215. package/navigation/drawer.js +4 -4
  216. package/navigation/drawer.js.map +1 -1
  217. package/navigation/side-navigation.d.ts +9 -2
  218. package/navigation/side-navigation.d.ts.map +1 -1
  219. package/navigation/side-navigation.js +15 -8
  220. package/navigation/side-navigation.js.map +1 -1
  221. package/navigation-bar/navigation-bar-item.d.ts +40 -0
  222. package/navigation-bar/navigation-bar-item.d.ts.map +1 -0
  223. package/navigation-bar/navigation-bar-item.js +113 -0
  224. package/navigation-bar/navigation-bar-item.js.map +1 -0
  225. package/navigation-bar/navigation-bar-item.styles.d.ts +2 -0
  226. package/navigation-bar/navigation-bar-item.styles.d.ts.map +1 -0
  227. package/navigation-bar/navigation-bar-item.styles.js +101 -0
  228. package/navigation-bar/navigation-bar-item.styles.js.map +1 -0
  229. package/navigation-bar/navigation-bar.d.ts +40 -0
  230. package/navigation-bar/navigation-bar.d.ts.map +1 -0
  231. package/navigation-bar/navigation-bar.js +85 -0
  232. package/navigation-bar/navigation-bar.js.map +1 -0
  233. package/navigation-bar/navigation-bar.styles.d.ts +2 -0
  234. package/navigation-bar/navigation-bar.styles.d.ts.map +1 -0
  235. package/navigation-bar/navigation-bar.styles.js +44 -0
  236. package/navigation-bar/navigation-bar.styles.js.map +1 -0
  237. package/navigation-rail/navigation-rail-headline.d.ts +23 -0
  238. package/navigation-rail/navigation-rail-headline.d.ts.map +1 -0
  239. package/navigation-rail/navigation-rail-headline.js +28 -0
  240. package/navigation-rail/navigation-rail-headline.js.map +1 -0
  241. package/navigation-rail/navigation-rail-headline.styles.d.ts +2 -0
  242. package/navigation-rail/navigation-rail-headline.styles.d.ts.map +1 -0
  243. package/navigation-rail/navigation-rail-headline.styles.js +19 -0
  244. package/navigation-rail/navigation-rail-headline.styles.js.map +1 -0
  245. package/navigation-rail/navigation-rail-item.d.ts +58 -0
  246. package/navigation-rail/navigation-rail-item.d.ts.map +1 -0
  247. package/navigation-rail/navigation-rail-item.js +160 -0
  248. package/navigation-rail/navigation-rail-item.js.map +1 -0
  249. package/navigation-rail/navigation-rail-item.styles.d.ts +2 -0
  250. package/navigation-rail/navigation-rail-item.styles.d.ts.map +1 -0
  251. package/navigation-rail/navigation-rail-item.styles.js +182 -0
  252. package/navigation-rail/navigation-rail-item.styles.js.map +1 -0
  253. package/navigation-rail/navigation-rail.d.ts +66 -0
  254. package/navigation-rail/navigation-rail.d.ts.map +1 -0
  255. package/navigation-rail/navigation-rail.js +223 -0
  256. package/navigation-rail/navigation-rail.js.map +1 -0
  257. package/navigation-rail/navigation-rail.styles.d.ts +2 -0
  258. package/navigation-rail/navigation-rail.styles.d.ts.map +1 -0
  259. package/navigation-rail/navigation-rail.styles.js +220 -0
  260. package/navigation-rail/navigation-rail.styles.js.map +1 -0
  261. package/overflow-menu/overflow-menu.d.ts +8 -2
  262. package/overflow-menu/overflow-menu.d.ts.map +1 -1
  263. package/overflow-menu/overflow-menu.js +10 -1
  264. package/overflow-menu/overflow-menu.js.map +1 -1
  265. package/package.json +19 -3
  266. package/progress/circular-progress.d.ts +2 -2
  267. package/progress/circular-progress.d.ts.map +1 -1
  268. package/progress/circular-progress.js +6 -6
  269. package/progress/circular-progress.js.map +1 -1
  270. package/progress/progress-bar.d.ts +2 -2
  271. package/progress/progress-bar.d.ts.map +1 -1
  272. package/progress/progress-bar.js +6 -6
  273. package/progress/progress-bar.js.map +1 -1
  274. package/radio/radio-list-item.d.ts +4 -4
  275. package/radio/radio-list-item.d.ts.map +1 -1
  276. package/radio/radio-list-item.js +5 -5
  277. package/radio/radio-list-item.js.map +1 -1
  278. package/radio/radio.d.ts +3 -3
  279. package/radio/radio.d.ts.map +1 -1
  280. package/radio/radio.js +6 -6
  281. package/radio/radio.js.map +1 -1
  282. package/ripple/ripple.d.ts +2 -2
  283. package/ripple/ripple.d.ts.map +1 -1
  284. package/ripple/ripple.js +9 -9
  285. package/ripple/ripple.js.map +1 -1
  286. package/scaffold/pane.d.ts +127 -0
  287. package/scaffold/pane.d.ts.map +1 -0
  288. package/scaffold/pane.js +220 -0
  289. package/scaffold/pane.js.map +1 -0
  290. package/scaffold/pane.styles.d.ts +2 -0
  291. package/scaffold/pane.styles.d.ts.map +1 -0
  292. package/scaffold/pane.styles.js +1909 -0
  293. package/scaffold/pane.styles.js.map +1 -0
  294. package/scaffold/scaffold.d.ts +45 -0
  295. package/scaffold/scaffold.d.ts.map +1 -0
  296. package/scaffold/scaffold.js +170 -0
  297. package/scaffold/scaffold.js.map +1 -0
  298. package/scaffold/scaffold.styles.d.ts +2 -0
  299. package/scaffold/scaffold.styles.d.ts.map +1 -0
  300. package/scaffold/scaffold.styles.js +69 -0
  301. package/scaffold/scaffold.styles.js.map +1 -0
  302. package/scaffold/scroll-container-context.d.ts +4 -0
  303. package/scaffold/scroll-container-context.d.ts.map +1 -0
  304. package/scaffold/scroll-container-context.js +3 -0
  305. package/scaffold/scroll-container-context.js.map +1 -0
  306. package/scss/utilities/_divider.scss +4 -0
  307. package/search/search.d.ts +3 -3
  308. package/search/search.d.ts.map +1 -1
  309. package/search/search.js +7 -7
  310. package/search/search.js.map +1 -1
  311. package/search/search.styles.d.ts.map +1 -1
  312. package/search/search.styles.js +7 -2
  313. package/search/search.styles.js.map +1 -1
  314. package/select/option.d.ts +3 -3
  315. package/select/option.d.ts.map +1 -1
  316. package/select/option.js +8 -8
  317. package/select/option.js.map +1 -1
  318. package/select/select-navigation-controller.d.ts +4 -4
  319. package/select/select-navigation-controller.d.ts.map +1 -1
  320. package/select/select-navigation-controller.js.map +1 -1
  321. package/select/select.d.ts +18 -12
  322. package/select/select.d.ts.map +1 -1
  323. package/select/select.js +77 -31
  324. package/select/select.js.map +1 -1
  325. package/shared/button-wrapper.d.ts +1 -1
  326. package/shared/button-wrapper.d.ts.map +1 -1
  327. package/shared/button-wrapper.js +8 -8
  328. package/shared/button-wrapper.js.map +1 -1
  329. package/shared/char-count-text-field/native-text-field-wrapper.d.ts +2 -2
  330. package/shared/char-count-text-field/native-text-field-wrapper.d.ts.map +1 -1
  331. package/shared/char-count-text-field/native-text-field-wrapper.js +6 -6
  332. package/shared/char-count-text-field/native-text-field-wrapper.js.map +1 -1
  333. package/shared/menu-field/menu-field-navigation-controller.d.ts +3 -3
  334. package/shared/menu-field/menu-field-navigation-controller.d.ts.map +1 -1
  335. package/shared/menu-field/menu-field-navigation-controller.js.map +1 -1
  336. package/shared/menu-field/menu-field.d.ts +5 -5
  337. package/shared/menu-field/menu-field.d.ts.map +1 -1
  338. package/shared/menu-field/menu-field.js.map +1 -1
  339. package/shared/selection-control/selection-control-list-item.d.ts +2 -2
  340. package/shared/selection-control/selection-control-list-item.d.ts.map +1 -1
  341. package/shared/selection-control/selection-control-list-item.js +10 -1
  342. package/shared/selection-control/selection-control-list-item.js.map +1 -1
  343. package/shared/selection-control/selection-control.d.ts +1 -1
  344. package/shared/selection-control/selection-control.d.ts.map +1 -1
  345. package/shared/selection-control/selection-control.js +15 -7
  346. package/shared/selection-control/selection-control.js.map +1 -1
  347. package/shared/sets/set-base.d.ts +1 -1
  348. package/shared/sets/set-base.d.ts.map +1 -1
  349. package/shared/sets/set-base.js +2 -2
  350. package/shared/sets/set-base.js.map +1 -1
  351. package/shared/text-field-base/text-field-base.d.ts +34 -2
  352. package/shared/text-field-base/text-field-base.d.ts.map +1 -1
  353. package/shared/text-field-base/text-field-base.js +63 -4
  354. package/shared/text-field-base/text-field-base.js.map +1 -1
  355. package/skills/badge/SKILL.md +43 -0
  356. package/skills/buttons/SKILL.md +115 -0
  357. package/skills/card/SKILL.md +162 -0
  358. package/skills/chips/SKILL.md +95 -0
  359. package/skills/collapse/SKILL.md +37 -0
  360. package/skills/datepicker/SKILL.md +110 -0
  361. package/skills/dialog/SKILL.md +92 -0
  362. package/skills/drawer/SKILL.md +94 -0
  363. package/skills/expansion-panel/SKILL.md +65 -0
  364. package/skills/fab/SKILL.md +79 -0
  365. package/skills/list/SKILL.md +105 -0
  366. package/skills/menu/SKILL.md +120 -0
  367. package/skills/navigation-bar/SKILL.md +87 -0
  368. package/skills/navigation-rail/SKILL.md +127 -0
  369. package/skills/overview/SKILL.md +44 -0
  370. package/skills/progress/SKILL.md +63 -0
  371. package/skills/scaffold/SKILL.md +392 -0
  372. package/skills/search/SKILL.md +65 -0
  373. package/skills/select/SKILL.md +120 -0
  374. package/skills/selection-controls/SKILL.md +88 -0
  375. package/skills/setup/SKILL.md +58 -0
  376. package/skills/slider/SKILL.md +119 -0
  377. package/skills/snackbar/SKILL.md +70 -0
  378. package/skills/tab-bar/SKILL.md +55 -0
  379. package/skills/text-field/SKILL.md +114 -0
  380. package/skills/theming/SKILL.md +80 -0
  381. package/skills/top-app-bar/SKILL.md +64 -0
  382. package/skills/typeahead/SKILL.md +113 -0
  383. package/slider/slider.d.ts +73 -0
  384. package/slider/slider.d.ts.map +1 -0
  385. package/slider/slider.js +506 -0
  386. package/slider/slider.js.map +1 -0
  387. package/slider/slider.styles.d.ts +2 -0
  388. package/slider/slider.styles.d.ts.map +1 -0
  389. package/slider/slider.styles.js +292 -0
  390. package/slider/slider.styles.js.map +1 -0
  391. package/snackbar/snackbar.d.ts +4 -4
  392. package/snackbar/snackbar.d.ts.map +1 -1
  393. package/snackbar/snackbar.js +28 -28
  394. package/snackbar/snackbar.js.map +1 -1
  395. package/snackbar/snackbar.styles.js +1 -1
  396. package/snackbar/snackbar.styles.js.map +1 -1
  397. package/switch/switch-list-item.d.ts +4 -4
  398. package/switch/switch-list-item.d.ts.map +1 -1
  399. package/switch/switch-list-item.js +5 -5
  400. package/switch/switch-list-item.js.map +1 -1
  401. package/switch/switch.d.ts +3 -3
  402. package/switch/switch.d.ts.map +1 -1
  403. package/switch/switch.js +5 -5
  404. package/switch/switch.js.map +1 -1
  405. package/tab-bar/tab-bar.d.ts +6 -6
  406. package/tab-bar/tab-bar.d.ts.map +1 -1
  407. package/tab-bar/tab-bar.js +40 -23
  408. package/tab-bar/tab-bar.js.map +1 -1
  409. package/tab-bar/tab.d.ts +5 -5
  410. package/tab-bar/tab.d.ts.map +1 -1
  411. package/tab-bar/tab.js +9 -9
  412. package/tab-bar/tab.js.map +1 -1
  413. package/text-area/text-area.d.ts +3 -3
  414. package/text-area/text-area.d.ts.map +1 -1
  415. package/text-area/text-area.js +9 -9
  416. package/text-area/text-area.js.map +1 -1
  417. package/text-field/text-field.d.ts +15 -3
  418. package/text-field/text-field.d.ts.map +1 -1
  419. package/text-field/text-field.js +46 -13
  420. package/text-field/text-field.js.map +1 -1
  421. package/typeahead/highlight.d.ts +2 -2
  422. package/typeahead/highlight.d.ts.map +1 -1
  423. package/typeahead/highlight.js +7 -7
  424. package/typeahead/highlight.js.map +1 -1
  425. package/typeahead/typeahead.d.ts +7 -7
  426. package/typeahead/typeahead.d.ts.map +1 -1
  427. package/typeahead/typeahead.js +22 -18
  428. package/typeahead/typeahead.js.map +1 -1
  429. package/vscode.html-custom-data.json +870 -481
@@ -3,7 +3,7 @@ import { html, LitElement } from 'lit';
3
3
  import { customElement } from 'lit/decorators.js';
4
4
  import { styles as baseStyles } from '../shared/base.styles.js';
5
5
  import { styles } from './drawer.styles.js';
6
- let UmDrawer = class UmDrawer extends LitElement {
6
+ let Drawer = class Drawer extends LitElement {
7
7
  static { this.styles = [
8
8
  baseStyles,
9
9
  styles,
@@ -16,8 +16,8 @@ let UmDrawer = class UmDrawer extends LitElement {
16
16
  `;
17
17
  }
18
18
  };
19
- UmDrawer = __decorate([
19
+ Drawer = __decorate([
20
20
  customElement('u-drawer')
21
- ], UmDrawer);
22
- export { UmDrawer };
21
+ ], Drawer);
22
+ export { Drawer };
23
23
  //# sourceMappingURL=drawer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"drawer.js","sourceRoot":"","sources":["../../src/navigation/drawer.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAsB,UAAU,EAAE,MAAM,KAAK,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAElD,OAAO,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAGrC,IAAM,QAAQ,GAAd,MAAM,QAAS,SAAQ,UAAU;aACtB,WAAM,GAAG;QACvB,UAAU;QACV,MAAM;KACP,AAHqB,CAGpB;IAEiB,MAAM;QACvB,OAAO,IAAI,CAAA;;;;KAIV,CAAC;IACJ,CAAC;;AAZU,QAAQ;IADpB,aAAa,CAAC,UAAU,CAAC;GACb,QAAQ,CAapB","sourcesContent":["import { html, HTMLTemplateResult, LitElement } from 'lit';\nimport { customElement } from 'lit/decorators.js';\n\nimport { styles as baseStyles } from '../shared/base.styles.js';\nimport { styles } from './drawer.styles.js';\n\n@customElement('u-drawer')\nexport class UmDrawer extends LitElement {\n static override styles = [\n baseStyles,\n styles,\n ];\n\n protected override render(): HTMLTemplateResult {\n return html`\n <div class=\"container\" part=\"container\">\n <slot></slot>\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'u-drawer': UmDrawer;\n }\n}\n"]}
1
+ {"version":3,"file":"drawer.js","sourceRoot":"","sources":["../../src/navigation/drawer.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAsB,UAAU,EAAE,MAAM,KAAK,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAElD,OAAO,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAGrC,IAAM,MAAM,GAAZ,MAAM,MAAO,SAAQ,UAAU;aACpB,WAAM,GAAG;QACvB,UAAU;QACV,MAAM;KACP,AAHqB,CAGpB;IAEiB,MAAM;QACvB,OAAO,IAAI,CAAA;;;;KAIV,CAAC;IACJ,CAAC;;AAZU,MAAM;IADlB,aAAa,CAAC,UAAU,CAAC;GACb,MAAM,CAalB","sourcesContent":["import { html, HTMLTemplateResult, LitElement } from 'lit';\nimport { customElement } from 'lit/decorators.js';\n\nimport { styles as baseStyles } from '../shared/base.styles.js';\nimport { styles } from './drawer.styles.js';\n\n@customElement('u-drawer')\nexport class Drawer extends LitElement {\n static override styles = [\n baseStyles,\n styles,\n ];\n\n protected override render(): HTMLTemplateResult {\n return html`\n <div class=\"container\" part=\"container\">\n <slot></slot>\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'u-drawer': Drawer;\n }\n}\n"]}
@@ -1,6 +1,13 @@
1
1
  import { HTMLTemplateResult, LitElement } from 'lit';
2
2
  import '../elevation/elevation.js';
3
- export declare class UmSideNavigation extends LitElement {
3
+ /**
4
+ * @deprecated Use `<u-scaffold>` and place a `<u-drawer>` or
5
+ * `<u-navigation-rail>` directly as a body sibling (for a permanent
6
+ * sidebar) or wrap it in `<u-pane mode="sidebar" mode-lg="fixed">` for
7
+ * a sidebar that collapses to an overlay below `lg`. Standalone usage
8
+ * outside of a scaffold remains supported.
9
+ */
10
+ export declare class SideNavigation extends LitElement {
4
11
  #private;
5
12
  static styles: import("lit").CSSResult[];
6
13
  private disableSlideAnimation;
@@ -27,7 +34,7 @@ export declare class UmSideNavigation extends LitElement {
27
34
  }
28
35
  declare global {
29
36
  interface HTMLElementTagNameMap {
30
- 'u-side-navigation': UmSideNavigation;
37
+ 'u-side-navigation': SideNavigation;
31
38
  }
32
39
  }
33
40
  //# sourceMappingURL=side-navigation.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"side-navigation.d.ts","sourceRoot":"","sources":["../../src/navigation/side-navigation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,kBAAkB,EAAE,UAAU,EAAE,MAAM,KAAK,CAAC;AAS3D,OAAO,2BAA2B,CAAC;AAEnC,qBACa,gBAAiB,SAAQ,UAAU;;IAC9C,OAAgB,MAAM,4BAA6E;IAGnG,OAAO,CAAC,qBAAqB,CAAS;IAEtC;;;;;OAKG;IACH,IACI,YAAY,IAIe,OAAO,CAFrC;IAED,IAAI,YAAY,CAAC,YAAY,EAAE,OAAO,EAMrC;IAE0B,eAAe,EAAE,GAAG,CAAC;IAC/B,KAAK,EAAG,WAAW,CAAC;IACT,eAAe,EAAE,WAAW,GAAG,SAAS,CAAC;IAE5D,MAAM,IAAI,kBAAkB;IAIrC,OAAO,CAAC,aAAa;IAwBrB,OAAO,CAAC,eAAe;IA8BvB,OAAO,CAAC,uBAAuB;IAQ/B,OAAO,CAAC,qBAAqB;IAI7B,OAAO,CAAC,sBAAsB;IAgB9B,OAAO,CAAC,mBAAmB;IAK3B,OAAO,CAAC,gBAAgB;IAMxB,OAAO,CAAC,UAAU;CAInB;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,mBAAmB,EAAE,gBAAgB,CAAC;KACvC;CACF"}
1
+ {"version":3,"file":"side-navigation.d.ts","sourceRoot":"","sources":["../../src/navigation/side-navigation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,kBAAkB,EAAE,UAAU,EAAE,MAAM,KAAK,CAAC;AAS3D,OAAO,2BAA2B,CAAC;AAEnC;;;;;;GAMG;AACH,qBACa,cAAe,SAAQ,UAAU;;IAC5C,OAAgB,MAAM,4BAA6E;IAGnG,OAAO,CAAC,qBAAqB,CAAS;IAEtC;;;;;OAKG;IACH,IACI,YAAY,IAIe,OAAO,CAFrC;IAED,IAAI,YAAY,CAAC,YAAY,EAAE,OAAO,EAMrC;IAE0B,eAAe,EAAE,GAAG,CAAC;IAC/B,KAAK,EAAG,WAAW,CAAC;IACT,eAAe,EAAE,WAAW,GAAG,SAAS,CAAC;IAE5D,MAAM,IAAI,kBAAkB;IAIrC,OAAO,CAAC,aAAa;IAwBrB,OAAO,CAAC,eAAe;IA8BvB,OAAO,CAAC,uBAAuB;IAQ/B,OAAO,CAAC,qBAAqB;IAI7B,OAAO,CAAC,sBAAsB;IAgB9B,OAAO,CAAC,mBAAmB;IAK3B,OAAO,CAAC,gBAAgB;IAMxB,OAAO,CAAC,UAAU;CAInB;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,mBAAmB,EAAE,cAAc,CAAC;KACrC;CACF"}
@@ -7,7 +7,14 @@ import { styles as baseStyles } from '../shared/base.styles.js';
7
7
  import { styles as swiperStyles } from './side-navigation-swiper.styles.js';
8
8
  import { styles } from './side-navigation.styles.js';
9
9
  import '../elevation/elevation.js';
10
- let UmSideNavigation = class UmSideNavigation extends LitElement {
10
+ /**
11
+ * @deprecated Use `<u-scaffold>` and place a `<u-drawer>` or
12
+ * `<u-navigation-rail>` directly as a body sibling (for a permanent
13
+ * sidebar) or wrap it in `<u-pane mode="sidebar" mode-lg="fixed">` for
14
+ * a sidebar that collapses to an overlay below `lg`. Standalone usage
15
+ * outside of a scaffold remains supported.
16
+ */
17
+ let SideNavigation = class SideNavigation extends LitElement {
11
18
  constructor() {
12
19
  super(...arguments);
13
20
  this.#toggleDrawer = false;
@@ -121,18 +128,18 @@ let UmSideNavigation = class UmSideNavigation extends LitElement {
121
128
  };
122
129
  __decorate([
123
130
  property({ type: Boolean, attribute: 'toggle-drawer' })
124
- ], UmSideNavigation.prototype, "toggleDrawer", null);
131
+ ], SideNavigation.prototype, "toggleDrawer", null);
125
132
  __decorate([
126
133
  query('swiper-container')
127
- ], UmSideNavigation.prototype, "swiperContainer", void 0);
134
+ ], SideNavigation.prototype, "swiperContainer", void 0);
128
135
  __decorate([
129
136
  query('.scrim')
130
- ], UmSideNavigation.prototype, "scrim", void 0);
137
+ ], SideNavigation.prototype, "scrim", void 0);
131
138
  __decorate([
132
139
  query('#scroll-container')
133
- ], UmSideNavigation.prototype, "scrollContainer", void 0);
134
- UmSideNavigation = __decorate([
140
+ ], SideNavigation.prototype, "scrollContainer", void 0);
141
+ SideNavigation = __decorate([
135
142
  customElement('u-side-navigation')
136
- ], UmSideNavigation);
137
- export { UmSideNavigation };
143
+ ], SideNavigation);
144
+ export { SideNavigation };
138
145
  //# sourceMappingURL=side-navigation.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"side-navigation.js","sourceRoot":"","sources":["../../src/navigation/side-navigation.ts"],"names":[],"mappings":"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","sourcesContent":["import { html, HTMLTemplateResult, LitElement } from 'lit';\nimport { customElement, property, query } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\n\nimport { config } from '../config.js';\nimport { styles as baseStyles } from '../shared/base.styles.js';\nimport { styles as swiperStyles } from './side-navigation-swiper.styles.js';\nimport { styles } from './side-navigation.styles.js';\n\nimport '../elevation/elevation.js';\n\n@customElement('u-side-navigation')\nexport class UmSideNavigation extends LitElement {\n static override styles = [baseStyles, config.navigationDrawer.useSwiperJs ? swiperStyles : styles];\n\n #toggleDrawer = false;\n private disableSlideAnimation = false;\n\n /**\n * Toggle the navigation drawer visibility\n *\n * _Modal drawer_: Open if `true`, closed if `false`\n * _Standard drawer_: Collapsed if `true`, visible if `false`\n */\n @property({ type: Boolean, attribute: 'toggle-drawer' })\n get toggleDrawer() {\n return this.#toggleDrawer;\n }\n\n set toggleDrawer(toggleDrawer: boolean) {\n this.#toggleDrawer = toggleDrawer;\n\n if (!this.disableSlideAnimation) {\n this.swiperContainer?.swiper?.slideTo(toggleDrawer ? 0 : 1);\n }\n }\n\n @query('swiper-container') swiperContainer: any;\n @query('.scrim') scrim!: HTMLElement;\n @query('#scroll-container') scrollContainer: HTMLElement | undefined;\n\n override render(): HTMLTemplateResult {\n return config.navigationDrawer.useSwiperJs ? this.renderWithSwipe() : this.renderDefault();\n }\n\n private renderDefault() {\n const classes = { toggle: this.toggleDrawer };\n\n return html`\n <div class=\"grid container\">\n <div>\n <div class=\"navigation\">\n <div class=\"scrim ${classMap(classes)}\" @click=\"${this.scrimClick}\"></div>\n <div class=\"drawer ${classMap(classes)}\">\n <u-elevation></u-elevation>\n <div class=\"drawer-container\">\n <slot name=\"drawer\"></slot>\n </div>\n </div>\n <slot name=\"rail\"></slot>\n </div>\n </div>\n <div class=\"content\">\n <slot></slot>\n </div>\n </div>\n `;\n }\n\n private renderWithSwipe() {\n const classes = { toggle: this.toggleDrawer };\n return html`\n <swiper-container\n class=\"container\"\n initial-slide=\"1\"\n resistance-ratio=\"0\"\n slides-per-view=\"auto\"\n simulate-touch=\"false\"\n @swiperactiveindexchange=\"${this.swiperActiveIndexChange}\"\n @swiperslidermove=\"${this.swiperSliderMove}\"\n @swipertransitionend=\"${this.swiperTransitionEnd}\"\n @swipertransitionstart=\"${this.swiperTransitionStart}\"\n @swiperslidesgridlengthchange=\"${this.slidesGridLengthChange}\">\n <swiper-slide class=\"drawer ${classMap(classes)}\">\n <u-elevation></u-elevation>\n <div class=\"drawer-container\">\n <slot name=\"drawer\"></slot>\n </div>\n </swiper-slide>\n <swiper-slide class=\"dummy-slide\"></swiper-slide>\n\n <div id=\"scroll-container\" class=\"content\" slot=\"container-end\">\n <slot></slot>\n </div>\n <div class=\"scrim ${classMap(classes)}\" @click=\"${this.scrimClick}\" slot=\"container-end\"></div>\n </swiper-container>\n `;\n }\n\n private swiperActiveIndexChange() {\n if (!this.swiperContainer?.swiper) {\n return;\n }\n\n this.toggleDrawer = !this.swiperContainer.swiper.activeIndex;\n }\n\n private swiperTransitionStart() {\n this.scrim.classList.add('moving');\n }\n\n private slidesGridLengthChange() {\n if (!this.swiperContainer?.swiper) {\n return;\n }\n\n this.classList.add('disable-transition');\n\n const gridLength = this.swiperContainer.swiper.snapGrid.length;\n this.swiperContainer.swiper.slideTo(gridLength === 1 ? 0 : 1, 0);\n this.disableSlideAnimation = true;\n this.toggleDrawer = true;\n this.toggleDrawer = false;\n this.disableSlideAnimation = false;\n setTimeout(() => this.classList.remove('disable-transition'));\n }\n\n private swiperTransitionEnd() {\n this.scrim.style.removeProperty('--_modal-drawer-open-progress');\n this.scrim.classList.remove('moving');\n }\n\n private swiperSliderMove(e: Event) {\n\n const swiper = (e as any).detail[0];\n this.scrim.style.setProperty('--_modal-drawer-open-progress', `${1 - swiper.progress}`);\n }\n\n private scrimClick() {\n this.toggleDrawer = false;\n this.swiperContainer?.swiper?.slideTo(1);\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'u-side-navigation': UmSideNavigation;\n }\n}\n"]}
1
+ {"version":3,"file":"side-navigation.js","sourceRoot":"","sources":["../../src/navigation/side-navigation.ts"],"names":[],"mappings":"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","sourcesContent":["import { html, HTMLTemplateResult, LitElement } from 'lit';\nimport { customElement, property, query } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\n\nimport { config } from '../config.js';\nimport { styles as baseStyles } from '../shared/base.styles.js';\nimport { styles as swiperStyles } from './side-navigation-swiper.styles.js';\nimport { styles } from './side-navigation.styles.js';\n\nimport '../elevation/elevation.js';\n\n/**\n * @deprecated Use `<u-scaffold>` and place a `<u-drawer>` or\n * `<u-navigation-rail>` directly as a body sibling (for a permanent\n * sidebar) or wrap it in `<u-pane mode=\"sidebar\" mode-lg=\"fixed\">` for\n * a sidebar that collapses to an overlay below `lg`. Standalone usage\n * outside of a scaffold remains supported.\n */\n@customElement('u-side-navigation')\nexport class SideNavigation extends LitElement {\n static override styles = [baseStyles, config.navigationDrawer.useSwiperJs ? swiperStyles : styles];\n\n #toggleDrawer = false;\n private disableSlideAnimation = false;\n\n /**\n * Toggle the navigation drawer visibility\n *\n * _Modal drawer_: Open if `true`, closed if `false`\n * _Standard drawer_: Collapsed if `true`, visible if `false`\n */\n @property({ type: Boolean, attribute: 'toggle-drawer' })\n get toggleDrawer() {\n return this.#toggleDrawer;\n }\n\n set toggleDrawer(toggleDrawer: boolean) {\n this.#toggleDrawer = toggleDrawer;\n\n if (!this.disableSlideAnimation) {\n this.swiperContainer?.swiper?.slideTo(toggleDrawer ? 0 : 1);\n }\n }\n\n @query('swiper-container') swiperContainer: any;\n @query('.scrim') scrim!: HTMLElement;\n @query('#scroll-container') scrollContainer: HTMLElement | undefined;\n\n override render(): HTMLTemplateResult {\n return config.navigationDrawer.useSwiperJs ? this.renderWithSwipe() : this.renderDefault();\n }\n\n private renderDefault() {\n const classes = { toggle: this.toggleDrawer };\n\n return html`\n <div class=\"grid container\">\n <div>\n <div class=\"navigation\">\n <div class=\"scrim ${classMap(classes)}\" @click=\"${this.scrimClick}\"></div>\n <div class=\"drawer ${classMap(classes)}\">\n <u-elevation></u-elevation>\n <div class=\"drawer-container\">\n <slot name=\"drawer\"></slot>\n </div>\n </div>\n <slot name=\"rail\"></slot>\n </div>\n </div>\n <div class=\"content\">\n <slot></slot>\n </div>\n </div>\n `;\n }\n\n private renderWithSwipe() {\n const classes = { toggle: this.toggleDrawer };\n return html`\n <swiper-container\n class=\"container\"\n initial-slide=\"1\"\n resistance-ratio=\"0\"\n slides-per-view=\"auto\"\n simulate-touch=\"false\"\n @swiperactiveindexchange=\"${this.swiperActiveIndexChange}\"\n @swiperslidermove=\"${this.swiperSliderMove}\"\n @swipertransitionend=\"${this.swiperTransitionEnd}\"\n @swipertransitionstart=\"${this.swiperTransitionStart}\"\n @swiperslidesgridlengthchange=\"${this.slidesGridLengthChange}\">\n <swiper-slide class=\"drawer ${classMap(classes)}\">\n <u-elevation></u-elevation>\n <div class=\"drawer-container\">\n <slot name=\"drawer\"></slot>\n </div>\n </swiper-slide>\n <swiper-slide class=\"dummy-slide\"></swiper-slide>\n\n <div id=\"scroll-container\" class=\"content\" slot=\"container-end\">\n <slot></slot>\n </div>\n <div class=\"scrim ${classMap(classes)}\" @click=\"${this.scrimClick}\" slot=\"container-end\"></div>\n </swiper-container>\n `;\n }\n\n private swiperActiveIndexChange() {\n if (!this.swiperContainer?.swiper) {\n return;\n }\n\n this.toggleDrawer = !this.swiperContainer.swiper.activeIndex;\n }\n\n private swiperTransitionStart() {\n this.scrim.classList.add('moving');\n }\n\n private slidesGridLengthChange() {\n if (!this.swiperContainer?.swiper) {\n return;\n }\n\n this.classList.add('disable-transition');\n\n const gridLength = this.swiperContainer.swiper.snapGrid.length;\n this.swiperContainer.swiper.slideTo(gridLength === 1 ? 0 : 1, 0);\n this.disableSlideAnimation = true;\n this.toggleDrawer = true;\n this.toggleDrawer = false;\n this.disableSlideAnimation = false;\n setTimeout(() => this.classList.remove('disable-transition'));\n }\n\n private swiperTransitionEnd() {\n this.scrim.style.removeProperty('--_modal-drawer-open-progress');\n this.scrim.classList.remove('moving');\n }\n\n private swiperSliderMove(e: Event) {\n\n const swiper = (e as any).detail[0];\n this.scrim.style.setProperty('--_modal-drawer-open-progress', `${1 - swiper.progress}`);\n }\n\n private scrimClick() {\n this.toggleDrawer = false;\n this.swiperContainer?.swiper?.slideTo(1);\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'u-side-navigation': SideNavigation;\n }\n}\n"]}
@@ -0,0 +1,40 @@
1
+ import { HTMLTemplateResult } from 'lit';
2
+ import { ButtonWrapper } from '../shared/button-wrapper.js';
3
+ export type NavBarItemVariant = 'vertical' | 'horizontal';
4
+ /**
5
+ * A destination inside a `u-navigation-bar`. Renders an M3 active indicator
6
+ * pill around the icon (vertical) or around icon + label (horizontal), with
7
+ * the destination label.
8
+ *
9
+ * Slots:
10
+ * - default: the destination label.
11
+ * - `icon`: the destination icon (24dp).
12
+ * - `badge`: an optional `u-badge` placed at the top-right of the icon.
13
+ */
14
+ export declare class NavigationBarItem extends ButtonWrapper {
15
+ #private;
16
+ static styles: import("lit").CSSResultGroup[];
17
+ private _hasIcon;
18
+ private _hasLabel;
19
+ /**
20
+ * Whether the navigation item is active (selected) or not.
21
+ */
22
+ active: boolean;
23
+ /**
24
+ * Layout variant. `'vertical'` (default) stacks the icon over the label
25
+ * with a 56×32dp active indicator pill around the icon. `'horizontal'`
26
+ * places icon and label side-by-side inside a 40dp-high pill.
27
+ */
28
+ variant: NavBarItemVariant;
29
+ private readonly assignedIcons;
30
+ private readonly assignedLabelNodes;
31
+ connectedCallback(): void;
32
+ protected _getContainerClasses(): Record<string, boolean>;
33
+ protected _renderContent(): HTMLTemplateResult;
34
+ }
35
+ declare global {
36
+ interface HTMLElementTagNameMap {
37
+ 'u-navigation-bar-item': NavigationBarItem;
38
+ }
39
+ }
40
+ //# sourceMappingURL=navigation-bar-item.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"navigation-bar-item.d.ts","sourceRoot":"","sources":["../../src/navigation-bar/navigation-bar-item.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,kBAAkB,EAAE,MAAM,KAAK,CAAC;AAG/C,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAG5D,MAAM,MAAM,iBAAiB,GAAG,UAAU,GAAG,YAAY,CAAC;AAE1D;;;;;;;;;GASG;AACH,qBACa,iBAAkB,SAAQ,aAAa;;IAElD,OAAgB,MAAM,iCAGpB;IAEO,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,SAAS,CAAS;IAEnC;;OAEG;IACyC,MAAM,UAAS;IAE3D;;;;OAIG;IAC0B,OAAO,EAAE,iBAAiB,CAAc;IAGrE,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAiB;IAG/C,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAU;IAEpC,iBAAiB,IAAI,IAAI;cAKf,oBAAoB,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;cAQ/C,cAAc,IAAI,kBAAkB;CA8CxD;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,uBAAuB,EAAE,iBAAiB,CAAC;KAC5C;CACF"}
@@ -0,0 +1,113 @@
1
+ import { __decorate } from "tslib";
2
+ import { html } from 'lit';
3
+ import { customElement, property, queryAssignedElements, queryAssignedNodes, state } from 'lit/decorators.js';
4
+ import { ButtonWrapper } from '../shared/button-wrapper.js';
5
+ import { styles } from './navigation-bar-item.styles.js';
6
+ /**
7
+ * A destination inside a `u-navigation-bar`. Renders an M3 active indicator
8
+ * pill around the icon (vertical) or around icon + label (horizontal), with
9
+ * the destination label.
10
+ *
11
+ * Slots:
12
+ * - default: the destination label.
13
+ * - `icon`: the destination icon (24dp).
14
+ * - `badge`: an optional `u-badge` placed at the top-right of the icon.
15
+ */
16
+ let NavigationBarItem = class NavigationBarItem extends ButtonWrapper {
17
+ constructor() {
18
+ super(...arguments);
19
+ this._hasIcon = false;
20
+ this._hasLabel = false;
21
+ /**
22
+ * Whether the navigation item is active (selected) or not.
23
+ */
24
+ this.active = false;
25
+ /**
26
+ * Layout variant. `'vertical'` (default) stacks the icon over the label
27
+ * with a 56×32dp active indicator pill around the icon. `'horizontal'`
28
+ * places icon and label side-by-side inside a 40dp-high pill.
29
+ */
30
+ this.variant = 'vertical';
31
+ this.#handleIconSlotChange = () => {
32
+ this._hasIcon = this.assignedIcons.length > 0;
33
+ };
34
+ this.#handleLabelSlotChange = () => {
35
+ this._hasLabel = this.assignedLabelNodes.some(node => {
36
+ if (node.nodeType === Node.TEXT_NODE) {
37
+ return !!node.textContent?.trim();
38
+ }
39
+ return true;
40
+ });
41
+ };
42
+ }
43
+ static { this.styles = [
44
+ ButtonWrapper.styles,
45
+ styles,
46
+ ]; }
47
+ connectedCallback() {
48
+ super.connectedCallback();
49
+ this.setAttribute('aria-labelledby', 'text');
50
+ }
51
+ _getContainerClasses() {
52
+ return {
53
+ ...super._getContainerClasses(),
54
+ 'has-icon': this._hasIcon,
55
+ 'has-label': this._hasLabel,
56
+ };
57
+ }
58
+ _renderContent() {
59
+ const icon = html `
60
+ <span class="icon" part="icon">
61
+ <slot
62
+ name="icon"
63
+ aria-hidden="true"
64
+ @slotchange=${this.#handleIconSlotChange}></slot>
65
+ <slot name="badge"></slot>
66
+ </span>
67
+ `;
68
+ const label = html `
69
+ <span class="label" id="text" part="label">
70
+ <slot @slotchange=${this.#handleLabelSlotChange}></slot>
71
+ </span>
72
+ `;
73
+ if (this.variant === 'horizontal') {
74
+ return html `
75
+ <span class="active-indicator" part="active-indicator">
76
+ ${icon}
77
+ ${label}
78
+ </span>
79
+ `;
80
+ }
81
+ return html `
82
+ <span class="active-indicator" part="active-indicator">
83
+ ${icon}
84
+ </span>
85
+ ${label}
86
+ `;
87
+ }
88
+ #handleIconSlotChange;
89
+ #handleLabelSlotChange;
90
+ };
91
+ __decorate([
92
+ state()
93
+ ], NavigationBarItem.prototype, "_hasIcon", void 0);
94
+ __decorate([
95
+ state()
96
+ ], NavigationBarItem.prototype, "_hasLabel", void 0);
97
+ __decorate([
98
+ property({ type: Boolean, reflect: true })
99
+ ], NavigationBarItem.prototype, "active", void 0);
100
+ __decorate([
101
+ property({ reflect: true })
102
+ ], NavigationBarItem.prototype, "variant", void 0);
103
+ __decorate([
104
+ queryAssignedElements({ slot: 'icon', flatten: true })
105
+ ], NavigationBarItem.prototype, "assignedIcons", void 0);
106
+ __decorate([
107
+ queryAssignedNodes({ flatten: true })
108
+ ], NavigationBarItem.prototype, "assignedLabelNodes", void 0);
109
+ NavigationBarItem = __decorate([
110
+ customElement('u-navigation-bar-item')
111
+ ], NavigationBarItem);
112
+ export { NavigationBarItem };
113
+ //# sourceMappingURL=navigation-bar-item.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"navigation-bar-item.js","sourceRoot":"","sources":["../../src/navigation-bar/navigation-bar-item.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAsB,MAAM,KAAK,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAE9G,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,MAAM,EAAE,MAAM,iCAAiC,CAAC;AAIzD;;;;;;;;;GASG;AAEI,IAAM,iBAAiB,GAAvB,MAAM,iBAAkB,SAAQ,aAAa;IAA7C;;QAOY,aAAQ,GAAG,KAAK,CAAC;QACjB,cAAS,GAAG,KAAK,CAAC;QAEnC;;WAEG;QACyC,WAAM,GAAG,KAAK,CAAC;QAE3D;;;;WAIG;QAC0B,YAAO,GAAsB,UAAU,CAAC;QAuDrE,0BAAqB,GAAG,GAAS,EAAE;YACjC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC;QAChD,CAAC,CAAC;QAEF,2BAAsB,GAAG,GAAS,EAAE;YAClC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;gBACnD,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,SAAS,EAAE,CAAC;oBACrC,OAAO,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC;gBACpC,CAAC;gBACD,OAAO,IAAI,CAAC;YACd,CAAC,CAAC,CAAC;QACL,CAAC,CAAC;IACJ,CAAC;aArFiB,WAAM,GAAG;QACvB,aAAa,CAAC,MAAM;QACpB,MAAM;KACP,AAHqB,CAGpB;IAuBO,iBAAiB;QACxB,KAAK,CAAC,iBAAiB,EAAE,CAAC;QAC1B,IAAI,CAAC,YAAY,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAC;IAC/C,CAAC;IAEkB,oBAAoB;QACrC,OAAO;YACL,GAAG,KAAK,CAAC,oBAAoB,EAAE;YAC/B,UAAU,EAAE,IAAI,CAAC,QAAQ;YACzB,WAAW,EAAE,IAAI,CAAC,SAAS;SAC5B,CAAC;IACJ,CAAC;IAEkB,cAAc;QAC/B,MAAM,IAAI,GAAG,IAAI,CAAA;;;;;wBAKG,IAAI,CAAC,qBAAqB;;;KAG7C,CAAC;QAEF,MAAM,KAAK,GAAG,IAAI,CAAA;;4BAEM,IAAI,CAAC,sBAAsB;;KAElD,CAAC;QAEF,IAAI,IAAI,CAAC,OAAO,KAAK,YAAY,EAAE,CAAC;YAClC,OAAO,IAAI,CAAA;;YAEL,IAAI;YACJ,KAAK;;OAEV,CAAC;QACJ,CAAC;QAED,OAAO,IAAI,CAAA;;UAEL,IAAI;;QAEN,KAAK;KACR,CAAC;IACJ,CAAC;IAED,qBAAqB,CAEnB;IAEF,sBAAsB,CAOpB;;AA/Ee;IAAhB,KAAK,EAAE;mDAA0B;AACjB;IAAhB,KAAK,EAAE;oDAA2B;AAKS;IAA3C,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;iDAAgB;AAO9B;IAA5B,QAAQ,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;kDAAyC;AAGpD;IADhB,qBAAqB,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;wDACR;AAG9B;IADhB,kBAAkB,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;6DACO;AA1BlC,iBAAiB;IAD7B,aAAa,CAAC,uBAAuB,CAAC;GAC1B,iBAAiB,CAuF7B","sourcesContent":["import { html, HTMLTemplateResult } from 'lit';\nimport { customElement, property, queryAssignedElements, queryAssignedNodes, state } from 'lit/decorators.js';\n\nimport { ButtonWrapper } from '../shared/button-wrapper.js';\nimport { styles } from './navigation-bar-item.styles.js';\n\nexport type NavBarItemVariant = 'vertical' | 'horizontal';\n\n/**\n * A destination inside a `u-navigation-bar`. Renders an M3 active indicator\n * pill around the icon (vertical) or around icon + label (horizontal), with\n * the destination label.\n *\n * Slots:\n * - default: the destination label.\n * - `icon`: the destination icon (24dp).\n * - `badge`: an optional `u-badge` placed at the top-right of the icon.\n */\n@customElement('u-navigation-bar-item')\nexport class NavigationBarItem extends ButtonWrapper {\n\n static override styles = [\n ButtonWrapper.styles,\n styles,\n ];\n\n @state() private _hasIcon = false;\n @state() private _hasLabel = false;\n\n /**\n * Whether the navigation item is active (selected) or not.\n */\n @property({ type: Boolean, reflect: true }) active = false;\n\n /**\n * Layout variant. `'vertical'` (default) stacks the icon over the label\n * with a 56×32dp active indicator pill around the icon. `'horizontal'`\n * places icon and label side-by-side inside a 40dp-high pill.\n */\n @property({ reflect: true }) variant: NavBarItemVariant = 'vertical';\n\n @queryAssignedElements({ slot: 'icon', flatten: true })\n private readonly assignedIcons!: HTMLElement[];\n\n @queryAssignedNodes({ flatten: true })\n private readonly assignedLabelNodes!: Node[];\n\n override connectedCallback(): void {\n super.connectedCallback();\n this.setAttribute('aria-labelledby', 'text');\n }\n\n protected override _getContainerClasses(): Record<string, boolean> {\n return {\n ...super._getContainerClasses(),\n 'has-icon': this._hasIcon,\n 'has-label': this._hasLabel,\n };\n }\n\n protected override _renderContent(): HTMLTemplateResult {\n const icon = html`\n <span class=\"icon\" part=\"icon\">\n <slot\n name=\"icon\"\n aria-hidden=\"true\"\n @slotchange=${this.#handleIconSlotChange}></slot>\n <slot name=\"badge\"></slot>\n </span>\n `;\n\n const label = html`\n <span class=\"label\" id=\"text\" part=\"label\">\n <slot @slotchange=${this.#handleLabelSlotChange}></slot>\n </span>\n `;\n\n if (this.variant === 'horizontal') {\n return html`\n <span class=\"active-indicator\" part=\"active-indicator\">\n ${icon}\n ${label}\n </span>\n `;\n }\n\n return html`\n <span class=\"active-indicator\" part=\"active-indicator\">\n ${icon}\n </span>\n ${label}\n `;\n }\n\n #handleIconSlotChange = (): void => {\n this._hasIcon = this.assignedIcons.length > 0;\n };\n\n #handleLabelSlotChange = (): void => {\n this._hasLabel = this.assignedLabelNodes.some(node => {\n if (node.nodeType === Node.TEXT_NODE) {\n return !!node.textContent?.trim();\n }\n return true;\n });\n };\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'u-navigation-bar-item': NavigationBarItem;\n }\n}\n"]}
@@ -0,0 +1,2 @@
1
+ export declare const styles: import("lit").CSSResult;
2
+ //# sourceMappingURL=navigation-bar-item.styles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"navigation-bar-item.styles.d.ts","sourceRoot":"","sources":["../../src/navigation-bar/navigation-bar-item.styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,MAAM,yBAkGlB,CAAC"}
@@ -0,0 +1,101 @@
1
+ import { css } from 'lit';
2
+ export const styles = css `
3
+ :host {
4
+ display: flex;
5
+ flex: 1 1 0;
6
+ min-width: 0;
7
+ --_nav-bar-item-icon-size: var(--u-nav-bar-item-icon-size, 24px);
8
+ }
9
+
10
+ .container {
11
+ display: flex;
12
+ flex: 1 1 0;
13
+ align-items: center;
14
+ justify-content: center;
15
+ color: var(--u-nav-bar-item-inactive-text-color, var(--u-color-on-surface-variant, rgb(73, 69, 79)));
16
+ }
17
+
18
+ .content {
19
+ display: inline-flex;
20
+ flex-direction: column;
21
+ align-items: center;
22
+ justify-content: center;
23
+ gap: var(--u-nav-bar-item-vertical-between-space, 6px);
24
+ }
25
+
26
+ :host([variant=horizontal]) .content {
27
+ flex-direction: column;
28
+ }
29
+
30
+ .active-indicator {
31
+ position: relative;
32
+ display: inline-flex;
33
+ align-items: center;
34
+ justify-content: center;
35
+ flex: 0 0 auto;
36
+ border-radius: var(--u-nav-bar-item-active-indicator-shape, var(--u-shape-corner-full, 9999px));
37
+ transition: background-color 150ms;
38
+ }
39
+
40
+ :host(:not([variant=horizontal])) .active-indicator {
41
+ width: var(--u-nav-bar-item-vertical-active-indicator-width, 56px);
42
+ height: var(--u-nav-bar-item-vertical-active-indicator-height, 32px);
43
+ }
44
+
45
+ :host([variant=horizontal]) .active-indicator {
46
+ flex-direction: row;
47
+ height: var(--u-nav-bar-item-horizontal-active-indicator-height, 40px);
48
+ padding-inline: var(--u-nav-bar-item-horizontal-active-indicator-leading-space, 16px) var(--u-nav-bar-item-horizontal-active-indicator-trailing-space, 16px);
49
+ gap: var(--u-nav-bar-item-horizontal-active-indicator-icon-label-space, 4px);
50
+ }
51
+
52
+ .icon {
53
+ position: relative;
54
+ display: inline-flex;
55
+ align-items: center;
56
+ justify-content: center;
57
+ width: var(--_nav-bar-item-icon-size);
58
+ height: var(--_nav-bar-item-icon-size);
59
+ font-size: var(--_nav-bar-item-icon-size);
60
+ line-height: 1;
61
+ color: var(--u-nav-bar-item-inactive-icon-color, var(--u-color-on-surface-variant, rgb(73, 69, 79)));
62
+ }
63
+
64
+ .label {
65
+ font-family: var(--u-font-family, var(--u-font-family, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", "Liberation Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"));
66
+ line-height: var(--u-nav-bar-item-label-line-height, var(--u-label-m-line-height, 1rem));
67
+ font-size: var(--u-nav-bar-item-label-font-size, var(--u-label-m-font-size, 0.75rem));
68
+ letter-spacing: var(--u-nav-bar-item-label-letter-spacing, var(--u-label-m-letter-spacing, 0.0416666667rem));
69
+ font-weight: var(--u-nav-bar-item-label-font-weight, var(--u-label-m-font-weight, var(--u-font-weight-medium, 500)));
70
+ letter-spacing: var(--u-nav-bar-item-label-letter-spacing, 0.5px);
71
+ color: var(--u-nav-bar-item-inactive-label-color, var(--u-color-on-surface-variant, rgb(73, 69, 79)));
72
+ text-align: center;
73
+ white-space: nowrap;
74
+ overflow: hidden;
75
+ text-overflow: ellipsis;
76
+ max-width: 100%;
77
+ }
78
+
79
+ :host([variant=horizontal]) .label {
80
+ text-align: start;
81
+ }
82
+
83
+ .container:not(.has-label) .label,
84
+ .container:not(.has-icon) .icon {
85
+ display: none;
86
+ }
87
+
88
+ :host(.active) .container .active-indicator,
89
+ :host([active]) .container .active-indicator {
90
+ background-color: var(--u-nav-bar-item-active-indicator-color, var(--u-color-secondary-container, rgb(232, 222, 248)));
91
+ }
92
+ :host(.active) .container .icon,
93
+ :host([active]) .container .icon {
94
+ color: var(--u-nav-bar-item-active-icon-color, var(--u-color-on-secondary-container, rgb(29, 25, 43)));
95
+ }
96
+ :host(.active) .container .label,
97
+ :host([active]) .container .label {
98
+ color: var(--u-nav-bar-item-active-label-color, var(--u-color-secondary, rgb(98, 91, 113)));
99
+ }
100
+ `;
101
+ //# sourceMappingURL=navigation-bar-item.styles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"navigation-bar-item.styles.js","sourceRoot":"","sources":["../../src/navigation-bar/navigation-bar-item.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkGzB,CAAC","sourcesContent":["import { css } from 'lit';\n\nexport const styles = css `\n :host {\n display: flex;\n flex: 1 1 0;\n min-width: 0;\n --_nav-bar-item-icon-size: var(--u-nav-bar-item-icon-size, 24px);\n }\n\n .container {\n display: flex;\n flex: 1 1 0;\n align-items: center;\n justify-content: center;\n color: var(--u-nav-bar-item-inactive-text-color, var(--u-color-on-surface-variant, rgb(73, 69, 79)));\n }\n\n .content {\n display: inline-flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n gap: var(--u-nav-bar-item-vertical-between-space, 6px);\n }\n\n :host([variant=horizontal]) .content {\n flex-direction: column;\n }\n\n .active-indicator {\n position: relative;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n flex: 0 0 auto;\n border-radius: var(--u-nav-bar-item-active-indicator-shape, var(--u-shape-corner-full, 9999px));\n transition: background-color 150ms;\n }\n\n :host(:not([variant=horizontal])) .active-indicator {\n width: var(--u-nav-bar-item-vertical-active-indicator-width, 56px);\n height: var(--u-nav-bar-item-vertical-active-indicator-height, 32px);\n }\n\n :host([variant=horizontal]) .active-indicator {\n flex-direction: row;\n height: var(--u-nav-bar-item-horizontal-active-indicator-height, 40px);\n padding-inline: var(--u-nav-bar-item-horizontal-active-indicator-leading-space, 16px) var(--u-nav-bar-item-horizontal-active-indicator-trailing-space, 16px);\n gap: var(--u-nav-bar-item-horizontal-active-indicator-icon-label-space, 4px);\n }\n\n .icon {\n position: relative;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: var(--_nav-bar-item-icon-size);\n height: var(--_nav-bar-item-icon-size);\n font-size: var(--_nav-bar-item-icon-size);\n line-height: 1;\n color: var(--u-nav-bar-item-inactive-icon-color, var(--u-color-on-surface-variant, rgb(73, 69, 79)));\n }\n\n .label {\n font-family: var(--u-font-family, var(--u-font-family, system-ui, -apple-system, \"Segoe UI\", Roboto, \"Helvetica Neue\", \"Noto Sans\", \"Liberation Sans\", Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\"));\n line-height: var(--u-nav-bar-item-label-line-height, var(--u-label-m-line-height, 1rem));\n font-size: var(--u-nav-bar-item-label-font-size, var(--u-label-m-font-size, 0.75rem));\n letter-spacing: var(--u-nav-bar-item-label-letter-spacing, var(--u-label-m-letter-spacing, 0.0416666667rem));\n font-weight: var(--u-nav-bar-item-label-font-weight, var(--u-label-m-font-weight, var(--u-font-weight-medium, 500)));\n letter-spacing: var(--u-nav-bar-item-label-letter-spacing, 0.5px);\n color: var(--u-nav-bar-item-inactive-label-color, var(--u-color-on-surface-variant, rgb(73, 69, 79)));\n text-align: center;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n max-width: 100%;\n }\n\n :host([variant=horizontal]) .label {\n text-align: start;\n }\n\n .container:not(.has-label) .label,\n .container:not(.has-icon) .icon {\n display: none;\n }\n\n :host(.active) .container .active-indicator,\n :host([active]) .container .active-indicator {\n background-color: var(--u-nav-bar-item-active-indicator-color, var(--u-color-secondary-container, rgb(232, 222, 248)));\n }\n :host(.active) .container .icon,\n :host([active]) .container .icon {\n color: var(--u-nav-bar-item-active-icon-color, var(--u-color-on-secondary-container, rgb(29, 25, 43)));\n }\n :host(.active) .container .label,\n :host([active]) .container .label {\n color: var(--u-nav-bar-item-active-label-color, var(--u-color-secondary, rgb(98, 91, 113)));\n }\n`;\n"]}
@@ -0,0 +1,40 @@
1
+ import { PropertyValues } from '@lit/reactive-element';
2
+ import { HTMLTemplateResult, LitElement } from 'lit';
3
+ /**
4
+ * Material 3 navigation bar — a persistent bar pinned to the bottom of the
5
+ * application that hosts top-level destinations (typically 3–5 icon buttons
6
+ * or navigation-bar items). Mirrors `u-top-app-bar`'s positioning model: an
7
+ * internal `.spacing` filler reserves the bar's height inside the surrounding
8
+ * flow so content under it does not get obscured.
9
+ *
10
+ * Slots:
11
+ * - default: destination items (e.g. `u-icon-button`s).
12
+ */
13
+ export declare class NavigationBar extends LitElement {
14
+ #private;
15
+ static styles: import("lit").CSSResult[];
16
+ /**
17
+ * The positioning strategy of the navigation bar.
18
+ */
19
+ position: 'fixed' | 'absolute' | 'static';
20
+ /**
21
+ * The element the bar will observe for scroll. Accepts an `HTMLElement`,
22
+ * the id of an element, `'window'` to use the window scroll, or `'none'`
23
+ * to disable. When unset, the bar consumes the scroll container provided
24
+ * by an ancestor `u-scaffold` via context, falling back to `'window'`.
25
+ * Reserved for future scroll-driven behaviors (e.g. hide on scroll).
26
+ */
27
+ scrollContainer: 'none' | 'window' | string | HTMLElement | undefined;
28
+ protected readonly _scrollContainerFromContext: HTMLElement | undefined;
29
+ private readonly _container;
30
+ private containerSizeObserver;
31
+ render(): HTMLTemplateResult;
32
+ firstUpdated(changedProperties: PropertyValues): void;
33
+ disconnectedCallback(): void;
34
+ }
35
+ declare global {
36
+ interface HTMLElementTagNameMap {
37
+ 'u-navigation-bar': NavigationBar;
38
+ }
39
+ }
40
+ //# sourceMappingURL=navigation-bar.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"navigation-bar.d.ts","sourceRoot":"","sources":["../../src/navigation-bar/navigation-bar.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAEvD,OAAO,EAAQ,kBAAkB,EAAE,UAAU,EAAW,MAAM,KAAK,CAAC;AAQpE;;;;;;;;;GASG;AACH,qBACa,aAAc,SAAQ,UAAU;;IAC3C,OAAgB,MAAM,4BAAwB;IAE9C;;OAEG;IAEH,QAAQ,EAAE,OAAO,GAAG,UAAU,GAAG,QAAQ,CAAW;IAEpD;;;;;;OAMG;IAEH,eAAe,EAAE,MAAM,GAAG,QAAQ,GAAG,MAAM,GAAG,WAAW,GAAG,SAAS,CAAa;IAIlF,SAAS,CAAC,QAAQ,CAAC,2BAA2B,EAAG,WAAW,GAAG,SAAS,CAAC;IAE9C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAe;IAErE,OAAO,CAAC,qBAAqB,CAA+B;IAEnD,MAAM,IAAI,kBAAkB;IAmB5B,YAAY,CAAC,iBAAiB,EAAE,cAAc,GAAG,IAAI;IAOrD,oBAAoB,IAAI,IAAI;CAStC;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,kBAAkB,EAAE,aAAa,CAAC;KACnC;CACF"}
@@ -0,0 +1,85 @@
1
+ import { __decorate } from "tslib";
2
+ import { consume } from '@lit/context';
3
+ import { html, LitElement, nothing } from 'lit';
4
+ import { customElement, property, query, state } from 'lit/decorators.js';
5
+ import { classMap } from 'lit/directives/class-map.js';
6
+ import { scrollContainerContext } from '../scaffold/scroll-container-context.js';
7
+ import { styles as baseStyles } from '../shared/base.styles.js';
8
+ import { styles } from './navigation-bar.styles.js';
9
+ /**
10
+ * Material 3 navigation bar — a persistent bar pinned to the bottom of the
11
+ * application that hosts top-level destinations (typically 3–5 icon buttons
12
+ * or navigation-bar items). Mirrors `u-top-app-bar`'s positioning model: an
13
+ * internal `.spacing` filler reserves the bar's height inside the surrounding
14
+ * flow so content under it does not get obscured.
15
+ *
16
+ * Slots:
17
+ * - default: destination items (e.g. `u-icon-button`s).
18
+ */
19
+ let NavigationBar = class NavigationBar extends LitElement {
20
+ constructor() {
21
+ super(...arguments);
22
+ /**
23
+ * The positioning strategy of the navigation bar.
24
+ */
25
+ this.position = 'fixed';
26
+ /**
27
+ * The element the bar will observe for scroll. Accepts an `HTMLElement`,
28
+ * the id of an element, `'window'` to use the window scroll, or `'none'`
29
+ * to disable. When unset, the bar consumes the scroll container provided
30
+ * by an ancestor `u-scaffold` via context, falling back to `'window'`.
31
+ * Reserved for future scroll-driven behaviors (e.g. hide on scroll).
32
+ */
33
+ this.scrollContainer = undefined;
34
+ this.containerSizeObserver = null;
35
+ }
36
+ static { this.styles = [baseStyles, styles]; }
37
+ render() {
38
+ const containerClasses = classMap({
39
+ [this.position]: true,
40
+ });
41
+ const appBarSpacing = this.position !== 'static'
42
+ ? html `<div class="spacing"></div>`
43
+ : nothing;
44
+ return html `
45
+ ${appBarSpacing}
46
+ <div class="container ${containerClasses}" part="container">
47
+ <div class="content" part="content">
48
+ <slot></slot>
49
+ </div>
50
+ </div>
51
+ `;
52
+ }
53
+ firstUpdated(changedProperties) {
54
+ super.firstUpdated(changedProperties);
55
+ this.containerSizeObserver = new ResizeObserver(() => this.#setContentHeightProperty());
56
+ this.containerSizeObserver.observe(this._container);
57
+ this.#setContentHeightProperty();
58
+ }
59
+ disconnectedCallback() {
60
+ super.disconnectedCallback();
61
+ this.containerSizeObserver?.disconnect();
62
+ this.containerSizeObserver = null;
63
+ }
64
+ #setContentHeightProperty() {
65
+ this.style.setProperty('--_content-height', `${this._container.clientHeight}px`);
66
+ }
67
+ };
68
+ __decorate([
69
+ property({ reflect: true })
70
+ ], NavigationBar.prototype, "position", void 0);
71
+ __decorate([
72
+ property({ attribute: 'scroll-container' })
73
+ ], NavigationBar.prototype, "scrollContainer", void 0);
74
+ __decorate([
75
+ consume({ context: scrollContainerContext, subscribe: true }),
76
+ state()
77
+ ], NavigationBar.prototype, "_scrollContainerFromContext", void 0);
78
+ __decorate([
79
+ query('.container', true)
80
+ ], NavigationBar.prototype, "_container", void 0);
81
+ NavigationBar = __decorate([
82
+ customElement('u-navigation-bar')
83
+ ], NavigationBar);
84
+ export { NavigationBar };
85
+ //# sourceMappingURL=navigation-bar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"navigation-bar.js","sourceRoot":"","sources":["../../src/navigation-bar/navigation-bar.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAGvC,OAAO,EAAE,IAAI,EAAsB,UAAU,EAAE,OAAO,EAAE,MAAM,KAAK,CAAC;AACpE,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC1E,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAEvD,OAAO,EAAE,sBAAsB,EAAE,MAAM,yCAAyC,CAAC;AACjF,OAAO,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AAEpD;;;;;;;;;GASG;AAEI,IAAM,aAAa,GAAnB,MAAM,aAAc,SAAQ,UAAU;IAAtC;;QAGL;;WAEG;QAEH,aAAQ,GAAoC,OAAO,CAAC;QAEpD;;;;;;WAMG;QAEH,oBAAe,GAAyD,SAAS,CAAC;QAQ1E,0BAAqB,GAA0B,IAAI,CAAC;IAqC9D,CAAC;aA7DiB,WAAM,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,AAAvB,CAAwB;IA0BrC,MAAM;QACb,MAAM,gBAAgB,GAAG,QAAQ,CAAC;YAChC,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI;SACtB,CAAC,CAAC;QAEH,MAAM,aAAa,GAAG,IAAI,CAAC,QAAQ,KAAK,QAAQ;YAC9C,CAAC,CAAC,IAAI,CAAA,6BAA6B;YACnC,CAAC,CAAC,OAAO,CAAC;QAEZ,OAAO,IAAI,CAAA;QACP,aAAa;8BACS,gBAAgB;;;;;KAKzC,CAAC;IACJ,CAAC;IAEQ,YAAY,CAAC,iBAAiC;QACrD,KAAK,CAAC,YAAY,CAAC,iBAAiB,CAAC,CAAC;QACtC,IAAI,CAAC,qBAAqB,GAAG,IAAI,cAAc,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,yBAAyB,EAAE,CAAC,CAAC;QACxF,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACpD,IAAI,CAAC,yBAAyB,EAAE,CAAC;IACnC,CAAC;IAEQ,oBAAoB;QAC3B,KAAK,CAAC,oBAAoB,EAAE,CAAC;QAC7B,IAAI,CAAC,qBAAqB,EAAE,UAAU,EAAE,CAAC;QACzC,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC;IACpC,CAAC;IAED,yBAAyB;QACvB,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,mBAAmB,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,YAAY,IAAI,CAAC,CAAC;IACnF,CAAC;;AAtDD;IADC,QAAQ,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;+CACwB;AAUpD;IADC,QAAQ,CAAC,EAAE,SAAS,EAAE,kBAAkB,EAAE,CAAC;sDACsC;AAI/D;IAFlB,OAAO,CAAC,EAAE,OAAO,EAAE,sBAAsB,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;IAC7D,KAAK,EAAE;kEACiE;AAE7B;IAA3C,KAAK,CAAC,YAAY,EAAE,IAAI,CAAC;iDAA2C;AAvB1D,aAAa;IADzB,aAAa,CAAC,kBAAkB,CAAC;GACrB,aAAa,CA8DzB","sourcesContent":["import { consume } from '@lit/context';\nimport { PropertyValues } from '@lit/reactive-element';\n\nimport { html, HTMLTemplateResult, LitElement, nothing } from 'lit';\nimport { customElement, property, query, state } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\n\nimport { scrollContainerContext } from '../scaffold/scroll-container-context.js';\nimport { styles as baseStyles } from '../shared/base.styles.js';\nimport { styles } from './navigation-bar.styles.js';\n\n/**\n * Material 3 navigation bar — a persistent bar pinned to the bottom of the\n * application that hosts top-level destinations (typically 3–5 icon buttons\n * or navigation-bar items). Mirrors `u-top-app-bar`'s positioning model: an\n * internal `.spacing` filler reserves the bar's height inside the surrounding\n * flow so content under it does not get obscured.\n *\n * Slots:\n * - default: destination items (e.g. `u-icon-button`s).\n */\n@customElement('u-navigation-bar')\nexport class NavigationBar extends LitElement {\n static override styles = [baseStyles, styles];\n\n /**\n * The positioning strategy of the navigation bar.\n */\n @property({ reflect: true })\n position: 'fixed' | 'absolute' | 'static' = 'fixed';\n\n /**\n * The element the bar will observe for scroll. Accepts an `HTMLElement`,\n * the id of an element, `'window'` to use the window scroll, or `'none'`\n * to disable. When unset, the bar consumes the scroll container provided\n * by an ancestor `u-scaffold` via context, falling back to `'window'`.\n * Reserved for future scroll-driven behaviors (e.g. hide on scroll).\n */\n @property({ attribute: 'scroll-container' })\n scrollContainer: 'none' | 'window' | string | HTMLElement | undefined = undefined;\n\n @consume({ context: scrollContainerContext, subscribe: true })\n @state()\n protected readonly _scrollContainerFromContext!: HTMLElement | undefined;\n\n @query('.container', true) private readonly _container!: HTMLElement;\n\n private containerSizeObserver: ResizeObserver | null = null;\n\n override render(): HTMLTemplateResult {\n const containerClasses = classMap({\n [this.position]: true,\n });\n\n const appBarSpacing = this.position !== 'static'\n ? html`<div class=\"spacing\"></div>`\n : nothing;\n\n return html`\n ${appBarSpacing}\n <div class=\"container ${containerClasses}\" part=\"container\">\n <div class=\"content\" part=\"content\">\n <slot></slot>\n </div>\n </div>\n `;\n }\n\n override firstUpdated(changedProperties: PropertyValues): void {\n super.firstUpdated(changedProperties);\n this.containerSizeObserver = new ResizeObserver(() => this.#setContentHeightProperty());\n this.containerSizeObserver.observe(this._container);\n this.#setContentHeightProperty();\n }\n\n override disconnectedCallback(): void {\n super.disconnectedCallback();\n this.containerSizeObserver?.disconnect();\n this.containerSizeObserver = null;\n }\n\n #setContentHeightProperty(): void {\n this.style.setProperty('--_content-height', `${this._container.clientHeight}px`);\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'u-navigation-bar': NavigationBar;\n }\n}\n"]}
@@ -0,0 +1,2 @@
1
+ export declare const styles: import("lit").CSSResult;
2
+ //# sourceMappingURL=navigation-bar.styles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"navigation-bar.styles.d.ts","sourceRoot":"","sources":["../../src/navigation-bar/navigation-bar.styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,MAAM,yBAyClB,CAAC"}
@@ -0,0 +1,44 @@
1
+ import { css } from 'lit';
2
+ export const styles = css `
3
+ :host {
4
+ display: block;
5
+ --u-elevation-level: 2;
6
+ }
7
+
8
+ .container {
9
+ position: relative;
10
+ background-color: var(--u-nav-bar-container-color, var(--u-color-surface-container, rgb(243, 237, 247)));
11
+ color: var(--u-nav-bar-text-color, var(--u-color-on-surface, rgb(29, 27, 32)));
12
+ transition: background-color 100ms;
13
+ }
14
+
15
+ .absolute {
16
+ position: absolute;
17
+ inset-inline: 0;
18
+ inset-block-end: 0;
19
+ z-index: var(--u-nav-bar-z-index, 1010);
20
+ }
21
+
22
+ .fixed {
23
+ position: fixed;
24
+ inset-inline: 0;
25
+ inset-block-end: 0;
26
+ inset-inline-start: var(--u-app-bar-offset, 0);
27
+ z-index: var(--u-nav-bar-z-index, 1010);
28
+ transition: background-color 100ms, inset-inline-start 375ms cubic-bezier(0.19, 1, 0.22, 1);
29
+ }
30
+
31
+ .spacing {
32
+ padding-block-start: var(--_content-height);
33
+ }
34
+
35
+ .content {
36
+ display: flex;
37
+ align-items: stretch;
38
+ justify-content: space-around;
39
+ min-height: var(--u-nav-bar-container-height, 64px);
40
+ padding-inline: 0;
41
+ gap: var(--u-nav-bar-item-between-space, 0);
42
+ }
43
+ `;
44
+ //# sourceMappingURL=navigation-bar.styles.js.map