@francofantomius/material-components 1.1.1 → 1.2.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 (380) hide show
  1. package/CHANGELOG.md +44 -0
  2. package/README.md +2 -1
  3. package/custom-elements.json +1049 -300
  4. package/dist/chunks/{account-menu-Dau0UHTl.js → account-menu-Bo7NghIm.js} +181 -223
  5. package/dist/chunks/{account-menu-Dau0UHTl.js.map → account-menu-Bo7NghIm.js.map} +1 -1
  6. package/dist/chunks/app-drawer-DjKSuatE.js +855 -0
  7. package/dist/chunks/{app-drawer-Du1ePzxZ.js.map → app-drawer-DjKSuatE.js.map} +1 -1
  8. package/dist/chunks/{badge-G4EjcMoy.js → badge-sZzNelZz.js} +30 -34
  9. package/dist/chunks/{badge-G4EjcMoy.js.map → badge-sZzNelZz.js.map} +1 -1
  10. package/dist/chunks/{bottom-sheet-q79BBYAj.js → bottom-sheet-BGgbUmKd.js} +98 -109
  11. package/dist/chunks/{bottom-sheet-q79BBYAj.js.map → bottom-sheet-BGgbUmKd.js.map} +1 -1
  12. package/dist/chunks/{button-D2vn7kJ8.js → button-DeQQlYds.js} +62 -72
  13. package/dist/chunks/{button-D2vn7kJ8.js.map → button-DeQQlYds.js.map} +1 -1
  14. package/dist/chunks/button-group-R2jN8FXK.js +136 -0
  15. package/dist/chunks/{button-group-CNqvJx1n.js.map → button-group-R2jN8FXK.js.map} +1 -1
  16. package/dist/chunks/{card-DVffdPpv.js → card-CVhWizDF.js} +45 -50
  17. package/dist/chunks/{card-DVffdPpv.js.map → card-CVhWizDF.js.map} +1 -1
  18. package/dist/chunks/{carousel-item-BG6kjjjk.js → carousel-item-DNp2zhP9.js} +62 -73
  19. package/dist/chunks/{carousel-item-BG6kjjjk.js.map → carousel-item-DNp2zhP9.js.map} +1 -1
  20. package/dist/chunks/{checkbox-BqlboAHd.js → checkbox-CsqUHVOF.js} +59 -64
  21. package/dist/chunks/{checkbox-BqlboAHd.js.map → checkbox-CsqUHVOF.js.map} +1 -1
  22. package/dist/chunks/{chip-CI1ZINnr.js → chip-B5c-I8bj.js} +56 -63
  23. package/dist/chunks/{chip-CI1ZINnr.js.map → chip-B5c-I8bj.js.map} +1 -1
  24. package/dist/chunks/code-CM6hIZNx.js +1531 -0
  25. package/dist/chunks/{code-C5UFBkCh.js.map → code-CM6hIZNx.js.map} +1 -1
  26. package/dist/chunks/date-picker-B15_rR0f.js +774 -0
  27. package/dist/chunks/date-picker-B15_rR0f.js.map +1 -0
  28. package/dist/chunks/decorate-DknOJ8FJ.js +40 -0
  29. package/dist/chunks/{decorate-DXuynaiA.js.map → decorate-DknOJ8FJ.js.map} +1 -1
  30. package/dist/chunks/{dialog-DGVEE5m_.js → dialog-Czknf8dl.js} +47 -52
  31. package/dist/chunks/{dialog-DGVEE5m_.js.map → dialog-Czknf8dl.js.map} +1 -1
  32. package/dist/chunks/divider-DIyCOosa.js +78 -0
  33. package/dist/chunks/{divider-DNepwoZv.js.map → divider-DIyCOosa.js.map} +1 -1
  34. package/dist/chunks/{fab-C9j3WBHE.js → fab-aZC0-lHo.js} +38 -44
  35. package/dist/chunks/{fab-C9j3WBHE.js.map → fab-aZC0-lHo.js.map} +1 -1
  36. package/dist/chunks/{fab-menu.css-3pu930sZ.js → fab-menu.css-BdVg1k4c.js} +5 -6
  37. package/dist/chunks/{fab-menu.css-3pu930sZ.js.map → fab-menu.css-BdVg1k4c.js.map} +1 -1
  38. package/dist/chunks/focus-ring-K6SY_mIm.js +69 -0
  39. package/dist/chunks/{focus-ring-CuiJuM-y.js.map → focus-ring-K6SY_mIm.js.map} +1 -1
  40. package/dist/chunks/form-associated-Do5uXckv.js +69 -0
  41. package/dist/chunks/{form-associated-Cty_ZaS9.js.map → form-associated-Do5uXckv.js.map} +1 -1
  42. package/dist/chunks/icon-FvKeXi61.js +59 -0
  43. package/dist/chunks/{icon-DrNqcNEL.js.map → icon-FvKeXi61.js.map} +1 -1
  44. package/dist/chunks/{icon-button-BQz73GLa.js → icon-button-CulnCZpZ.js} +58 -67
  45. package/dist/chunks/{icon-button-BQz73GLa.js.map → icon-button-CulnCZpZ.js.map} +1 -1
  46. package/dist/chunks/{list-D8olR7oZ.js → list-D7yrbJRL.js} +64 -72
  47. package/dist/chunks/{list-D8olR7oZ.js.map → list-D7yrbJRL.js.map} +1 -1
  48. package/dist/chunks/{loading-indicator-CvWnZr9o.js → loading-indicator-D9AyxNQh.js} +41 -46
  49. package/dist/chunks/{loading-indicator-CvWnZr9o.js.map → loading-indicator-D9AyxNQh.js.map} +1 -1
  50. package/dist/chunks/{menu-item-BBSp5Cqc.js → menu-item-C3entPo7.js} +77 -91
  51. package/dist/chunks/{menu-item-BBSp5Cqc.js.map → menu-item-C3entPo7.js.map} +1 -1
  52. package/dist/chunks/{navigation-bar-item-C9DfOEzg.js → navigation-bar-item-CWHCQeNw.js} +98 -115
  53. package/dist/chunks/{navigation-bar-item-C9DfOEzg.js.map → navigation-bar-item-CWHCQeNw.js.map} +1 -1
  54. package/dist/chunks/{navigation-drawer-CKl44Ef5.js → navigation-drawer-pGer0t4z.js} +116 -138
  55. package/dist/chunks/{navigation-drawer-CKl44Ef5.js.map → navigation-drawer-pGer0t4z.js.map} +1 -1
  56. package/dist/chunks/{navigation-rail-item-6pdhNHJK.js → navigation-rail-item-CWvGjLjC.js} +70 -86
  57. package/dist/chunks/{navigation-rail-item-6pdhNHJK.js.map → navigation-rail-item-CWvGjLjC.js.map} +1 -1
  58. package/dist/chunks/{player-C4ydiIpr.js → player-dT08kxeG.js} +423 -466
  59. package/dist/chunks/{player-C4ydiIpr.js.map → player-dT08kxeG.js.map} +1 -1
  60. package/dist/chunks/{progress-LQmLMDjX.js → progress-etZuX_VD.js} +46 -53
  61. package/dist/chunks/{progress-LQmLMDjX.js.map → progress-etZuX_VD.js.map} +1 -1
  62. package/dist/chunks/radio-jPCwykIa.js +197 -0
  63. package/dist/chunks/{radio-Bily78NT.js.map → radio-jPCwykIa.js.map} +1 -1
  64. package/dist/chunks/ripple-CBOKeVfm.js +132 -0
  65. package/dist/chunks/{ripple-squbKHhj.js.map → ripple-CBOKeVfm.js.map} +1 -1
  66. package/dist/chunks/{search-bar-fUD0qU2P.js → search-bar-B6xxVT7u.js} +244 -203
  67. package/dist/chunks/search-bar-B6xxVT7u.js.map +1 -0
  68. package/dist/chunks/segmented-button-Fon9kOHV.js +253 -0
  69. package/dist/chunks/{segmented-button-B0BvGSQ7.js.map → segmented-button-Fon9kOHV.js.map} +1 -1
  70. package/dist/chunks/{side-sheet-S2w081AK.js → side-sheet-sQ8qGKVm.js} +73 -81
  71. package/dist/chunks/{side-sheet-S2w081AK.js.map → side-sheet-sQ8qGKVm.js.map} +1 -1
  72. package/dist/chunks/slider-OIyEcUU9.js +448 -0
  73. package/dist/chunks/slider-OIyEcUU9.js.map +1 -0
  74. package/dist/chunks/{snackbar-Wsz3BzEY.js → snackbar-Yi6fF9vM.js} +57 -62
  75. package/dist/chunks/{snackbar-Wsz3BzEY.js.map → snackbar-Yi6fF9vM.js.map} +1 -1
  76. package/dist/chunks/{split-button-DUfjukQY.js → split-button-CLjVJe3I.js} +155 -172
  77. package/dist/chunks/{split-button-DUfjukQY.js.map → split-button-CLjVJe3I.js.map} +1 -1
  78. package/dist/chunks/{switch-DdukrvXb.js → switch-mtu6AVEh.js} +54 -57
  79. package/dist/chunks/{switch-DdukrvXb.js.map → switch-mtu6AVEh.js.map} +1 -1
  80. package/dist/chunks/table-C5rCvdFc.js +724 -0
  81. package/dist/chunks/{table-CqHnneAj.js.map → table-C5rCvdFc.js.map} +1 -1
  82. package/dist/chunks/tabs-C0mtURlT.js +182 -0
  83. package/dist/chunks/{tabs-BfOtoeir.js.map → tabs-C0mtURlT.js.map} +1 -1
  84. package/dist/chunks/{text-field-hN6-2HQy.js → text-field-MifFD7uk.js} +92 -110
  85. package/dist/chunks/{text-field-hN6-2HQy.js.map → text-field-MifFD7uk.js.map} +1 -1
  86. package/dist/chunks/time-picker-JTcLcJuz.js +810 -0
  87. package/dist/chunks/time-picker-JTcLcJuz.js.map +1 -0
  88. package/dist/chunks/{toolbar-DXVQbQKJ.js → toolbar-CsxKc2Yd.js} +48 -55
  89. package/dist/chunks/{toolbar-DXVQbQKJ.js.map → toolbar-CsxKc2Yd.js.map} +1 -1
  90. package/dist/chunks/tooltip-Ds3lNowS.js +380 -0
  91. package/dist/chunks/{tooltip-CE7JMHMu.js.map → tooltip-Ds3lNowS.js.map} +1 -1
  92. package/dist/chunks/{top-app-bar-Dgbp6CFv.js → top-app-bar-TrnjKzOX.js} +52 -53
  93. package/dist/chunks/top-app-bar-TrnjKzOX.js.map +1 -0
  94. package/dist/components/account-menu/account-menu.js +2 -8
  95. package/dist/components/app-drawer/app-drawer.js +2 -9
  96. package/dist/components/badge/badge.js +2 -4
  97. package/dist/components/bottom-sheet/bottom-sheet.js +2 -4
  98. package/dist/components/button/button.js +2 -4
  99. package/dist/components/button-group/button-group.js +2 -4
  100. package/dist/components/card/card.js +2 -4
  101. package/dist/components/carousel/carousel-item.js +2 -4
  102. package/dist/components/carousel/carousel.js +214 -232
  103. package/dist/components/carousel/carousel.js.map +1 -1
  104. package/dist/components/checkbox/checkbox.js +2 -4
  105. package/dist/components/chip/chip.js +2 -5
  106. package/dist/components/code/code.js +2 -5
  107. package/dist/components/date-picker/date-picker.js +2 -4
  108. package/dist/components/dialog/dialog.js +2 -4
  109. package/dist/components/divider/divider.js +2 -4
  110. package/dist/components/fab/fab.js +2 -4
  111. package/dist/components/fab-menu/fab-menu-item.js +53 -61
  112. package/dist/components/fab-menu/fab-menu-item.js.map +1 -1
  113. package/dist/components/fab-menu/fab-menu.js +98 -111
  114. package/dist/components/fab-menu/fab-menu.js.map +1 -1
  115. package/dist/components/icon/icon.js +2 -4
  116. package/dist/components/icon-button/icon-button.js +2 -4
  117. package/dist/components/list/list.js +2 -5
  118. package/dist/components/loading-indicator/loading-indicator.js +2 -4
  119. package/dist/components/menu/menu-item.js +2 -4
  120. package/dist/components/menu/menu.js +165 -183
  121. package/dist/components/menu/menu.js.map +1 -1
  122. package/dist/components/navigation-bar/navigation-bar-item.js +2 -5
  123. package/dist/components/navigation-bar/navigation-bar.js +131 -143
  124. package/dist/components/navigation-bar/navigation-bar.js.map +1 -1
  125. package/dist/components/navigation-drawer/navigation-drawer.js +2 -8
  126. package/dist/components/navigation-rail/navigation-rail-item.js +2 -5
  127. package/dist/components/navigation-rail/navigation-rail.js +92 -102
  128. package/dist/components/navigation-rail/navigation-rail.js.map +1 -1
  129. package/dist/components/player/player.js +2 -7
  130. package/dist/components/progress/progress.js +2 -5
  131. package/dist/components/radio/radio.js +2 -5
  132. package/dist/components/search-bar/search-bar.js +2 -5
  133. package/dist/components/segmented-button/segmented-button.js +2 -5
  134. package/dist/components/side-sheet/side-sheet.js +2 -4
  135. package/dist/components/slider/slider.js +2 -4
  136. package/dist/components/snackbar/snackbar.js +2 -4
  137. package/dist/components/split-button/split-button.js +2 -4
  138. package/dist/components/switch/switch.js +2 -4
  139. package/dist/components/table/table.js +2 -13
  140. package/dist/components/tabs/tabs.js +2 -5
  141. package/dist/components/text-field/text-field.js +2 -4
  142. package/dist/components/time-picker/time-picker.js +2 -4
  143. package/dist/components/toolbar/toolbar.js +2 -4
  144. package/dist/components/tooltip/tooltip.js +2 -4
  145. package/dist/components/top-app-bar/top-app-bar.js +2 -5
  146. package/dist/index.js +52 -150
  147. package/dist/internal/focus-ring/focus-ring.js +2 -4
  148. package/dist/internal/ripple/ripple.js +2 -4
  149. package/dist/tokens/index.js +468 -314
  150. package/dist/tokens/index.js.map +1 -1
  151. package/llms.txt +74 -8
  152. package/package.json +2 -14
  153. package/dist/chunks/app-drawer-Du1ePzxZ.js +0 -903
  154. package/dist/chunks/button-group-CNqvJx1n.js +0 -143
  155. package/dist/chunks/code-C5UFBkCh.js +0 -1830
  156. package/dist/chunks/date-picker-DJeHi4w-.js +0 -777
  157. package/dist/chunks/date-picker-DJeHi4w-.js.map +0 -1
  158. package/dist/chunks/decorate-DXuynaiA.js +0 -39
  159. package/dist/chunks/divider-DNepwoZv.js +0 -82
  160. package/dist/chunks/focus-ring-CuiJuM-y.js +0 -71
  161. package/dist/chunks/form-associated-Cty_ZaS9.js +0 -73
  162. package/dist/chunks/icon-DrNqcNEL.js +0 -62
  163. package/dist/chunks/radio-Bily78NT.js +0 -205
  164. package/dist/chunks/ripple-squbKHhj.js +0 -135
  165. package/dist/chunks/search-bar-fUD0qU2P.js.map +0 -1
  166. package/dist/chunks/segmented-button-B0BvGSQ7.js +0 -265
  167. package/dist/chunks/slider-D-mnO8yQ.js +0 -450
  168. package/dist/chunks/slider-D-mnO8yQ.js.map +0 -1
  169. package/dist/chunks/table-CqHnneAj.js +0 -773
  170. package/dist/chunks/tabs-BfOtoeir.js +0 -191
  171. package/dist/chunks/time-picker-CZnb2sWz.js +0 -785
  172. package/dist/chunks/time-picker-CZnb2sWz.js.map +0 -1
  173. package/dist/chunks/tooltip-CE7JMHMu.js +0 -398
  174. package/dist/chunks/top-app-bar-Dgbp6CFv.js.map +0 -1
  175. package/dist/components/account-menu/account-menu.css.d.ts +0 -3
  176. package/dist/components/account-menu/account-menu.css.d.ts.map +0 -1
  177. package/dist/components/account-menu/account-menu.d.ts +0 -111
  178. package/dist/components/account-menu/account-menu.d.ts.map +0 -1
  179. package/dist/components/app-drawer/app-drawer.css.d.ts +0 -3
  180. package/dist/components/app-drawer/app-drawer.css.d.ts.map +0 -1
  181. package/dist/components/app-drawer/app-drawer.d.ts +0 -173
  182. package/dist/components/app-drawer/app-drawer.d.ts.map +0 -1
  183. package/dist/components/badge/badge.css.d.ts +0 -2
  184. package/dist/components/badge/badge.css.d.ts.map +0 -1
  185. package/dist/components/badge/badge.d.ts +0 -16
  186. package/dist/components/badge/badge.d.ts.map +0 -1
  187. package/dist/components/bottom-sheet/bottom-sheet.css.d.ts +0 -2
  188. package/dist/components/bottom-sheet/bottom-sheet.css.d.ts.map +0 -1
  189. package/dist/components/bottom-sheet/bottom-sheet.d.ts +0 -69
  190. package/dist/components/bottom-sheet/bottom-sheet.d.ts.map +0 -1
  191. package/dist/components/button/button.css.d.ts +0 -2
  192. package/dist/components/button/button.css.d.ts.map +0 -1
  193. package/dist/components/button/button.d.ts +0 -25
  194. package/dist/components/button/button.d.ts.map +0 -1
  195. package/dist/components/button-group/button-group.css.d.ts +0 -2
  196. package/dist/components/button-group/button-group.css.d.ts.map +0 -1
  197. package/dist/components/button-group/button-group.d.ts +0 -28
  198. package/dist/components/button-group/button-group.d.ts.map +0 -1
  199. package/dist/components/card/card.css.d.ts +0 -2
  200. package/dist/components/card/card.css.d.ts.map +0 -1
  201. package/dist/components/card/card.d.ts +0 -18
  202. package/dist/components/card/card.d.ts.map +0 -1
  203. package/dist/components/carousel/carousel-item.d.ts +0 -33
  204. package/dist/components/carousel/carousel-item.d.ts.map +0 -1
  205. package/dist/components/carousel/carousel.css.d.ts +0 -3
  206. package/dist/components/carousel/carousel.css.d.ts.map +0 -1
  207. package/dist/components/carousel/carousel.d.ts +0 -81
  208. package/dist/components/carousel/carousel.d.ts.map +0 -1
  209. package/dist/components/checkbox/checkbox.css.d.ts +0 -2
  210. package/dist/components/checkbox/checkbox.css.d.ts.map +0 -1
  211. package/dist/components/checkbox/checkbox.d.ts +0 -24
  212. package/dist/components/checkbox/checkbox.d.ts.map +0 -1
  213. package/dist/components/chip/chip.css.d.ts +0 -3
  214. package/dist/components/chip/chip.css.d.ts.map +0 -1
  215. package/dist/components/chip/chip.d.ts +0 -27
  216. package/dist/components/chip/chip.d.ts.map +0 -1
  217. package/dist/components/code/code.css.d.ts +0 -2
  218. package/dist/components/code/code.css.d.ts.map +0 -1
  219. package/dist/components/code/code.d.ts +0 -106
  220. package/dist/components/code/code.d.ts.map +0 -1
  221. package/dist/components/code/highlighter.d.ts +0 -8
  222. package/dist/components/code/highlighter.d.ts.map +0 -1
  223. package/dist/components/code/linter.d.ts +0 -44
  224. package/dist/components/code/linter.d.ts.map +0 -1
  225. package/dist/components/date-picker/date-picker.css.d.ts +0 -2
  226. package/dist/components/date-picker/date-picker.css.d.ts.map +0 -1
  227. package/dist/components/date-picker/date-picker.d.ts +0 -59
  228. package/dist/components/date-picker/date-picker.d.ts.map +0 -1
  229. package/dist/components/dialog/dialog.css.d.ts +0 -2
  230. package/dist/components/dialog/dialog.css.d.ts.map +0 -1
  231. package/dist/components/dialog/dialog.d.ts +0 -22
  232. package/dist/components/dialog/dialog.d.ts.map +0 -1
  233. package/dist/components/divider/divider.css.d.ts +0 -2
  234. package/dist/components/divider/divider.css.d.ts.map +0 -1
  235. package/dist/components/divider/divider.d.ts +0 -16
  236. package/dist/components/divider/divider.d.ts.map +0 -1
  237. package/dist/components/fab/fab.css.d.ts +0 -2
  238. package/dist/components/fab/fab.css.d.ts.map +0 -1
  239. package/dist/components/fab/fab.d.ts +0 -19
  240. package/dist/components/fab/fab.d.ts.map +0 -1
  241. package/dist/components/fab-menu/fab-menu-item.d.ts +0 -35
  242. package/dist/components/fab-menu/fab-menu-item.d.ts.map +0 -1
  243. package/dist/components/fab-menu/fab-menu.css.d.ts +0 -3
  244. package/dist/components/fab-menu/fab-menu.css.d.ts.map +0 -1
  245. package/dist/components/fab-menu/fab-menu.d.ts +0 -72
  246. package/dist/components/fab-menu/fab-menu.d.ts.map +0 -1
  247. package/dist/components/icon/icon.css.d.ts +0 -2
  248. package/dist/components/icon/icon.css.d.ts.map +0 -1
  249. package/dist/components/icon/icon.d.ts +0 -15
  250. package/dist/components/icon/icon.d.ts.map +0 -1
  251. package/dist/components/icon-button/icon-button.css.d.ts +0 -2
  252. package/dist/components/icon-button/icon-button.css.d.ts.map +0 -1
  253. package/dist/components/icon-button/icon-button.d.ts +0 -22
  254. package/dist/components/icon-button/icon-button.d.ts.map +0 -1
  255. package/dist/components/list/list.css.d.ts +0 -3
  256. package/dist/components/list/list.css.d.ts.map +0 -1
  257. package/dist/components/list/list.d.ts +0 -25
  258. package/dist/components/list/list.d.ts.map +0 -1
  259. package/dist/components/loading-indicator/loading-indicator.css.d.ts +0 -2
  260. package/dist/components/loading-indicator/loading-indicator.css.d.ts.map +0 -1
  261. package/dist/components/loading-indicator/loading-indicator.d.ts +0 -48
  262. package/dist/components/loading-indicator/loading-indicator.d.ts.map +0 -1
  263. package/dist/components/menu/menu-item.d.ts +0 -41
  264. package/dist/components/menu/menu-item.d.ts.map +0 -1
  265. package/dist/components/menu/menu.css.d.ts +0 -3
  266. package/dist/components/menu/menu.css.d.ts.map +0 -1
  267. package/dist/components/menu/menu.d.ts +0 -91
  268. package/dist/components/menu/menu.d.ts.map +0 -1
  269. package/dist/components/navigation-bar/navigation-bar-item.d.ts +0 -49
  270. package/dist/components/navigation-bar/navigation-bar-item.d.ts.map +0 -1
  271. package/dist/components/navigation-bar/navigation-bar.css.d.ts +0 -3
  272. package/dist/components/navigation-bar/navigation-bar.css.d.ts.map +0 -1
  273. package/dist/components/navigation-bar/navigation-bar.d.ts +0 -50
  274. package/dist/components/navigation-bar/navigation-bar.d.ts.map +0 -1
  275. package/dist/components/navigation-drawer/navigation-drawer.css.d.ts +0 -3
  276. package/dist/components/navigation-drawer/navigation-drawer.css.d.ts.map +0 -1
  277. package/dist/components/navigation-drawer/navigation-drawer.d.ts +0 -76
  278. package/dist/components/navigation-drawer/navigation-drawer.d.ts.map +0 -1
  279. package/dist/components/navigation-rail/navigation-rail-item.d.ts +0 -36
  280. package/dist/components/navigation-rail/navigation-rail-item.d.ts.map +0 -1
  281. package/dist/components/navigation-rail/navigation-rail.css.d.ts +0 -3
  282. package/dist/components/navigation-rail/navigation-rail.css.d.ts.map +0 -1
  283. package/dist/components/navigation-rail/navigation-rail.d.ts +0 -43
  284. package/dist/components/navigation-rail/navigation-rail.d.ts.map +0 -1
  285. package/dist/components/player/player.css.d.ts +0 -2
  286. package/dist/components/player/player.css.d.ts.map +0 -1
  287. package/dist/components/player/player.d.ts +0 -99
  288. package/dist/components/player/player.d.ts.map +0 -1
  289. package/dist/components/progress/progress.css.d.ts +0 -2
  290. package/dist/components/progress/progress.css.d.ts.map +0 -1
  291. package/dist/components/progress/progress.d.ts +0 -21
  292. package/dist/components/progress/progress.d.ts.map +0 -1
  293. package/dist/components/radio/radio.css.d.ts +0 -3
  294. package/dist/components/radio/radio.css.d.ts.map +0 -1
  295. package/dist/components/radio/radio.d.ts +0 -38
  296. package/dist/components/radio/radio.d.ts.map +0 -1
  297. package/dist/components/search-bar/search-bar.css.d.ts +0 -2
  298. package/dist/components/search-bar/search-bar.css.d.ts.map +0 -1
  299. package/dist/components/search-bar/search-bar.d.ts +0 -81
  300. package/dist/components/search-bar/search-bar.d.ts.map +0 -1
  301. package/dist/components/segmented-button/segmented-button.css.d.ts +0 -3
  302. package/dist/components/segmented-button/segmented-button.css.d.ts.map +0 -1
  303. package/dist/components/segmented-button/segmented-button.d.ts +0 -40
  304. package/dist/components/segmented-button/segmented-button.d.ts.map +0 -1
  305. package/dist/components/side-sheet/side-sheet.css.d.ts +0 -2
  306. package/dist/components/side-sheet/side-sheet.css.d.ts.map +0 -1
  307. package/dist/components/side-sheet/side-sheet.d.ts +0 -57
  308. package/dist/components/side-sheet/side-sheet.d.ts.map +0 -1
  309. package/dist/components/slider/slider.css.d.ts +0 -2
  310. package/dist/components/slider/slider.css.d.ts.map +0 -1
  311. package/dist/components/slider/slider.d.ts +0 -51
  312. package/dist/components/slider/slider.d.ts.map +0 -1
  313. package/dist/components/snackbar/snackbar.css.d.ts +0 -2
  314. package/dist/components/snackbar/snackbar.css.d.ts.map +0 -1
  315. package/dist/components/snackbar/snackbar.d.ts +0 -24
  316. package/dist/components/snackbar/snackbar.d.ts.map +0 -1
  317. package/dist/components/split-button/split-button.css.d.ts +0 -2
  318. package/dist/components/split-button/split-button.css.d.ts.map +0 -1
  319. package/dist/components/split-button/split-button.d.ts +0 -89
  320. package/dist/components/split-button/split-button.d.ts.map +0 -1
  321. package/dist/components/switch/switch.css.d.ts +0 -2
  322. package/dist/components/switch/switch.css.d.ts.map +0 -1
  323. package/dist/components/switch/switch.d.ts +0 -22
  324. package/dist/components/switch/switch.d.ts.map +0 -1
  325. package/dist/components/table/table.css.d.ts +0 -8
  326. package/dist/components/table/table.css.d.ts.map +0 -1
  327. package/dist/components/table/table.d.ts +0 -158
  328. package/dist/components/table/table.d.ts.map +0 -1
  329. package/dist/components/tabs/tabs.css.d.ts +0 -3
  330. package/dist/components/tabs/tabs.css.d.ts.map +0 -1
  331. package/dist/components/tabs/tabs.d.ts +0 -33
  332. package/dist/components/tabs/tabs.d.ts.map +0 -1
  333. package/dist/components/text-field/text-field.css.d.ts +0 -2
  334. package/dist/components/text-field/text-field.css.d.ts.map +0 -1
  335. package/dist/components/text-field/text-field.d.ts +0 -40
  336. package/dist/components/text-field/text-field.d.ts.map +0 -1
  337. package/dist/components/time-picker/time-picker.css.d.ts +0 -2
  338. package/dist/components/time-picker/time-picker.css.d.ts.map +0 -1
  339. package/dist/components/time-picker/time-picker.d.ts +0 -87
  340. package/dist/components/time-picker/time-picker.d.ts.map +0 -1
  341. package/dist/components/toolbar/toolbar.css.d.ts +0 -2
  342. package/dist/components/toolbar/toolbar.css.d.ts.map +0 -1
  343. package/dist/components/toolbar/toolbar.d.ts +0 -53
  344. package/dist/components/toolbar/toolbar.d.ts.map +0 -1
  345. package/dist/components/tooltip/tooltip.css.d.ts +0 -2
  346. package/dist/components/tooltip/tooltip.css.d.ts.map +0 -1
  347. package/dist/components/tooltip/tooltip.d.ts +0 -89
  348. package/dist/components/tooltip/tooltip.d.ts.map +0 -1
  349. package/dist/components/top-app-bar/top-app-bar.css.d.ts +0 -2
  350. package/dist/components/top-app-bar/top-app-bar.css.d.ts.map +0 -1
  351. package/dist/components/top-app-bar/top-app-bar.d.ts +0 -29
  352. package/dist/components/top-app-bar/top-app-bar.d.ts.map +0 -1
  353. package/dist/index.d.ts +0 -52
  354. package/dist/index.d.ts.map +0 -1
  355. package/dist/internal/base-component.d.ts +0 -13
  356. package/dist/internal/base-component.d.ts.map +0 -1
  357. package/dist/internal/focus-ring/focus-ring.css.d.ts +0 -2
  358. package/dist/internal/focus-ring/focus-ring.css.d.ts.map +0 -1
  359. package/dist/internal/focus-ring/focus-ring.d.ts +0 -18
  360. package/dist/internal/focus-ring/focus-ring.d.ts.map +0 -1
  361. package/dist/internal/form-associated.d.ts +0 -26
  362. package/dist/internal/form-associated.d.ts.map +0 -1
  363. package/dist/internal/ripple/ripple.css.d.ts +0 -2
  364. package/dist/internal/ripple/ripple.css.d.ts.map +0 -1
  365. package/dist/internal/ripple/ripple.d.ts +0 -23
  366. package/dist/internal/ripple/ripple.d.ts.map +0 -1
  367. package/dist/tokens/colors.d.ts +0 -42
  368. package/dist/tokens/colors.d.ts.map +0 -1
  369. package/dist/tokens/elevation.d.ts +0 -9
  370. package/dist/tokens/elevation.d.ts.map +0 -1
  371. package/dist/tokens/index.d.ts +0 -7
  372. package/dist/tokens/index.d.ts.map +0 -1
  373. package/dist/tokens/motion.d.ts +0 -21
  374. package/dist/tokens/motion.d.ts.map +0 -1
  375. package/dist/tokens/shape.d.ts +0 -10
  376. package/dist/tokens/shape.d.ts.map +0 -1
  377. package/dist/tokens/theme.css.d.ts +0 -4
  378. package/dist/tokens/theme.css.d.ts.map +0 -1
  379. package/dist/tokens/typography.d.ts +0 -101
  380. package/dist/tokens/typography.d.ts.map +0 -1
