@material/web 1.0.1 → 1.0.2-nightly.8eb1f30.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (314) hide show
  1. package/all.d.ts +2 -0
  2. package/all.js +2 -0
  3. package/all.js.map +1 -1
  4. package/button/elevated-button.js +5 -1
  5. package/button/elevated-button.js.map +1 -1
  6. package/button/internal/_elevation.scss +32 -32
  7. package/button/internal/_icon.scss +22 -23
  8. package/button/internal/_outlined-button.scss +21 -19
  9. package/button/internal/_shared.scss +84 -77
  10. package/button/internal/_touch-target.scss +4 -0
  11. package/button/internal/button.d.ts +7 -11
  12. package/button/internal/button.js +52 -38
  13. package/button/internal/button.js.map +1 -1
  14. package/button/internal/elevated-button.d.ts +1 -1
  15. package/button/internal/elevated-button.js +1 -1
  16. package/button/internal/elevated-button.js.map +1 -1
  17. package/button/internal/filled-button.d.ts +1 -1
  18. package/button/internal/filled-button.js +1 -1
  19. package/button/internal/filled-button.js.map +1 -1
  20. package/button/internal/filled-tonal-button.d.ts +1 -1
  21. package/button/internal/filled-tonal-button.js +1 -1
  22. package/button/internal/filled-tonal-button.js.map +1 -1
  23. package/button/internal/outlined-button.d.ts +1 -1
  24. package/button/internal/outlined-button.js +2 -2
  25. package/button/internal/outlined-button.js.map +1 -1
  26. package/button/internal/outlined-styles.css.js +1 -1
  27. package/button/internal/outlined-styles.css.js.map +1 -1
  28. package/button/internal/shared-elevation-styles.css.js +1 -1
  29. package/button/internal/shared-elevation-styles.css.js.map +1 -1
  30. package/button/internal/shared-styles.css.js +1 -1
  31. package/button/internal/shared-styles.css.js.map +1 -1
  32. package/checkbox/internal/checkbox.d.ts +18 -25
  33. package/checkbox/internal/checkbox.js +43 -74
  34. package/checkbox/internal/checkbox.js.map +1 -1
  35. package/chips/filter-chip.js +5 -1
  36. package/chips/filter-chip.js.map +1 -1
  37. package/chips/harness.js.map +1 -1
  38. package/chips/input-chip.js +6 -1
  39. package/chips/input-chip.js.map +1 -1
  40. package/chips/internal/assist-chip.js +8 -4
  41. package/chips/internal/assist-chip.js.map +1 -1
  42. package/chips/internal/chip-set.js +6 -4
  43. package/chips/internal/chip-set.js.map +1 -1
  44. package/chips/internal/chip.d.ts +3 -0
  45. package/chips/internal/chip.js +7 -5
  46. package/chips/internal/chip.js.map +1 -1
  47. package/chips/internal/filter-chip.d.ts +2 -0
  48. package/chips/internal/filter-chip.js +11 -5
  49. package/chips/internal/filter-chip.js.map +1 -1
  50. package/chips/internal/input-chip.d.ts +2 -0
  51. package/chips/internal/input-chip.js +10 -4
  52. package/chips/internal/input-chip.js.map +1 -1
  53. package/chips/internal/multi-action-chip.js.map +1 -1
  54. package/chips/internal/trailing-icons.d.ts +1 -1
  55. package/chips/internal/trailing-icons.js +6 -5
  56. package/chips/internal/trailing-icons.js.map +1 -1
  57. package/common.d.ts +2 -0
  58. package/common.js +2 -0
  59. package/common.js.map +1 -1
  60. package/dialog/harness.js +1 -2
  61. package/dialog/harness.js.map +1 -1
  62. package/dialog/internal/_dialog.scss +1 -1
  63. package/dialog/internal/animations.js +14 -12
  64. package/dialog/internal/animations.js.map +1 -1
  65. package/dialog/internal/dialog-styles.css.js +1 -1
  66. package/dialog/internal/dialog-styles.css.js.map +1 -1
  67. package/dialog/internal/dialog.d.ts +6 -6
  68. package/dialog/internal/dialog.js +24 -24
  69. package/dialog/internal/dialog.js.map +1 -1
  70. package/fab/harness.js.map +1 -1
  71. package/fab/internal/fab.js.map +1 -1
  72. package/fab/internal/shared.js +10 -11
  73. package/fab/internal/shared.js.map +1 -1
  74. package/field/harness.js.map +1 -1
  75. package/field/internal/_content.scss +185 -174
  76. package/field/internal/_filled-field.scss +147 -136
  77. package/field/internal/_label.scss +83 -72
  78. package/field/internal/_outlined-field.scss +276 -262
  79. package/field/internal/_supporting-text.scss +53 -42
  80. package/field/internal/field.js +26 -22
  81. package/field/internal/field.js.map +1 -1
  82. package/field/internal/filled-styles.css.js +1 -1
  83. package/field/internal/filled-styles.css.js.map +1 -1
  84. package/field/internal/outlined-styles.css.js +1 -1
  85. package/field/internal/outlined-styles.css.js.map +1 -1
  86. package/field/internal/shared-styles.css.js +1 -1
  87. package/field/internal/shared-styles.css.js.map +1 -1
  88. package/focus/internal/focus-ring.d.ts +2 -0
  89. package/focus/internal/focus-ring.js +3 -3
  90. package/focus/internal/focus-ring.js.map +1 -1
  91. package/icon/internal/_icon.scss +7 -4
  92. package/icon/internal/icon-styles.css.js +1 -1
  93. package/icon/internal/icon-styles.css.js.map +1 -1
  94. package/iconbutton/internal/icon-button.d.ts +9 -4
  95. package/iconbutton/internal/icon-button.js +35 -22
  96. package/iconbutton/internal/icon-button.js.map +1 -1
  97. package/internal/aria/aria.d.ts +4 -26
  98. package/internal/aria/aria.js +10 -28
  99. package/internal/aria/aria.js.map +1 -1
  100. package/internal/aria/delegate.js +2 -2
  101. package/internal/aria/delegate.js.map +1 -1
  102. package/internal/controller/attachable-controller.js +3 -5
  103. package/internal/controller/attachable-controller.js.map +1 -1
  104. package/internal/controller/form-submitter.d.ts +3 -5
  105. package/internal/controller/form-submitter.js +5 -7
  106. package/internal/controller/form-submitter.js.map +1 -1
  107. package/internal/controller/is-rtl.js +2 -2
  108. package/internal/controller/is-rtl.js.map +1 -1
  109. package/internal/controller/string-converter.js +1 -1
  110. package/internal/controller/string-converter.js.map +1 -1
  111. package/internal/motion/animation.js.map +1 -1
  112. package/labs/behaviors/element-internals.d.ts +45 -0
  113. package/labs/behaviors/element-internals.js +50 -0
  114. package/labs/behaviors/element-internals.js.map +1 -0
  115. package/labs/behaviors/focusable.d.ts +39 -0
  116. package/labs/behaviors/focusable.js +82 -0
  117. package/labs/behaviors/focusable.js.map +1 -0
  118. package/labs/behaviors/form-associated.d.ts +199 -0
  119. package/labs/behaviors/form-associated.js +155 -0
  120. package/labs/behaviors/form-associated.js.map +1 -0
  121. package/labs/behaviors/mixin.d.ts +54 -0
  122. package/labs/behaviors/mixin.js +7 -0
  123. package/labs/behaviors/mixin.js.map +1 -0
  124. package/labs/behaviors/validators/checkbox-validator.d.ts +32 -0
  125. package/labs/behaviors/validators/checkbox-validator.js +32 -0
  126. package/labs/behaviors/validators/checkbox-validator.js.map +1 -0
  127. package/labs/behaviors/validators/validator.d.ts +92 -0
  128. package/labs/behaviors/validators/validator.js +73 -0
  129. package/labs/behaviors/validators/validator.js.map +1 -0
  130. package/labs/card/_elevated-card.scss +6 -0
  131. package/labs/card/_filled-card.scss +6 -0
  132. package/labs/card/_outlined-card.scss +6 -0
  133. package/labs/card/elevated-card.d.ts +18 -0
  134. package/labs/card/elevated-card.js +21 -0
  135. package/labs/card/elevated-card.js.map +1 -0
  136. package/labs/card/filled-card.d.ts +18 -0
  137. package/labs/card/filled-card.js +21 -0
  138. package/labs/card/filled-card.js.map +1 -0
  139. package/labs/card/internal/_elevated-card.scss +35 -0
  140. package/labs/card/internal/_filled-card.scss +35 -0
  141. package/labs/card/internal/_outlined-card.scss +39 -0
  142. package/labs/card/internal/_shared.scss +40 -0
  143. package/labs/card/internal/card.d.ts +13 -0
  144. package/labs/card/internal/card.js +20 -0
  145. package/labs/card/internal/card.js.map +1 -0
  146. package/labs/card/internal/elevated-styles.css.js +9 -0
  147. package/labs/card/internal/elevated-styles.css.js.map +1 -0
  148. package/labs/card/internal/elevated-styles.scss +10 -0
  149. package/labs/card/internal/filled-styles.css.js +9 -0
  150. package/labs/card/internal/filled-styles.css.js.map +1 -0
  151. package/labs/card/internal/filled-styles.scss +10 -0
  152. package/labs/card/internal/outlined-styles.css.js +9 -0
  153. package/labs/card/internal/outlined-styles.css.js.map +1 -0
  154. package/labs/card/internal/outlined-styles.scss +10 -0
  155. package/labs/card/internal/shared-styles.css.js +9 -0
  156. package/labs/card/internal/shared-styles.css.js.map +1 -0
  157. package/labs/card/internal/shared-styles.scss +10 -0
  158. package/labs/card/outlined-card.d.ts +18 -0
  159. package/labs/card/outlined-card.js +21 -0
  160. package/labs/card/outlined-card.js.map +1 -0
  161. package/labs/item/internal/item.js +8 -8
  162. package/labs/item/internal/item.js.map +1 -1
  163. package/labs/navigationbar/internal/constants.js.map +1 -1
  164. package/labs/navigationbar/internal/navigation-bar.d.ts +3 -0
  165. package/labs/navigationbar/internal/navigation-bar.js +18 -11
  166. package/labs/navigationbar/internal/navigation-bar.js.map +1 -1
  167. package/labs/navigationdrawer/internal/navigation-drawer-modal.d.ts +3 -0
  168. package/labs/navigationdrawer/internal/navigation-drawer-modal.js +10 -3
  169. package/labs/navigationdrawer/internal/navigation-drawer-modal.js.map +1 -1
  170. package/labs/navigationdrawer/internal/navigation-drawer.d.ts +3 -0
  171. package/labs/navigationdrawer/internal/navigation-drawer.js +8 -1
  172. package/labs/navigationdrawer/internal/navigation-drawer.js.map +1 -1
  173. package/labs/navigationtab/harness.js.map +1 -1
  174. package/labs/navigationtab/internal/navigation-tab.d.ts +6 -0
  175. package/labs/navigationtab/internal/navigation-tab.js +43 -27
  176. package/labs/navigationtab/internal/navigation-tab.js.map +1 -1
  177. package/labs/navigationtab/internal/state.js.map +1 -1
  178. package/labs/segmentedbutton/internal/segmented-button.d.ts +3 -0
  179. package/labs/segmentedbutton/internal/segmented-button.js +26 -12
  180. package/labs/segmentedbutton/internal/segmented-button.js.map +1 -1
  181. package/labs/segmentedbuttonset/internal/segmented-button-set.d.ts +5 -0
  182. package/labs/segmentedbuttonset/internal/segmented-button-set.js +14 -9
  183. package/labs/segmentedbuttonset/internal/segmented-button-set.js.map +1 -1
  184. package/list/harness.d.ts +1 -1
  185. package/list/harness.js.map +1 -1
  186. package/list/internal/list-controller.d.ts +1 -1
  187. package/list/internal/list-controller.js +7 -3
  188. package/list/internal/list-controller.js.map +1 -1
  189. package/list/internal/list-navigation-helpers.js.map +1 -1
  190. package/list/internal/list.d.ts +2 -2
  191. package/list/internal/list.js +8 -6
  192. package/list/internal/list.js.map +1 -1
  193. package/list/internal/listitem/harness.d.ts +1 -1
  194. package/list/internal/listitem/harness.js.map +1 -1
  195. package/list/internal/listitem/list-item.d.ts +3 -2
  196. package/list/internal/listitem/list-item.js +19 -20
  197. package/list/internal/listitem/list-item.js.map +1 -1
  198. package/list/list-item.d.ts +4 -12
  199. package/list/list-item.js +4 -12
  200. package/list/list-item.js.map +1 -1
  201. package/menu/harness.js.map +1 -1
  202. package/menu/internal/_menu.scss +12 -1
  203. package/menu/internal/controllers/menuItemController.js +9 -4
  204. package/menu/internal/controllers/menuItemController.js.map +1 -1
  205. package/menu/internal/controllers/shared.d.ts +9 -1
  206. package/menu/internal/controllers/shared.js +4 -4
  207. package/menu/internal/controllers/shared.js.map +1 -1
  208. package/menu/internal/controllers/surfacePositionController.d.ts +15 -2
  209. package/menu/internal/controllers/surfacePositionController.js +124 -54
  210. package/menu/internal/controllers/surfacePositionController.js.map +1 -1
  211. package/menu/internal/controllers/typeaheadController.js +19 -14
  212. package/menu/internal/controllers/typeaheadController.js.map +1 -1
  213. package/menu/internal/menu-styles.css.js +1 -1
  214. package/menu/internal/menu-styles.css.js.map +1 -1
  215. package/menu/internal/menu.d.ts +43 -12
  216. package/menu/internal/menu.js +124 -57
  217. package/menu/internal/menu.js.map +1 -1
  218. package/menu/internal/menuitem/harness.js.map +1 -1
  219. package/menu/internal/menuitem/menu-item.d.ts +3 -2
  220. package/menu/internal/menuitem/menu-item.js +18 -19
  221. package/menu/internal/menuitem/menu-item.js.map +1 -1
  222. package/menu/internal/submenu/sub-menu.d.ts +8 -8
  223. package/menu/internal/submenu/sub-menu.js +31 -22
  224. package/menu/internal/submenu/sub-menu.js.map +1 -1
  225. package/menu/internal/types.js.map +1 -1
  226. package/package.json +1 -1
  227. package/progress/internal/_circular-progress.scss +2 -2
  228. package/progress/internal/_linear-progress.scss +1 -1
  229. package/progress/internal/circular-progress-styles.css.js +1 -1
  230. package/progress/internal/circular-progress-styles.css.js.map +1 -1
  231. package/progress/internal/circular-progress.js +11 -10
  232. package/progress/internal/circular-progress.js.map +1 -1
  233. package/progress/internal/linear-progress-styles.css.js +1 -1
  234. package/progress/internal/linear-progress-styles.css.js.map +1 -1
  235. package/progress/internal/linear-progress.d.ts +1 -1
  236. package/progress/internal/linear-progress.js +3 -3
  237. package/progress/internal/linear-progress.js.map +1 -1
  238. package/progress/internal/progress.js +4 -2
  239. package/progress/internal/progress.js.map +1 -1
  240. package/radio/internal/radio.d.ts +11 -27
  241. package/radio/internal/radio.js +30 -54
  242. package/radio/internal/radio.js.map +1 -1
  243. package/radio/internal/single-selection-controller.js +1 -1
  244. package/radio/internal/single-selection-controller.js.map +1 -1
  245. package/ripple/internal/ripple.js +14 -9
  246. package/ripple/internal/ripple.js.map +1 -1
  247. package/select/filled-select.js +1 -2
  248. package/select/filled-select.js.map +1 -1
  249. package/select/harness.js +1 -1
  250. package/select/harness.js.map +1 -1
  251. package/select/internal/select.d.ts +25 -34
  252. package/select/internal/select.js +101 -91
  253. package/select/internal/select.js.map +1 -1
  254. package/select/internal/selectoption/select-option.d.ts +8 -6
  255. package/select/internal/selectoption/select-option.js +23 -22
  256. package/select/internal/selectoption/select-option.js.map +1 -1
  257. package/select/internal/selectoption/selectOptionController.js +1 -1
  258. package/select/internal/selectoption/selectOptionController.js.map +1 -1
  259. package/select/outlined-select.js +1 -2
  260. package/select/outlined-select.js.map +1 -1
  261. package/slider/harness.js +5 -5
  262. package/slider/harness.js.map +1 -1
  263. package/slider/internal/slider.d.ts +16 -25
  264. package/slider/internal/slider.js +110 -114
  265. package/slider/internal/slider.js.map +1 -1
  266. package/switch/internal/switch.d.ts +11 -27
  267. package/switch/internal/switch.js +40 -80
  268. package/switch/internal/switch.js.map +1 -1
  269. package/tabs/harness.js +3 -3
  270. package/tabs/harness.js.map +1 -1
  271. package/tabs/internal/_tab.scss +27 -35
  272. package/tabs/internal/primary-tab.d.ts +0 -2
  273. package/tabs/internal/tab-styles.css.js +1 -1
  274. package/tabs/internal/tab-styles.css.js.map +1 -1
  275. package/tabs/internal/tab.d.ts +4 -5
  276. package/tabs/internal/tab.js +34 -22
  277. package/tabs/internal/tab.js.map +1 -1
  278. package/tabs/internal/tabs.d.ts +6 -2
  279. package/tabs/internal/tabs.js +18 -11
  280. package/tabs/internal/tabs.js.map +1 -1
  281. package/textfield/filled-text-field.js +1 -2
  282. package/textfield/filled-text-field.js.map +1 -1
  283. package/textfield/harness.js +3 -2
  284. package/textfield/harness.js.map +1 -1
  285. package/textfield/internal/text-field.d.ts +26 -18
  286. package/textfield/internal/text-field.js +81 -58
  287. package/textfield/internal/text-field.js.map +1 -1
  288. package/textfield/outlined-text-field.js +1 -2
  289. package/textfield/outlined-text-field.js.map +1 -1
  290. package/tokens/_index.scss +3 -0
  291. package/tokens/_md-comp-elevated-card.scss +63 -0
  292. package/tokens/_md-comp-filled-card.scss +63 -0
  293. package/tokens/_md-comp-icon.scss +2 -0
  294. package/tokens/_md-comp-outlined-card.scss +69 -0
  295. package/tokens/_md-comp-test-table.scss +1 -0
  296. package/internal/controller/element-internals.d.ts +0 -35
  297. package/internal/controller/element-internals.js +0 -24
  298. package/internal/controller/element-internals.js.map +0 -1
  299. package/select/internal/filled-forced-colors-styles.css.js +0 -9
  300. package/select/internal/filled-forced-colors-styles.css.js.map +0 -1
  301. package/select/internal/filled-forced-colors-styles.scss +0 -29
  302. package/select/internal/outlined-forced-colors-styles.css.js +0 -9
  303. package/select/internal/outlined-forced-colors-styles.css.js.map +0 -1
  304. package/select/internal/outlined-forced-colors-styles.scss +0 -29
  305. package/textfield/internal/filled-forced-colors-styles.css.js +0 -9
  306. package/textfield/internal/filled-forced-colors-styles.css.js.map +0 -1
  307. package/textfield/internal/filled-forced-colors-styles.scss +0 -29
  308. package/textfield/internal/outlined-forced-colors-styles.css.js +0 -9
  309. package/textfield/internal/outlined-forced-colors-styles.css.js.map +0 -1
  310. package/textfield/internal/outlined-forced-colors-styles.scss +0 -29
  311. /package/{select/internal/filled-forced-colors-styles.css.d.ts → labs/card/internal/elevated-styles.css.d.ts} +0 -0
  312. /package/{select/internal/outlined-forced-colors-styles.css.d.ts → labs/card/internal/filled-styles.css.d.ts} +0 -0
  313. /package/{textfield/internal/filled-forced-colors-styles.css.d.ts → labs/card/internal/outlined-styles.css.d.ts} +0 -0
  314. /package/{textfield/internal/outlined-forced-colors-styles.css.d.ts → labs/card/internal/shared-styles.css.d.ts} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validator.js","sourceRoot":"","sources":["validator.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;;;;;;;;;GAUG;AACH,MAAM,OAAgB,SAAS;IAgB7B;;;;;OAKG;IACH,YAA6B,eAA4B;QAA5B,oBAAe,GAAf,eAAe,CAAa;QAfzD;;;WAGG;QACK,oBAAe,GAAuB;YAC5C,QAAQ,EAAE,EAAE;YACZ,iBAAiB,EAAE,EAAE;SACtB,CAAC;IAQ0D,CAAC;IAE7D;;;;;;;;;OASG;IACH,WAAW;QACT,MAAM,KAAK,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;QACrC,MAAM,eAAe,GACnB,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QACzD,IAAI,CAAC,eAAe,EAAE;YACpB,OAAO,IAAI,CAAC,eAAe,CAAC;SAC7B;QAED,MAAM,EAAC,QAAQ,EAAE,iBAAiB,EAAC,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;QAClE,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAClC,IAAI,CAAC,eAAe,GAAG;YACrB,iBAAiB;YACjB,QAAQ,EAAE;gBACR,uEAAuE;gBACvE,kDAAkD;gBAClD,QAAQ,EAAE,QAAQ,CAAC,QAAQ;gBAC3B,WAAW,EAAE,QAAQ,CAAC,WAAW;gBACjC,eAAe,EAAE,QAAQ,CAAC,eAAe;gBACzC,aAAa,EAAE,QAAQ,CAAC,aAAa;gBACrC,cAAc,EAAE,QAAQ,CAAC,cAAc;gBACvC,YAAY,EAAE,QAAQ,CAAC,YAAY;gBACnC,OAAO,EAAE,QAAQ,CAAC,OAAO;gBACzB,QAAQ,EAAE,QAAQ,CAAC,QAAQ;gBAC3B,YAAY,EAAE,QAAQ,CAAC,YAAY;gBACnC,YAAY,EAAE,QAAQ,CAAC,YAAY;aACpC;SACF,CAAC;QAEF,OAAO,IAAI,CAAC,eAAe,CAAC;IAC9B,CAAC;CAkCF","sourcesContent":["/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\n/**\n * A class that computes and caches `ValidityStateFlags` for a component with\n * a given `State` interface.\n *\n * Cached performance before computing validity is important since constraint\n * validation must be checked frequently and synchronously when properties\n * change.\n *\n * @template State The expected interface of properties relevant to constraint\n * validation.\n */\nexport abstract class Validator<State> {\n /**\n * The previous state, used to determine if state changed and validation needs\n * to be re-computed.\n */\n private prevState?: State;\n\n /**\n * The current validity state and message. This is cached and returns if\n * constraint validation state does not change.\n */\n private currentValidity: ValidityAndMessage = {\n validity: {},\n validationMessage: '',\n };\n\n /**\n * Creates a new validator.\n *\n * @param getCurrentState A callback that returns the current state of\n * constraint validation-related properties.\n */\n constructor(private readonly getCurrentState: () => State) {}\n\n /**\n * Returns the current `ValidityStateFlags` and validation message for the\n * validator.\n *\n * If the constraint validation state has not changed, this will return a\n * cached result. This is important since `getValidity()` can be called\n * frequently in response to synchronous property changes.\n *\n * @return The current validity and validation message.\n */\n getValidity(): ValidityAndMessage {\n const state = this.getCurrentState();\n const hasStateChanged =\n !this.prevState || !this.equals(this.prevState, state);\n if (!hasStateChanged) {\n return this.currentValidity;\n }\n\n const {validity, validationMessage} = this.computeValidity(state);\n this.prevState = this.copy(state);\n this.currentValidity = {\n validationMessage,\n validity: {\n // Change any `ValidityState` instances into `ValidityStateFlags` since\n // `ValidityState` cannot be easily `{...spread}`.\n badInput: validity.badInput,\n customError: validity.customError,\n patternMismatch: validity.patternMismatch,\n rangeOverflow: validity.rangeOverflow,\n rangeUnderflow: validity.rangeUnderflow,\n stepMismatch: validity.stepMismatch,\n tooLong: validity.tooLong,\n tooShort: validity.tooShort,\n typeMismatch: validity.typeMismatch,\n valueMissing: validity.valueMissing,\n },\n };\n\n return this.currentValidity;\n }\n\n /**\n * Computes the `ValidityStateFlags` and validation message for a given set\n * of constraint validation properties.\n *\n * Implementations can use platform elements like `<input>` and `<select>` to\n * sync state and compute validation along with i18n'd messages. This function\n * may be expensive, and is only called when state changes.\n *\n * @param state The new state of constraint validation properties.\n * @return An object containing a `validity` property with\n * `ValidityStateFlags` and a `validationMessage` property.\n */\n protected abstract computeValidity(state: State): ValidityAndMessage;\n\n /**\n * Checks if two states are equal. This is used to check against cached state\n * to see if validity needs to be re-computed.\n *\n * @param prev The previous state.\n * @param next The next state.\n * @return True if the states are equal, or false if not.\n */\n protected abstract equals(prev: State, next: State): boolean;\n\n /**\n * Creates a copy of a state. This is used to cache state and check if it\n * changes.\n *\n * @param state The state to copy.\n * @return A copy of the state.\n */\n protected abstract copy(state: State): State;\n}\n\n/**\n * An object containing `ValidityStateFlags` and a corresponding validation\n * message.\n */\nexport interface ValidityAndMessage {\n /**\n * Validity flags.\n */\n validity: ValidityStateFlags;\n\n /**\n * The validation message for the associated flags. It may not be an empty\n * string if any of the validity flags are `true`.\n */\n validationMessage: string;\n}\n"]}
@@ -0,0 +1,6 @@
1
+ //
2
+ // Copyright 2023 Google LLC
3
+ // SPDX-License-Identifier: Apache-2.0
4
+ //
5
+
6
+ @forward './internal/elevated-card' show theme;
@@ -0,0 +1,6 @@
1
+ //
2
+ // Copyright 2023 Google LLC
3
+ // SPDX-License-Identifier: Apache-2.0
4
+ //
5
+
6
+ @forward './internal/filled-card' show theme;
@@ -0,0 +1,6 @@
1
+ //
2
+ // Copyright 2023 Google LLC
3
+ // SPDX-License-Identifier: Apache-2.0
4
+ //
5
+
6
+ @forward './internal/outlined-card' show theme;
@@ -0,0 +1,18 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2023 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { Card } from './internal/card.js';
7
+ declare global {
8
+ interface HTMLElementTagNameMap {
9
+ 'md-elevated-card': MdElevatedCard;
10
+ }
11
+ }
12
+ /**
13
+ * @final
14
+ * @suppress {visibility}
15
+ */
16
+ export declare class MdElevatedCard extends Card {
17
+ static styles: import("lit").CSSResult[];
18
+ }
@@ -0,0 +1,21 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2023 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { __decorate } from "tslib";
7
+ import { customElement } from 'lit/decorators.js';
8
+ import { Card } from './internal/card.js';
9
+ import { styles as elevatedStyles } from './internal/elevated-styles.css.js';
10
+ import { styles as sharedStyles } from './internal/shared-styles.css.js';
11
+ /**
12
+ * @final
13
+ * @suppress {visibility}
14
+ */
15
+ export let MdElevatedCard = class MdElevatedCard extends Card {
16
+ };
17
+ MdElevatedCard.styles = [sharedStyles, elevatedStyles];
18
+ MdElevatedCard = __decorate([
19
+ customElement('md-elevated-card')
20
+ ], MdElevatedCard);
21
+ //# sourceMappingURL=elevated-card.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"elevated-card.js","sourceRoot":"","sources":["elevated-card.ts"],"names":[],"mappings":"AAAA;;;;GAIG;;AAEH,OAAO,EAAC,aAAa,EAAC,MAAM,mBAAmB,CAAC;AAEhD,OAAO,EAAC,IAAI,EAAC,MAAM,oBAAoB,CAAC;AACxC,OAAO,EAAC,MAAM,IAAI,cAAc,EAAC,MAAM,mCAAmC,CAAC;AAC3E,OAAO,EAAC,MAAM,IAAI,YAAY,EAAC,MAAM,iCAAiC,CAAC;AAQvE;;;GAGG;AAEI,WAAM,cAAc,GAApB,MAAM,cAAe,SAAQ,IAAI;;AACtB,qBAAM,GAAG,CAAC,YAAY,EAAE,cAAc,CAAC,AAAjC,CAAkC;AAD7C,cAAc;IAD1B,aAAa,CAAC,kBAAkB,CAAC;GACrB,cAAc,CAE1B","sourcesContent":["/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {customElement} from 'lit/decorators.js';\n\nimport {Card} from './internal/card.js';\nimport {styles as elevatedStyles} from './internal/elevated-styles.css.js';\nimport {styles as sharedStyles} from './internal/shared-styles.css.js';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'md-elevated-card': MdElevatedCard;\n }\n}\n\n/**\n * @final\n * @suppress {visibility}\n */\n@customElement('md-elevated-card')\nexport class MdElevatedCard extends Card {\n static override styles = [sharedStyles, elevatedStyles];\n}\n"]}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2023 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { Card } from './internal/card.js';
7
+ declare global {
8
+ interface HTMLElementTagNameMap {
9
+ 'md-filled-card': MdFilledCard;
10
+ }
11
+ }
12
+ /**
13
+ * @final
14
+ * @suppress {visibility}
15
+ */
16
+ export declare class MdFilledCard extends Card {
17
+ static styles: import("lit").CSSResult[];
18
+ }
@@ -0,0 +1,21 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2023 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { __decorate } from "tslib";
7
+ import { customElement } from 'lit/decorators.js';
8
+ import { Card } from './internal/card.js';
9
+ import { styles as filledStyles } from './internal/filled-styles.css.js';
10
+ import { styles as sharedStyles } from './internal/shared-styles.css.js';
11
+ /**
12
+ * @final
13
+ * @suppress {visibility}
14
+ */
15
+ export let MdFilledCard = class MdFilledCard extends Card {
16
+ };
17
+ MdFilledCard.styles = [sharedStyles, filledStyles];
18
+ MdFilledCard = __decorate([
19
+ customElement('md-filled-card')
20
+ ], MdFilledCard);
21
+ //# sourceMappingURL=filled-card.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filled-card.js","sourceRoot":"","sources":["filled-card.ts"],"names":[],"mappings":"AAAA;;;;GAIG;;AAEH,OAAO,EAAC,aAAa,EAAC,MAAM,mBAAmB,CAAC;AAEhD,OAAO,EAAC,IAAI,EAAC,MAAM,oBAAoB,CAAC;AACxC,OAAO,EAAC,MAAM,IAAI,YAAY,EAAC,MAAM,iCAAiC,CAAC;AACvE,OAAO,EAAC,MAAM,IAAI,YAAY,EAAC,MAAM,iCAAiC,CAAC;AAQvE;;;GAGG;AAEI,WAAM,YAAY,GAAlB,MAAM,YAAa,SAAQ,IAAI;;AACpB,mBAAM,GAAG,CAAC,YAAY,EAAE,YAAY,CAAC,AAA/B,CAAgC;AAD3C,YAAY;IADxB,aAAa,CAAC,gBAAgB,CAAC;GACnB,YAAY,CAExB","sourcesContent":["/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {customElement} from 'lit/decorators.js';\n\nimport {Card} from './internal/card.js';\nimport {styles as filledStyles} from './internal/filled-styles.css.js';\nimport {styles as sharedStyles} from './internal/shared-styles.css.js';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'md-filled-card': MdFilledCard;\n }\n}\n\n/**\n * @final\n * @suppress {visibility}\n */\n@customElement('md-filled-card')\nexport class MdFilledCard extends Card {\n static override styles = [sharedStyles, filledStyles];\n}\n"]}
@@ -0,0 +1,35 @@
1
+ //
2
+ // Copyright 2023 Google LLC
3
+ // SPDX-License-Identifier: Apache-2.0
4
+ //
5
+
6
+ // go/keep-sorted start
7
+ @use 'sass:list';
8
+ // go/keep-sorted end
9
+ // go/keep-sorted start
10
+ @use '../../../tokens';
11
+ // go/keep-sorted end
12
+
13
+ @mixin theme($tokens) {
14
+ $supported-tokens: tokens.$md-comp-elevated-card-supported-tokens;
15
+
16
+ @each $token, $value in $tokens {
17
+ @if list.index($supported-tokens, $token) == null {
18
+ @error 'Elevated card `#{$token}` is not a supported token.';
19
+ }
20
+
21
+ @if $value {
22
+ --md-elevated-card-#{$token}: #{$value};
23
+ }
24
+ }
25
+ }
26
+
27
+ @mixin styles() {
28
+ $tokens: tokens.md-comp-elevated-card-values();
29
+
30
+ :host {
31
+ @each $token, $value in $tokens {
32
+ --_#{$token}: var(--md-elevated-card-#{$token}, #{$value});
33
+ }
34
+ }
35
+ }
@@ -0,0 +1,35 @@
1
+ //
2
+ // Copyright 2023 Google LLC
3
+ // SPDX-License-Identifier: Apache-2.0
4
+ //
5
+
6
+ // go/keep-sorted start
7
+ @use 'sass:list';
8
+ // go/keep-sorted end
9
+ // go/keep-sorted start
10
+ @use '../../../tokens';
11
+ // go/keep-sorted end
12
+
13
+ @mixin theme($tokens) {
14
+ $supported-tokens: tokens.$md-comp-filled-card-supported-tokens;
15
+
16
+ @each $token, $value in $tokens {
17
+ @if list.index($supported-tokens, $token) == null {
18
+ @error 'Filled card `#{$token}` is not a supported token.';
19
+ }
20
+
21
+ @if $value {
22
+ --md-filled-card-#{$token}: #{$value};
23
+ }
24
+ }
25
+ }
26
+
27
+ @mixin styles() {
28
+ $tokens: tokens.md-comp-filled-card-values();
29
+
30
+ :host {
31
+ @each $token, $value in $tokens {
32
+ --_#{$token}: var(--md-filled-card-#{$token}, #{$value});
33
+ }
34
+ }
35
+ }
@@ -0,0 +1,39 @@
1
+ //
2
+ // Copyright 2023 Google LLC
3
+ // SPDX-License-Identifier: Apache-2.0
4
+ //
5
+
6
+ // go/keep-sorted start
7
+ @use 'sass:list';
8
+ // go/keep-sorted end
9
+ // go/keep-sorted start
10
+ @use '../../../tokens';
11
+ // go/keep-sorted end
12
+
13
+ @mixin theme($tokens) {
14
+ $supported-tokens: tokens.$md-comp-outlined-card-supported-tokens;
15
+
16
+ @each $token, $value in $tokens {
17
+ @if list.index($supported-tokens, $token) == null {
18
+ @error 'Outlined card `#{$token}` is not a supported token.';
19
+ }
20
+
21
+ @if $value {
22
+ --md-outlined-card-#{$token}: #{$value};
23
+ }
24
+ }
25
+ }
26
+
27
+ @mixin styles() {
28
+ $tokens: tokens.md-comp-outlined-card-values();
29
+
30
+ :host {
31
+ @each $token, $value in $tokens {
32
+ --_#{$token}: var(--md-outlined-card-#{$token}, #{$value});
33
+ }
34
+ }
35
+
36
+ .container {
37
+ outline: var(--_outline-width) solid var(--_outline-color);
38
+ }
39
+ }
@@ -0,0 +1,40 @@
1
+ //
2
+ // Copyright 2023 Google LLC
3
+ // SPDX-License-Identifier: Apache-2.0
4
+ //
5
+
6
+ // go/keep-sorted start
7
+ @use '../../../elevation/elevation';
8
+ // go/keep-sorted end
9
+
10
+ @mixin styles() {
11
+ :host {
12
+ border-radius: var(--_container-shape);
13
+ display: flex;
14
+ padding: 16px;
15
+ position: relative;
16
+ }
17
+
18
+ // Separate element will be needed for disabled opacities (b/307361748)
19
+ .container {
20
+ background: var(--_container-color);
21
+ border-radius: inherit;
22
+ inset: 0;
23
+ position: absolute;
24
+ }
25
+
26
+ md-elevation {
27
+ border-radius: inherit;
28
+
29
+ @include elevation.theme(
30
+ (
31
+ 'level': var(--_container-elevation),
32
+ 'shadow-color': var(--_container-shadow-color),
33
+ )
34
+ );
35
+ }
36
+
37
+ slot {
38
+ z-index: 0; // Place content above background elements
39
+ }
40
+ }
@@ -0,0 +1,13 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2023 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import '../../../elevation/elevation.js';
7
+ import { LitElement } from 'lit';
8
+ /**
9
+ * A card component.
10
+ */
11
+ export declare class Card extends LitElement {
12
+ protected render(): import("lit-html").TemplateResult<1>;
13
+ }
@@ -0,0 +1,20 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2023 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import '../../../elevation/elevation.js';
7
+ import { html, LitElement } from 'lit';
8
+ /**
9
+ * A card component.
10
+ */
11
+ export class Card extends LitElement {
12
+ render() {
13
+ return html `
14
+ <md-elevation part="elevation"></md-elevation>
15
+ <div class="container"></div>
16
+ <slot></slot>
17
+ `;
18
+ }
19
+ }
20
+ //# sourceMappingURL=card.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"card.js","sourceRoot":"","sources":["card.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,iCAAiC,CAAC;AAEzC,OAAO,EAAC,IAAI,EAAE,UAAU,EAAC,MAAM,KAAK,CAAC;AAErC;;GAEG;AACH,MAAM,OAAO,IAAK,SAAQ,UAAU;IACf,MAAM;QACvB,OAAO,IAAI,CAAA;;;;KAIV,CAAC;IACJ,CAAC;CACF","sourcesContent":["/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport '../../../elevation/elevation.js';\n\nimport {html, LitElement} from 'lit';\n\n/**\n * A card component.\n */\nexport class Card extends LitElement {\n protected override render() {\n return html`\n <md-elevation part=\"elevation\"></md-elevation>\n <div class=\"container\"></div>\n <slot></slot>\n `;\n }\n}\n"]}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2022 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { css } from 'lit';
7
+ export const styles = css `:host{--_container-color: var(--md-elevated-card-container-color, var(--md-sys-color-surface-container-low, #f7f2fa));--_container-elevation: var(--md-elevated-card-container-elevation, 1);--_container-shadow-color: var(--md-elevated-card-container-shadow-color, var(--md-sys-color-shadow, #000));--_container-shape: var(--md-elevated-card-container-shape, 12px)}/*# sourceMappingURL=elevated-styles.css.map */
8
+ `;
9
+ //# sourceMappingURL=elevated-styles.css.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"elevated-styles.css.js","sourceRoot":"","sources":["elevated-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{--_container-color: var(--md-elevated-card-container-color, var(--md-sys-color-surface-container-low, #f7f2fa));--_container-elevation: var(--md-elevated-card-container-elevation, 1);--_container-shadow-color: var(--md-elevated-card-container-shadow-color, var(--md-sys-color-shadow, #000));--_container-shape: var(--md-elevated-card-container-shape, 12px)}/*# sourceMappingURL=elevated-styles.css.map */\n`;\n "]}
@@ -0,0 +1,10 @@
1
+ //
2
+ // Copyright 2023 Google LLC
3
+ // SPDX-License-Identifier: Apache-2.0
4
+ //
5
+
6
+ // go/keep-sorted start
7
+ @use './elevated-card';
8
+ // go/keep-sorted end
9
+
10
+ @include elevated-card.styles;
@@ -0,0 +1,9 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2022 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { css } from 'lit';
7
+ export const styles = css `:host{--_container-color: var(--md-filled-card-container-color, var(--md-sys-color-surface-container-highest, #e6e0e9));--_container-elevation: var(--md-filled-card-container-elevation, 0);--_container-shadow-color: var(--md-filled-card-container-shadow-color, var(--md-sys-color-shadow, #000));--_container-shape: var(--md-filled-card-container-shape, 12px)}/*# sourceMappingURL=filled-styles.css.map */
8
+ `;
9
+ //# sourceMappingURL=filled-styles.css.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filled-styles.css.js","sourceRoot":"","sources":["filled-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{--_container-color: var(--md-filled-card-container-color, var(--md-sys-color-surface-container-highest, #e6e0e9));--_container-elevation: var(--md-filled-card-container-elevation, 0);--_container-shadow-color: var(--md-filled-card-container-shadow-color, var(--md-sys-color-shadow, #000));--_container-shape: var(--md-filled-card-container-shape, 12px)}/*# sourceMappingURL=filled-styles.css.map */\n`;\n "]}
@@ -0,0 +1,10 @@
1
+ //
2
+ // Copyright 2023 Google LLC
3
+ // SPDX-License-Identifier: Apache-2.0
4
+ //
5
+
6
+ // go/keep-sorted start
7
+ @use './filled-card';
8
+ // go/keep-sorted end
9
+
10
+ @include filled-card.styles;
@@ -0,0 +1,9 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2022 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { css } from 'lit';
7
+ export const styles = css `:host{--_container-color: var(--md-outlined-card-container-color, var(--md-sys-color-surface, #fef7ff));--_container-elevation: var(--md-outlined-card-container-elevation, 0);--_container-shadow-color: var(--md-outlined-card-container-shadow-color, var(--md-sys-color-shadow, #000));--_container-shape: var(--md-outlined-card-container-shape, 12px);--_outline-color: var(--md-outlined-card-outline-color, var(--md-sys-color-outline-variant, #cac4d0));--_outline-width: var(--md-outlined-card-outline-width, 1px)}.container{outline:var(--_outline-width) solid var(--_outline-color)}/*# sourceMappingURL=outlined-styles.css.map */
8
+ `;
9
+ //# sourceMappingURL=outlined-styles.css.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"outlined-styles.css.js","sourceRoot":"","sources":["outlined-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{--_container-color: var(--md-outlined-card-container-color, var(--md-sys-color-surface, #fef7ff));--_container-elevation: var(--md-outlined-card-container-elevation, 0);--_container-shadow-color: var(--md-outlined-card-container-shadow-color, var(--md-sys-color-shadow, #000));--_container-shape: var(--md-outlined-card-container-shape, 12px);--_outline-color: var(--md-outlined-card-outline-color, var(--md-sys-color-outline-variant, #cac4d0));--_outline-width: var(--md-outlined-card-outline-width, 1px)}.container{outline:var(--_outline-width) solid var(--_outline-color)}/*# sourceMappingURL=outlined-styles.css.map */\n`;\n "]}
@@ -0,0 +1,10 @@
1
+ //
2
+ // Copyright 2023 Google LLC
3
+ // SPDX-License-Identifier: Apache-2.0
4
+ //
5
+
6
+ // go/keep-sorted start
7
+ @use './outlined-card';
8
+ // go/keep-sorted end
9
+
10
+ @include outlined-card.styles;
@@ -0,0 +1,9 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2022 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { css } from 'lit';
7
+ export const styles = css `:host{border-radius:var(--_container-shape);display:flex;padding:16px;position:relative}.container{background:var(--_container-color);border-radius:inherit;inset:0;position:absolute}md-elevation{border-radius:inherit;--md-elevation-level: var(--_container-elevation);--md-elevation-shadow-color: var(--_container-shadow-color)}slot{z-index:0}/*# sourceMappingURL=shared-styles.css.map */
8
+ `;
9
+ //# sourceMappingURL=shared-styles.css.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shared-styles.css.js","sourceRoot":"","sources":["shared-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{border-radius:var(--_container-shape);display:flex;padding:16px;position:relative}.container{background:var(--_container-color);border-radius:inherit;inset:0;position:absolute}md-elevation{border-radius:inherit;--md-elevation-level: var(--_container-elevation);--md-elevation-shadow-color: var(--_container-shadow-color)}slot{z-index:0}/*# sourceMappingURL=shared-styles.css.map */\n`;\n "]}
@@ -0,0 +1,10 @@
1
+ //
2
+ // Copyright 2023 Google LLC
3
+ // SPDX-License-Identifier: Apache-2.0
4
+ //
5
+
6
+ // go/keep-sorted start
7
+ @use './shared';
8
+ // go/keep-sorted end
9
+
10
+ @include shared.styles;
@@ -0,0 +1,18 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2023 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { Card } from './internal/card.js';
7
+ declare global {
8
+ interface HTMLElementTagNameMap {
9
+ 'md-outlined-card': MdOutlinedCard;
10
+ }
11
+ }
12
+ /**
13
+ * @final
14
+ * @suppress {visibility}
15
+ */
16
+ export declare class MdOutlinedCard extends Card {
17
+ static styles: import("lit").CSSResult[];
18
+ }
@@ -0,0 +1,21 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2023 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { __decorate } from "tslib";
7
+ import { customElement } from 'lit/decorators.js';
8
+ import { Card } from './internal/card.js';
9
+ import { styles as outlinedStyles } from './internal/outlined-styles.css.js';
10
+ import { styles as sharedStyles } from './internal/shared-styles.css.js';
11
+ /**
12
+ * @final
13
+ * @suppress {visibility}
14
+ */
15
+ export let MdOutlinedCard = class MdOutlinedCard extends Card {
16
+ };
17
+ MdOutlinedCard.styles = [sharedStyles, outlinedStyles];
18
+ MdOutlinedCard = __decorate([
19
+ customElement('md-outlined-card')
20
+ ], MdOutlinedCard);
21
+ //# sourceMappingURL=outlined-card.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"outlined-card.js","sourceRoot":"","sources":["outlined-card.ts"],"names":[],"mappings":"AAAA;;;;GAIG;;AAEH,OAAO,EAAC,aAAa,EAAC,MAAM,mBAAmB,CAAC;AAEhD,OAAO,EAAC,IAAI,EAAC,MAAM,oBAAoB,CAAC;AACxC,OAAO,EAAC,MAAM,IAAI,cAAc,EAAC,MAAM,mCAAmC,CAAC;AAC3E,OAAO,EAAC,MAAM,IAAI,YAAY,EAAC,MAAM,iCAAiC,CAAC;AAQvE;;;GAGG;AAEI,WAAM,cAAc,GAApB,MAAM,cAAe,SAAQ,IAAI;;AACtB,qBAAM,GAAG,CAAC,YAAY,EAAE,cAAc,CAAC,AAAjC,CAAkC;AAD7C,cAAc;IAD1B,aAAa,CAAC,kBAAkB,CAAC;GACrB,cAAc,CAE1B","sourcesContent":["/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {customElement} from 'lit/decorators.js';\n\nimport {Card} from './internal/card.js';\nimport {styles as outlinedStyles} from './internal/outlined-styles.css.js';\nimport {styles as sharedStyles} from './internal/shared-styles.css.js';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'md-outlined-card': MdOutlinedCard;\n }\n}\n\n/**\n * @final\n * @suppress {visibility}\n */\n@customElement('md-outlined-card')\nexport class MdOutlinedCard extends Card {\n static override styles = [sharedStyles, outlinedStyles];\n}\n"]}
@@ -26,14 +26,14 @@ export class Item extends LitElement {
26
26
  <slot name="container"></slot>
27
27
  <slot class="non-text" name="start"></slot>
28
28
  <div class="text">
29
- <slot name="overline"
30
- @slotchange=${this.handleTextSlotChange}></slot>
31
- <slot class="default-slot"
32
- @slotchange=${this.handleTextSlotChange}></slot>
33
- <slot name="headline"
34
- @slotchange=${this.handleTextSlotChange}></slot>
35
- <slot name="supporting-text"
36
- @slotchange=${this.handleTextSlotChange}></slot>
29
+ <slot name="overline" @slotchange=${this.handleTextSlotChange}></slot>
30
+ <slot
31
+ class="default-slot"
32
+ @slotchange=${this.handleTextSlotChange}></slot>
33
+ <slot name="headline" @slotchange=${this.handleTextSlotChange}></slot>
34
+ <slot
35
+ name="supporting-text"
36
+ @slotchange=${this.handleTextSlotChange}></slot>
37
37
  </div>
38
38
  <slot class="non-text" name="trailing-supporting-text"></slot>
39
39
  <slot class="non-text" name="end"></slot>
@@ -1 +1 @@
1
- {"version":3,"file":"item.js","sourceRoot":"","sources":["item.ts"],"names":[],"mappings":"AAAA;;;;GAIG;;AAEH,OAAO,EAAC,IAAI,EAAE,UAAU,EAAC,MAAM,KAAK,CAAC;AACrC,OAAO,EAAC,QAAQ,EAAE,QAAQ,EAAC,MAAM,mBAAmB,CAAC;AAErD;;GAEG;AACH,MAAM,OAAO,IAAK,SAAQ,UAAU;IAApC;;QACE;;;;;;WAMG;QACuC,cAAS,GAAG,KAAK,CAAC;IAyC9D,CAAC;IArCU,MAAM;QACb,OAAO,IAAI,CAAA;;;;;0BAKW,IAAI,CAAC,oBAAoB;;0BAEzB,IAAI,CAAC,oBAAoB;;0BAEzB,IAAI,CAAC,oBAAoB;;0BAEzB,IAAI,CAAC,oBAAoB;;;;KAI9C,CAAC;IACJ,CAAC;IAEO,oBAAoB;QAC1B,4EAA4E;QAC5E,sEAAsE;QACtE,IAAI,WAAW,GAAG,KAAK,CAAC;QACxB,IAAI,gBAAgB,GAAG,CAAC,CAAC;QACzB,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,SAAS,EAAE;YACjC,IAAI,cAAc,CAAC,IAAI,CAAC,EAAE;gBACxB,gBAAgB,IAAI,CAAC,CAAC;aACvB;YAED,IAAI,gBAAgB,GAAG,CAAC,EAAE;gBACxB,WAAW,GAAG,IAAI,CAAC;gBACnB,MAAM;aACP;SACF;QAED,IAAI,CAAC,SAAS,GAAG,WAAW,CAAC;IAC/B,CAAC;CACF;AAzC2C;IAAzC,QAAQ,CAAC,EAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAC,CAAC;uCAAmB;AAEnB;IAAxC,QAAQ,CAAC,YAAY,CAAC;uCAAgD;AAyCzE,SAAS,cAAc,CAAC,IAAqB;IAC3C,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,aAAa,CAAC,EAAC,OAAO,EAAE,IAAI,EAAC,CAAC,EAAE;QACtD,0DAA0D;QAC1D,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,YAAY,CAAC;QACtD,oEAAoE;QACpE,kBAAkB;QAClB,MAAM,iBAAiB,GACnB,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QACtE,IAAI,SAAS,IAAI,iBAAiB,EAAE;YAClC,OAAO,IAAI,CAAC;SACb;KACF;IAED,OAAO,KAAK,CAAC;AACf,CAAC","sourcesContent":["/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {html, LitElement} from 'lit';\nimport {property, queryAll} from 'lit/decorators.js';\n\n/**\n * An item layout component.\n */\nexport class Item extends LitElement {\n /**\n * Only needed for SSR.\n *\n * Add this attribute when an item has two lines to avoid a Flash Of Unstyled\n * Content. This attribute is not needed for single line items or items with\n * three or more lines.\n */\n @property({type: Boolean, reflect: true}) multiline = false;\n\n @queryAll('.text slot') private readonly textSlots!: HTMLSlotElement[];\n\n override render() {\n return html`\n <slot name=\"container\"></slot>\n <slot class=\"non-text\" name=\"start\"></slot>\n <div class=\"text\">\n <slot name=\"overline\"\n @slotchange=${this.handleTextSlotChange}></slot>\n <slot class=\"default-slot\"\n @slotchange=${this.handleTextSlotChange}></slot>\n <slot name=\"headline\"\n @slotchange=${this.handleTextSlotChange}></slot>\n <slot name=\"supporting-text\"\n @slotchange=${this.handleTextSlotChange}></slot>\n </div>\n <slot class=\"non-text\" name=\"trailing-supporting-text\"></slot>\n <slot class=\"non-text\" name=\"end\"></slot>\n `;\n }\n\n private handleTextSlotChange() {\n // Check if there's more than one text slot with content. If so, the item is\n // multiline, which has a different min-height than single line items.\n let isMultiline = false;\n let slotsWithContent = 0;\n for (const slot of this.textSlots) {\n if (slotHasContent(slot)) {\n slotsWithContent += 1;\n }\n\n if (slotsWithContent > 1) {\n isMultiline = true;\n break;\n }\n }\n\n this.multiline = isMultiline;\n }\n}\n\nfunction slotHasContent(slot: HTMLSlotElement) {\n for (const node of slot.assignedNodes({flatten: true})) {\n // Assume there's content if there's an element slotted in\n const isElement = node.nodeType === Node.ELEMENT_NODE;\n // If there's only text nodes for the default slot, check if there's\n // non-whitespace.\n const isTextWithContent =\n node.nodeType === Node.TEXT_NODE && node.textContent?.match(/\\S/);\n if (isElement || isTextWithContent) {\n return true;\n }\n }\n\n return false;\n}\n"]}
1
+ {"version":3,"file":"item.js","sourceRoot":"","sources":["item.ts"],"names":[],"mappings":"AAAA;;;;GAIG;;AAEH,OAAO,EAAC,IAAI,EAAE,UAAU,EAAC,MAAM,KAAK,CAAC;AACrC,OAAO,EAAC,QAAQ,EAAE,QAAQ,EAAC,MAAM,mBAAmB,CAAC;AAErD;;GAEG;AACH,MAAM,OAAO,IAAK,SAAQ,UAAU;IAApC;;QACE;;;;;;WAMG;QACuC,cAAS,GAAG,KAAK,CAAC;IAyC9D,CAAC;IArCU,MAAM;QACb,OAAO,IAAI,CAAA;;;;4CAI6B,IAAI,CAAC,oBAAoB;;;wBAG7C,IAAI,CAAC,oBAAoB;4CACL,IAAI,CAAC,oBAAoB;;;wBAG7C,IAAI,CAAC,oBAAoB;;;;KAI5C,CAAC;IACJ,CAAC;IAEO,oBAAoB;QAC1B,4EAA4E;QAC5E,sEAAsE;QACtE,IAAI,WAAW,GAAG,KAAK,CAAC;QACxB,IAAI,gBAAgB,GAAG,CAAC,CAAC;QACzB,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,SAAS,EAAE;YACjC,IAAI,cAAc,CAAC,IAAI,CAAC,EAAE;gBACxB,gBAAgB,IAAI,CAAC,CAAC;aACvB;YAED,IAAI,gBAAgB,GAAG,CAAC,EAAE;gBACxB,WAAW,GAAG,IAAI,CAAC;gBACnB,MAAM;aACP;SACF;QAED,IAAI,CAAC,SAAS,GAAG,WAAW,CAAC;IAC/B,CAAC;CACF;AAzC2C;IAAzC,QAAQ,CAAC,EAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAC,CAAC;uCAAmB;AAEnB;IAAxC,QAAQ,CAAC,YAAY,CAAC;uCAAgD;AAyCzE,SAAS,cAAc,CAAC,IAAqB;IAC3C,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,aAAa,CAAC,EAAC,OAAO,EAAE,IAAI,EAAC,CAAC,EAAE;QACtD,0DAA0D;QAC1D,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,YAAY,CAAC;QACtD,oEAAoE;QACpE,kBAAkB;QAClB,MAAM,iBAAiB,GACrB,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QACpE,IAAI,SAAS,IAAI,iBAAiB,EAAE;YAClC,OAAO,IAAI,CAAC;SACb;KACF;IAED,OAAO,KAAK,CAAC;AACf,CAAC","sourcesContent":["/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {html, LitElement} from 'lit';\nimport {property, queryAll} from 'lit/decorators.js';\n\n/**\n * An item layout component.\n */\nexport class Item extends LitElement {\n /**\n * Only needed for SSR.\n *\n * Add this attribute when an item has two lines to avoid a Flash Of Unstyled\n * Content. This attribute is not needed for single line items or items with\n * three or more lines.\n */\n @property({type: Boolean, reflect: true}) multiline = false;\n\n @queryAll('.text slot') private readonly textSlots!: HTMLSlotElement[];\n\n override render() {\n return html`\n <slot name=\"container\"></slot>\n <slot class=\"non-text\" name=\"start\"></slot>\n <div class=\"text\">\n <slot name=\"overline\" @slotchange=${this.handleTextSlotChange}></slot>\n <slot\n class=\"default-slot\"\n @slotchange=${this.handleTextSlotChange}></slot>\n <slot name=\"headline\" @slotchange=${this.handleTextSlotChange}></slot>\n <slot\n name=\"supporting-text\"\n @slotchange=${this.handleTextSlotChange}></slot>\n </div>\n <slot class=\"non-text\" name=\"trailing-supporting-text\"></slot>\n <slot class=\"non-text\" name=\"end\"></slot>\n `;\n }\n\n private handleTextSlotChange() {\n // Check if there's more than one text slot with content. If so, the item is\n // multiline, which has a different min-height than single line items.\n let isMultiline = false;\n let slotsWithContent = 0;\n for (const slot of this.textSlots) {\n if (slotHasContent(slot)) {\n slotsWithContent += 1;\n }\n\n if (slotsWithContent > 1) {\n isMultiline = true;\n break;\n }\n }\n\n this.multiline = isMultiline;\n }\n}\n\nfunction slotHasContent(slot: HTMLSlotElement) {\n for (const node of slot.assignedNodes({flatten: true})) {\n // Assume there's content if there's an element slotted in\n const isElement = node.nodeType === Node.ELEMENT_NODE;\n // If there's only text nodes for the default slot, check if there's\n // non-whitespace.\n const isTextWithContent =\n node.nodeType === Node.TEXT_NODE && node.textContent?.match(/\\S/);\n if (isElement || isTextWithContent) {\n return true;\n }\n }\n\n return false;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["constants.ts"],"names":[],"mappings":"AAAA;;;;GAIG","sourcesContent":["/**\n * @license\n * Copyright 2022 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {NavigationTabState} from '../../navigationtab/internal/state.js';\n\n/**\n * MDCNavigationTabInteractionEventDetail provides details for the interaction\n * event.\n */\nexport interface MDCNavigationTabInteractionEventDetail {\n state: NavigationTabState;\n}\n\n/**\n * NavigationTabInteractionEvent is the custom event for the interaction event.\n */\nexport type NavigationTabInteractionEvent =\n CustomEvent<MDCNavigationTabInteractionEventDetail>;\n"]}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["constants.ts"],"names":[],"mappings":"AAAA;;;;GAIG","sourcesContent":["/**\n * @license\n * Copyright 2022 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {NavigationTabState} from '../../navigationtab/internal/state.js';\n\n/**\n * MDCNavigationTabInteractionEventDetail provides details for the interaction\n * event.\n */\nexport interface MDCNavigationTabInteractionEventDetail {\n state: NavigationTabState;\n}\n\n/**\n * NavigationTabInteractionEvent is the custom event for the interaction event.\n */\nexport type NavigationTabInteractionEvent =\n CustomEvent<MDCNavigationTabInteractionEventDetail>;\n"]}
@@ -9,6 +9,9 @@ import { NavigationTab } from '../../navigationtab/internal/navigation-tab.js';
9
9
  import { NavigationBarState } from './state.js';
10
10
  /**
11
11
  * TODO(b/265346501): add docs
12
+ *
13
+ * @fires navigation-bar-activated {CustomEvent<tab: NavigationTab, activeIndex: number>}
14
+ * Dispatched whenever the `activeIndex` changes. --bubbles --composed
12
15
  */
13
16
  export declare class NavigationBar extends LitElement implements NavigationBarState {
14
17
  activeIndex: number;
@@ -11,6 +11,9 @@ import { requestUpdateOnAriaChange } from '../../../internal/aria/delegate.js';
11
11
  import { isRtl } from '../../../internal/controller/is-rtl.js';
12
12
  /**
13
13
  * TODO(b/265346501): add docs
14
+ *
15
+ * @fires navigation-bar-activated {CustomEvent<tab: NavigationTab, activeIndex: number>}
16
+ * Dispatched whenever the `activeIndex` changes. --bubbles --composed
14
17
  */
15
18
  export class NavigationBar extends LitElement {
16
19
  constructor() {
@@ -22,23 +25,27 @@ export class NavigationBar extends LitElement {
22
25
  render() {
23
26
  // Needed for closure conformance
24
27
  const { ariaLabel } = this;
25
- return html `<div class="md3-navigation-bar"
26
- role="tablist"
27
- aria-label=${ariaLabel || nothing}
28
- @keydown="${this.handleKeydown}"
29
- @navigation-tab-interaction="${this.handleNavigationTabInteraction}"
30
- @navigation-tab-rendered=${this.handleNavigationTabConnected}
31
- ><md-elevation></md-elevation
32
- ><div class="md3-navigation-bar__tabs-slot-container"
33
- ><slot></slot></div></div>`;
28
+ return html `<div
29
+ class="md3-navigation-bar"
30
+ role="tablist"
31
+ aria-label=${ariaLabel || nothing}
32
+ @keydown="${this.handleKeydown}"
33
+ @navigation-tab-interaction="${this.handleNavigationTabInteraction}"
34
+ @navigation-tab-rendered=${this.handleNavigationTabConnected}
35
+ ><md-elevation></md-elevation
36
+ ><div class="md3-navigation-bar__tabs-slot-container"><slot></slot></div
37
+ ></div>`;
34
38
  }
35
39
  updated(changedProperties) {
36
40
  if (changedProperties.has('activeIndex')) {
37
41
  this.onActiveIndexChange(this.activeIndex);
38
42
  this.dispatchEvent(new CustomEvent('navigation-bar-activated', {
39
- detail: { tab: this.tabs[this.activeIndex], activeIndex: this.activeIndex },
43
+ detail: {
44
+ tab: this.tabs[this.activeIndex],
45
+ activeIndex: this.activeIndex,
46
+ },
40
47
  bubbles: true,
41
- composed: true
48
+ composed: true,
42
49
  }));
43
50
  }
44
51
  if (changedProperties.has('hideInactiveLabels')) {