@material/web 1.0.0-pre.14 → 1.0.0-pre.16

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 (377) hide show
  1. package/README.md +24 -19
  2. package/all.d.ts +4 -8
  3. package/all.js +4 -8
  4. package/all.js.map +1 -1
  5. package/button/{_tonal-button.scss → _filled-tonal-button.scss} +1 -1
  6. package/button/{tonal-button.d.ts → filled-tonal-button.d.ts} +3 -3
  7. package/button/{tonal-button.js → filled-tonal-button.js} +9 -9
  8. package/button/filled-tonal-button.js.map +1 -0
  9. package/button/internal/_filled-button.scss +0 -1
  10. package/button/internal/{_tonal-button.scss → _filled-tonal-button.scss} +7 -7
  11. package/button/internal/_outlined-button.scss +6 -0
  12. package/button/internal/_shared.scss +19 -8
  13. package/button/internal/_touch-target.scss +5 -1
  14. package/button/internal/button.d.ts +19 -22
  15. package/button/internal/button.js +48 -79
  16. package/button/internal/button.js.map +1 -1
  17. package/button/internal/elevated-styles.css.js +1 -1
  18. package/button/internal/elevated-styles.css.js.map +1 -1
  19. package/button/internal/filled-styles.css.js +1 -1
  20. package/button/internal/filled-styles.css.js.map +1 -1
  21. package/button/internal/{tonal-button.d.ts → filled-tonal-button.d.ts} +2 -2
  22. package/button/internal/{tonal-button.js → filled-tonal-button.js} +3 -3
  23. package/button/internal/filled-tonal-button.js.map +1 -0
  24. package/button/internal/filled-tonal-styles.css.js +9 -0
  25. package/button/internal/filled-tonal-styles.css.js.map +1 -0
  26. package/button/internal/{tonal-styles.scss → filled-tonal-styles.scss} +2 -2
  27. package/button/internal/outlined-styles.css.js +1 -1
  28. package/button/internal/outlined-styles.css.js.map +1 -1
  29. package/button/internal/shared-elevation-styles.css.js +1 -1
  30. package/button/internal/shared-elevation-styles.css.js.map +1 -1
  31. package/button/internal/shared-styles.css.js +1 -1
  32. package/button/internal/shared-styles.css.js.map +1 -1
  33. package/button/internal/text-styles.css.js +1 -1
  34. package/button/internal/text-styles.css.js.map +1 -1
  35. package/checkbox/internal/_checkbox.scss +23 -78
  36. package/checkbox/internal/checkbox-styles.css.js +1 -1
  37. package/checkbox/internal/checkbox-styles.css.js.map +1 -1
  38. package/checkbox/internal/checkbox.d.ts +78 -7
  39. package/checkbox/internal/checkbox.js +136 -23
  40. package/checkbox/internal/checkbox.js.map +1 -1
  41. package/chips/assist-chip.js +1 -2
  42. package/chips/assist-chip.js.map +1 -1
  43. package/chips/filter-chip.js +1 -3
  44. package/chips/filter-chip.js.map +1 -1
  45. package/chips/input-chip.js +1 -5
  46. package/chips/input-chip.js.map +1 -1
  47. package/chips/internal/_assist-chip.scss +6 -0
  48. package/chips/internal/_elevated.scss +1 -1
  49. package/chips/internal/_filter-chip.scss +6 -0
  50. package/chips/internal/_input-chip.scss +32 -0
  51. package/chips/internal/_selectable.scss +17 -13
  52. package/chips/internal/_shared.scss +25 -10
  53. package/chips/internal/_suggestion-chip.scss +6 -0
  54. package/chips/internal/_trailing-icon.scss +24 -24
  55. package/chips/internal/assist-styles.css.js +1 -1
  56. package/chips/internal/assist-styles.css.js.map +1 -1
  57. package/chips/internal/chip-set.js +1 -3
  58. package/chips/internal/chip-set.js.map +1 -1
  59. package/chips/internal/chip.js +1 -3
  60. package/chips/internal/chip.js.map +1 -1
  61. package/chips/internal/elevated-styles.css.js +1 -1
  62. package/chips/internal/elevated-styles.css.js.map +1 -1
  63. package/chips/internal/filter-chip.d.ts +1 -0
  64. package/chips/internal/filter-chip.js +12 -6
  65. package/chips/internal/filter-chip.js.map +1 -1
  66. package/chips/internal/filter-styles.css.js +1 -1
  67. package/chips/internal/filter-styles.css.js.map +1 -1
  68. package/chips/internal/input-styles.css.js +1 -1
  69. package/chips/internal/input-styles.css.js.map +1 -1
  70. package/chips/internal/selectable-styles.css.js +1 -1
  71. package/chips/internal/selectable-styles.css.js.map +1 -1
  72. package/chips/internal/shared-styles.css.js +1 -1
  73. package/chips/internal/shared-styles.css.js.map +1 -1
  74. package/chips/internal/suggestion-styles.css.js +1 -1
  75. package/chips/internal/suggestion-styles.css.js.map +1 -1
  76. package/chips/internal/trailing-icon-styles.css.js +1 -1
  77. package/chips/internal/trailing-icon-styles.css.js.map +1 -1
  78. package/chips/suggestion-chip.js +1 -2
  79. package/chips/suggestion-chip.js.map +1 -1
  80. package/common.d.ts +2 -6
  81. package/common.js +2 -6
  82. package/common.js.map +1 -1
  83. package/dialog/harness.d.ts +1 -6
  84. package/dialog/harness.js +2 -43
  85. package/dialog/harness.js.map +1 -1
  86. package/dialog/internal/_dialog.scss +165 -281
  87. package/dialog/internal/animations.d.ts +47 -0
  88. package/dialog/internal/animations.js +117 -0
  89. package/dialog/internal/animations.js.map +1 -0
  90. package/dialog/internal/dialog-styles.css.js +1 -1
  91. package/dialog/internal/dialog-styles.css.js.map +1 -1
  92. package/dialog/internal/dialog.d.ts +76 -169
  93. package/dialog/internal/dialog.js +251 -475
  94. package/dialog/internal/dialog.js.map +1 -1
  95. package/elevation/internal/_elevation.scss +14 -7
  96. package/elevation/internal/elevation-styles.css.js +1 -1
  97. package/elevation/internal/elevation-styles.css.js.map +1 -1
  98. package/fab/branded-fab.d.ts +0 -1
  99. package/fab/internal/_fab.scss +15 -10
  100. package/fab/internal/_shared.scss +16 -1
  101. package/fab/internal/fab-styles.css.js +1 -1
  102. package/fab/internal/fab-styles.css.js.map +1 -1
  103. package/fab/internal/fab.d.ts +0 -1
  104. package/fab/internal/shared-styles.css.js +1 -1
  105. package/fab/internal/shared-styles.css.js.map +1 -1
  106. package/fab/internal/shared.d.ts +0 -13
  107. package/fab/internal/shared.js +5 -31
  108. package/fab/internal/shared.js.map +1 -1
  109. package/field/internal/filled-styles.css.js +1 -1
  110. package/field/internal/filled-styles.css.js.map +1 -1
  111. package/field/internal/outlined-styles.css.js +1 -1
  112. package/field/internal/outlined-styles.css.js.map +1 -1
  113. package/focus/internal/_focus-ring.scss +52 -48
  114. package/focus/internal/focus-ring-styles.css.js +1 -1
  115. package/focus/internal/focus-ring-styles.css.js.map +1 -1
  116. package/focus/internal/focus-ring.d.ts +2 -1
  117. package/focus/internal/focus-ring.js +10 -0
  118. package/focus/internal/focus-ring.js.map +1 -1
  119. package/icon/internal/_icon.scss +26 -20
  120. package/icon/internal/icon-styles.css.js +1 -1
  121. package/icon/internal/icon-styles.css.js.map +1 -1
  122. package/icon/internal/icon.d.ts +1 -0
  123. package/icon/internal/icon.js +9 -0
  124. package/icon/internal/icon.js.map +1 -1
  125. package/iconbutton/{_standard-icon-button.scss → _icon-button.scss} +1 -1
  126. package/iconbutton/{standard-icon-button.d.ts → icon-button.d.ts} +2 -2
  127. package/iconbutton/{standard-icon-button.js → icon-button.js} +7 -7
  128. package/iconbutton/icon-button.js.map +1 -0
  129. package/iconbutton/internal/_filled-icon-button.scss +8 -6
  130. package/iconbutton/internal/_filled-tonal-icon-button.scss +8 -6
  131. package/iconbutton/internal/{_standard-icon-button.scss → _icon-button.scss} +12 -8
  132. package/iconbutton/internal/_outlined-icon-button.scss +14 -14
  133. package/iconbutton/internal/_shared.scss +15 -9
  134. package/iconbutton/internal/filled-styles.css.js +1 -1
  135. package/iconbutton/internal/filled-styles.css.js.map +1 -1
  136. package/iconbutton/internal/filled-tonal-styles.css.js +1 -1
  137. package/iconbutton/internal/filled-tonal-styles.css.js.map +1 -1
  138. package/iconbutton/internal/icon-button.d.ts +25 -3
  139. package/iconbutton/internal/icon-button.js +45 -6
  140. package/iconbutton/internal/icon-button.js.map +1 -1
  141. package/iconbutton/internal/outlined-styles.css.js +1 -1
  142. package/iconbutton/internal/outlined-styles.css.js.map +1 -1
  143. package/iconbutton/internal/shared-styles.css.js +1 -1
  144. package/iconbutton/internal/shared-styles.css.js.map +1 -1
  145. package/iconbutton/internal/standard-styles.css.js +1 -1
  146. package/iconbutton/internal/standard-styles.css.js.map +1 -1
  147. package/iconbutton/internal/standard-styles.scss +2 -2
  148. package/internal/aria/delegate.d.ts +1 -1
  149. package/internal/aria/delegate.js +1 -1
  150. package/internal/aria/delegate.js.map +1 -1
  151. package/internal/controller/element-internals.d.ts +35 -0
  152. package/internal/controller/element-internals.js +24 -0
  153. package/internal/controller/element-internals.js.map +1 -0
  154. package/internal/controller/form-submitter.d.ts +72 -0
  155. package/internal/controller/form-submitter.js +71 -0
  156. package/internal/controller/form-submitter.js.map +1 -0
  157. package/labs/badge/internal/_badge.scss +11 -8
  158. package/labs/navigationbar/internal/_navigation-bar.scss +11 -9
  159. package/labs/navigationbar/internal/navigation-bar-styles.css.js +1 -1
  160. package/labs/navigationbar/internal/navigation-bar-styles.css.js.map +1 -1
  161. package/labs/navigationbar/internal/navigation-bar.js +1 -3
  162. package/labs/navigationbar/internal/navigation-bar.js.map +1 -1
  163. package/labs/navigationdrawer/internal/_navigation-drawer-modal.scss +11 -8
  164. package/labs/navigationdrawer/internal/_navigation-drawer.scss +11 -8
  165. package/labs/navigationdrawer/internal/navigation-drawer-modal-styles.css.js +1 -1
  166. package/labs/navigationdrawer/internal/navigation-drawer-modal-styles.css.js.map +1 -1
  167. package/labs/navigationdrawer/internal/navigation-drawer-modal.js +1 -3
  168. package/labs/navigationdrawer/internal/navigation-drawer-modal.js.map +1 -1
  169. package/labs/navigationdrawer/internal/navigation-drawer-styles.css.js +1 -1
  170. package/labs/navigationdrawer/internal/navigation-drawer-styles.css.js.map +1 -1
  171. package/labs/navigationdrawer/internal/navigation-drawer.js +1 -3
  172. package/labs/navigationdrawer/internal/navigation-drawer.js.map +1 -1
  173. package/labs/navigationtab/internal/_navigation-tab.scss +10 -10
  174. package/labs/navigationtab/internal/navigation-tab.js +1 -3
  175. package/labs/navigationtab/internal/navigation-tab.js.map +1 -1
  176. package/labs/segmentedbutton/internal/_outlined-segmented-button.scss +1 -3
  177. package/labs/segmentedbutton/internal/outlined-styles.css.js +1 -1
  178. package/labs/segmentedbutton/internal/outlined-styles.css.js.map +1 -1
  179. package/labs/segmentedbutton/internal/segmented-button.js +1 -3
  180. package/labs/segmentedbutton/internal/segmented-button.js.map +1 -1
  181. package/labs/segmentedbuttonset/internal/outlined-styles.css.js +1 -1
  182. package/labs/segmentedbuttonset/internal/outlined-styles.css.js.map +1 -1
  183. package/labs/segmentedbuttonset/internal/segmented-button-set.js +1 -3
  184. package/labs/segmentedbuttonset/internal/segmented-button-set.js.map +1 -1
  185. package/list/internal/_list.scss +6 -2
  186. package/list/internal/list-styles.css.js +1 -1
  187. package/list/internal/list-styles.css.js.map +1 -1
  188. package/list/internal/list.d.ts +2 -2
  189. package/list/internal/list.js +1 -3
  190. package/list/internal/list.js.map +1 -1
  191. package/list/internal/listitem/_list-item.scss +87 -131
  192. package/list/internal/listitem/forced-colors-styles.css.js +1 -1
  193. package/list/internal/listitem/forced-colors-styles.css.js.map +1 -1
  194. package/list/internal/listitem/forced-colors-styles.scss +6 -6
  195. package/list/internal/listitem/list-item-styles.css.js +1 -1
  196. package/list/internal/listitem/list-item-styles.css.js.map +1 -1
  197. package/list/internal/listitem/list-item.d.ts +15 -3
  198. package/list/internal/listitem/list-item.js +43 -10
  199. package/list/internal/listitem/list-item.js.map +1 -1
  200. package/menu/internal/_menu.scss +6 -3
  201. package/menu/internal/menu-styles.css.js +1 -1
  202. package/menu/internal/menu-styles.css.js.map +1 -1
  203. package/menu/internal/menu.js +9 -10
  204. package/menu/internal/menu.js.map +1 -1
  205. package/menu/internal/menuitem/_menu-item.scss +8 -5
  206. package/menu/internal/menuitem/forced-colors-styles.css.js +1 -1
  207. package/menu/internal/menuitem/forced-colors-styles.css.js.map +1 -1
  208. package/menu/internal/menuitem/forced-colors-styles.scss +1 -1
  209. package/menu/internal/menuitem/menu-item-styles.css.js +1 -1
  210. package/menu/internal/menuitem/menu-item-styles.css.js.map +1 -1
  211. package/menu/internal/menuitem/menu-item.d.ts +9 -0
  212. package/menu/internal/menuitem/menu-item.js +18 -4
  213. package/menu/internal/menuitem/menu-item.js.map +1 -1
  214. package/menu/internal/shared.d.ts +45 -38
  215. package/menu/internal/shared.js +29 -40
  216. package/menu/internal/shared.js.map +1 -1
  217. package/menu/internal/submenuitem/sub-menu-item.d.ts +22 -12
  218. package/menu/internal/submenuitem/sub-menu-item.js +39 -24
  219. package/menu/internal/submenuitem/sub-menu-item.js.map +1 -1
  220. package/menu/menu-item.d.ts +1 -1
  221. package/menu/menu-item.js +0 -1
  222. package/menu/menu-item.js.map +1 -1
  223. package/menu/menu.d.ts +1 -1
  224. package/menu/menu.js +0 -1
  225. package/menu/menu.js.map +1 -1
  226. package/menu/sub-menu-item.d.ts +1 -1
  227. package/menu/sub-menu-item.js +0 -1
  228. package/menu/sub-menu-item.js.map +1 -1
  229. package/package.json +1 -3
  230. package/progress/harness.js +2 -4
  231. package/progress/harness.js.map +1 -1
  232. package/progress/internal/_circular-progress.scss +4 -4
  233. package/progress/internal/_linear-progress.scss +93 -132
  234. package/progress/internal/circular-progress-styles.css.js +1 -1
  235. package/progress/internal/circular-progress-styles.css.js.map +1 -1
  236. package/progress/internal/circular-progress.js +1 -1
  237. package/progress/internal/circular-progress.js.map +1 -1
  238. package/progress/internal/linear-progress-styles.css.js +1 -1
  239. package/progress/internal/linear-progress-styles.css.js.map +1 -1
  240. package/progress/internal/linear-progress.d.ts +0 -11
  241. package/progress/internal/linear-progress.js +4 -48
  242. package/progress/internal/linear-progress.js.map +1 -1
  243. package/progress/internal/progress.js +1 -3
  244. package/progress/internal/progress.js.map +1 -1
  245. package/radio/internal/_radio.scss +38 -24
  246. package/radio/internal/forced-colors-styles.css.js +1 -1
  247. package/radio/internal/forced-colors-styles.css.js.map +1 -1
  248. package/radio/internal/forced-colors-styles.scss +4 -4
  249. package/radio/internal/radio-styles.css.js +1 -1
  250. package/radio/internal/radio-styles.css.js.map +1 -1
  251. package/radio/internal/radio.d.ts +1 -1
  252. package/radio/internal/radio.js +7 -6
  253. package/radio/internal/radio.js.map +1 -1
  254. package/ripple/internal/_ripple.scss +1 -1
  255. package/ripple/internal/ripple-styles.css.js +1 -1
  256. package/ripple/internal/ripple-styles.css.js.map +1 -1
  257. package/select/internal/_filled-select.scss +2 -3
  258. package/select/internal/_outlined-select.scss +2 -3
  259. package/select/internal/_shared.scss +30 -1
  260. package/select/internal/filled-select-styles.css.js +1 -1
  261. package/select/internal/filled-select-styles.css.js.map +1 -1
  262. package/select/internal/outlined-select-styles.css.js +1 -1
  263. package/select/internal/outlined-select-styles.css.js.map +1 -1
  264. package/select/internal/select.d.ts +0 -5
  265. package/select/internal/select.js +11 -16
  266. package/select/internal/select.js.map +1 -1
  267. package/select/internal/selectoption/select-option.d.ts +5 -6
  268. package/select/internal/selectoption/select-option.js +8 -9
  269. package/select/internal/selectoption/select-option.js.map +1 -1
  270. package/select/internal/shared-styles.css.js +1 -1
  271. package/select/internal/shared-styles.css.js.map +1 -1
  272. package/select/internal/shared.d.ts +5 -9
  273. package/select/internal/shared.js +13 -11
  274. package/select/internal/shared.js.map +1 -1
  275. package/slider/internal/_slider.scss +33 -28
  276. package/slider/internal/forced-colors-styles.css.js +1 -1
  277. package/slider/internal/forced-colors-styles.css.js.map +1 -1
  278. package/slider/internal/slider-styles.css.js +1 -1
  279. package/slider/internal/slider-styles.css.js.map +1 -1
  280. package/slider/internal/slider.d.ts +22 -8
  281. package/slider/internal/slider.js +114 -25
  282. package/slider/internal/slider.js.map +1 -1
  283. package/switch/internal/_handle.scss +12 -12
  284. package/switch/internal/_icon.scss +8 -8
  285. package/switch/internal/_switch.scss +9 -1
  286. package/switch/internal/_track.scss +10 -10
  287. package/switch/internal/forced-colors-styles.css.js +1 -1
  288. package/switch/internal/forced-colors-styles.css.js.map +1 -1
  289. package/switch/internal/forced-colors-styles.scss +12 -12
  290. package/switch/internal/switch-styles.css.js +1 -1
  291. package/switch/internal/switch-styles.css.js.map +1 -1
  292. package/switch/internal/switch.d.ts +1 -1
  293. package/switch/internal/switch.js +3 -5
  294. package/switch/internal/switch.js.map +1 -1
  295. package/tabs/internal/_tab.scss +77 -21
  296. package/tabs/internal/_tabs.scss +1 -0
  297. package/tabs/internal/tab-styles.css.js +1 -1
  298. package/tabs/internal/tab-styles.css.js.map +1 -1
  299. package/tabs/internal/tab.d.ts +3 -9
  300. package/tabs/internal/tab.js +4 -8
  301. package/tabs/internal/tab.js.map +1 -1
  302. package/tabs/internal/tabs.d.ts +1 -4
  303. package/tabs/internal/tabs.js +5 -10
  304. package/tabs/internal/tabs.js.map +1 -1
  305. package/textfield/harness.js +4 -0
  306. package/textfield/harness.js.map +1 -1
  307. package/textfield/internal/filled-styles.css.js +1 -1
  308. package/textfield/internal/filled-styles.css.js.map +1 -1
  309. package/textfield/internal/outlined-styles.css.js +1 -1
  310. package/textfield/internal/outlined-styles.css.js.map +1 -1
  311. package/textfield/internal/text-field.d.ts +11 -10
  312. package/textfield/internal/text-field.js +60 -35
  313. package/textfield/internal/text-field.js.map +1 -1
  314. package/tokens/_index.scss +1 -0
  315. package/tokens/_md-comp-checkbox.scss +16 -16
  316. package/tokens/_md-comp-dialog.scss +2 -1
  317. package/tokens/_md-comp-elevated-button.scss +14 -12
  318. package/tokens/_md-comp-filled-button.scss +14 -12
  319. package/tokens/_md-comp-filled-field.scss +2 -2
  320. package/tokens/_md-comp-filled-icon-button.scss +23 -8
  321. package/tokens/_md-comp-filled-select.scss +22 -1
  322. package/tokens/_md-comp-filled-text-field.scss +3 -1
  323. package/tokens/_md-comp-filled-tonal-button.scss +14 -12
  324. package/tokens/_md-comp-filled-tonal-icon-button.scss +23 -8
  325. package/tokens/_md-comp-icon-button.scss +24 -11
  326. package/tokens/_md-comp-icon.scss +32 -0
  327. package/tokens/_md-comp-list-item.scss +117 -103
  328. package/tokens/_md-comp-menu-item.scss +3 -3
  329. package/tokens/_md-comp-outlined-button.scss +14 -12
  330. package/tokens/_md-comp-outlined-field.scss +2 -1
  331. package/tokens/_md-comp-outlined-icon-button.scss +26 -12
  332. package/tokens/_md-comp-outlined-segmented-button.scss +2 -2
  333. package/tokens/_md-comp-outlined-select.scss +8 -0
  334. package/tokens/_md-comp-outlined-text-field.scss +3 -1
  335. package/tokens/_md-comp-radio-button.scss +20 -9
  336. package/tokens/_md-comp-switch.scss +66 -32
  337. package/tokens/_md-comp-text-button.scss +14 -12
  338. package/button/internal/tonal-button.js.map +0 -1
  339. package/button/internal/tonal-styles.css.js +0 -9
  340. package/button/internal/tonal-styles.css.js.map +0 -1
  341. package/button/tonal-button.js.map +0 -1
  342. package/chips/internal/assist-forced-colors-styles.css.d.ts +0 -1
  343. package/chips/internal/assist-forced-colors-styles.css.js +0 -9
  344. package/chips/internal/assist-forced-colors-styles.css.js.map +0 -1
  345. package/chips/internal/assist-forced-colors-styles.scss +0 -27
  346. package/chips/internal/filter-forced-colors-styles.css.d.ts +0 -1
  347. package/chips/internal/filter-forced-colors-styles.css.js +0 -9
  348. package/chips/internal/filter-forced-colors-styles.css.js.map +0 -1
  349. package/chips/internal/filter-forced-colors-styles.scss +0 -34
  350. package/chips/internal/input-forced-colors-styles.css.d.ts +0 -1
  351. package/chips/internal/input-forced-colors-styles.css.js +0 -9
  352. package/chips/internal/input-forced-colors-styles.css.js.map +0 -1
  353. package/chips/internal/input-forced-colors-styles.scss +0 -39
  354. package/chips/internal/suggestion-forced-colors-styles.css.d.ts +0 -1
  355. package/chips/internal/suggestion-forced-colors-styles.css.js +0 -9
  356. package/chips/internal/suggestion-forced-colors-styles.css.js.map +0 -1
  357. package/chips/internal/suggestion-forced-colors-styles.scss +0 -27
  358. package/dialog/internal/_tokens.scss +0 -66
  359. package/icon/internal/_md-comp-icon.scss +0 -18
  360. package/iconbutton/standard-icon-button.js.map +0 -1
  361. package/internal/sass/_theme.scss +0 -249
  362. package/list/internal/listitemlink/list-item-link-only.d.ts +0 -23
  363. package/list/internal/listitemlink/list-item-link-only.js +0 -36
  364. package/list/internal/listitemlink/list-item-link-only.js.map +0 -1
  365. package/list/internal/listitemlink/list-item-link.d.ts +0 -18
  366. package/list/internal/listitemlink/list-item-link.js +0 -42
  367. package/list/internal/listitemlink/list-item-link.js.map +0 -1
  368. package/list/list-item-link.d.ts +0 -53
  369. package/list/list-item-link.js +0 -57
  370. package/list/list-item-link.js.map +0 -1
  371. package/menu/internal/menuitemlink/menu-item-link.d.ts +0 -23
  372. package/menu/internal/menuitemlink/menu-item-link.js +0 -49
  373. package/menu/internal/menuitemlink/menu-item-link.js.map +0 -1
  374. package/menu/menu-item-link.d.ts +0 -33
  375. package/menu/menu-item-link.js +0 -38
  376. package/menu/menu-item-link.js.map +0 -1
  377. /package/button/internal/{tonal-styles.css.d.ts → filled-tonal-styles.css.d.ts} +0 -0