@@ -0,0 +1,380 @@
1
+ import { n as e, t } from "./decorate-DknOJ8FJ.js";
2
+ import { css as n, html as r, nothing as i } from "lit";
3
+ import { customElement as a, property as o, query as s } from "lit/decorators.js";
4
+ //#region src/components/tooltip/tooltip.css.ts
5
+ var c = n`
6
+ :host {
7
+ display: inline-block;
8
+ position: relative;
9
+ }
10
+
11
+ .tooltip {
12
+ box-sizing: border-box;
13
+ position: fixed;
14
+ z-index: 1000;
15
+ pointer-events: none;
16
+ opacity: 0;
17
+ visibility: hidden;
18
+ transform: scale(0.92);
19
+ transition:
20
+ opacity 150ms cubic-bezier(0, 0, 0.2, 1),
21
+ transform 150ms cubic-bezier(0, 0, 0.2, 1),
22
+ visibility 150ms linear;
23
+ word-wrap: break-word;
24
+ font-family: var(--md-sys-typescale-font-family, 'Roboto', -apple-system, BlinkMacSystemFont, sans-serif);
25
+ }
26
+
27
+ :host([open]) .tooltip {
28
+ opacity: 1;
29
+ visibility: visible;
30
+ transform: scale(1);
31
+ }
32
+
33
+ /* Plain Tooltip */
34
+ :host(:not([rich])) .tooltip {
35
+ background-color: var(--md-sys-color-inverse-surface, #313033);
36
+ color: var(--md-sys-color-inverse-on-surface, #F4EFF4);
37
+ border-radius: var(--md-sys-shape-corner-extra-small, 4px);
38
+ padding: 4px 8px;
39
+ font-size: 12px;
40
+ font-weight: 400;
41
+ line-height: 16px;
42
+ letter-spacing: 0.4px;
43
+ min-height: 24px;
44
+ max-width: 240px;
45
+ display: inline-flex;
46
+ align-items: center;
47
+ justify-content: center;
48
+ box-shadow: var(--md-sys-elevation-level1, 0 1px 3px rgba(0, 0, 0, 0.2));
49
+ user-select: none;
50
+ text-align: center;
51
+ }
52
+
53
+ /* Rich Tooltip */
54
+ :host([rich]) .tooltip {
55
+ background-color: var(--md-sys-color-surface-container, #EDE7EE);
56
+ color: var(--md-sys-color-on-surface-variant, #49454E);
57
+ border: 1px solid var(--md-sys-color-outline-variant, #CAC4D0);
58
+ border-radius: var(--md-sys-shape-corner-medium, 12px);
59
+ padding: 12px 16px;
60
+ min-width: 180px;
61
+ max-width: 320px;
62
+ box-shadow: var(--md-sys-elevation-level2, 0 2px 6px 2px rgba(0, 0, 0, 0.15));
63
+ display: flex;
64
+ flex-direction: column;
65
+ gap: 6px;
66
+ text-align: left;
67
+ }
68
+
69
+ :host([rich][open]) .tooltip {
70
+ pointer-events: auto;
71
+ }
72
+
73
+ .subhead,
74
+ .headline {
75
+ color: var(--md-sys-color-on-surface, #1D1B20);
76
+ font-size: 14px;
77
+ font-weight: 500;
78
+ line-height: 20px;
79
+ margin: 0;
80
+ }
81
+
82
+ .supporting-text {
83
+ color: var(--md-sys-color-on-surface-variant, #49454E);
84
+ font-size: 14px;
85
+ font-weight: 400;
86
+ line-height: 20px;
87
+ }
88
+
89
+ .content {
90
+ color: inherit;
91
+ font-size: inherit;
92
+ font-weight: inherit;
93
+ line-height: inherit;
94
+ }
95
+
96
+ .actions {
97
+ display: flex;
98
+ align-items: center;
99
+ justify-content: flex-end;
100
+ gap: 8px;
101
+ margin-top: 6px;
102
+ }
103
+
104
+ .action-button {
105
+ background: transparent;
106
+ border: none;
107
+ cursor: pointer;
108
+ font-family: inherit;
109
+ font-size: 14px;
110
+ font-weight: 500;
111
+ color: var(--md-sys-color-primary, #6750A4);
112
+ padding: 4px 8px;
113
+ border-radius: var(--md-sys-shape-corner-extra-small, 4px);
114
+ transition: background-color 150ms ease;
115
+ }
116
+
117
+ .action-button:hover {
118
+ background-color: rgba(103, 80, 164, 0.08);
119
+ }
120
+
121
+ .action-button:focus-visible {
122
+ outline: 2px solid var(--md-sys-color-primary, #6750A4);
123
+ outline-offset: 1px;
124
+ }
125
+
126
+ /* Caret Arrow */
127
+ .caret {
128
+ display: none;
129
+ position: absolute;
130
+ width: 0;
131
+ height: 0;
132
+ }
133
+
134
+ :host([has-caret]) .caret {
135
+ display: block;
136
+ }
137
+
138
+ :host([position='top'][has-caret]) .caret {
139
+ bottom: -6px;
140
+ left: 50%;
141
+ transform: translateX(-50%);
142
+ border-left: 6px solid transparent;
143
+ border-right: 6px solid transparent;
144
+ border-top: 6px solid var(--md-sys-color-inverse-surface, #313033);
145
+ }
146
+
147
+ :host([rich][position='top'][has-caret]) .caret {
148
+ border-top-color: var(--md-sys-color-surface-container, #EDE7EE);
149
+ }
150
+
151
+ :host([position='bottom'][has-caret]) .caret {
152
+ top: -6px;
153
+ left: 50%;
154
+ transform: translateX(-50%);
155
+ border-left: 6px solid transparent;
156
+ border-right: 6px solid transparent;
157
+ border-bottom: 6px solid var(--md-sys-color-inverse-surface, #313033);
158
+ }
159
+
160
+ :host([rich][position='bottom'][has-caret]) .caret {
161
+ border-bottom-color: var(--md-sys-color-surface-container, #EDE7EE);
162
+ }
163
+
164
+ :host([position='left'][has-caret]) .caret {
165
+ right: -6px;
166
+ top: 50%;
167
+ transform: translateY(-50%);
168
+ border-top: 6px solid transparent;
169
+ border-bottom: 6px solid transparent;
170
+ border-left: 6px solid var(--md-sys-color-inverse-surface, #313033);
171
+ }
172
+
173
+ :host([rich][position='left'][has-caret]) .caret {
174
+ border-left-color: var(--md-sys-color-surface-container, #EDE7EE);
175
+ }
176
+
177
+ :host([position='right'][has-caret]) .caret {
178
+ left: -6px;
179
+ top: 50%;
180
+ transform: translateY(-50%);
181
+ border-top: 6px solid transparent;
182
+ border-bottom: 6px solid transparent;
183
+ border-right: 6px solid var(--md-sys-color-inverse-surface, #313033);
184
+ }
185
+
186
+ :host([rich][position='right'][has-caret]) .caret {
187
+ border-right-color: var(--md-sys-color-surface-container, #EDE7EE);
188
+ }
189
+ `, l = class extends e {
190
+ constructor(...e) {
191
+ super(...e), this.open = !1, this.position = "bottom", this.rich = !1, this.for = "", this.value = "", this.text = "", this.headline = "", this.actionText = "", this.showDelay = 500, this.hideDelay = 150, this.persistent = !1, this.hasCaret = !1, this.disabled = !1, this._anchorElement = null, this._boundAnchor = null, this._showTimer = null, this._hideTimer = null, this.handleAnchorMouseEnter = () => {
192
+ this.disabled || (this.clearTimers(), this.showDelay > 0 ? this._showTimer = setTimeout(() => {
193
+ this.show();
194
+ }, this.showDelay) : this.show());
195
+ }, this.handleAnchorMouseLeave = () => {
196
+ this.disabled || this.persistent || (this._showTimer !== null && (clearTimeout(this._showTimer), this._showTimer = null), this.hideDelay > 0 ? this._hideTimer = setTimeout(() => {
197
+ this.hide();
198
+ }, this.hideDelay) : this.hide());
199
+ }, this.handleAnchorFocus = () => {
200
+ this.disabled || (this.clearTimers(), this.show());
201
+ }, this.handleAnchorBlur = () => {
202
+ this.disabled || this.persistent || (this.clearTimers(), this.hide());
203
+ }, this.handleTooltipMouseEnter = () => {
204
+ this.rich && this.open && this._hideTimer !== null && (clearTimeout(this._hideTimer), this._hideTimer = null);
205
+ }, this.handleTooltipMouseLeave = () => {
206
+ this.rich && this.open && !this.persistent && this.handleAnchorMouseLeave();
207
+ }, this.handleKeyDown = (e) => {
208
+ e.key === "Escape" && this.open && this.hide();
209
+ }, this.handleWindowChange = () => {
210
+ this.open && this.updatePosition();
211
+ }, this.handleDocumentClick = (e) => {
212
+ if (!this.open || !this.rich) return;
213
+ let t = e.composedPath(), n = this.resolveAnchorElement();
214
+ !t.includes(this) && (!n || !t.includes(n)) && this.hide();
215
+ }, this.handleActionClick = () => {
216
+ this.emitEvent("action", { target: this }), this.persistent || this.hide();
217
+ };
218
+ }
219
+ static {
220
+ this.styles = [e.styles, c];
221
+ }
222
+ get delay() {
223
+ return this.showDelay;
224
+ }
225
+ set delay(e) {
226
+ this.showDelay = e;
227
+ }
228
+ get anchor() {
229
+ return this._anchorElement || this.resolveAnchorElement();
230
+ }
231
+ set anchor(e) {
232
+ this._anchorElement = e, this.bindAnchorEvents();
233
+ }
234
+ get target() {
235
+ return this.anchor;
236
+ }
237
+ set target(e) {
238
+ this.anchor = e;
239
+ }
240
+ connectedCallback() {
241
+ super.connectedCallback(), window.addEventListener("keydown", this.handleKeyDown), window.addEventListener("resize", this.handleWindowChange), window.addEventListener("scroll", this.handleWindowChange, !0), document.addEventListener("pointerdown", this.handleDocumentClick), this.bindAnchorEvents();
242
+ }
243
+ disconnectedCallback() {
244
+ super.disconnectedCallback(), window.removeEventListener("keydown", this.handleKeyDown), window.removeEventListener("resize", this.handleWindowChange), window.removeEventListener("scroll", this.handleWindowChange, !0), document.removeEventListener("pointerdown", this.handleDocumentClick), this.unbindAnchorEvents(), this.clearTimers();
245
+ }
246
+ firstUpdated() {
247
+ this.bindAnchorEvents();
248
+ }
249
+ updated(e) {
250
+ super.updated(e), e.has("for") && this.bindAnchorEvents(), e.has("open") && (this.open ? (this.updatePosition(), this.emitEvent("open", { target: this })) : this.emitEvent("close", { target: this })), e.has("position") && this.open && this.updatePosition();
251
+ }
252
+ resolveAnchorElement() {
253
+ if (this._anchorElement) return this._anchorElement;
254
+ if (this.for) {
255
+ let e = this.getRootNode(), t = e?.getElementById ? e.getElementById(this.for) : document.getElementById(this.for);
256
+ if (t) return t;
257
+ }
258
+ return this.querySelector("[slot=\"anchor\"]") || (this.previousElementSibling instanceof HTMLElement ? this.previousElementSibling : this.parentElement && this.parentElement !== document.body && this.parentElement !== document.documentElement ? this.parentElement : null);
259
+ }
260
+ bindAnchorEvents() {
261
+ let e = this.resolveAnchorElement();
262
+ e !== this._boundAnchor && (this.unbindAnchorEvents(), this._boundAnchor = e, this._boundAnchor && (this._boundAnchor.addEventListener("mouseenter", this.handleAnchorMouseEnter), this._boundAnchor.addEventListener("mouseleave", this.handleAnchorMouseLeave), this._boundAnchor.addEventListener("focusin", this.handleAnchorFocus), this._boundAnchor.addEventListener("focusout", this.handleAnchorBlur)));
263
+ }
264
+ unbindAnchorEvents() {
265
+ this._boundAnchor &&= (this._boundAnchor.removeEventListener("mouseenter", this.handleAnchorMouseEnter), this._boundAnchor.removeEventListener("mouseleave", this.handleAnchorMouseLeave), this._boundAnchor.removeEventListener("focusin", this.handleAnchorFocus), this._boundAnchor.removeEventListener("focusout", this.handleAnchorBlur), null);
266
+ }
267
+ clearTimers() {
268
+ this._showTimer !== null && (clearTimeout(this._showTimer), this._showTimer = null), this._hideTimer !== null && (clearTimeout(this._hideTimer), this._hideTimer = null);
269
+ }
270
+ show() {
271
+ this.disabled || this.open || (this.open = !0, this.updatePosition());
272
+ }
273
+ hide() {
274
+ this.open &&= !1;
275
+ }
276
+ close() {
277
+ this.hide();
278
+ }
279
+ toggle() {
280
+ this.open ? this.hide() : this.show();
281
+ }
282
+ updatePosition() {
283
+ if (!this.tooltipPanel) return;
284
+ let e = this.resolveAnchorElement();
285
+ if (!e) return;
286
+ let t = e.getBoundingClientRect(), n = this.tooltipPanel.getBoundingClientRect(), r = n.width || (this.rich ? 220 : 80), i = n.height || (this.rich ? 80 : 24), a = this.rich ? 8 : 4, o = 0, s = 0;
287
+ switch (this.position) {
288
+ case "top":
289
+ o = t.top - i - a, s = t.left + (t.width - r) / 2;
290
+ break;
291
+ case "bottom":
292
+ o = t.bottom + a, s = t.left + (t.width - r) / 2;
293
+ break;
294
+ case "left":
295
+ o = t.top + (t.height - i) / 2, s = t.left - r - a;
296
+ break;
297
+ case "right": o = t.top + (t.height - i) / 2, s = t.right + a;
298
+ }
299
+ let c = typeof window < "u" ? window.innerWidth : 1024, l = typeof window < "u" ? window.innerHeight : 768;
300
+ s = Math.max(8, Math.min(s, c - r - 8)), o = Math.max(8, Math.min(o, l - i - 8)), this.tooltipPanel.style.top = `${o}px`, this.tooltipPanel.style.left = `${s}px`;
301
+ }
302
+ render() {
303
+ let e = this.value || this.text;
304
+ return r`
305
+ <slot name="anchor"></slot>
306
+
307
+ <div
308
+ class="tooltip"
309
+ role="tooltip"
310
+ aria-hidden=${this.open ? "false" : "true"}
311
+ @mouseenter=${this.handleTooltipMouseEnter}
312
+ @mouseleave=${this.handleTooltipMouseLeave}
313
+ >
314
+ <span class="caret" aria-hidden="true"></span>
315
+
316
+ ${this.rich ? r`
317
+ ${this.headline ? r`<h3 class="headline"><slot name="headline">${this.headline}</slot></h3>` : r`<slot name="headline"></slot>`}
318
+ <div class="supporting-text">
319
+ <slot>${e}</slot>
320
+ </div>
321
+ ${this.actionText || this.querySelector("[slot=\"actions\"]") ? r`
322
+ <div class="actions">
323
+ <slot name="actions">
324
+ ${this.actionText ? r`
325
+ <button
326
+ type="button"
327
+ class="action-button"
328
+ @click=${this.handleActionClick}
329
+ >
330
+ ${this.actionText}
331
+ </button>
332
+ ` : i}
333
+ </slot>
334
+ </div>
335
+ ` : i}
336
+ ` : r`
337
+ <span class="content">
338
+ <slot>${e}</slot>
339
+ </span>
340
+ `}
341
+ </div>
342
+ `;
343
+ }
344
+ };
345
+ t([o({
346
+ type: Boolean,
347
+ reflect: !0
348
+ })], l.prototype, "open", void 0), t([o({
349
+ type: String,
350
+ reflect: !0
351
+ })], l.prototype, "position", void 0), t([o({
352
+ type: Boolean,
353
+ reflect: !0
354
+ })], l.prototype, "rich", void 0), t([o({
355
+ type: String,
356
+ reflect: !0
357
+ })], l.prototype, "for", void 0), t([o({ type: String })], l.prototype, "value", void 0), t([o({ type: String })], l.prototype, "text", void 0), t([o({ type: String })], l.prototype, "headline", void 0), t([o({
358
+ type: String,
359
+ attribute: "action-text"
360
+ })], l.prototype, "actionText", void 0), t([o({
361
+ type: Number,
362
+ attribute: "show-delay"
363
+ })], l.prototype, "showDelay", void 0), t([o({
364
+ type: Number,
365
+ attribute: "hide-delay"
366
+ })], l.prototype, "hideDelay", void 0), t([o({ type: Number })], l.prototype, "delay", null), t([o({
367
+ type: Boolean,
368
+ reflect: !0
369
+ })], l.prototype, "persistent", void 0), t([o({
370
+ type: Boolean,
371
+ reflect: !0,
372
+ attribute: "has-caret"
373
+ })], l.prototype, "hasCaret", void 0), t([o({
374
+ type: Boolean,
375
+ reflect: !0
376
+ })], l.prototype, "disabled", void 0), t([s(".tooltip")], l.prototype, "tooltipPanel", void 0), l = t([a("md-tooltip")], l);
377
+ //#endregion
378
+ export { l as t };
379
+
380
+ //# sourceMappingURL=tooltip-Ds3lNowS.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tooltip-CE7JMHMu.js","names":[],"sources":["../../src/components/tooltip/tooltip.css.ts","../../src/components/tooltip/tooltip.ts"],"sourcesContent":["import { css } from 'lit';\n\nexport const tooltipStyles = css`\n :host {\n display: inline-block;\n position: relative;\n }\n\n .tooltip {\n box-sizing: border-box;\n position: fixed;\n z-index: 1000;\n pointer-events: none;\n opacity: 0;\n visibility: hidden;\n transform: scale(0.92);\n transition:\n opacity 150ms cubic-bezier(0, 0, 0.2, 1),\n transform 150ms cubic-bezier(0, 0, 0.2, 1),\n visibility 150ms linear;\n word-wrap: break-word;\n font-family: var(--md-sys-typescale-font-family, 'Roboto', -apple-system, BlinkMacSystemFont, sans-serif);\n }\n\n :host([open]) .tooltip {\n opacity: 1;\n visibility: visible;\n transform: scale(1);\n }\n\n /* Plain Tooltip */\n :host(:not([rich])) .tooltip {\n background-color: var(--md-sys-color-inverse-surface, #313033);\n color: var(--md-sys-color-inverse-on-surface, #F4EFF4);\n border-radius: var(--md-sys-shape-corner-extra-small, 4px);\n padding: 4px 8px;\n font-size: 12px;\n font-weight: 400;\n line-height: 16px;\n letter-spacing: 0.4px;\n min-height: 24px;\n max-width: 240px;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n box-shadow: var(--md-sys-elevation-level1, 0 1px 3px rgba(0, 0, 0, 0.2));\n user-select: none;\n text-align: center;\n }\n\n /* Rich Tooltip */\n :host([rich]) .tooltip {\n background-color: var(--md-sys-color-surface-container, #EDE7EE);\n color: var(--md-sys-color-on-surface-variant, #49454E);\n border: 1px solid var(--md-sys-color-outline-variant, #CAC4D0);\n border-radius: var(--md-sys-shape-corner-medium, 12px);\n padding: 12px 16px;\n min-width: 180px;\n max-width: 320px;\n box-shadow: var(--md-sys-elevation-level2, 0 2px 6px 2px rgba(0, 0, 0, 0.15));\n display: flex;\n flex-direction: column;\n gap: 6px;\n text-align: left;\n }\n\n :host([rich][open]) .tooltip {\n pointer-events: auto;\n }\n\n .subhead,\n .headline {\n color: var(--md-sys-color-on-surface, #1D1B20);\n font-size: 14px;\n font-weight: 500;\n line-height: 20px;\n margin: 0;\n }\n\n .supporting-text {\n color: var(--md-sys-color-on-surface-variant, #49454E);\n font-size: 14px;\n font-weight: 400;\n line-height: 20px;\n }\n\n .content {\n color: inherit;\n font-size: inherit;\n font-weight: inherit;\n line-height: inherit;\n }\n\n .actions {\n display: flex;\n align-items: center;\n justify-content: flex-end;\n gap: 8px;\n margin-top: 6px;\n }\n\n .action-button {\n background: transparent;\n border: none;\n cursor: pointer;\n font-family: inherit;\n font-size: 14px;\n font-weight: 500;\n color: var(--md-sys-color-primary, #6750A4);\n padding: 4px 8px;\n border-radius: var(--md-sys-shape-corner-extra-small, 4px);\n transition: background-color 150ms ease;\n }\n\n .action-button:hover {\n background-color: rgba(103, 80, 164, 0.08);\n }\n\n .action-button:focus-visible {\n outline: 2px solid var(--md-sys-color-primary, #6750A4);\n outline-offset: 1px;\n }\n\n /* Caret Arrow */\n .caret {\n display: none;\n position: absolute;\n width: 0;\n height: 0;\n }\n\n :host([has-caret]) .caret {\n display: block;\n }\n\n :host([position='top'][has-caret]) .caret {\n bottom: -6px;\n left: 50%;\n transform: translateX(-50%);\n border-left: 6px solid transparent;\n border-right: 6px solid transparent;\n border-top: 6px solid var(--md-sys-color-inverse-surface, #313033);\n }\n\n :host([rich][position='top'][has-caret]) .caret {\n border-top-color: var(--md-sys-color-surface-container, #EDE7EE);\n }\n\n :host([position='bottom'][has-caret]) .caret {\n top: -6px;\n left: 50%;\n transform: translateX(-50%);\n border-left: 6px solid transparent;\n border-right: 6px solid transparent;\n border-bottom: 6px solid var(--md-sys-color-inverse-surface, #313033);\n }\n\n :host([rich][position='bottom'][has-caret]) .caret {\n border-bottom-color: var(--md-sys-color-surface-container, #EDE7EE);\n }\n\n :host([position='left'][has-caret]) .caret {\n right: -6px;\n top: 50%;\n transform: translateY(-50%);\n border-top: 6px solid transparent;\n border-bottom: 6px solid transparent;\n border-left: 6px solid var(--md-sys-color-inverse-surface, #313033);\n }\n\n :host([rich][position='left'][has-caret]) .caret {\n border-left-color: var(--md-sys-color-surface-container, #EDE7EE);\n }\n\n :host([position='right'][has-caret]) .caret {\n left: -6px;\n top: 50%;\n transform: translateY(-50%);\n border-top: 6px solid transparent;\n border-bottom: 6px solid transparent;\n border-right: 6px solid var(--md-sys-color-inverse-surface, #313033);\n }\n\n :host([rich][position='right'][has-caret]) .caret {\n border-right-color: var(--md-sys-color-surface-container, #EDE7EE);\n }\n`;\n","import { html, nothing } from 'lit';\nimport { customElement, property, query } from 'lit/decorators.js';\nimport { MdBaseElement } from '../../internal/base-component.js';\nimport { tooltipStyles } from './tooltip.css.js';\n\nexport type TooltipPosition = 'top' | 'bottom' | 'left' | 'right';\n\n/**\n * Material Design 3 Tooltip component.\n * Plain and rich tooltips providing contextual descriptions or interactive details.\n *\n * @element md-tooltip\n *\n * @slot - Default slot for tooltip text or supporting content.\n * @slot headline - Custom headline/subhead element for rich tooltips.\n * @slot actions - Custom action buttons for rich tooltips.\n * @slot anchor - Slotted anchor element (optional).\n *\n * @fires open - Dispatched when the tooltip becomes visible.\n * @fires close - Dispatched when the tooltip is hidden.\n * @fires action - Dispatched when the rich tooltip action button is clicked.\n */\n@customElement('md-tooltip')\nexport class MdTooltip extends MdBaseElement {\n static override styles = [MdBaseElement.styles, tooltipStyles];\n\n @property({ type: Boolean, reflect: true })\n open = false;\n\n @property({ type: String, reflect: true })\n position: TooltipPosition = 'bottom';\n\n @property({ type: Boolean, reflect: true })\n rich = false;\n\n @property({ type: String, reflect: true })\n for = '';\n\n @property({ type: String })\n value = '';\n\n @property({ type: String })\n text = '';\n\n @property({ type: String })\n headline = '';\n\n @property({ type: String, attribute: 'action-text' })\n actionText = '';\n\n @property({ type: Number, attribute: 'show-delay' })\n showDelay = 500;\n\n @property({ type: Number, attribute: 'hide-delay' })\n hideDelay = 150;\n\n @property({ type: Number })\n get delay(): number {\n return this.showDelay;\n }\n\n set delay(val: number) {\n this.showDelay = val;\n }\n\n @property({ type: Boolean, reflect: true })\n persistent = false;\n\n @property({ type: Boolean, reflect: true, attribute: 'has-caret' })\n hasCaret = false;\n\n @property({ type: Boolean, reflect: true })\n disabled = false;\n\n @query('.tooltip')\n tooltipPanel!: HTMLElement;\n\n private _anchorElement: HTMLElement | null = null;\n private _boundAnchor: HTMLElement | null = null;\n private _showTimer: ReturnType<typeof setTimeout> | null = null;\n private _hideTimer: ReturnType<typeof setTimeout> | null = null;\n\n get anchor(): HTMLElement | null {\n return this._anchorElement || this.resolveAnchorElement();\n }\n\n set anchor(element: HTMLElement | null) {\n this._anchorElement = element;\n this.bindAnchorEvents();\n }\n\n get target(): HTMLElement | null {\n return this.anchor;\n }\n\n set target(element: HTMLElement | null) {\n this.anchor = element;\n }\n\n override connectedCallback() {\n super.connectedCallback();\n window.addEventListener('keydown', this.handleKeyDown);\n window.addEventListener('resize', this.handleWindowChange);\n window.addEventListener('scroll', this.handleWindowChange, true);\n document.addEventListener('pointerdown', this.handleDocumentClick);\n this.bindAnchorEvents();\n }\n\n override disconnectedCallback() {\n super.disconnectedCallback();\n window.removeEventListener('keydown', this.handleKeyDown);\n window.removeEventListener('resize', this.handleWindowChange);\n window.removeEventListener('scroll', this.handleWindowChange, true);\n document.removeEventListener('pointerdown', this.handleDocumentClick);\n this.unbindAnchorEvents();\n this.clearTimers();\n }\n\n override firstUpdated() {\n this.bindAnchorEvents();\n }\n\n override updated(changedProperties: Map<string, unknown>) {\n super.updated(changedProperties);\n\n if (changedProperties.has('for')) {\n this.bindAnchorEvents();\n }\n\n if (changedProperties.has('open')) {\n if (this.open) {\n this.updatePosition();\n this.emitEvent('open', { target: this });\n } else {\n this.emitEvent('close', { target: this });\n }\n }\n\n if (changedProperties.has('position') && this.open) {\n this.updatePosition();\n }\n }\n\n private resolveAnchorElement(): HTMLElement | null {\n if (this._anchorElement) {\n return this._anchorElement;\n }\n\n if (this.for) {\n const root = this.getRootNode() as Document | ShadowRoot;\n const el = root?.getElementById\n ? root.getElementById(this.for)\n : document.getElementById(this.for);\n if (el) return el;\n }\n\n // Check slotted anchor\n const slottedAnchor = this.querySelector('[slot=\"anchor\"]') as HTMLElement;\n if (slottedAnchor) return slottedAnchor;\n\n // Check previous sibling\n if (this.previousElementSibling instanceof HTMLElement) {\n return this.previousElementSibling;\n }\n\n // Check parent element if not body / html\n if (\n this.parentElement &&\n this.parentElement !== document.body &&\n this.parentElement !== document.documentElement\n ) {\n return this.parentElement;\n }\n\n return null;\n }\n\n private bindAnchorEvents() {\n const anchor = this.resolveAnchorElement();\n if (anchor === this._boundAnchor) return;\n\n this.unbindAnchorEvents();\n this._boundAnchor = anchor;\n\n if (this._boundAnchor) {\n this._boundAnchor.addEventListener('mouseenter', this.handleAnchorMouseEnter);\n this._boundAnchor.addEventListener('mouseleave', this.handleAnchorMouseLeave);\n this._boundAnchor.addEventListener('focusin', this.handleAnchorFocus);\n this._boundAnchor.addEventListener('focusout', this.handleAnchorBlur);\n }\n }\n\n private unbindAnchorEvents() {\n if (this._boundAnchor) {\n this._boundAnchor.removeEventListener('mouseenter', this.handleAnchorMouseEnter);\n this._boundAnchor.removeEventListener('mouseleave', this.handleAnchorMouseLeave);\n this._boundAnchor.removeEventListener('focusin', this.handleAnchorFocus);\n this._boundAnchor.removeEventListener('focusout', this.handleAnchorBlur);\n this._boundAnchor = null;\n }\n }\n\n private clearTimers() {\n if (this._showTimer !== null) {\n clearTimeout(this._showTimer);\n this._showTimer = null;\n }\n if (this._hideTimer !== null) {\n clearTimeout(this._hideTimer);\n this._hideTimer = null;\n }\n }\n\n private handleAnchorMouseEnter = () => {\n if (this.disabled) return;\n this.clearTimers();\n if (this.showDelay > 0) {\n this._showTimer = setTimeout(() => {\n this.show();\n }, this.showDelay);\n } else {\n this.show();\n }\n };\n\n private handleAnchorMouseLeave = () => {\n if (this.disabled || this.persistent) return;\n if (this._showTimer !== null) {\n clearTimeout(this._showTimer);\n this._showTimer = null;\n }\n if (this.hideDelay > 0) {\n this._hideTimer = setTimeout(() => {\n this.hide();\n }, this.hideDelay);\n } else {\n this.hide();\n }\n };\n\n private handleAnchorFocus = () => {\n if (this.disabled) return;\n this.clearTimers();\n this.show();\n };\n\n private handleAnchorBlur = () => {\n if (this.disabled || this.persistent) return;\n this.clearTimers();\n this.hide();\n };\n\n private handleTooltipMouseEnter = () => {\n if (this.rich && this.open) {\n if (this._hideTimer !== null) {\n clearTimeout(this._hideTimer);\n this._hideTimer = null;\n }\n }\n };\n\n private handleTooltipMouseLeave = () => {\n if (this.rich && this.open && !this.persistent) {\n this.handleAnchorMouseLeave();\n }\n };\n\n private handleKeyDown = (event: KeyboardEvent) => {\n if (event.key === 'Escape' && this.open) {\n this.hide();\n }\n };\n\n private handleWindowChange = () => {\n if (this.open) {\n this.updatePosition();\n }\n };\n\n private handleDocumentClick = (event: PointerEvent | MouseEvent) => {\n if (!this.open || !this.rich) return;\n const path = event.composedPath();\n const anchor = this.resolveAnchorElement();\n\n if (!path.includes(this) && (!anchor || !path.includes(anchor))) {\n this.hide();\n }\n };\n\n private handleActionClick = () => {\n this.emitEvent('action', { target: this });\n if (!this.persistent) {\n this.hide();\n }\n };\n\n /**\n * Shows the tooltip.\n */\n show() {\n if (this.disabled || this.open) return;\n this.open = true;\n this.updatePosition();\n }\n\n /**\n * Hides the tooltip.\n */\n hide() {\n if (!this.open) return;\n this.open = false;\n }\n\n /**\n * Alias for hide().\n */\n close() {\n this.hide();\n }\n\n /**\n * Toggles visibility of the tooltip.\n */\n toggle() {\n if (this.open) {\n this.hide();\n } else {\n this.show();\n }\n }\n\n /**\n * Updates coordinates of the floating tooltip relative to the anchor.\n */\n updatePosition() {\n if (!this.tooltipPanel) return;\n\n const anchor = this.resolveAnchorElement();\n if (!anchor) return;\n\n const anchorRect = anchor.getBoundingClientRect();\n const tooltipRect = this.tooltipPanel.getBoundingClientRect();\n\n // If dimensions are not yet available (e.g. initial render / Happy DOM)\n const tWidth = tooltipRect.width || (this.rich ? 220 : 80);\n const tHeight = tooltipRect.height || (this.rich ? 80 : 24);\n\n const offset = this.rich ? 8 : 4;\n let top = 0;\n let left = 0;\n\n switch (this.position) {\n case 'top':\n top = anchorRect.top - tHeight - offset;\n left = anchorRect.left + (anchorRect.width - tWidth) / 2;\n break;\n case 'bottom':\n top = anchorRect.bottom + offset;\n left = anchorRect.left + (anchorRect.width - tWidth) / 2;\n break;\n case 'left':\n top = anchorRect.top + (anchorRect.height - tHeight) / 2;\n left = anchorRect.left - tWidth - offset;\n break;\n case 'right':\n top = anchorRect.top + (anchorRect.height - tHeight) / 2;\n left = anchorRect.right + offset;\n break;\n }\n\n // Viewport boundaries clamping\n const padding = 8;\n const viewportWidth = typeof window !== 'undefined' ? window.innerWidth : 1024;\n const viewportHeight = typeof window !== 'undefined' ? window.innerHeight : 768;\n\n left = Math.max(padding, Math.min(left, viewportWidth - tWidth - padding));\n top = Math.max(padding, Math.min(top, viewportHeight - tHeight - padding));\n\n this.tooltipPanel.style.top = `${top}px`;\n this.tooltipPanel.style.left = `${left}px`;\n }\n\n override render() {\n const displayText = this.value || this.text;\n\n return html`\n <slot name=\"anchor\"></slot>\n\n <div\n class=\"tooltip\"\n role=\"tooltip\"\n aria-hidden=${this.open ? 'false' : 'true'}\n @mouseenter=${this.handleTooltipMouseEnter}\n @mouseleave=${this.handleTooltipMouseLeave}\n >\n <span class=\"caret\" aria-hidden=\"true\"></span>\n\n ${this.rich\n ? html`\n ${this.headline\n ? html`<h3 class=\"headline\"><slot name=\"headline\">${this.headline}</slot></h3>`\n : html`<slot name=\"headline\"></slot>`}\n <div class=\"supporting-text\">\n <slot>${displayText}</slot>\n </div>\n ${this.actionText || this.querySelector('[slot=\"actions\"]')\n ? html`\n <div class=\"actions\">\n <slot name=\"actions\">\n ${this.actionText\n ? html`\n <button\n type=\"button\"\n class=\"action-button\"\n @click=${this.handleActionClick}\n >\n ${this.actionText}\n </button>\n `\n : nothing}\n </slot>\n </div>\n `\n : nothing}\n `\n : html`\n <span class=\"content\">\n <slot>${displayText}</slot>\n </span>\n `}\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'md-tooltip': MdTooltip;\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"tooltip-Ds3lNowS.js","names":[],"sources":["../../src/components/tooltip/tooltip.css.ts","../../src/components/tooltip/tooltip.ts"],"sourcesContent":["import { css } from 'lit';\n\nexport const tooltipStyles = css`\n :host {\n display: inline-block;\n position: relative;\n }\n\n .tooltip {\n box-sizing: border-box;\n position: fixed;\n z-index: 1000;\n pointer-events: none;\n opacity: 0;\n visibility: hidden;\n transform: scale(0.92);\n transition:\n opacity 150ms cubic-bezier(0, 0, 0.2, 1),\n transform 150ms cubic-bezier(0, 0, 0.2, 1),\n visibility 150ms linear;\n word-wrap: break-word;\n font-family: var(--md-sys-typescale-font-family, 'Roboto', -apple-system, BlinkMacSystemFont, sans-serif);\n }\n\n :host([open]) .tooltip {\n opacity: 1;\n visibility: visible;\n transform: scale(1);\n }\n\n /* Plain Tooltip */\n :host(:not([rich])) .tooltip {\n background-color: var(--md-sys-color-inverse-surface, #313033);\n color: var(--md-sys-color-inverse-on-surface, #F4EFF4);\n border-radius: var(--md-sys-shape-corner-extra-small, 4px);\n padding: 4px 8px;\n font-size: 12px;\n font-weight: 400;\n line-height: 16px;\n letter-spacing: 0.4px;\n min-height: 24px;\n max-width: 240px;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n box-shadow: var(--md-sys-elevation-level1, 0 1px 3px rgba(0, 0, 0, 0.2));\n user-select: none;\n text-align: center;\n }\n\n /* Rich Tooltip */\n :host([rich]) .tooltip {\n background-color: var(--md-sys-color-surface-container, #EDE7EE);\n color: var(--md-sys-color-on-surface-variant, #49454E);\n border: 1px solid var(--md-sys-color-outline-variant, #CAC4D0);\n border-radius: var(--md-sys-shape-corner-medium, 12px);\n padding: 12px 16px;\n min-width: 180px;\n max-width: 320px;\n box-shadow: var(--md-sys-elevation-level2, 0 2px 6px 2px rgba(0, 0, 0, 0.15));\n display: flex;\n flex-direction: column;\n gap: 6px;\n text-align: left;\n }\n\n :host([rich][open]) .tooltip {\n pointer-events: auto;\n }\n\n .subhead,\n .headline {\n color: var(--md-sys-color-on-surface, #1D1B20);\n font-size: 14px;\n font-weight: 500;\n line-height: 20px;\n margin: 0;\n }\n\n .supporting-text {\n color: var(--md-sys-color-on-surface-variant, #49454E);\n font-size: 14px;\n font-weight: 400;\n line-height: 20px;\n }\n\n .content {\n color: inherit;\n font-size: inherit;\n font-weight: inherit;\n line-height: inherit;\n }\n\n .actions {\n display: flex;\n align-items: center;\n justify-content: flex-end;\n gap: 8px;\n margin-top: 6px;\n }\n\n .action-button {\n background: transparent;\n border: none;\n cursor: pointer;\n font-family: inherit;\n font-size: 14px;\n font-weight: 500;\n color: var(--md-sys-color-primary, #6750A4);\n padding: 4px 8px;\n border-radius: var(--md-sys-shape-corner-extra-small, 4px);\n transition: background-color 150ms ease;\n }\n\n .action-button:hover {\n background-color: rgba(103, 80, 164, 0.08);\n }\n\n .action-button:focus-visible {\n outline: 2px solid var(--md-sys-color-primary, #6750A4);\n outline-offset: 1px;\n }\n\n /* Caret Arrow */\n .caret {\n display: none;\n position: absolute;\n width: 0;\n height: 0;\n }\n\n :host([has-caret]) .caret {\n display: block;\n }\n\n :host([position='top'][has-caret]) .caret {\n bottom: -6px;\n left: 50%;\n transform: translateX(-50%);\n border-left: 6px solid transparent;\n border-right: 6px solid transparent;\n border-top: 6px solid var(--md-sys-color-inverse-surface, #313033);\n }\n\n :host([rich][position='top'][has-caret]) .caret {\n border-top-color: var(--md-sys-color-surface-container, #EDE7EE);\n }\n\n :host([position='bottom'][has-caret]) .caret {\n top: -6px;\n left: 50%;\n transform: translateX(-50%);\n border-left: 6px solid transparent;\n border-right: 6px solid transparent;\n border-bottom: 6px solid var(--md-sys-color-inverse-surface, #313033);\n }\n\n :host([rich][position='bottom'][has-caret]) .caret {\n border-bottom-color: var(--md-sys-color-surface-container, #EDE7EE);\n }\n\n :host([position='left'][has-caret]) .caret {\n right: -6px;\n top: 50%;\n transform: translateY(-50%);\n border-top: 6px solid transparent;\n border-bottom: 6px solid transparent;\n border-left: 6px solid var(--md-sys-color-inverse-surface, #313033);\n }\n\n :host([rich][position='left'][has-caret]) .caret {\n border-left-color: var(--md-sys-color-surface-container, #EDE7EE);\n }\n\n :host([position='right'][has-caret]) .caret {\n left: -6px;\n top: 50%;\n transform: translateY(-50%);\n border-top: 6px solid transparent;\n border-bottom: 6px solid transparent;\n border-right: 6px solid var(--md-sys-color-inverse-surface, #313033);\n }\n\n :host([rich][position='right'][has-caret]) .caret {\n border-right-color: var(--md-sys-color-surface-container, #EDE7EE);\n }\n`;\n","import { html, nothing } from 'lit';\nimport { customElement, property, query } from 'lit/decorators.js';\nimport { MdBaseElement } from '../../internal/base-component.js';\nimport { tooltipStyles } from './tooltip.css.js';\n\nexport type TooltipPosition = 'top' | 'bottom' | 'left' | 'right';\n\n/**\n * Material Design 3 Tooltip component.\n * Plain and rich tooltips providing contextual descriptions or interactive details.\n *\n * @element md-tooltip\n *\n * @slot - Default slot for tooltip text or supporting content.\n * @slot headline - Custom headline/subhead element for rich tooltips.\n * @slot actions - Custom action buttons for rich tooltips.\n * @slot anchor - Slotted anchor element (optional).\n *\n * @fires open - Dispatched when the tooltip becomes visible.\n * @fires close - Dispatched when the tooltip is hidden.\n * @fires action - Dispatched when the rich tooltip action button is clicked.\n */\n@customElement('md-tooltip')\nexport class MdTooltip extends MdBaseElement {\n static override styles = [MdBaseElement.styles, tooltipStyles];\n\n @property({ type: Boolean, reflect: true })\n open = false;\n\n @property({ type: String, reflect: true })\n position: TooltipPosition = 'bottom';\n\n @property({ type: Boolean, reflect: true })\n rich = false;\n\n @property({ type: String, reflect: true })\n for = '';\n\n @property({ type: String })\n value = '';\n\n @property({ type: String })\n text = '';\n\n @property({ type: String })\n headline = '';\n\n @property({ type: String, attribute: 'action-text' })\n actionText = '';\n\n @property({ type: Number, attribute: 'show-delay' })\n showDelay = 500;\n\n @property({ type: Number, attribute: 'hide-delay' })\n hideDelay = 150;\n\n @property({ type: Number })\n get delay(): number {\n return this.showDelay;\n }\n\n set delay(val: number) {\n this.showDelay = val;\n }\n\n @property({ type: Boolean, reflect: true })\n persistent = false;\n\n @property({ type: Boolean, reflect: true, attribute: 'has-caret' })\n hasCaret = false;\n\n @property({ type: Boolean, reflect: true })\n disabled = false;\n\n @query('.tooltip')\n tooltipPanel!: HTMLElement;\n\n private _anchorElement: HTMLElement | null = null;\n private _boundAnchor: HTMLElement | null = null;\n private _showTimer: ReturnType<typeof setTimeout> | null = null;\n private _hideTimer: ReturnType<typeof setTimeout> | null = null;\n\n get anchor(): HTMLElement | null {\n return this._anchorElement || this.resolveAnchorElement();\n }\n\n set anchor(element: HTMLElement | null) {\n this._anchorElement = element;\n this.bindAnchorEvents();\n }\n\n get target(): HTMLElement | null {\n return this.anchor;\n }\n\n set target(element: HTMLElement | null) {\n this.anchor = element;\n }\n\n override connectedCallback() {\n super.connectedCallback();\n window.addEventListener('keydown', this.handleKeyDown);\n window.addEventListener('resize', this.handleWindowChange);\n window.addEventListener('scroll', this.handleWindowChange, true);\n document.addEventListener('pointerdown', this.handleDocumentClick);\n this.bindAnchorEvents();\n }\n\n override disconnectedCallback() {\n super.disconnectedCallback();\n window.removeEventListener('keydown', this.handleKeyDown);\n window.removeEventListener('resize', this.handleWindowChange);\n window.removeEventListener('scroll', this.handleWindowChange, true);\n document.removeEventListener('pointerdown', this.handleDocumentClick);\n this.unbindAnchorEvents();\n this.clearTimers();\n }\n\n override firstUpdated() {\n this.bindAnchorEvents();\n }\n\n override updated(changedProperties: Map<string, unknown>) {\n super.updated(changedProperties);\n\n if (changedProperties.has('for')) {\n this.bindAnchorEvents();\n }\n\n if (changedProperties.has('open')) {\n if (this.open) {\n this.updatePosition();\n this.emitEvent('open', { target: this });\n } else {\n this.emitEvent('close', { target: this });\n }\n }\n\n if (changedProperties.has('position') && this.open) {\n this.updatePosition();\n }\n }\n\n private resolveAnchorElement(): HTMLElement | null {\n if (this._anchorElement) {\n return this._anchorElement;\n }\n\n if (this.for) {\n const root = this.getRootNode() as Document | ShadowRoot;\n const el = root?.getElementById\n ? root.getElementById(this.for)\n : document.getElementById(this.for);\n if (el) return el;\n }\n\n // Check slotted anchor\n const slottedAnchor = this.querySelector('[slot=\"anchor\"]') as HTMLElement;\n if (slottedAnchor) return slottedAnchor;\n\n // Check previous sibling\n if (this.previousElementSibling instanceof HTMLElement) {\n return this.previousElementSibling;\n }\n\n // Check parent element if not body / html\n if (\n this.parentElement &&\n this.parentElement !== document.body &&\n this.parentElement !== document.documentElement\n ) {\n return this.parentElement;\n }\n\n return null;\n }\n\n private bindAnchorEvents() {\n const anchor = this.resolveAnchorElement();\n if (anchor === this._boundAnchor) return;\n\n this.unbindAnchorEvents();\n this._boundAnchor = anchor;\n\n if (this._boundAnchor) {\n this._boundAnchor.addEventListener('mouseenter', this.handleAnchorMouseEnter);\n this._boundAnchor.addEventListener('mouseleave', this.handleAnchorMouseLeave);\n this._boundAnchor.addEventListener('focusin', this.handleAnchorFocus);\n this._boundAnchor.addEventListener('focusout', this.handleAnchorBlur);\n }\n }\n\n private unbindAnchorEvents() {\n if (this._boundAnchor) {\n this._boundAnchor.removeEventListener('mouseenter', this.handleAnchorMouseEnter);\n this._boundAnchor.removeEventListener('mouseleave', this.handleAnchorMouseLeave);\n this._boundAnchor.removeEventListener('focusin', this.handleAnchorFocus);\n this._boundAnchor.removeEventListener('focusout', this.handleAnchorBlur);\n this._boundAnchor = null;\n }\n }\n\n private clearTimers() {\n if (this._showTimer !== null) {\n clearTimeout(this._showTimer);\n this._showTimer = null;\n }\n if (this._hideTimer !== null) {\n clearTimeout(this._hideTimer);\n this._hideTimer = null;\n }\n }\n\n private handleAnchorMouseEnter = () => {\n if (this.disabled) return;\n this.clearTimers();\n if (this.showDelay > 0) {\n this._showTimer = setTimeout(() => {\n this.show();\n }, this.showDelay);\n } else {\n this.show();\n }\n };\n\n private handleAnchorMouseLeave = () => {\n if (this.disabled || this.persistent) return;\n if (this._showTimer !== null) {\n clearTimeout(this._showTimer);\n this._showTimer = null;\n }\n if (this.hideDelay > 0) {\n this._hideTimer = setTimeout(() => {\n this.hide();\n }, this.hideDelay);\n } else {\n this.hide();\n }\n };\n\n private handleAnchorFocus = () => {\n if (this.disabled) return;\n this.clearTimers();\n this.show();\n };\n\n private handleAnchorBlur = () => {\n if (this.disabled || this.persistent) return;\n this.clearTimers();\n this.hide();\n };\n\n private handleTooltipMouseEnter = () => {\n if (this.rich && this.open) {\n if (this._hideTimer !== null) {\n clearTimeout(this._hideTimer);\n this._hideTimer = null;\n }\n }\n };\n\n private handleTooltipMouseLeave = () => {\n if (this.rich && this.open && !this.persistent) {\n this.handleAnchorMouseLeave();\n }\n };\n\n private handleKeyDown = (event: KeyboardEvent) => {\n if (event.key === 'Escape' && this.open) {\n this.hide();\n }\n };\n\n private handleWindowChange = () => {\n if (this.open) {\n this.updatePosition();\n }\n };\n\n private handleDocumentClick = (event: PointerEvent | MouseEvent) => {\n if (!this.open || !this.rich) return;\n const path = event.composedPath();\n const anchor = this.resolveAnchorElement();\n\n if (!path.includes(this) && (!anchor || !path.includes(anchor))) {\n this.hide();\n }\n };\n\n private handleActionClick = () => {\n this.emitEvent('action', { target: this });\n if (!this.persistent) {\n this.hide();\n }\n };\n\n /**\n * Shows the tooltip.\n */\n show() {\n if (this.disabled || this.open) return;\n this.open = true;\n this.updatePosition();\n }\n\n /**\n * Hides the tooltip.\n */\n hide() {\n if (!this.open) return;\n this.open = false;\n }\n\n /**\n * Alias for hide().\n */\n close() {\n this.hide();\n }\n\n /**\n * Toggles visibility of the tooltip.\n */\n toggle() {\n if (this.open) {\n this.hide();\n } else {\n this.show();\n }\n }\n\n /**\n * Updates coordinates of the floating tooltip relative to the anchor.\n */\n updatePosition() {\n if (!this.tooltipPanel) return;\n\n const anchor = this.resolveAnchorElement();\n if (!anchor) return;\n\n const anchorRect = anchor.getBoundingClientRect();\n const tooltipRect = this.tooltipPanel.getBoundingClientRect();\n\n // If dimensions are not yet available (e.g. initial render / Happy DOM)\n const tWidth = tooltipRect.width || (this.rich ? 220 : 80);\n const tHeight = tooltipRect.height || (this.rich ? 80 : 24);\n\n const offset = this.rich ? 8 : 4;\n let top = 0;\n let left = 0;\n\n switch (this.position) {\n case 'top':\n top = anchorRect.top - tHeight - offset;\n left = anchorRect.left + (anchorRect.width - tWidth) / 2;\n break;\n case 'bottom':\n top = anchorRect.bottom + offset;\n left = anchorRect.left + (anchorRect.width - tWidth) / 2;\n break;\n case 'left':\n top = anchorRect.top + (anchorRect.height - tHeight) / 2;\n left = anchorRect.left - tWidth - offset;\n break;\n case 'right':\n top = anchorRect.top + (anchorRect.height - tHeight) / 2;\n left = anchorRect.right + offset;\n break;\n }\n\n // Viewport boundaries clamping\n const padding = 8;\n const viewportWidth = typeof window !== 'undefined' ? window.innerWidth : 1024;\n const viewportHeight = typeof window !== 'undefined' ? window.innerHeight : 768;\n\n left = Math.max(padding, Math.min(left, viewportWidth - tWidth - padding));\n top = Math.max(padding, Math.min(top, viewportHeight - tHeight - padding));\n\n this.tooltipPanel.style.top = `${top}px`;\n this.tooltipPanel.style.left = `${left}px`;\n }\n\n override render() {\n const displayText = this.value || this.text;\n\n return html`\n <slot name=\"anchor\"></slot>\n\n <div\n class=\"tooltip\"\n role=\"tooltip\"\n aria-hidden=${this.open ? 'false' : 'true'}\n @mouseenter=${this.handleTooltipMouseEnter}\n @mouseleave=${this.handleTooltipMouseLeave}\n >\n <span class=\"caret\" aria-hidden=\"true\"></span>\n\n ${this.rich\n ? html`\n ${this.headline\n ? html`<h3 class=\"headline\"><slot name=\"headline\">${this.headline}</slot></h3>`\n : html`<slot name=\"headline\"></slot>`}\n <div class=\"supporting-text\">\n <slot>${displayText}</slot>\n </div>\n ${this.actionText || this.querySelector('[slot=\"actions\"]')\n ? html`\n <div class=\"actions\">\n <slot name=\"actions\">\n ${this.actionText\n ? html`\n <button\n type=\"button\"\n class=\"action-button\"\n @click=${this.handleActionClick}\n >\n ${this.actionText}\n </button>\n `\n : nothing}\n </slot>\n </div>\n `\n : nothing}\n `\n : html`\n <span class=\"content\">\n <slot>${displayText}</slot>\n </span>\n `}\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'md-tooltip': MdTooltip;\n }\n}\n"],"mappings":"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"}
@@ -1,7 +1,8 @@
1
- import { n as d, t as i } from "./decorate-DXuynaiA.js";
2
- import { css as x, html as e, nothing as p } from "lit";
3
- import { customElement as h, property as o } from "lit/decorators.js";
4
- var v = x`
1
+ import { n as e, t } from "./decorate-DknOJ8FJ.js";
2
+ import { css as n, html as r, nothing as i } from "lit";
3
+ import { customElement as a, property as o } from "lit/decorators.js";
4
+ //#region src/components/top-app-bar/top-app-bar.css.ts
5
+ var s = n`
5
6
  :host {
6
7
  display: block;
7
8
  box-sizing: border-box;
@@ -136,15 +137,21 @@ var v = x`
136
137
  line-height: 36px;
137
138
  font-weight: 400;
138
139
  }
139
- `, t = class extends d {
140
- constructor(...a) {
141
- super(...a), this.variant = "center-aligned", this.headline = "", this.subtitle = "", this.elevated = !1, this.fixed = !1;
142
- }
143
- static {
144
- this.styles = [d.styles, v];
145
- }
146
- render() {
147
- const a = this.variant === "medium" || this.variant === "large", n = e`
140
+
141
+ ::slotted(md-search-bar),
142
+ ::slotted(md-search) {
143
+ --md-search-bar-height: var(--md-top-app-bar-search-bar-height, 44px);
144
+ align-self: center;
145
+ }
146
+ `, c = class extends e {
147
+ constructor(...e) {
148
+ super(...e), this.variant = "center-aligned", this.headline = "", this.subtitle = "", this.elevated = !1, this.fixed = !1;
149
+ }
150
+ static {
151
+ this.styles = [e.styles, s];
152
+ }
153
+ render() {
154
+ let e = this.variant === "medium" || this.variant === "large", t = r`
148
155
  <div class="leading">
149
156
  <slot name="navigation">
150
157
  <slot name="leading-icon">
@@ -152,7 +159,7 @@ var v = x`
152
159
  </slot>
153
160
  </slot>
154
161
  </div>
155
- `, l = e`
162
+ `, n = r`
156
163
  <div class="trailing">
157
164
  <slot name="actions">
158
165
  <slot name="trailing-icon">
@@ -160,69 +167,61 @@ var v = x`
160
167
  </slot>
161
168
  </slot>
162
169
  </div>
163
- `, s = e`
170
+ `, a = r`
164
171
  <slot name="headline">
165
172
  <slot name="title">
166
- ${this.headline ? e`<span class="headline">${this.headline}</span>` : p}
173
+ ${this.headline ? r`<span class="headline">${this.headline}</span>` : i}
167
174
  </slot>
168
175
  </slot>
169
- `, r = e`
176
+ `, o = r`
170
177
  <slot name="subtitle">
171
178
  <slot name="supporting-text">
172
- ${this.subtitle ? e`<span class="subtitle">${this.subtitle}</span>` : p}
179
+ ${this.subtitle ? r`<span class="subtitle">${this.subtitle}</span>` : i}
173
180
  </slot>
174
181
  </slot>
175
182
  `;
176
- return a ? e`
183
+ return e ? r`
177
184
  <header class="top-app-bar" role="banner">
178
185
  <div class="row">
179
- ${n}
186
+ ${t}
180
187
  <slot></slot>
181
- ${l}
188
+ ${n}
182
189
  </div>
183
190
  <div class="headline-row">
184
191
  <div class="title-container">
185
- ${s}
186
- ${r}
192
+ ${a}
193
+ ${o}
187
194
  </div>
188
195
  </div>
189
196
  </header>
190
- ` : e`
197
+ ` : r`
191
198
  <header class="top-app-bar" role="banner">
192
199
  <div class="row">
193
- ${n}
200
+ ${t}
194
201
  <div class="title-container">
195
- ${s}
196
- ${r}
202
+ ${a}
203
+ ${o}
197
204
  </div>
198
205
  <slot></slot>
199
- ${l}
206
+ ${n}
200
207
  </div>
201
208
  </header>
202
209
  `;
203
- }
204
- };
205
- i([o({
206
- type: String,
207
- reflect: !0
208
- })], t.prototype, "variant", void 0);
209
- i([o({ type: String })], t.prototype, "headline", void 0);
210
- i([o({ type: String })], t.prototype, "subtitle", void 0);
211
- i([o({
212
- type: Boolean,
213
- reflect: !0
214
- })], t.prototype, "elevated", void 0);
215
- i([o({
216
- type: Boolean,
217
- reflect: !0
218
- })], t.prototype, "fixed", void 0);
219
- t = i([h("md-top-app-bar")], t);
220
- var c = class extends t {
210
+ }
221
211
  };
222
- c = i([h("md-top-bar")], c);
223
- export {
224
- c as n,
225
- t
226
- };
227
-
228
- //# sourceMappingURL=top-app-bar-Dgbp6CFv.js.map
212
+ t([o({
213
+ type: String,
214
+ reflect: !0
215
+ })], c.prototype, "variant", void 0), t([o({ type: String })], c.prototype, "headline", void 0), t([o({ type: String })], c.prototype, "subtitle", void 0), t([o({
216
+ type: Boolean,
217
+ reflect: !0
218
+ })], c.prototype, "elevated", void 0), t([o({
219
+ type: Boolean,
220
+ reflect: !0
221
+ })], c.prototype, "fixed", void 0), c = t([a("md-top-app-bar")], c);
222
+ var l = class extends c {};
223
+ l = t([a("md-top-bar")], l);
224
+ //#endregion
225
+ export { l as n, c as t };
226
+
227
+ //# sourceMappingURL=top-app-bar-TrnjKzOX.js.map