@@ -3,7 +3,6 @@
3
3
  * Copyright 2021 Google LLC
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
- var _a;
7
6
  import { __decorate } from "tslib";
8
7
  import '../../focus/md-focus-ring.js';
9
8
  import '../../ripple/ripple.js';
@@ -114,15 +113,15 @@ export class Switch extends LitElement {
114
113
  }
115
114
  renderHandle() {
116
115
  const classes = {
117
- 'with-icon': this.icons || (this.showOnlySelectedIcon && this.selected),
116
+ 'with-icon': this.showOnlySelectedIcon ? this.selected : this.icons,
118
117
  };
119
118
  return html `
119
+ ${this.renderTouchTarget()}
120
120
  <span class="handle-container">
121
121
  <md-ripple for="switch" ?disabled="${this.disabled}"></md-ripple>
122
122
  <span class="handle ${classMap(classes)}">
123
123
  ${this.shouldShowIcons() ? this.renderIcons() : html ``}
124
124
  </span>
125
- ${this.renderTouchTarget()}
126
125
  </span>
127
126
  `;
128
127
  }
@@ -181,9 +180,8 @@ export class Switch extends LitElement {
181
180
  this.selected = state === 'true';
182
181
  }
183
182
  }
184
- _a = Switch;
185
183
  (() => {
186
- requestUpdateOnAriaChange(_a);
184
+ requestUpdateOnAriaChange(Switch);
187
185
  })();
188
186
  /** @nocollapse */
189
187
  Switch.shadowRootOptions = { mode: 'open', delegatesFocus: true };
@@ -1 +1 @@
1
- {"version":3,"file":"switch.js","sourceRoot":"","sources":["switch.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport '../../focus/md-focus-ring.js';\nimport '../../ripple/ripple.js';\n\nimport {html, isServer, LitElement, nothing, PropertyValues, TemplateResult} from 'lit';\nimport {property, query} from 'lit/decorators.js';\nimport {ClassInfo, classMap} from 'lit/directives/class-map.js';\n\nimport {requestUpdateOnAriaChange} from '../../internal/aria/delegate.js';\nimport {dispatchActivationClick, isActivationClick} from '../../internal/controller/events.js';\n\n/**\n * @fires input {InputEvent} Fired whenever `selected` changes due to user\n * interaction (bubbles and composed).\n * @fires change {Event} Fired whenever `selected` changes due to user\n * interaction (bubbles).\n */\nexport class Switch extends LitElement {\n static {\n requestUpdateOnAriaChange(this);\n }\n\n /** @nocollapse */\n static override shadowRootOptions:\n ShadowRootInit = {mode: 'open', delegatesFocus: true};\n\n /** @nocollapse */\n static formAssociated = true;\n\n /**\n * Disables the switch and makes it non-interactive.\n */\n @property({type: Boolean, reflect: true}) disabled = false;\n\n /**\n * Puts the switch in the selected state and sets the form submission value to\n * the `value` property.\n */\n @property({type: Boolean}) selected = false;\n\n /**\n * Shows both the selected and deselected icons.\n */\n @property({type: Boolean}) icons = false;\n\n /**\n * Shows only the selected icon, and not the deselected icon. If `true`,\n * overrides the behavior of the `icons` property.\n */\n @property({type: Boolean, attribute: 'show-only-selected-icon'})\n showOnlySelectedIcon = false;\n\n // Button\n @query('button') private readonly button!: HTMLButtonElement|null;\n\n /**\n * The value associated with this switch on form submission. `null` is\n * submitted when `selected` is `false`.\n */\n @property() value = 'on';\n\n /**\n * The HTML name to use in form submission.\n */\n get name() {\n return this.getAttribute('name') ?? '';\n }\n set name(name: string) {\n this.setAttribute('name', name);\n }\n\n /**\n * The associated form element with which this element's value will submit.\n */\n get form() {\n return this.internals.form;\n }\n\n /**\n * The labels this element is associated with.\n */\n get labels() {\n return this.internals.labels;\n }\n\n private readonly internals =\n (this as HTMLElement /* needed for closure */).attachInternals();\n\n constructor() {\n super();\n if (!isServer) {\n this.addEventListener('click', (event: MouseEvent) => {\n if (!isActivationClick(event)) {\n return;\n }\n this.button?.focus();\n if (this.button != null) {\n // this triggers the click behavior, and the ripple\n dispatchActivationClick(this.button);\n }\n });\n }\n }\n\n protected override update(changed: PropertyValues<Switch>) {\n const state = String(this.selected);\n this.internals.setFormValue(this.selected ? this.value : null, state);\n super.update(changed);\n }\n\n protected override render(): TemplateResult {\n // NOTE: buttons must use only [phrasing\n // content](https://html.spec.whatwg.org/multipage/dom.html#phrasing-content)\n // children, which includes custom elements, but not `div`s\n return html`\n <button\n id=\"switch\"\n type=\"button\"\n class=\"switch ${classMap(this.getRenderClasses())}\"\n role=\"switch\"\n aria-checked=\"${this.selected}\"\n aria-label=${(this as ARIAMixin).ariaLabel || nothing}\n ?disabled=${this.disabled}\n @click=${this.handleClick}\n >\n <md-focus-ring part=\"focus-ring\"></md-focus-ring>\n <span class=\"track\">\n ${this.renderHandle()}\n </span>\n </button>\n `;\n }\n\n private getRenderClasses(): ClassInfo {\n return {\n 'switch--selected': this.selected,\n 'switch--unselected': !this.selected,\n };\n }\n\n private renderHandle() {\n const classes = {\n 'with-icon': this.icons || (this.showOnlySelectedIcon && this.selected),\n };\n return html`\n <span class=\"handle-container\">\n <md-ripple for=\"switch\" ?disabled=\"${this.disabled}\"></md-ripple>\n <span class=\"handle ${classMap(classes)}\">\n ${this.shouldShowIcons() ? this.renderIcons() : html``}\n </span>\n ${this.renderTouchTarget()}\n </span>\n `;\n }\n\n private renderIcons() {\n return html`\n <div class=\"icons\">\n ${this.renderOnIcon()}\n ${this.showOnlySelectedIcon ? html`` : this.renderOffIcon()}\n </div>\n `;\n }\n\n /**\n * https://fonts.google.com/icons?selected=Material%20Symbols%20Outlined%3Acheck%3AFILL%400%3Bwght%40500%3BGRAD%400%3Bopsz%4024\n */\n private renderOnIcon() {\n return html`\n <svg class=\"icon icon--on\" viewBox=\"0 0 24 24\">\n <path d=\"M9.55 18.2 3.65 12.3 5.275 10.675 9.55 14.95 18.725 5.775 20.35 7.4Z\"/>\n </svg>\n `;\n }\n\n /**\n * https://fonts.google.com/icons?selected=Material%20Symbols%20Outlined%3Aclose%3AFILL%400%3Bwght%40500%3BGRAD%400%3Bopsz%4024\n */\n private renderOffIcon() {\n return html`\n <svg class=\"icon icon--off\" viewBox=\"0 0 24 24\">\n <path d=\"M6.4 19.2 4.8 17.6 10.4 12 4.8 6.4 6.4 4.8 12 10.4 17.6 4.8 19.2 6.4 13.6 12 19.2 17.6 17.6 19.2 12 13.6Z\"/>\n </svg>\n `;\n }\n\n private renderTouchTarget() {\n return html`<span class=\"touch\"></span>`;\n }\n\n private shouldShowIcons(): boolean {\n return this.icons || this.showOnlySelectedIcon;\n }\n\n private handleClick() {\n if (this.disabled) {\n return;\n }\n\n this.selected = !this.selected;\n this.dispatchEvent(\n new InputEvent('input', {bubbles: true, composed: true}));\n // Bubbles but does not compose to mimic native browser <input> & <select>\n // Additionally, native change event is not an InputEvent.\n this.dispatchEvent(new Event('change', {bubbles: true}));\n }\n\n /** @private */\n formResetCallback() {\n // The selected property does not reflect, so the original attribute set by\n // the user is used to determine the default value.\n this.selected = this.hasAttribute('selected');\n }\n\n /** @private */\n formStateRestoreCallback(state: string) {\n this.selected = state === 'true';\n }\n}\n"]}
1
+ {"version":3,"file":"switch.js","sourceRoot":"","sources":["switch.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport '../../focus/md-focus-ring.js';\nimport '../../ripple/ripple.js';\n\nimport {html, isServer, LitElement, nothing, PropertyValues, TemplateResult} from 'lit';\nimport {property, query} from 'lit/decorators.js';\nimport {ClassInfo, classMap} from 'lit/directives/class-map.js';\n\nimport {requestUpdateOnAriaChange} from '../../internal/aria/delegate.js';\nimport {dispatchActivationClick, isActivationClick} from '../../internal/controller/events.js';\n\n/**\n * @fires input {InputEvent} Fired whenever `selected` changes due to user\n * interaction (bubbles and composed).\n * @fires change {Event} Fired whenever `selected` changes due to user\n * interaction (bubbles).\n */\nexport class Switch extends LitElement {\n static {\n requestUpdateOnAriaChange(Switch);\n }\n\n /** @nocollapse */\n static override shadowRootOptions:\n ShadowRootInit = {mode: 'open', delegatesFocus: true};\n\n /** @nocollapse */\n static readonly formAssociated = true;\n\n /**\n * Disables the switch and makes it non-interactive.\n */\n @property({type: Boolean, reflect: true}) disabled = false;\n\n /**\n * Puts the switch in the selected state and sets the form submission value to\n * the `value` property.\n */\n @property({type: Boolean}) selected = false;\n\n /**\n * Shows both the selected and deselected icons.\n */\n @property({type: Boolean}) icons = false;\n\n /**\n * Shows only the selected icon, and not the deselected icon. If `true`,\n * overrides the behavior of the `icons` property.\n */\n @property({type: Boolean, attribute: 'show-only-selected-icon'})\n showOnlySelectedIcon = false;\n\n // Button\n @query('button') private readonly button!: HTMLButtonElement|null;\n\n /**\n * The value associated with this switch on form submission. `null` is\n * submitted when `selected` is `false`.\n */\n @property() value = 'on';\n\n /**\n * The HTML name to use in form submission.\n */\n get name() {\n return this.getAttribute('name') ?? '';\n }\n set name(name: string) {\n this.setAttribute('name', name);\n }\n\n /**\n * The associated form element with which this element's value will submit.\n */\n get form() {\n return this.internals.form;\n }\n\n /**\n * The labels this element is associated with.\n */\n get labels() {\n return this.internals.labels;\n }\n\n private readonly internals =\n (this as HTMLElement /* needed for closure */).attachInternals();\n\n constructor() {\n super();\n if (!isServer) {\n this.addEventListener('click', (event: MouseEvent) => {\n if (!isActivationClick(event)) {\n return;\n }\n this.button?.focus();\n if (this.button != null) {\n // this triggers the click behavior, and the ripple\n dispatchActivationClick(this.button);\n }\n });\n }\n }\n\n protected override update(changed: PropertyValues<Switch>) {\n const state = String(this.selected);\n this.internals.setFormValue(this.selected ? this.value : null, state);\n super.update(changed);\n }\n\n protected override render(): TemplateResult {\n // NOTE: buttons must use only [phrasing\n // content](https://html.spec.whatwg.org/multipage/dom.html#phrasing-content)\n // children, which includes custom elements, but not `div`s\n return html`\n <button\n id=\"switch\"\n type=\"button\"\n class=\"switch ${classMap(this.getRenderClasses())}\"\n role=\"switch\"\n aria-checked=\"${this.selected}\"\n aria-label=${(this as ARIAMixin).ariaLabel || nothing}\n ?disabled=${this.disabled}\n @click=${this.handleClick}\n >\n <md-focus-ring part=\"focus-ring\"></md-focus-ring>\n <span class=\"track\">\n ${this.renderHandle()}\n </span>\n </button>\n `;\n }\n\n private getRenderClasses(): ClassInfo {\n return {\n 'switch--selected': this.selected,\n 'switch--unselected': !this.selected,\n };\n }\n\n private renderHandle() {\n const classes = {\n 'with-icon': this.showOnlySelectedIcon ? this.selected : this.icons,\n };\n return html`\n ${this.renderTouchTarget()}\n <span class=\"handle-container\">\n <md-ripple for=\"switch\" ?disabled=\"${this.disabled}\"></md-ripple>\n <span class=\"handle ${classMap(classes)}\">\n ${this.shouldShowIcons() ? this.renderIcons() : html``}\n </span>\n </span>\n `;\n }\n\n private renderIcons() {\n return html`\n <div class=\"icons\">\n ${this.renderOnIcon()}\n ${this.showOnlySelectedIcon ? html`` : this.renderOffIcon()}\n </div>\n `;\n }\n\n /**\n * https://fonts.google.com/icons?selected=Material%20Symbols%20Outlined%3Acheck%3AFILL%400%3Bwght%40500%3BGRAD%400%3Bopsz%4024\n */\n private renderOnIcon() {\n return html`\n <svg class=\"icon icon--on\" viewBox=\"0 0 24 24\">\n <path d=\"M9.55 18.2 3.65 12.3 5.275 10.675 9.55 14.95 18.725 5.775 20.35 7.4Z\"/>\n </svg>\n `;\n }\n\n /**\n * https://fonts.google.com/icons?selected=Material%20Symbols%20Outlined%3Aclose%3AFILL%400%3Bwght%40500%3BGRAD%400%3Bopsz%4024\n */\n private renderOffIcon() {\n return html`\n <svg class=\"icon icon--off\" viewBox=\"0 0 24 24\">\n <path d=\"M6.4 19.2 4.8 17.6 10.4 12 4.8 6.4 6.4 4.8 12 10.4 17.6 4.8 19.2 6.4 13.6 12 19.2 17.6 17.6 19.2 12 13.6Z\"/>\n </svg>\n `;\n }\n\n private renderTouchTarget() {\n return html`<span class=\"touch\"></span>`;\n }\n\n private shouldShowIcons(): boolean {\n return this.icons || this.showOnlySelectedIcon;\n }\n\n private handleClick() {\n if (this.disabled) {\n return;\n }\n\n this.selected = !this.selected;\n this.dispatchEvent(\n new InputEvent('input', {bubbles: true, composed: true}));\n // Bubbles but does not compose to mimic native browser <input> & <select>\n // Additionally, native change event is not an InputEvent.\n this.dispatchEvent(new Event('change', {bubbles: true}));\n }\n\n /** @private */\n formResetCallback() {\n // The selected property does not reflect, so the original attribute set by\n // the user is used to determine the default value.\n this.selected = this.hasAttribute('selected');\n }\n\n /** @private */\n formStateRestoreCallback(state: string) {\n this.selected = state === 'true';\n }\n}\n"]}
@@ -4,27 +4,46 @@
4
4
  //
5
5
 
6
6
  // go/keep-sorted start
7
+ @use 'sass:list';
7
8
  @use 'sass:map';
8
9
  // go/keep-sorted end
9
10
  // go/keep-sorted start
10
11
  @use '../../elevation/elevation';
11
12
  @use '../../focus/focus-ring';
12
13
  @use '../../internal/sass/string-ext';
13
- @use '../../internal/sass/theme';
14
14
  @use '../../ripple/ripple';
15
15
  @use '../../tokens';
16
16
  // go/keep-sorted end
17
17
 
18
18
  @mixin theme($tokens) {
19
- $reference: tokens.md-comp-tab-values();
20
- $tokens: theme.validate-theme($reference, $tokens);
21
- $tokens: theme.create-theme-vars($tokens, '');
22
- @include theme.emit-theme-vars($tokens);
19
+ $supported-tokens: list.join(
20
+ tokens.$md-comp-tab-supported-tokens,
21
+ (
22
+ 'primary-tab-container-shape-start-start',
23
+ 'primary-tab-container-shape-start-end',
24
+ 'primary-tab-container-shape-end-end',
25
+ 'primary-tab-container-shape-end-start',
26
+ 'secondary-tab-container-shape-start-start',
27
+ 'secondary-tab-container-shape-start-end',
28
+ 'secondary-tab-container-shape-end-end',
29
+ 'secondary-tab-container-shape-end-start'
30
+ )
31
+ );
32
+
33
+ @each $token, $value in $tokens {
34
+ @if list.index($supported-tokens, $token) == null {
35
+ @error 'Token `#{$token}` is not a supported token.';
36
+ }
37
+
38
+ @if $value {
39
+ --md-#{$token}: #{$value};
40
+ }
41
+ }
23
42
  }
24
43
 
25
44
  @mixin styles() {
26
45
  // contains tokens for all variants and applied where needed
27
- $tokens: theme.create-theme-vars(tokens.md-comp-tab-values(), '');
46
+ $tokens: tokens.md-comp-tab-values();
28
47
 
29
48
  :host {
30
49
  // apply primary-tokens by default
@@ -32,10 +51,28 @@
32
51
  @each $token, $value in $tokens {
33
52
  @if string-ext.has-prefix($token, $primary-prefix) {
34
53
  $token: string-ext.trim-prefix(#{$token}, $primary-prefix);
35
- --_#{$token}: #{$value};
54
+ --_#{$token}: var(--md-#{$primary-prefix}#{$token}, #{$value});
36
55
  }
37
56
  }
38
57
 
58
+ // Support logical shape properties
59
+ --_container-shape-start-start: var(
60
+ --md-primary-tab-container-shape-start-start,
61
+ var(--_container-shape)
62
+ );
63
+ --_container-shape-start-end: var(
64
+ --md-primary-tab-container-shape-start-end,
65
+ var(--_container-shape)
66
+ );
67
+ --_container-shape-end-end: var(
68
+ --md-primary-tab-container-shape-end-end,
69
+ var(--_container-shape)
70
+ );
71
+ --_container-shape-end-start: var(
72
+ --md-primary-tab-container-shape-end-start,
73
+ var(--_container-shape)
74
+ );
75
+
39
76
  display: inline-flex;
40
77
  outline: none;
41
78
  -webkit-tap-highlight-color: transparent;
@@ -73,7 +110,7 @@
73
110
  user-select: none;
74
111
  -webkit-appearance: none;
75
112
  vertical-align: middle;
76
- background: transparent;
113
+ background: none;
77
114
  text-decoration: none;
78
115
  width: 100%;
79
116
  position: relative;
@@ -81,7 +118,6 @@
81
118
  margin: 0;
82
119
  z-index: 0; // Ensure this is a stacking context so the indicator displays
83
120
  font: var(--_label-text-type);
84
- background-color: var(--_container-color);
85
121
  border-bottom: var(--_divider-thickness) solid var(--_divider-color);
86
122
  color: var(--_label-text-color);
87
123
 
@@ -91,18 +127,20 @@
91
127
  }
92
128
  }
93
129
 
94
- .button,
95
- md-ripple {
96
- border-radius: var(--_container-shape);
130
+ .button::before {
131
+ background: var(--_container-color);
132
+ content: '';
133
+ inset: 0;
134
+ position: absolute;
135
+ z-index: -1;
97
136
  }
98
137
 
99
- .touch {
100
- position: absolute;
101
- top: 50%;
102
- height: 48px;
103
- left: 0;
104
- right: 0;
105
- transform: translateY(-50%);
138
+ .button::before,
139
+ md-ripple {
140
+ border-start-start-radius: var(--_container-shape-start-start);
141
+ border-start-end-radius: var(--_container-shape-start-end);
142
+ border-end-end-radius: var(--_container-shape-end-end);
143
+ border-end-start-radius: var(--_container-shape-end-start);
106
144
  }
107
145
 
108
146
  .content {
@@ -242,9 +280,27 @@
242
280
  @each $token, $value in $tokens {
243
281
  @if string-ext.has-prefix($token, $secondary-prefix) {
244
282
  $token: string-ext.trim-prefix(#{$token}, $secondary-prefix);
245
- --_#{$token}: #{$value};
283
+ --_#{$token}: var(--md-#{$secondary-prefix}#{$token}, #{$value});
246
284
  }
247
285
  }
286
+
287
+ // Support logical shape properties
288
+ --_container-shape-start-start: var(
289
+ --md-secondary-tab-container-shape-start-start,
290
+ var(--_container-shape)
291
+ );
292
+ --_container-shape-start-end: var(
293
+ --md-secondary-tab-container-shape-start-end,
294
+ var(--_container-shape)
295
+ );
296
+ --_container-shape-end-end: var(
297
+ --md-secondary-tab-container-shape-end-end,
298
+ var(--_container-shape)
299
+ );
300
+ --_container-shape-end-start: var(
301
+ --md-secondary-tab-container-shape-end-start,
302
+ var(--_container-shape)
303
+ );
248
304
  }
249
305
 
250
306
  :host([variant~='secondary']) .content {
@@ -255,7 +311,7 @@
255
311
  min-width: 100%;
256
312
  }
257
313
 
258
- // vertical (no tokens for vertical as yet)
314
+ // TODO(b/293506179): remove vertical styles
259
315
  :host([variant~='vertical']) {
260
316
  flex: 0;
261
317
  }
@@ -21,6 +21,7 @@
21
21
  display: none;
22
22
  }
23
23
 
24
+ // TODO(b/293506179): remove vertical styles
24
25
  :host([variant~='vertical']:not([hidden])) {
25
26
  display: inline-flex;
26
27
  flex-direction: column;
@@ -4,6 +4,6 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
  import { css } from 'lit';
7
- export const styles = css `:host{--_active-indicator-color: var(--md-primary-tab-active-indicator-color, var(--md-sys-color-primary, #6750a4));--_active-indicator-height: var(--md-primary-tab-active-indicator-height, 3px);--_active-indicator-shape: var(--md-primary-tab-active-indicator-shape, 3px 3px 0px 0px);--_active-hover-state-layer-color: var(--md-primary-tab-active-hover-state-layer-color, var(--md-sys-color-primary, #6750a4));--_active-hover-state-layer-opacity: var(--md-primary-tab-active-hover-state-layer-opacity, 0.08);--_active-pressed-state-layer-color: var(--md-primary-tab-active-pressed-state-layer-color, var(--md-sys-color-primary, #6750a4));--_active-pressed-state-layer-opacity: var(--md-primary-tab-active-pressed-state-layer-opacity, 0.12);--_container-color: var(--md-primary-tab-container-color, var(--md-sys-color-surface, #fef7ff));--_container-elevation: var(--md-primary-tab-container-elevation, 0);--_container-height: var(--md-primary-tab-container-height, 48px);--_container-shape: var(--md-primary-tab-container-shape, 0px);--_divider-color: var(--md-primary-tab-divider-color, var(--md-sys-color-outline-variant, #cac4d0));--_divider-thickness: var(--md-primary-tab-divider-thickness, 1px);--_label-text-type: var(--md-primary-tab-label-text-type, 500 0.875rem / 1.25rem var(--md-ref-typeface-plain, Roboto));--_hover-state-layer-color: var(--md-primary-tab-hover-state-layer-color, var(--md-sys-color-on-surface, #1d1b20));--_hover-state-layer-opacity: var(--md-primary-tab-hover-state-layer-opacity, 0.08);--_pressed-state-layer-color: var(--md-primary-tab-pressed-state-layer-color, var(--md-sys-color-primary, #6750a4));--_pressed-state-layer-opacity: var(--md-primary-tab-pressed-state-layer-opacity, 0.12);--_active-focus-icon-color: var(--md-primary-tab-active-focus-icon-color, var(--md-sys-color-primary, #6750a4));--_active-hover-icon-color: var(--md-primary-tab-active-hover-icon-color, var(--md-sys-color-primary, #6750a4));--_active-icon-color: var(--md-primary-tab-active-icon-color, var(--md-sys-color-primary, #6750a4));--_active-pressed-icon-color: var(--md-primary-tab-active-pressed-icon-color, var(--md-sys-color-primary, #6750a4));--_icon-size: var(--md-primary-tab-icon-size, 24px);--_focus-icon-color: var(--md-primary-tab-focus-icon-color, var(--md-sys-color-on-surface, #1d1b20));--_hover-icon-color: var(--md-primary-tab-hover-icon-color, var(--md-sys-color-on-surface, #1d1b20));--_icon-color: var(--md-primary-tab-icon-color, var(--md-sys-color-on-surface-variant, #49454f));--_pressed-icon-color: var(--md-primary-tab-pressed-icon-color, var(--md-sys-color-on-surface, #1d1b20));--_active-focus-label-text-color: var(--md-primary-tab-active-focus-label-text-color, var(--md-sys-color-primary, #6750a4));--_active-hover-label-text-color: var(--md-primary-tab-active-hover-label-text-color, var(--md-sys-color-primary, #6750a4));--_active-label-text-color: var(--md-primary-tab-active-label-text-color, var(--md-sys-color-primary, #6750a4));--_active-pressed-label-text-color: var(--md-primary-tab-active-pressed-label-text-color, var(--md-sys-color-primary, #6750a4));--_focus-label-text-color: var(--md-primary-tab-focus-label-text-color, var(--md-sys-color-on-surface, #1d1b20));--_hover-label-text-color: var(--md-primary-tab-hover-label-text-color, var(--md-sys-color-on-surface, #1d1b20));--_label-text-color: var(--md-primary-tab-label-text-color, var(--md-sys-color-on-surface-variant, #49454f));--_pressed-label-text-color: var(--md-primary-tab-pressed-label-text-color, var(--md-sys-color-on-surface, #1d1b20));display:inline-flex;outline:none;-webkit-tap-highlight-color:rgba(0,0,0,0);vertical-align:middle;--md-ripple-hover-color: var(--_hover-state-layer-color);--md-ripple-hover-opacity: var(--_hover-state-layer-opacity);--md-ripple-pressed-color: var(--_pressed-state-layer-color);--md-ripple-pressed-opacity: var(--_pressed-state-layer-opacity)}md-focus-ring{--md-focus-ring-shape: 8px}:host([selected]) md-focus-ring{margin-bottom:calc(var(--_active-indicator-height) + 1px)}.button{display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;border:none;outline:none;user-select:none;-webkit-appearance:none;vertical-align:middle;background:rgba(0,0,0,0);text-decoration:none;width:100%;position:relative;padding:0;margin:0;z-index:0;font:var(--_label-text-type);background-color:var(--_container-color);border-bottom:var(--_divider-thickness) solid var(--_divider-color);color:var(--_label-text-color)}.button::-moz-focus-inner{padding:0;border:0}.button,md-ripple{border-radius:var(--_container-shape)}.touch{position:absolute;top:50%;height:48px;left:0;right:0;transform:translateY(-50%)}.content{position:relative;box-sizing:border-box;display:inline-flex;flex-direction:column;align-items:center;justify-content:center;max-height:calc(var(--_container-height) + 16px);min-height:48px;padding:8px 16px;gap:4px}.content.inline-icon{flex-direction:row}.indicator{position:absolute;box-sizing:border-box;z-index:-1;transform-origin:bottom left;background:var(--_active-indicator-color);border-radius:var(--_active-indicator-shape);height:var(--_active-indicator-height);inset:auto 0 0 0;opacity:0}.button ::slotted([slot=icon]){display:inline-flex;position:relative;writing-mode:horizontal-tb;fill:currentColor;color:var(--_icon-color);font-size:var(--_icon-size);width:var(--_icon-size);height:var(--_icon-size)}.button:hover{color:var(--_hover-label-text-color);cursor:pointer}.button:hover ::slotted([slot=icon]){color:var(--_hover-icon-color)}.button:focus{color:var(--_focus-label-text-color)}.button:focus ::slotted([slot=icon]){color:var(--_focus-icon-color)}.button:active{color:var(--_pressed-label-text-color);outline:none}.button:active ::slotted([slot=icon]){color:var(--_pressed-icon-color)}:host([selected]) .indicator{opacity:1}:host([selected]) .button{color:var(--_active-label-text-color);--md-elevation-level:var(--_container-elevation);--md-ripple-hover-color: var(--_active-hover-state-layer-color);--md-ripple-hover-opacity: var(--_active-hover-state-layer-opacity);--md-ripple-pressed-color: var(--_active-pressed-state-layer-color);--md-ripple-pressed-opacity: var(--_active-pressed-state-layer-opacity)}:host([selected]) .button ::slotted([slot=icon]){color:var(--_active-icon-color)}:host([selected]) .button:hover{color:var(--_active-hover-label-text-color)}:host([selected]) .button:hover ::slotted([slot=icon]){color:var(--_active-hover-icon-color)}:host([selected]) .button:focus{color:var(--_active-focus-label-text-color)}:host([selected]) .button:focus ::slotted([slot=icon]){color:var(--_active-focus-icon-color)}:host([selected]) .button:active{color:var(--_active-pressed-label-text-color)}:host([selected]) .button:active ::slotted([slot=icon]){color:var(--_active-pressed-icon-color)}:host([disabled]){cursor:default;pointer-events:none;opacity:.38}:host([variant~=secondary]){--_active-indicator-color: var(--md-secondary-tab-active-indicator-color, var(--md-sys-color-primary, #6750a4));--_active-indicator-height: var(--md-secondary-tab-active-indicator-height, 2px);--_active-label-text-color: var(--md-secondary-tab-active-label-text-color, var(--md-sys-color-on-surface, #1d1b20));--_container-color: var(--md-secondary-tab-container-color, var(--md-sys-color-surface, #fef7ff));--_container-elevation: var(--md-secondary-tab-container-elevation, 0);--_container-height: var(--md-secondary-tab-container-height, 48px);--_container-shape: var(--md-secondary-tab-container-shape, 0px);--_focus-label-text-color: var(--md-secondary-tab-focus-label-text-color, var(--md-sys-color-on-surface, #1d1b20));--_hover-label-text-color: var(--md-secondary-tab-hover-label-text-color, var(--md-sys-color-on-surface, #1d1b20));--_hover-state-layer-color: var(--md-secondary-tab-hover-state-layer-color, var(--md-sys-color-on-surface, #1d1b20));--_hover-state-layer-opacity: var(--md-secondary-tab-hover-state-layer-opacity, 0.08);--_label-text-type: var(--md-secondary-tab-label-text-type, var(--md-sys-typescale-title-small, 500 0.875rem / 1.25rem var(--md-ref-typeface-plain, Roboto)));--_pressed-label-text-color: var(--md-secondary-tab-pressed-label-text-color, var(--md-sys-color-on-surface, #1d1b20));--_pressed-state-layer-color: var(--md-secondary-tab-pressed-state-layer-color, var(--md-sys-color-on-surface, #1d1b20));--_pressed-state-layer-opacity: var(--md-secondary-tab-pressed-state-layer-opacity, 0.12);--_divider-color: var(--md-secondary-tab-divider-color, var(--md-sys-color-outline-variant, #cac4d0));--_divider-thickness: var(--md-secondary-tab-divider-thickness, 1px);--_active-focus-icon-color: ;--_active-focus-label-text-color: var(--md-secondary-tab-active-focus-label-text-color, var(--md-sys-color-on-surface, #1d1b20));--_active-hover-icon-color: ;--_active-hover-label-text-color: var(--md-secondary-tab-active-hover-label-text-color, var(--md-sys-color-on-surface, #1d1b20));--_active-hover-state-layer-color: var(--md-secondary-tab-active-hover-state-layer-color, var(--md-sys-color-on-surface, #1d1b20));--_active-hover-state-layer-opacity: var(--md-secondary-tab-active-hover-state-layer-opacity, 0.08);--_active-icon-color: var(--md-secondary-tab-active-icon-color, var(--md-sys-color-on-surface, #1d1b20));--_active-indicator-shape: var(--md-secondary-tab-active-indicator-shape, 0);--_active-pressed-icon-color: ;--_active-pressed-label-text-color: var(--md-secondary-tab-active-pressed-label-text-color, var(--md-sys-color-on-surface, #1d1b20));--_active-pressed-state-layer-color: var(--md-secondary-tab-active-pressed-state-layer-color, var(--md-sys-color-on-surface, #1d1b20));--_active-pressed-state-layer-opacity: var(--md-secondary-tab-active-pressed-state-layer-opacity, 0.12);--_label-text-color: var(--md-secondary-tab-label-text-color, var(--md-sys-color-on-surface-variant, #49454f));--_focus-icon-color: var(--md-secondary-tab-focus-icon-color, var(--md-sys-color-on-surface, #1d1b20));--_hover-icon-color: var(--md-secondary-tab-hover-icon-color, var(--md-sys-color-on-surface, #1d1b20));--_icon-size: var(--md-secondary-tab-icon-size, 24px);--_icon-color: var(--md-secondary-tab-icon-color, var(--md-sys-color-on-surface-variant, #49454f));--_pressed-icon-color: var(--md-secondary-tab-pressed-icon-color, var(--md-sys-color-on-surface, #1d1b20))}:host([variant~=secondary]) .content{width:100%}:host([variant~=secondary]) .indicator{min-width:100%}:host([variant~=vertical]){flex:0}:host([variant~=vertical]) .button{width:100%;flex-direction:row;border-bottom:none;border-right:var(--_divider-thickness) solid var(--_divider-color)}:host([variant~=vertical]) .content{width:100%}:host([variant~=vertical]) .indicator{height:100%;min-width:var(--_active-indicator-height);inset:0 0 0 auto}:host([variant~=vertical][variant~=primary]){--_active-indicator-shape: 9999px 0 0 9999px}:host,::slotted(*){white-space:nowrap}@media(forced-colors: active){:host,:host([variant]){--_active-indicator-color: CanvasText}}/*# sourceMappingURL=tab-styles.css.map */
7
+ export const styles = css `:host{--_active-indicator-color: var(--md-primary-tab-active-indicator-color, var(--md-sys-color-primary, #6750a4));--_active-indicator-height: var(--md-primary-tab-active-indicator-height, 3px);--_active-indicator-shape: var(--md-primary-tab-active-indicator-shape, 3px 3px 0px 0px);--_active-hover-state-layer-color: var(--md-primary-tab-active-hover-state-layer-color, var(--md-sys-color-primary, #6750a4));--_active-hover-state-layer-opacity: var(--md-primary-tab-active-hover-state-layer-opacity, 0.08);--_active-pressed-state-layer-color: var(--md-primary-tab-active-pressed-state-layer-color, var(--md-sys-color-primary, #6750a4));--_active-pressed-state-layer-opacity: var(--md-primary-tab-active-pressed-state-layer-opacity, 0.12);--_container-color: var(--md-primary-tab-container-color, var(--md-sys-color-surface, #fef7ff));--_container-elevation: var(--md-primary-tab-container-elevation, 0);--_container-height: var(--md-primary-tab-container-height, 48px);--_container-shape: var(--md-primary-tab-container-shape, 0px);--_divider-color: var(--md-primary-tab-divider-color, var(--md-sys-color-outline-variant, #cac4d0));--_divider-thickness: var(--md-primary-tab-divider-thickness, 1px);--_label-text-type: var(--md-primary-tab-label-text-type, 500 0.875rem / 1.25rem var(--md-ref-typeface-plain, Roboto));--_hover-state-layer-color: var(--md-primary-tab-hover-state-layer-color, var(--md-sys-color-on-surface, #1d1b20));--_hover-state-layer-opacity: var(--md-primary-tab-hover-state-layer-opacity, 0.08);--_pressed-state-layer-color: var(--md-primary-tab-pressed-state-layer-color, var(--md-sys-color-primary, #6750a4));--_pressed-state-layer-opacity: var(--md-primary-tab-pressed-state-layer-opacity, 0.12);--_active-focus-icon-color: var(--md-primary-tab-active-focus-icon-color, var(--md-sys-color-primary, #6750a4));--_active-hover-icon-color: var(--md-primary-tab-active-hover-icon-color, var(--md-sys-color-primary, #6750a4));--_active-icon-color: var(--md-primary-tab-active-icon-color, var(--md-sys-color-primary, #6750a4));--_active-pressed-icon-color: var(--md-primary-tab-active-pressed-icon-color, var(--md-sys-color-primary, #6750a4));--_icon-size: var(--md-primary-tab-icon-size, 24px);--_focus-icon-color: var(--md-primary-tab-focus-icon-color, var(--md-sys-color-on-surface, #1d1b20));--_hover-icon-color: var(--md-primary-tab-hover-icon-color, var(--md-sys-color-on-surface, #1d1b20));--_icon-color: var(--md-primary-tab-icon-color, var(--md-sys-color-on-surface-variant, #49454f));--_pressed-icon-color: var(--md-primary-tab-pressed-icon-color, var(--md-sys-color-on-surface, #1d1b20));--_active-focus-label-text-color: var(--md-primary-tab-active-focus-label-text-color, var(--md-sys-color-primary, #6750a4));--_active-hover-label-text-color: var(--md-primary-tab-active-hover-label-text-color, var(--md-sys-color-primary, #6750a4));--_active-label-text-color: var(--md-primary-tab-active-label-text-color, var(--md-sys-color-primary, #6750a4));--_active-pressed-label-text-color: var(--md-primary-tab-active-pressed-label-text-color, var(--md-sys-color-primary, #6750a4));--_focus-label-text-color: var(--md-primary-tab-focus-label-text-color, var(--md-sys-color-on-surface, #1d1b20));--_hover-label-text-color: var(--md-primary-tab-hover-label-text-color, var(--md-sys-color-on-surface, #1d1b20));--_label-text-color: var(--md-primary-tab-label-text-color, var(--md-sys-color-on-surface-variant, #49454f));--_pressed-label-text-color: var(--md-primary-tab-pressed-label-text-color, var(--md-sys-color-on-surface, #1d1b20));--_container-shape-start-start: var( --md-primary-tab-container-shape-start-start, var(--_container-shape) );--_container-shape-start-end: var( --md-primary-tab-container-shape-start-end, var(--_container-shape) );--_container-shape-end-end: var( --md-primary-tab-container-shape-end-end, var(--_container-shape) );--_container-shape-end-start: var( --md-primary-tab-container-shape-end-start, var(--_container-shape) );display:inline-flex;outline:none;-webkit-tap-highlight-color:rgba(0,0,0,0);vertical-align:middle;--md-ripple-hover-color: var(--_hover-state-layer-color);--md-ripple-hover-opacity: var(--_hover-state-layer-opacity);--md-ripple-pressed-color: var(--_pressed-state-layer-color);--md-ripple-pressed-opacity: var(--_pressed-state-layer-opacity)}md-focus-ring{--md-focus-ring-shape: 8px}:host([selected]) md-focus-ring{margin-bottom:calc(var(--_active-indicator-height) + 1px)}.button{display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;border:none;outline:none;user-select:none;-webkit-appearance:none;vertical-align:middle;background:none;text-decoration:none;width:100%;position:relative;padding:0;margin:0;z-index:0;font:var(--_label-text-type);border-bottom:var(--_divider-thickness) solid var(--_divider-color);color:var(--_label-text-color)}.button::-moz-focus-inner{padding:0;border:0}.button::before{background:var(--_container-color);content:"";inset:0;position:absolute;z-index:-1}.button::before,md-ripple{border-start-start-radius:var(--_container-shape-start-start);border-start-end-radius:var(--_container-shape-start-end);border-end-end-radius:var(--_container-shape-end-end);border-end-start-radius:var(--_container-shape-end-start)}.content{position:relative;box-sizing:border-box;display:inline-flex;flex-direction:column;align-items:center;justify-content:center;max-height:calc(var(--_container-height) + 16px);min-height:48px;padding:8px 16px;gap:4px}.content.inline-icon{flex-direction:row}.indicator{position:absolute;box-sizing:border-box;z-index:-1;transform-origin:bottom left;background:var(--_active-indicator-color);border-radius:var(--_active-indicator-shape);height:var(--_active-indicator-height);inset:auto 0 0 0;opacity:0}.button ::slotted([slot=icon]){display:inline-flex;position:relative;writing-mode:horizontal-tb;fill:currentColor;color:var(--_icon-color);font-size:var(--_icon-size);width:var(--_icon-size);height:var(--_icon-size)}.button:hover{color:var(--_hover-label-text-color);cursor:pointer}.button:hover ::slotted([slot=icon]){color:var(--_hover-icon-color)}.button:focus{color:var(--_focus-label-text-color)}.button:focus ::slotted([slot=icon]){color:var(--_focus-icon-color)}.button:active{color:var(--_pressed-label-text-color);outline:none}.button:active ::slotted([slot=icon]){color:var(--_pressed-icon-color)}:host([selected]) .indicator{opacity:1}:host([selected]) .button{color:var(--_active-label-text-color);--md-elevation-level: var(--_container-elevation);--md-ripple-hover-color: var(--_active-hover-state-layer-color);--md-ripple-hover-opacity: var(--_active-hover-state-layer-opacity);--md-ripple-pressed-color: var(--_active-pressed-state-layer-color);--md-ripple-pressed-opacity: var(--_active-pressed-state-layer-opacity)}:host([selected]) .button ::slotted([slot=icon]){color:var(--_active-icon-color)}:host([selected]) .button:hover{color:var(--_active-hover-label-text-color)}:host([selected]) .button:hover ::slotted([slot=icon]){color:var(--_active-hover-icon-color)}:host([selected]) .button:focus{color:var(--_active-focus-label-text-color)}:host([selected]) .button:focus ::slotted([slot=icon]){color:var(--_active-focus-icon-color)}:host([selected]) .button:active{color:var(--_active-pressed-label-text-color)}:host([selected]) .button:active ::slotted([slot=icon]){color:var(--_active-pressed-icon-color)}:host([disabled]){cursor:default;pointer-events:none;opacity:.38}:host([variant~=secondary]){--_active-indicator-color: var(--md-secondary-tab-active-indicator-color, var(--md-sys-color-primary, #6750a4));--_active-indicator-height: var(--md-secondary-tab-active-indicator-height, 2px);--_active-label-text-color: var(--md-secondary-tab-active-label-text-color, var(--md-sys-color-on-surface, #1d1b20));--_container-color: var(--md-secondary-tab-container-color, var(--md-sys-color-surface, #fef7ff));--_container-elevation: var(--md-secondary-tab-container-elevation, 0);--_container-height: var(--md-secondary-tab-container-height, 48px);--_container-shape: var(--md-secondary-tab-container-shape, 0px);--_focus-label-text-color: var(--md-secondary-tab-focus-label-text-color, var(--md-sys-color-on-surface, #1d1b20));--_hover-label-text-color: var(--md-secondary-tab-hover-label-text-color, var(--md-sys-color-on-surface, #1d1b20));--_hover-state-layer-color: var(--md-secondary-tab-hover-state-layer-color, var(--md-sys-color-on-surface, #1d1b20));--_hover-state-layer-opacity: var(--md-secondary-tab-hover-state-layer-opacity, 0.08);--_label-text-type: var(--md-secondary-tab-label-text-type, var(--md-sys-typescale-title-small, 500 0.875rem / 1.25rem var(--md-ref-typeface-plain, Roboto)));--_pressed-label-text-color: var(--md-secondary-tab-pressed-label-text-color, var(--md-sys-color-on-surface, #1d1b20));--_pressed-state-layer-color: var(--md-secondary-tab-pressed-state-layer-color, var(--md-sys-color-on-surface, #1d1b20));--_pressed-state-layer-opacity: var(--md-secondary-tab-pressed-state-layer-opacity, 0.12);--_divider-color: var(--md-secondary-tab-divider-color, var(--md-sys-color-outline-variant, #cac4d0));--_divider-thickness: var(--md-secondary-tab-divider-thickness, 1px);--_active-focus-icon-color: var(--md-secondary-tab-active-focus-icon-color, );--_active-focus-label-text-color: var(--md-secondary-tab-active-focus-label-text-color, var(--md-sys-color-on-surface, #1d1b20));--_active-hover-icon-color: var(--md-secondary-tab-active-hover-icon-color, );--_active-hover-label-text-color: var(--md-secondary-tab-active-hover-label-text-color, var(--md-sys-color-on-surface, #1d1b20));--_active-hover-state-layer-color: var(--md-secondary-tab-active-hover-state-layer-color, var(--md-sys-color-on-surface, #1d1b20));--_active-hover-state-layer-opacity: var(--md-secondary-tab-active-hover-state-layer-opacity, 0.08);--_active-icon-color: var(--md-secondary-tab-active-icon-color, var(--md-sys-color-on-surface, #1d1b20));--_active-indicator-shape: var(--md-secondary-tab-active-indicator-shape, 0);--_active-pressed-icon-color: var(--md-secondary-tab-active-pressed-icon-color, );--_active-pressed-label-text-color: var(--md-secondary-tab-active-pressed-label-text-color, var(--md-sys-color-on-surface, #1d1b20));--_active-pressed-state-layer-color: var(--md-secondary-tab-active-pressed-state-layer-color, var(--md-sys-color-on-surface, #1d1b20));--_active-pressed-state-layer-opacity: var(--md-secondary-tab-active-pressed-state-layer-opacity, 0.12);--_label-text-color: var(--md-secondary-tab-label-text-color, var(--md-sys-color-on-surface-variant, #49454f));--_focus-icon-color: var(--md-secondary-tab-focus-icon-color, var(--md-sys-color-on-surface, #1d1b20));--_hover-icon-color: var(--md-secondary-tab-hover-icon-color, var(--md-sys-color-on-surface, #1d1b20));--_icon-size: var(--md-secondary-tab-icon-size, 24px);--_icon-color: var(--md-secondary-tab-icon-color, var(--md-sys-color-on-surface-variant, #49454f));--_pressed-icon-color: var(--md-secondary-tab-pressed-icon-color, var(--md-sys-color-on-surface, #1d1b20));--_container-shape-start-start: var( --md-secondary-tab-container-shape-start-start, var(--_container-shape) );--_container-shape-start-end: var( --md-secondary-tab-container-shape-start-end, var(--_container-shape) );--_container-shape-end-end: var( --md-secondary-tab-container-shape-end-end, var(--_container-shape) );--_container-shape-end-start: var( --md-secondary-tab-container-shape-end-start, var(--_container-shape) )}:host([variant~=secondary]) .content{width:100%}:host([variant~=secondary]) .indicator{min-width:100%}:host([variant~=vertical]){flex:0}:host([variant~=vertical]) .button{width:100%;flex-direction:row;border-bottom:none;border-right:var(--_divider-thickness) solid var(--_divider-color)}:host([variant~=vertical]) .content{width:100%}:host([variant~=vertical]) .indicator{height:100%;min-width:var(--_active-indicator-height);inset:0 0 0 auto}:host([variant~=vertical][variant~=primary]){--_active-indicator-shape: 9999px 0 0 9999px}:host,::slotted(*){white-space:nowrap}@media(forced-colors: active){:host,:host([variant]){--_active-indicator-color: CanvasText}}/*# sourceMappingURL=tab-styles.css.map */
8
8
  `;
9
9
  //# sourceMappingURL=tab-styles.css.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tab-styles.css.js","sourceRoot":"","sources":["tab-styles.css.ts"],"names":[],"mappings":"AAAA;;;;IAII;AACH,OAAO,EAAC,GAAG,EAAC,MAAM,KAAK,CAAC;AACxB,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;CACzB,CAAC","sourcesContent":["/**\n * @license\n * Copyright 2022 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n import {css} from 'lit';\n export const styles = css`:host{--_active-indicator-color: var(--md-primary-tab-active-indicator-color, var(--md-sys-color-primary, #6750a4));--_active-indicator-height: var(--md-primary-tab-active-indicator-height, 3px);--_active-indicator-shape: var(--md-primary-tab-active-indicator-shape, 3px 3px 0px 0px);--_active-hover-state-layer-color: var(--md-primary-tab-active-hover-state-layer-color, var(--md-sys-color-primary, #6750a4));--_active-hover-state-layer-opacity: var(--md-primary-tab-active-hover-state-layer-opacity, 0.08);--_active-pressed-state-layer-color: var(--md-primary-tab-active-pressed-state-layer-color, var(--md-sys-color-primary, #6750a4));--_active-pressed-state-layer-opacity: var(--md-primary-tab-active-pressed-state-layer-opacity, 0.12);--_container-color: var(--md-primary-tab-container-color, var(--md-sys-color-surface, #fef7ff));--_container-elevation: var(--md-primary-tab-container-elevation, 0);--_container-height: var(--md-primary-tab-container-height, 48px);--_container-shape: var(--md-primary-tab-container-shape, 0px);--_divider-color: var(--md-primary-tab-divider-color, var(--md-sys-color-outline-variant, #cac4d0));--_divider-thickness: var(--md-primary-tab-divider-thickness, 1px);--_label-text-type: var(--md-primary-tab-label-text-type, 500 0.875rem / 1.25rem var(--md-ref-typeface-plain, Roboto));--_hover-state-layer-color: var(--md-primary-tab-hover-state-layer-color, var(--md-sys-color-on-surface, #1d1b20));--_hover-state-layer-opacity: var(--md-primary-tab-hover-state-layer-opacity, 0.08);--_pressed-state-layer-color: var(--md-primary-tab-pressed-state-layer-color, var(--md-sys-color-primary, #6750a4));--_pressed-state-layer-opacity: var(--md-primary-tab-pressed-state-layer-opacity, 0.12);--_active-focus-icon-color: var(--md-primary-tab-active-focus-icon-color, var(--md-sys-color-primary, #6750a4));--_active-hover-icon-color: var(--md-primary-tab-active-hover-icon-color, var(--md-sys-color-primary, #6750a4));--_active-icon-color: var(--md-primary-tab-active-icon-color, var(--md-sys-color-primary, #6750a4));--_active-pressed-icon-color: var(--md-primary-tab-active-pressed-icon-color, var(--md-sys-color-primary, #6750a4));--_icon-size: var(--md-primary-tab-icon-size, 24px);--_focus-icon-color: var(--md-primary-tab-focus-icon-color, var(--md-sys-color-on-surface, #1d1b20));--_hover-icon-color: var(--md-primary-tab-hover-icon-color, var(--md-sys-color-on-surface, #1d1b20));--_icon-color: var(--md-primary-tab-icon-color, var(--md-sys-color-on-surface-variant, #49454f));--_pressed-icon-color: var(--md-primary-tab-pressed-icon-color, var(--md-sys-color-on-surface, #1d1b20));--_active-focus-label-text-color: var(--md-primary-tab-active-focus-label-text-color, var(--md-sys-color-primary, #6750a4));--_active-hover-label-text-color: var(--md-primary-tab-active-hover-label-text-color, var(--md-sys-color-primary, #6750a4));--_active-label-text-color: var(--md-primary-tab-active-label-text-color, var(--md-sys-color-primary, #6750a4));--_active-pressed-label-text-color: var(--md-primary-tab-active-pressed-label-text-color, var(--md-sys-color-primary, #6750a4));--_focus-label-text-color: var(--md-primary-tab-focus-label-text-color, var(--md-sys-color-on-surface, #1d1b20));--_hover-label-text-color: var(--md-primary-tab-hover-label-text-color, var(--md-sys-color-on-surface, #1d1b20));--_label-text-color: var(--md-primary-tab-label-text-color, var(--md-sys-color-on-surface-variant, #49454f));--_pressed-label-text-color: var(--md-primary-tab-pressed-label-text-color, var(--md-sys-color-on-surface, #1d1b20));display:inline-flex;outline:none;-webkit-tap-highlight-color:rgba(0,0,0,0);vertical-align:middle;--md-ripple-hover-color: var(--_hover-state-layer-color);--md-ripple-hover-opacity: var(--_hover-state-layer-opacity);--md-ripple-pressed-color: var(--_pressed-state-layer-color);--md-ripple-pressed-opacity: var(--_pressed-state-layer-opacity)}md-focus-ring{--md-focus-ring-shape: 8px}:host([selected]) md-focus-ring{margin-bottom:calc(var(--_active-indicator-height) + 1px)}.button{display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;border:none;outline:none;user-select:none;-webkit-appearance:none;vertical-align:middle;background:rgba(0,0,0,0);text-decoration:none;width:100%;position:relative;padding:0;margin:0;z-index:0;font:var(--_label-text-type);background-color:var(--_container-color);border-bottom:var(--_divider-thickness) solid var(--_divider-color);color:var(--_label-text-color)}.button::-moz-focus-inner{padding:0;border:0}.button,md-ripple{border-radius:var(--_container-shape)}.touch{position:absolute;top:50%;height:48px;left:0;right:0;transform:translateY(-50%)}.content{position:relative;box-sizing:border-box;display:inline-flex;flex-direction:column;align-items:center;justify-content:center;max-height:calc(var(--_container-height) + 16px);min-height:48px;padding:8px 16px;gap:4px}.content.inline-icon{flex-direction:row}.indicator{position:absolute;box-sizing:border-box;z-index:-1;transform-origin:bottom left;background:var(--_active-indicator-color);border-radius:var(--_active-indicator-shape);height:var(--_active-indicator-height);inset:auto 0 0 0;opacity:0}.button ::slotted([slot=icon]){display:inline-flex;position:relative;writing-mode:horizontal-tb;fill:currentColor;color:var(--_icon-color);font-size:var(--_icon-size);width:var(--_icon-size);height:var(--_icon-size)}.button:hover{color:var(--_hover-label-text-color);cursor:pointer}.button:hover ::slotted([slot=icon]){color:var(--_hover-icon-color)}.button:focus{color:var(--_focus-label-text-color)}.button:focus ::slotted([slot=icon]){color:var(--_focus-icon-color)}.button:active{color:var(--_pressed-label-text-color);outline:none}.button:active ::slotted([slot=icon]){color:var(--_pressed-icon-color)}:host([selected]) .indicator{opacity:1}:host([selected]) .button{color:var(--_active-label-text-color);--md-elevation-level:var(--_container-elevation);--md-ripple-hover-color: var(--_active-hover-state-layer-color);--md-ripple-hover-opacity: var(--_active-hover-state-layer-opacity);--md-ripple-pressed-color: var(--_active-pressed-state-layer-color);--md-ripple-pressed-opacity: var(--_active-pressed-state-layer-opacity)}:host([selected]) .button ::slotted([slot=icon]){color:var(--_active-icon-color)}:host([selected]) .button:hover{color:var(--_active-hover-label-text-color)}:host([selected]) .button:hover ::slotted([slot=icon]){color:var(--_active-hover-icon-color)}:host([selected]) .button:focus{color:var(--_active-focus-label-text-color)}:host([selected]) .button:focus ::slotted([slot=icon]){color:var(--_active-focus-icon-color)}:host([selected]) .button:active{color:var(--_active-pressed-label-text-color)}:host([selected]) .button:active ::slotted([slot=icon]){color:var(--_active-pressed-icon-color)}:host([disabled]){cursor:default;pointer-events:none;opacity:.38}:host([variant~=secondary]){--_active-indicator-color: var(--md-secondary-tab-active-indicator-color, var(--md-sys-color-primary, #6750a4));--_active-indicator-height: var(--md-secondary-tab-active-indicator-height, 2px);--_active-label-text-color: var(--md-secondary-tab-active-label-text-color, var(--md-sys-color-on-surface, #1d1b20));--_container-color: var(--md-secondary-tab-container-color, var(--md-sys-color-surface, #fef7ff));--_container-elevation: var(--md-secondary-tab-container-elevation, 0);--_container-height: var(--md-secondary-tab-container-height, 48px);--_container-shape: var(--md-secondary-tab-container-shape, 0px);--_focus-label-text-color: var(--md-secondary-tab-focus-label-text-color, var(--md-sys-color-on-surface, #1d1b20));--_hover-label-text-color: var(--md-secondary-tab-hover-label-text-color, var(--md-sys-color-on-surface, #1d1b20));--_hover-state-layer-color: var(--md-secondary-tab-hover-state-layer-color, var(--md-sys-color-on-surface, #1d1b20));--_hover-state-layer-opacity: var(--md-secondary-tab-hover-state-layer-opacity, 0.08);--_label-text-type: var(--md-secondary-tab-label-text-type, var(--md-sys-typescale-title-small, 500 0.875rem / 1.25rem var(--md-ref-typeface-plain, Roboto)));--_pressed-label-text-color: var(--md-secondary-tab-pressed-label-text-color, var(--md-sys-color-on-surface, #1d1b20));--_pressed-state-layer-color: var(--md-secondary-tab-pressed-state-layer-color, var(--md-sys-color-on-surface, #1d1b20));--_pressed-state-layer-opacity: var(--md-secondary-tab-pressed-state-layer-opacity, 0.12);--_divider-color: var(--md-secondary-tab-divider-color, var(--md-sys-color-outline-variant, #cac4d0));--_divider-thickness: var(--md-secondary-tab-divider-thickness, 1px);--_active-focus-icon-color: ;--_active-focus-label-text-color: var(--md-secondary-tab-active-focus-label-text-color, var(--md-sys-color-on-surface, #1d1b20));--_active-hover-icon-color: ;--_active-hover-label-text-color: var(--md-secondary-tab-active-hover-label-text-color, var(--md-sys-color-on-surface, #1d1b20));--_active-hover-state-layer-color: var(--md-secondary-tab-active-hover-state-layer-color, var(--md-sys-color-on-surface, #1d1b20));--_active-hover-state-layer-opacity: var(--md-secondary-tab-active-hover-state-layer-opacity, 0.08);--_active-icon-color: var(--md-secondary-tab-active-icon-color, var(--md-sys-color-on-surface, #1d1b20));--_active-indicator-shape: var(--md-secondary-tab-active-indicator-shape, 0);--_active-pressed-icon-color: ;--_active-pressed-label-text-color: var(--md-secondary-tab-active-pressed-label-text-color, var(--md-sys-color-on-surface, #1d1b20));--_active-pressed-state-layer-color: var(--md-secondary-tab-active-pressed-state-layer-color, var(--md-sys-color-on-surface, #1d1b20));--_active-pressed-state-layer-opacity: var(--md-secondary-tab-active-pressed-state-layer-opacity, 0.12);--_label-text-color: var(--md-secondary-tab-label-text-color, var(--md-sys-color-on-surface-variant, #49454f));--_focus-icon-color: var(--md-secondary-tab-focus-icon-color, var(--md-sys-color-on-surface, #1d1b20));--_hover-icon-color: var(--md-secondary-tab-hover-icon-color, var(--md-sys-color-on-surface, #1d1b20));--_icon-size: var(--md-secondary-tab-icon-size, 24px);--_icon-color: var(--md-secondary-tab-icon-color, var(--md-sys-color-on-surface-variant, #49454f));--_pressed-icon-color: var(--md-secondary-tab-pressed-icon-color, var(--md-sys-color-on-surface, #1d1b20))}:host([variant~=secondary]) .content{width:100%}:host([variant~=secondary]) .indicator{min-width:100%}:host([variant~=vertical]){flex:0}:host([variant~=vertical]) .button{width:100%;flex-direction:row;border-bottom:none;border-right:var(--_divider-thickness) solid var(--_divider-color)}:host([variant~=vertical]) .content{width:100%}:host([variant~=vertical]) .indicator{height:100%;min-width:var(--_active-indicator-height);inset:0 0 0 auto}:host([variant~=vertical][variant~=primary]){--_active-indicator-shape: 9999px 0 0 9999px}:host,::slotted(*){white-space:nowrap}@media(forced-colors: active){:host,:host([variant]){--_active-indicator-color: CanvasText}}/*# sourceMappingURL=tab-styles.css.map */\n`;\n "]}
1
+ {"version":3,"file":"tab-styles.css.js","sourceRoot":"","sources":["tab-styles.css.ts"],"names":[],"mappings":"AAAA;;;;IAII;AACH,OAAO,EAAC,GAAG,EAAC,MAAM,KAAK,CAAC;AACxB,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;CACzB,CAAC","sourcesContent":["/**\n * @license\n * Copyright 2022 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n import {css} from 'lit';\n export const styles = css`:host{--_active-indicator-color: var(--md-primary-tab-active-indicator-color, var(--md-sys-color-primary, #6750a4));--_active-indicator-height: var(--md-primary-tab-active-indicator-height, 3px);--_active-indicator-shape: var(--md-primary-tab-active-indicator-shape, 3px 3px 0px 0px);--_active-hover-state-layer-color: var(--md-primary-tab-active-hover-state-layer-color, var(--md-sys-color-primary, #6750a4));--_active-hover-state-layer-opacity: var(--md-primary-tab-active-hover-state-layer-opacity, 0.08);--_active-pressed-state-layer-color: var(--md-primary-tab-active-pressed-state-layer-color, var(--md-sys-color-primary, #6750a4));--_active-pressed-state-layer-opacity: var(--md-primary-tab-active-pressed-state-layer-opacity, 0.12);--_container-color: var(--md-primary-tab-container-color, var(--md-sys-color-surface, #fef7ff));--_container-elevation: var(--md-primary-tab-container-elevation, 0);--_container-height: var(--md-primary-tab-container-height, 48px);--_container-shape: var(--md-primary-tab-container-shape, 0px);--_divider-color: var(--md-primary-tab-divider-color, var(--md-sys-color-outline-variant, #cac4d0));--_divider-thickness: var(--md-primary-tab-divider-thickness, 1px);--_label-text-type: var(--md-primary-tab-label-text-type, 500 0.875rem / 1.25rem var(--md-ref-typeface-plain, Roboto));--_hover-state-layer-color: var(--md-primary-tab-hover-state-layer-color, var(--md-sys-color-on-surface, #1d1b20));--_hover-state-layer-opacity: var(--md-primary-tab-hover-state-layer-opacity, 0.08);--_pressed-state-layer-color: var(--md-primary-tab-pressed-state-layer-color, var(--md-sys-color-primary, #6750a4));--_pressed-state-layer-opacity: var(--md-primary-tab-pressed-state-layer-opacity, 0.12);--_active-focus-icon-color: var(--md-primary-tab-active-focus-icon-color, var(--md-sys-color-primary, #6750a4));--_active-hover-icon-color: var(--md-primary-tab-active-hover-icon-color, var(--md-sys-color-primary, #6750a4));--_active-icon-color: var(--md-primary-tab-active-icon-color, var(--md-sys-color-primary, #6750a4));--_active-pressed-icon-color: var(--md-primary-tab-active-pressed-icon-color, var(--md-sys-color-primary, #6750a4));--_icon-size: var(--md-primary-tab-icon-size, 24px);--_focus-icon-color: var(--md-primary-tab-focus-icon-color, var(--md-sys-color-on-surface, #1d1b20));--_hover-icon-color: var(--md-primary-tab-hover-icon-color, var(--md-sys-color-on-surface, #1d1b20));--_icon-color: var(--md-primary-tab-icon-color, var(--md-sys-color-on-surface-variant, #49454f));--_pressed-icon-color: var(--md-primary-tab-pressed-icon-color, var(--md-sys-color-on-surface, #1d1b20));--_active-focus-label-text-color: var(--md-primary-tab-active-focus-label-text-color, var(--md-sys-color-primary, #6750a4));--_active-hover-label-text-color: var(--md-primary-tab-active-hover-label-text-color, var(--md-sys-color-primary, #6750a4));--_active-label-text-color: var(--md-primary-tab-active-label-text-color, var(--md-sys-color-primary, #6750a4));--_active-pressed-label-text-color: var(--md-primary-tab-active-pressed-label-text-color, var(--md-sys-color-primary, #6750a4));--_focus-label-text-color: var(--md-primary-tab-focus-label-text-color, var(--md-sys-color-on-surface, #1d1b20));--_hover-label-text-color: var(--md-primary-tab-hover-label-text-color, var(--md-sys-color-on-surface, #1d1b20));--_label-text-color: var(--md-primary-tab-label-text-color, var(--md-sys-color-on-surface-variant, #49454f));--_pressed-label-text-color: var(--md-primary-tab-pressed-label-text-color, var(--md-sys-color-on-surface, #1d1b20));--_container-shape-start-start: var( --md-primary-tab-container-shape-start-start, var(--_container-shape) );--_container-shape-start-end: var( --md-primary-tab-container-shape-start-end, var(--_container-shape) );--_container-shape-end-end: var( --md-primary-tab-container-shape-end-end, var(--_container-shape) );--_container-shape-end-start: var( --md-primary-tab-container-shape-end-start, var(--_container-shape) );display:inline-flex;outline:none;-webkit-tap-highlight-color:rgba(0,0,0,0);vertical-align:middle;--md-ripple-hover-color: var(--_hover-state-layer-color);--md-ripple-hover-opacity: var(--_hover-state-layer-opacity);--md-ripple-pressed-color: var(--_pressed-state-layer-color);--md-ripple-pressed-opacity: var(--_pressed-state-layer-opacity)}md-focus-ring{--md-focus-ring-shape: 8px}:host([selected]) md-focus-ring{margin-bottom:calc(var(--_active-indicator-height) + 1px)}.button{display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;border:none;outline:none;user-select:none;-webkit-appearance:none;vertical-align:middle;background:none;text-decoration:none;width:100%;position:relative;padding:0;margin:0;z-index:0;font:var(--_label-text-type);border-bottom:var(--_divider-thickness) solid var(--_divider-color);color:var(--_label-text-color)}.button::-moz-focus-inner{padding:0;border:0}.button::before{background:var(--_container-color);content:\"\";inset:0;position:absolute;z-index:-1}.button::before,md-ripple{border-start-start-radius:var(--_container-shape-start-start);border-start-end-radius:var(--_container-shape-start-end);border-end-end-radius:var(--_container-shape-end-end);border-end-start-radius:var(--_container-shape-end-start)}.content{position:relative;box-sizing:border-box;display:inline-flex;flex-direction:column;align-items:center;justify-content:center;max-height:calc(var(--_container-height) + 16px);min-height:48px;padding:8px 16px;gap:4px}.content.inline-icon{flex-direction:row}.indicator{position:absolute;box-sizing:border-box;z-index:-1;transform-origin:bottom left;background:var(--_active-indicator-color);border-radius:var(--_active-indicator-shape);height:var(--_active-indicator-height);inset:auto 0 0 0;opacity:0}.button ::slotted([slot=icon]){display:inline-flex;position:relative;writing-mode:horizontal-tb;fill:currentColor;color:var(--_icon-color);font-size:var(--_icon-size);width:var(--_icon-size);height:var(--_icon-size)}.button:hover{color:var(--_hover-label-text-color);cursor:pointer}.button:hover ::slotted([slot=icon]){color:var(--_hover-icon-color)}.button:focus{color:var(--_focus-label-text-color)}.button:focus ::slotted([slot=icon]){color:var(--_focus-icon-color)}.button:active{color:var(--_pressed-label-text-color);outline:none}.button:active ::slotted([slot=icon]){color:var(--_pressed-icon-color)}:host([selected]) .indicator{opacity:1}:host([selected]) .button{color:var(--_active-label-text-color);--md-elevation-level: var(--_container-elevation);--md-ripple-hover-color: var(--_active-hover-state-layer-color);--md-ripple-hover-opacity: var(--_active-hover-state-layer-opacity);--md-ripple-pressed-color: var(--_active-pressed-state-layer-color);--md-ripple-pressed-opacity: var(--_active-pressed-state-layer-opacity)}:host([selected]) .button ::slotted([slot=icon]){color:var(--_active-icon-color)}:host([selected]) .button:hover{color:var(--_active-hover-label-text-color)}:host([selected]) .button:hover ::slotted([slot=icon]){color:var(--_active-hover-icon-color)}:host([selected]) .button:focus{color:var(--_active-focus-label-text-color)}:host([selected]) .button:focus ::slotted([slot=icon]){color:var(--_active-focus-icon-color)}:host([selected]) .button:active{color:var(--_active-pressed-label-text-color)}:host([selected]) .button:active ::slotted([slot=icon]){color:var(--_active-pressed-icon-color)}:host([disabled]){cursor:default;pointer-events:none;opacity:.38}:host([variant~=secondary]){--_active-indicator-color: var(--md-secondary-tab-active-indicator-color, var(--md-sys-color-primary, #6750a4));--_active-indicator-height: var(--md-secondary-tab-active-indicator-height, 2px);--_active-label-text-color: var(--md-secondary-tab-active-label-text-color, var(--md-sys-color-on-surface, #1d1b20));--_container-color: var(--md-secondary-tab-container-color, var(--md-sys-color-surface, #fef7ff));--_container-elevation: var(--md-secondary-tab-container-elevation, 0);--_container-height: var(--md-secondary-tab-container-height, 48px);--_container-shape: var(--md-secondary-tab-container-shape, 0px);--_focus-label-text-color: var(--md-secondary-tab-focus-label-text-color, var(--md-sys-color-on-surface, #1d1b20));--_hover-label-text-color: var(--md-secondary-tab-hover-label-text-color, var(--md-sys-color-on-surface, #1d1b20));--_hover-state-layer-color: var(--md-secondary-tab-hover-state-layer-color, var(--md-sys-color-on-surface, #1d1b20));--_hover-state-layer-opacity: var(--md-secondary-tab-hover-state-layer-opacity, 0.08);--_label-text-type: var(--md-secondary-tab-label-text-type, var(--md-sys-typescale-title-small, 500 0.875rem / 1.25rem var(--md-ref-typeface-plain, Roboto)));--_pressed-label-text-color: var(--md-secondary-tab-pressed-label-text-color, var(--md-sys-color-on-surface, #1d1b20));--_pressed-state-layer-color: var(--md-secondary-tab-pressed-state-layer-color, var(--md-sys-color-on-surface, #1d1b20));--_pressed-state-layer-opacity: var(--md-secondary-tab-pressed-state-layer-opacity, 0.12);--_divider-color: var(--md-secondary-tab-divider-color, var(--md-sys-color-outline-variant, #cac4d0));--_divider-thickness: var(--md-secondary-tab-divider-thickness, 1px);--_active-focus-icon-color: var(--md-secondary-tab-active-focus-icon-color, );--_active-focus-label-text-color: var(--md-secondary-tab-active-focus-label-text-color, var(--md-sys-color-on-surface, #1d1b20));--_active-hover-icon-color: var(--md-secondary-tab-active-hover-icon-color, );--_active-hover-label-text-color: var(--md-secondary-tab-active-hover-label-text-color, var(--md-sys-color-on-surface, #1d1b20));--_active-hover-state-layer-color: var(--md-secondary-tab-active-hover-state-layer-color, var(--md-sys-color-on-surface, #1d1b20));--_active-hover-state-layer-opacity: var(--md-secondary-tab-active-hover-state-layer-opacity, 0.08);--_active-icon-color: var(--md-secondary-tab-active-icon-color, var(--md-sys-color-on-surface, #1d1b20));--_active-indicator-shape: var(--md-secondary-tab-active-indicator-shape, 0);--_active-pressed-icon-color: var(--md-secondary-tab-active-pressed-icon-color, );--_active-pressed-label-text-color: var(--md-secondary-tab-active-pressed-label-text-color, var(--md-sys-color-on-surface, #1d1b20));--_active-pressed-state-layer-color: var(--md-secondary-tab-active-pressed-state-layer-color, var(--md-sys-color-on-surface, #1d1b20));--_active-pressed-state-layer-opacity: var(--md-secondary-tab-active-pressed-state-layer-opacity, 0.12);--_label-text-color: var(--md-secondary-tab-label-text-color, var(--md-sys-color-on-surface-variant, #49454f));--_focus-icon-color: var(--md-secondary-tab-focus-icon-color, var(--md-sys-color-on-surface, #1d1b20));--_hover-icon-color: var(--md-secondary-tab-hover-icon-color, var(--md-sys-color-on-surface, #1d1b20));--_icon-size: var(--md-secondary-tab-icon-size, 24px);--_icon-color: var(--md-secondary-tab-icon-color, var(--md-sys-color-on-surface-variant, #49454f));--_pressed-icon-color: var(--md-secondary-tab-pressed-icon-color, var(--md-sys-color-on-surface, #1d1b20));--_container-shape-start-start: var( --md-secondary-tab-container-shape-start-start, var(--_container-shape) );--_container-shape-start-end: var( --md-secondary-tab-container-shape-start-end, var(--_container-shape) );--_container-shape-end-end: var( --md-secondary-tab-container-shape-end-end, var(--_container-shape) );--_container-shape-end-start: var( --md-secondary-tab-container-shape-end-start, var(--_container-shape) )}:host([variant~=secondary]) .content{width:100%}:host([variant~=secondary]) .indicator{min-width:100%}:host([variant~=vertical]){flex:0}:host([variant~=vertical]) .button{width:100%;flex-direction:row;border-bottom:none;border-right:var(--_divider-thickness) solid var(--_divider-color)}:host([variant~=vertical]) .content{width:100%}:host([variant~=vertical]) .indicator{height:100%;min-width:var(--_active-indicator-height);inset:0 0 0 auto}:host([variant~=vertical][variant~=primary]){--_active-indicator-shape: 9999px 0 0 9999px}:host,::slotted(*){white-space:nowrap}@media(forced-colors: active){:host,:host([variant]){--_active-indicator-color: CanvasText}}/*# sourceMappingURL=tab-styles.css.map */\n`;\n "]}
@@ -15,13 +15,10 @@ export interface Tabs extends HTMLElement {
15
15
  selectedItem?: Tab;
16
16
  previousSelectedItem?: Tab;
17
17
  }
18
- type Style = '' | 'primary' | 'secondary';
19
- type Orientation = '' | 'vertical';
20
18
  /**
21
- * Tab variant can be `primary` or `secondary and can include a space
22
- * separated `vertical`.
19
+ * Tab variant can be `primary` or `secondary`.
23
20
  */
24
- export type TabVariant = Style | `${Style} ${Orientation}` | `${Orientation} ${Style}`;
21
+ export type TabVariant = 'primary' | 'secondary';
25
22
  /**
26
23
  * Tab component.
27
24
  */
@@ -29,9 +26,7 @@ export declare class Tab extends LitElement {
29
26
  /** @nocollapse */
30
27
  static shadowRootOptions: ShadowRootInit;
31
28
  /**
32
- * Styling variant to display, 'primary' or 'secondary' and can also
33
- * include `vertical`.
34
- * Defaults to `primary`.
29
+ * Styling variant to display, 'primary' (default) or 'secondary'.
35
30
  */
36
31
  variant: TabVariant;
37
32
  /**
@@ -65,4 +60,3 @@ export declare class Tab extends LitElement {
65
60
  private animateSelected;
66
61
  private getKeyframes;
67
62
  }
68
- export {};
@@ -3,7 +3,6 @@
3
3
  * Copyright 2023 Google LLC
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
- var _a;
7
6
  import { __decorate } from "tslib";
8
7
  import '../../elevation/elevation.js';
9
8
  import '../../focus/md-focus-ring.js';
@@ -20,9 +19,7 @@ export class Tab extends LitElement {
20
19
  constructor() {
21
20
  super();
22
21
  /**
23
- * Styling variant to display, 'primary' or 'secondary' and can also
24
- * include `vertical`.
25
- * Defaults to `primary`.
22
+ * Styling variant to display, 'primary' (default) or 'secondary'.
26
23
  */
27
24
  this.variant = 'primary';
28
25
  /**
@@ -76,7 +73,6 @@ export class Tab extends LitElement {
76
73
  <md-focus-ring part="focus-ring" inward></md-focus-ring>
77
74
  <md-elevation></md-elevation>
78
75
  <md-ripple ?disabled=${this.disabled}></md-ripple>
79
- <span class="touch"></span>
80
76
  <div class="content ${classMap(contentClasses)}">
81
77
  <slot name="icon"></slot>
82
78
  <span class="label">
@@ -109,7 +105,8 @@ export class Tab extends LitElement {
109
105
  return reduceMotion ? [{ 'opacity': 1 }, { 'transform': 'none' }] : null;
110
106
  }
111
107
  const from = {};
112
- const isVertical = this.variant.includes('vertical');
108
+ // TODO(b/293506179): remove vertical logic
109
+ const isVertical = false;
113
110
  const fromRect = (this.tabs?.previousSelectedItem?.indicator.getBoundingClientRect() ??
114
111
  {});
115
112
  const fromPos = isVertical ? fromRect.top : fromRect.left;
@@ -131,9 +128,8 @@ export class Tab extends LitElement {
131
128
  return [from, { 'transform': 'none' }];
132
129
  }
133
130
  }
134
- _a = Tab;
135
131
  (() => {
136
- requestUpdateOnAriaChange(_a);
132
+ requestUpdateOnAriaChange(Tab);
137
133
  })();
138
134
  /** @nocollapse */
139
135
  Tab.shadowRootOptions = { mode: 'open', delegatesFocus: true };
@@ -1 +1 @@
1
- {"version":3,"file":"tab.js","sourceRoot":"","sources":["tab.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport '../../elevation/elevation.js';\nimport '../../focus/md-focus-ring.js';\nimport '../../ripple/ripple.js';\n\nimport {html, isServer, LitElement, nothing, PropertyValues} from 'lit';\nimport {property, query} from 'lit/decorators.js';\nimport {classMap} from 'lit/directives/class-map.js';\n\nimport {ARIAMixinStrict} from '../../internal/aria/aria.js';\nimport {requestUpdateOnAriaChange} from '../../internal/aria/delegate.js';\nimport {dispatchActivationClick, isActivationClick} from '../../internal/controller/events.js';\n\n/**\n * An element that can select items.\n */\nexport interface Tabs extends HTMLElement {\n selected?: number;\n selectedItem?: Tab;\n previousSelectedItem?: Tab;\n}\n\ntype Style = ''|'primary'|'secondary';\ntype Orientation = ''|'vertical';\n\n/**\n * Tab variant can be `primary` or `secondary and can include a space\n * separated `vertical`.\n */\nexport type TabVariant = Style|`${Style} ${Orientation}`|`${Orientation} ${Style}`;\n\n/**\n * Tab component.\n */\nexport class Tab extends LitElement {\n static {\n requestUpdateOnAriaChange(this);\n }\n\n /** @nocollapse */\n static override shadowRootOptions:\n ShadowRootInit = {mode: 'open', delegatesFocus: true};\n\n /**\n * Styling variant to display, 'primary' or 'secondary' and can also\n * include `vertical`.\n * Defaults to `primary`.\n */\n @property({reflect: true}) variant: TabVariant = 'primary';\n\n /**\n * Whether or not the tab is `disabled`.\n */\n @property({type: Boolean, reflect: true}) disabled = false;\n\n /**\n * Whether or not the tab is `selected`.\n **/\n @property({type: Boolean, reflect: true}) selected = false;\n\n /**\n * Whether or not the tab is `focusable`.\n */\n @property({type: Boolean}) focusable = false;\n\n /**\n * Whether or not the icon renders inline with label or stacked vertically.\n */\n @property({type: Boolean, attribute: 'inline-icon'}) inlineIcon = false;\n\n @query('.button') private readonly button!: HTMLElement|null;\n\n // note, this is public so it can participate in selection animation.\n /**\n * Selection indicator element.\n */\n @query('.indicator') readonly indicator!: HTMLElement;\n\n constructor() {\n super();\n if (!isServer) {\n this.addEventListener('click', this.handleActivationClick);\n }\n }\n\n override focus() {\n this.button?.focus();\n }\n\n override blur() {\n this.button?.blur();\n }\n\n protected override render() {\n const contentClasses = {\n 'inline-icon': this.inlineIcon,\n };\n // Needed for closure conformance\n const {ariaLabel} = this as ARIAMixinStrict;\n return html`\n <button\n class=\"button\"\n role=\"tab\"\n .tabIndex=${this.focusable && !this.disabled ? 0 : -1}\n aria-selected=${this.selected ? 'true' : 'false'}\n ?disabled=${this.disabled}\n aria-label=${ariaLabel || nothing}\n >\n <md-focus-ring part=\"focus-ring\" inward></md-focus-ring>\n <md-elevation></md-elevation>\n <md-ripple ?disabled=${this.disabled}></md-ripple>\n <span class=\"touch\"></span>\n <div class=\"content ${classMap(contentClasses)}\">\n <slot name=\"icon\"></slot>\n <span class=\"label\">\n <slot></slot>\n </span>\n <div class=\"indicator\"></div>\n </div>\n </button>`;\n }\n\n protected override updated(changed: PropertyValues) {\n if (changed.has('selected') && !this.disabled) {\n this.animateSelected();\n }\n }\n\n private readonly handleActivationClick = (event: MouseEvent) => {\n if (!isActivationClick((event)) || !this.button) {\n return;\n }\n this.focus();\n dispatchActivationClick(this.button);\n };\n\n private get tabs() {\n return this.parentElement as Tabs;\n }\n\n private animateSelected() {\n this.indicator.getAnimations().forEach(a => {\n a.cancel();\n });\n const frames = this.getKeyframes();\n if (frames !== null) {\n this.indicator.animate(frames, {duration: 400, easing: 'ease-out'});\n }\n }\n\n private getKeyframes() {\n const reduceMotion = shouldReduceMotion();\n if (!this.selected) {\n return reduceMotion ? [{'opacity': 1}, {'transform': 'none'}] : null;\n }\n const from: Keyframe = {};\n const isVertical = this.variant.includes('vertical');\n const fromRect =\n (this.tabs?.previousSelectedItem?.indicator.getBoundingClientRect() ??\n ({} as DOMRect));\n const fromPos = isVertical ? fromRect.top : fromRect.left;\n const fromExtent = isVertical ? fromRect.height : fromRect.width;\n const toRect = this.indicator.getBoundingClientRect();\n const toPos = isVertical ? toRect.top : toRect.left;\n const toExtent = isVertical ? toRect.height : toRect.width;\n const axis = isVertical ? 'Y' : 'X';\n const scale = fromExtent / toExtent;\n if (!reduceMotion && fromPos !== undefined && toPos !== undefined &&\n !isNaN(scale)) {\n from['transform'] = `translate${axis}(${\n (fromPos - toPos).toFixed(4)}px) scale${axis}(${scale.toFixed(4)})`;\n } else {\n from['opacity'] = 0;\n }\n // note, including `transform: none` avoids quirky Safari behavior\n // that can hide the animation.\n return [from, {'transform': 'none'}];\n }\n}\n\nfunction shouldReduceMotion() {\n return window.matchMedia('(prefers-reduced-motion: reduce)').matches;\n}\n"]}
1
+ {"version":3,"file":"tab.js","sourceRoot":"","sources":["tab.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport '../../elevation/elevation.js';\nimport '../../focus/md-focus-ring.js';\nimport '../../ripple/ripple.js';\n\nimport {html, isServer, LitElement, nothing, PropertyValues} from 'lit';\nimport {property, query} from 'lit/decorators.js';\nimport {classMap} from 'lit/directives/class-map.js';\n\nimport {ARIAMixinStrict} from '../../internal/aria/aria.js';\nimport {requestUpdateOnAriaChange} from '../../internal/aria/delegate.js';\nimport {dispatchActivationClick, isActivationClick} from '../../internal/controller/events.js';\n\n/**\n * An element that can select items.\n */\nexport interface Tabs extends HTMLElement {\n selected?: number;\n selectedItem?: Tab;\n previousSelectedItem?: Tab;\n}\n\n/**\n * Tab variant can be `primary` or `secondary`.\n */\nexport type TabVariant = 'primary'|'secondary';\n\n/**\n * Tab component.\n */\nexport class Tab extends LitElement {\n static {\n requestUpdateOnAriaChange(Tab);\n }\n\n /** @nocollapse */\n static override shadowRootOptions:\n ShadowRootInit = {mode: 'open', delegatesFocus: true};\n\n /**\n * Styling variant to display, 'primary' (default) or 'secondary'.\n */\n @property({reflect: true}) variant: TabVariant = 'primary';\n\n /**\n * Whether or not the tab is `disabled`.\n */\n @property({type: Boolean, reflect: true}) disabled = false;\n\n /**\n * Whether or not the tab is `selected`.\n **/\n @property({type: Boolean, reflect: true}) selected = false;\n\n /**\n * Whether or not the tab is `focusable`.\n */\n @property({type: Boolean}) focusable = false;\n\n /**\n * Whether or not the icon renders inline with label or stacked vertically.\n */\n @property({type: Boolean, attribute: 'inline-icon'}) inlineIcon = false;\n\n @query('.button') private readonly button!: HTMLElement|null;\n\n // note, this is public so it can participate in selection animation.\n /**\n * Selection indicator element.\n */\n @query('.indicator') readonly indicator!: HTMLElement;\n\n constructor() {\n super();\n if (!isServer) {\n this.addEventListener('click', this.handleActivationClick);\n }\n }\n\n override focus() {\n this.button?.focus();\n }\n\n override blur() {\n this.button?.blur();\n }\n\n protected override render() {\n const contentClasses = {\n 'inline-icon': this.inlineIcon,\n };\n // Needed for closure conformance\n const {ariaLabel} = this as ARIAMixinStrict;\n return html`\n <button\n class=\"button\"\n role=\"tab\"\n .tabIndex=${this.focusable && !this.disabled ? 0 : -1}\n aria-selected=${this.selected ? 'true' : 'false'}\n ?disabled=${this.disabled}\n aria-label=${ariaLabel || nothing}\n >\n <md-focus-ring part=\"focus-ring\" inward></md-focus-ring>\n <md-elevation></md-elevation>\n <md-ripple ?disabled=${this.disabled}></md-ripple>\n <div class=\"content ${classMap(contentClasses)}\">\n <slot name=\"icon\"></slot>\n <span class=\"label\">\n <slot></slot>\n </span>\n <div class=\"indicator\"></div>\n </div>\n </button>`;\n }\n\n protected override updated(changed: PropertyValues) {\n if (changed.has('selected') && !this.disabled) {\n this.animateSelected();\n }\n }\n\n private readonly handleActivationClick = (event: MouseEvent) => {\n if (!isActivationClick((event)) || !this.button) {\n return;\n }\n this.focus();\n dispatchActivationClick(this.button);\n };\n\n private get tabs() {\n return this.parentElement as Tabs;\n }\n\n private animateSelected() {\n this.indicator.getAnimations().forEach(a => {\n a.cancel();\n });\n const frames = this.getKeyframes();\n if (frames !== null) {\n this.indicator.animate(frames, {duration: 400, easing: 'ease-out'});\n }\n }\n\n private getKeyframes() {\n const reduceMotion = shouldReduceMotion();\n if (!this.selected) {\n return reduceMotion ? [{'opacity': 1}, {'transform': 'none'}] : null;\n }\n const from: Keyframe = {};\n // TODO(b/293506179): remove vertical logic\n const isVertical = false;\n const fromRect =\n (this.tabs?.previousSelectedItem?.indicator.getBoundingClientRect() ??\n ({} as DOMRect));\n const fromPos = isVertical ? fromRect.top : fromRect.left;\n const fromExtent = isVertical ? fromRect.height : fromRect.width;\n const toRect = this.indicator.getBoundingClientRect();\n const toPos = isVertical ? toRect.top : toRect.left;\n const toExtent = isVertical ? toRect.height : toRect.width;\n const axis = isVertical ? 'Y' : 'X';\n const scale = fromExtent / toExtent;\n if (!reduceMotion && fromPos !== undefined && toPos !== undefined &&\n !isNaN(scale)) {\n from['transform'] = `translate${axis}(${\n (fromPos - toPos).toFixed(4)}px) scale${axis}(${scale.toFixed(4)})`;\n } else {\n from['opacity'] = 0;\n }\n // note, including `transform: none` avoids quirky Safari behavior\n // that can hide the animation.\n return [from, {'transform': 'none'}];\n }\n}\n\nfunction shouldReduceMotion() {\n return window.matchMedia('(prefers-reduced-motion: reduce)').matches;\n}\n"]}
@@ -37,9 +37,7 @@ export declare class Tabs extends LitElement {
37
37
  slotAssignment?: SlotAssignmentMode;
38
38
  };
39
39
  /**
40
- * Styling variant to display, 'primary' or 'secondary' and can also
41
- * include `vertical`.
42
- * Defaults to `primary`.
40
+ * Styling variant to display, 'primary' (default) or 'secondary'.
43
41
  */
44
42
  variant: TabVariant;
45
43
  /**
@@ -55,7 +53,6 @@ export declare class Tabs extends LitElement {
55
53
  */
56
54
  selectOnFocus: boolean;
57
55
  private previousSelected;
58
- private orientation;
59
56
  private readonly scrollMargin;
60
57
  private readonly items;
61
58
  private itemsDirty;
@@ -6,6 +6,7 @@
6
6
  import { __decorate } from "tslib";
7
7
  import { html, isServer, LitElement } from 'lit';
8
8
  import { property, queryAssignedElements, state } from 'lit/decorators.js';
9
+ // TODO(b/293506179): remove vertical logic
9
10
  const NAVIGATION_KEYS = new Map([
10
11
  ['default', new Set(['Home', 'End'])],
11
12
  ['horizontal', new Set(['ArrowLeft', 'ArrowRight'])],
@@ -57,9 +58,7 @@ export class Tabs extends LitElement {
57
58
  constructor() {
58
59
  super();
59
60
  /**
60
- * Styling variant to display, 'primary' or 'secondary' and can also
61
- * include `vertical`.
62
- * Defaults to `primary`.
61
+ * Styling variant to display, 'primary' (default) or 'secondary'.
63
62
  */
64
63
  this.variant = 'primary';
65
64
  /**
@@ -75,7 +74,6 @@ export class Tabs extends LitElement {
75
74
  */
76
75
  this.selectOnFocus = false;
77
76
  this.previousSelected = -1;
78
- this.orientation = 'horizontal';
79
77
  this.scrollMargin = 48;
80
78
  // this tracks if items have changed, which triggers rendering so they can
81
79
  // be kept in sync
@@ -85,7 +83,7 @@ export class Tabs extends LitElement {
85
83
  this.handleKeydown = async (event) => {
86
84
  const { key } = event;
87
85
  const shouldHandleKey = NAVIGATION_KEYS.get('default').has(key) ||
88
- NAVIGATION_KEYS.get(this.orientation).has(key);
86
+ NAVIGATION_KEYS.get('horizontal').has(key);
89
87
  // await to after user may cancel event.
90
88
  if (!shouldHandleKey || (await this.wasEventPrevented(event, true)) ||
91
89
  this.disabled) {
@@ -196,10 +194,6 @@ export class Tabs extends LitElement {
196
194
  if (changed.has('selected')) {
197
195
  this.previousSelected = changed.get('selected') ?? -1;
198
196
  }
199
- if (changed.has('variant')) {
200
- this.orientation =
201
- this.variant.includes('vertical') ? 'vertical' : 'horizontal';
202
- }
203
197
  if (this.itemsDirty) {
204
198
  this.itemsDirty = false;
205
199
  this.previousSelected = -1;
@@ -268,7 +262,8 @@ export class Tabs extends LitElement {
268
262
  }
269
263
  // wait for items to render.
270
264
  await this.itemsUpdateComplete();
271
- const isVertical = this.orientation === 'vertical';
265
+ // TODO(b/293506179): remove vertical logic
266
+ const isVertical = false;
272
267
  const offset = isVertical ? item.offsetTop : item.offsetLeft;
273
268
  const extent = isVertical ? item.offsetHeight : item.offsetWidth;
274
269
  const scroll = isVertical ? this.scrollTop : this.scrollLeft;