@shortfuse/materialdesignweb 0.2.0 → 0.5.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 (416) hide show
  1. package/.browserslistrc +2 -1
  2. package/.eslintrc.json +188 -30
  3. package/.stylelintrc.json +643 -2
  4. package/.vscode/launch.json +20 -5
  5. package/.vscode/settings.json +3 -0
  6. package/CHANGELOG.md +36 -0
  7. package/README.md +82 -2
  8. package/adapters/datatable/column.js +176 -0
  9. package/adapters/datatable/index.js +253 -437
  10. package/adapters/dom/index.js +586 -0
  11. package/adapters/list/index.js +36 -113
  12. package/adapters/search/index.js +153 -180
  13. package/components/appbar/_spec.scss +165 -0
  14. package/components/appbar/_theme.scss +0 -0
  15. package/components/appbar/index.scss +2 -0
  16. package/components/banner/_spec.scss +83 -0
  17. package/components/banner/_theme.scss +0 -0
  18. package/components/banner/index.scss +2 -0
  19. package/components/bottomnav/README.md +4 -4
  20. package/components/bottomnav/_spec.scss +149 -0
  21. package/components/bottomnav/_theme.scss +0 -0
  22. package/components/bottomnav/index.js +100 -120
  23. package/components/bottomnav/index.scss +2 -0
  24. package/components/bottomnav/item.js +88 -0
  25. package/components/button/README.md +16 -22
  26. package/components/button/_spec.scss +162 -0
  27. package/components/button/_theme.scss +42 -0
  28. package/components/button/index.eta +32 -0
  29. package/components/button/index.js +37 -48
  30. package/components/button/index.pug +18 -0
  31. package/components/button/index.scss +2 -0
  32. package/components/card/_spec.scss +241 -0
  33. package/components/card/_theme.scss +0 -0
  34. package/components/card/index.scss +2 -0
  35. package/components/chip/_spec.scss +111 -0
  36. package/components/chip/_theme.scss +105 -0
  37. package/components/chip/index.js +23 -0
  38. package/components/chip/index.scss +2 -0
  39. package/components/chip/item.js +20 -0
  40. package/components/datatable/_spec.scss +225 -0
  41. package/components/datatable/_theme.scss +128 -0
  42. package/components/datatable/cell.js +44 -0
  43. package/components/datatable/columnheader.js +46 -0
  44. package/components/datatable/index.js +339 -443
  45. package/components/datatable/index.scss +2 -0
  46. package/components/datatable/row.js +48 -0
  47. package/components/datatable/rowheader.js +18 -0
  48. package/components/dialog/_spec.scss +203 -0
  49. package/components/dialog/_theme.scss +7 -0
  50. package/components/dialog/index.js +512 -437
  51. package/components/dialog/index.scss +2 -0
  52. package/components/divider/_spec.scss +11 -0
  53. package/components/divider/_theme.scss +0 -0
  54. package/components/divider/index.scss +2 -0
  55. package/components/elevation/_spec.scss +9 -0
  56. package/components/elevation/_theme.scss +0 -0
  57. package/components/elevation/index.scss +2 -0
  58. package/components/fab/{style.scss → _spec.scss} +104 -79
  59. package/components/fab/_theme.scss +0 -0
  60. package/components/fab/index.js +85 -79
  61. package/components/fab/index.scss +2 -0
  62. package/components/grid/_spec.scss +169 -0
  63. package/components/grid/_theme.scss +0 -0
  64. package/components/grid/index.scss +2 -0
  65. package/components/layout/_mixins.scss +11 -0
  66. package/components/layout/_spec.scss +916 -0
  67. package/components/layout/_theme.scss +19 -0
  68. package/components/layout/index.js +454 -0
  69. package/components/layout/index.scss +2 -0
  70. package/components/list/_spec.scss +363 -0
  71. package/components/list/_theme.scss +102 -0
  72. package/components/list/content.js +106 -0
  73. package/components/list/index.js +234 -79
  74. package/components/list/index.scss +2 -0
  75. package/components/list/item.js +167 -0
  76. package/components/list/secondary.js +45 -0
  77. package/components/menu/_spec.scss +329 -0
  78. package/components/menu/_theme.scss +0 -0
  79. package/components/menu/index.js +636 -651
  80. package/components/menu/index.scss +2 -0
  81. package/components/menu/item.js +231 -0
  82. package/components/progress/_spec.scss +156 -0
  83. package/components/progress/_theme.scss +0 -0
  84. package/components/progress/index.js +29 -13
  85. package/components/progress/index.scss +2 -0
  86. package/components/selection/_spec.scss +376 -0
  87. package/components/selection/_theme.scss +134 -0
  88. package/components/selection/index.eta +60 -0
  89. package/components/selection/index.js +70 -0
  90. package/components/selection/index.pug +30 -0
  91. package/components/selection/index.scss +2 -0
  92. package/components/selection/input.js +54 -0
  93. package/components/selection/radiogroup.js +40 -0
  94. package/components/slider/{style.scss → _spec.scss} +31 -34
  95. package/components/slider/_theme.scss +0 -0
  96. package/components/slider/index.scss +2 -0
  97. package/components/snackbar/_spec.scss +150 -0
  98. package/components/snackbar/_theme.scss +0 -0
  99. package/components/snackbar/index.js +293 -206
  100. package/components/snackbar/index.scss +2 -0
  101. package/components/tab/_spec.scss +220 -0
  102. package/components/tab/_theme.scss +0 -0
  103. package/components/tab/content.js +210 -0
  104. package/components/tab/index.js +229 -213
  105. package/components/tab/index.scss +2 -0
  106. package/components/tab/item.js +88 -0
  107. package/components/tab/list.js +196 -0
  108. package/components/tab/panel.js +54 -0
  109. package/components/textfield/README.md +4 -4
  110. package/components/textfield/_spec.scss +763 -0
  111. package/components/textfield/_theme.scss +264 -0
  112. package/components/textfield/index.eta +74 -0
  113. package/components/textfield/index.js +132 -138
  114. package/components/textfield/index.pug +30 -0
  115. package/components/textfield/index.scss +2 -0
  116. package/components/tooltip/_spec.scss +185 -0
  117. package/components/tooltip/_theme.scss +0 -0
  118. package/components/tooltip/index.scss +2 -0
  119. package/components/type/_spec.scss +227 -0
  120. package/components/type/_theme.scss +0 -0
  121. package/components/type/index.scss +2 -0
  122. package/core/_breakpoint.scss +189 -0
  123. package/core/_elevation.scss +78 -0
  124. package/core/_length.scss +8 -0
  125. package/core/_motion.scss +31 -0
  126. package/core/_platform.scss +12 -0
  127. package/core/_type.scss +128 -0
  128. package/core/aria/attributes.js +141 -0
  129. package/core/aria/button.js +49 -0
  130. package/core/aria/keyboard.js +92 -0
  131. package/core/aria/rovingtabindex.js +175 -0
  132. package/core/aria/tab.js +59 -0
  133. package/core/document/index.js +39 -0
  134. package/core/dom.js +180 -0
  135. package/core/overlay/_spec.scss +28 -0
  136. package/core/overlay/_theme.scss +147 -0
  137. package/core/overlay/index.js +95 -0
  138. package/core/overlay/index.scss +2 -0
  139. package/core/ripple/_spec.scss +196 -0
  140. package/core/ripple/_theme.scss +20 -0
  141. package/core/ripple/index.js +286 -0
  142. package/core/ripple/index.scss +2 -0
  143. package/core/theme/_aliases.scss +15 -0
  144. package/core/theme/_config.scss +8 -0
  145. package/core/theme/_functions.scss +22 -0
  146. package/{components/theming/palettes.scss → core/theme/_palettes.scss} +173 -151
  147. package/core/theme/_spec.scss +0 -0
  148. package/core/theme/_theme.scss +268 -0
  149. package/core/theme/index.js +50 -0
  150. package/core/theme/index.scss +4 -0
  151. package/core/throttler.js +42 -0
  152. package/core/transition/index.js +465 -0
  153. package/docs/_flex.scss +28 -0
  154. package/docs/_menuoptions.js +183 -0
  155. package/docs/_partials/_androidnavbar.eta +5 -0
  156. package/docs/_partials/_androidstatusbar.eta +13 -0
  157. package/docs/_partials/_appbar.eta +27 -0
  158. package/docs/_partials/_buttontest.eta +31 -0
  159. package/docs/_partials/_header.eta +146 -0
  160. package/docs/_partials/_navlistitem.eta +16 -0
  161. package/docs/_partials/_target.eta +1 -0
  162. package/docs/_sample-utils.js +88 -0
  163. package/docs/{src/storage.js → _storage.js} +0 -0
  164. package/docs/docs.scss +331 -0
  165. package/docs/framework.scss +26 -0
  166. package/docs/index.eta +12 -0
  167. package/docs/index.js +7 -0
  168. package/docs/pages/appbar.eta +108 -0
  169. package/docs/pages/appbar.js +0 -0
  170. package/docs/pages/bottomnav.eta +188 -0
  171. package/docs/pages/bottomnav.js +118 -0
  172. package/docs/pages/button.eta +124 -0
  173. package/docs/pages/button.js +224 -0
  174. package/docs/pages/card.eta +90 -0
  175. package/docs/pages/card.js +175 -0
  176. package/docs/pages/chip.eta +122 -0
  177. package/docs/pages/chip.js +80 -0
  178. package/docs/pages/color.eta +143 -0
  179. package/docs/pages/color.js +261 -0
  180. package/docs/pages/datatable.eta +323 -0
  181. package/docs/pages/datatable.js +160 -0
  182. package/docs/pages/dialog.eta +184 -0
  183. package/docs/{src/components → pages}/dialog.js +35 -48
  184. package/docs/pages/dom.eta +26 -0
  185. package/docs/pages/dom.js +140 -0
  186. package/docs/pages/elevation.eta +35 -0
  187. package/docs/pages/elevation.js +0 -0
  188. package/docs/pages/fab.eta +99 -0
  189. package/docs/{src/components → pages}/fab.js +6 -13
  190. package/docs/pages/grid.eta +135 -0
  191. package/docs/pages/grid.js +128 -0
  192. package/docs/pages/layout.eta +8 -0
  193. package/docs/pages/layout.js +0 -0
  194. package/docs/pages/list.eta +465 -0
  195. package/docs/pages/list.js +8 -0
  196. package/docs/pages/menu.eta +274 -0
  197. package/docs/{src/components → pages}/menu.js +26 -42
  198. package/docs/pages/overlay.eta +69 -0
  199. package/docs/pages/overlay.js +3 -0
  200. package/docs/pages/progress.eta +23 -0
  201. package/docs/{src/components → pages}/progress.js +2 -4
  202. package/docs/pages/ripple.eta +27 -0
  203. package/docs/pages/ripple.js +3 -0
  204. package/docs/pages/search.eta +242 -0
  205. package/docs/pages/search.js +226 -0
  206. package/docs/pages/selection.eta +107 -0
  207. package/docs/pages/selection.js +12 -0
  208. package/docs/pages/slider.eta +23 -0
  209. package/docs/pages/slider.js +0 -0
  210. package/docs/pages/snackbar.eta +83 -0
  211. package/docs/{src/components → pages}/snackbar.js +31 -36
  212. package/docs/pages/tab.eta +407 -0
  213. package/docs/pages/tab.js +152 -0
  214. package/docs/pages/textfield.eta +487 -0
  215. package/docs/{src/components → pages}/textfield.js +41 -45
  216. package/docs/pages/tooltip.eta +92 -0
  217. package/docs/pages/tooltip.js +0 -0
  218. package/docs/pages/transition.eta +117 -0
  219. package/docs/pages/transition.js +52 -0
  220. package/docs/pages/type.eta +31 -0
  221. package/docs/pages/type.js +0 -0
  222. package/docs/postrender.js +41 -0
  223. package/docs/prerender.js +16 -0
  224. package/docs/pwa/_dialogs.eta +143 -0
  225. package/docs/pwa/_menus.eta +16 -0
  226. package/docs/pwa/pwa-prerender.js +3 -0
  227. package/docs/pwa/pwa.eta +478 -0
  228. package/docs/pwa/pwa.js +298 -0
  229. package/docs/pwa/pwa.scss +31 -0
  230. package/docs/themes/theme-colored.scss +15 -0
  231. package/docs/themes/theme-default.scss +3 -0
  232. package/index.scss +27 -0
  233. package/jsconfig.json +8 -2
  234. package/package.json +54 -27
  235. package/scripts/deploy-docs.sh +9 -0
  236. package/templates/index.eta +2 -0
  237. package/templates/index.pug +3 -0
  238. package/tsconfig.json +16 -0
  239. package/utils/function.js +3 -0
  240. package/webpack.config.js +224 -68
  241. package/_index.scss +0 -4
  242. package/components/all-components.scss +0 -21
  243. package/components/bottomnav/style.scss +0 -190
  244. package/components/bottomnav/theming.scss +0 -76
  245. package/components/button/style.scss +0 -315
  246. package/components/button/theming.scss +0 -134
  247. package/components/card/style.scss +0 -175
  248. package/components/card/theming.scss +0 -43
  249. package/components/common/dom.js +0 -51
  250. package/components/common/functions.scss +0 -174
  251. package/components/common/mixins.scss +0 -122
  252. package/components/common/motion.scss +0 -36
  253. package/components/common/type.scss +0 -104
  254. package/components/common/variables.scss +0 -46
  255. package/components/datatable/style.scss +0 -257
  256. package/components/datatable/theming.scss +0 -119
  257. package/components/dialog/style.scss +0 -159
  258. package/components/dialog/theming.scss +0 -29
  259. package/components/divider/style.scss +0 -7
  260. package/components/divider/theming.scss +0 -20
  261. package/components/elevation/style.scss +0 -32
  262. package/components/layout/style.scss +0 -223
  263. package/components/list/style.scss +0 -358
  264. package/components/list/theming.scss +0 -83
  265. package/components/menu/style.scss +0 -280
  266. package/components/menu/theming.scss +0 -80
  267. package/components/navdrawer/index.js +0 -200
  268. package/components/navdrawer/style.scss +0 -595
  269. package/components/navdrawer/theming.scss +0 -62
  270. package/components/progress/style.scss +0 -136
  271. package/components/ripple/index.js +0 -63
  272. package/components/ripple/ripple.scss +0 -122
  273. package/components/selection/style.scss +0 -320
  274. package/components/selection/theming.scss +0 -98
  275. package/components/snackbar/style.scss +0 -212
  276. package/components/switch/style.scss +0 -3
  277. package/components/tab/style.scss +0 -275
  278. package/components/tab/theming.scss +0 -34
  279. package/components/template/theming.scss +0 -31
  280. package/components/textfield/style.scss +0 -795
  281. package/components/textfield/theming.scss +0 -256
  282. package/components/theming/globals.scss +0 -25
  283. package/components/theming/theming.scss +0 -559
  284. package/components/toolbar/style.scss +0 -190
  285. package/components/toolbar/theming.scss +0 -32
  286. package/components/tooltip/style.scss +0 -135
  287. package/components/type/style.scss +0 -167
  288. package/components/type/theming.scss +0 -25
  289. package/docs/bottomnav.html +0 -1
  290. package/docs/bottomnav.min.js +0 -2
  291. package/docs/bottomnav.min.js.map +0 -1
  292. package/docs/button.html +0 -1
  293. package/docs/button.min.js +0 -2
  294. package/docs/button.min.js.map +0 -1
  295. package/docs/card.html +0 -1
  296. package/docs/card.min.js +0 -2
  297. package/docs/card.min.js.map +0 -1
  298. package/docs/components.min.css +0 -1
  299. package/docs/components.min.js +0 -2
  300. package/docs/components.min.js.map +0 -1
  301. package/docs/datatable.html +0 -1
  302. package/docs/datatable.min.js +0 -2
  303. package/docs/datatable.min.js.map +0 -1
  304. package/docs/dialog.html +0 -1
  305. package/docs/dialog.min.js +0 -2
  306. package/docs/dialog.min.js.map +0 -1
  307. package/docs/docs.min.css +0 -1
  308. package/docs/docs.min.js +0 -2
  309. package/docs/docs.min.js.map +0 -1
  310. package/docs/elevation.html +0 -1
  311. package/docs/elevation.min.js +0 -2
  312. package/docs/elevation.min.js.map +0 -1
  313. package/docs/fab.html +0 -1
  314. package/docs/fab.min.js +0 -2
  315. package/docs/fab.min.js.map +0 -1
  316. package/docs/index.html +0 -1
  317. package/docs/index.min.js +0 -2
  318. package/docs/index.min.js.map +0 -1
  319. package/docs/layout.html +0 -1
  320. package/docs/layout.min.js +0 -2
  321. package/docs/layout.min.js.map +0 -1
  322. package/docs/list.html +0 -1
  323. package/docs/list.min.js +0 -2
  324. package/docs/list.min.js.map +0 -1
  325. package/docs/menu.html +0 -1
  326. package/docs/menu.min.js +0 -2
  327. package/docs/menu.min.js.map +0 -1
  328. package/docs/navdrawer.html +0 -1
  329. package/docs/navdrawer.min.js +0 -2
  330. package/docs/navdrawer.min.js.map +0 -1
  331. package/docs/prerender.min.js +0 -2
  332. package/docs/prerender.min.js.map +0 -1
  333. package/docs/progress.html +0 -1
  334. package/docs/progress.min.js +0 -2
  335. package/docs/progress.min.js.map +0 -1
  336. package/docs/search.html +0 -1
  337. package/docs/search.min.js +0 -2
  338. package/docs/search.min.js.map +0 -1
  339. package/docs/selection.html +0 -1
  340. package/docs/selection.min.js +0 -2
  341. package/docs/selection.min.js.map +0 -1
  342. package/docs/slider.html +0 -1
  343. package/docs/slider.min.js +0 -2
  344. package/docs/slider.min.js.map +0 -1
  345. package/docs/snackbar.html +0 -1
  346. package/docs/snackbar.min.js +0 -2
  347. package/docs/snackbar.min.js.map +0 -1
  348. package/docs/src/components/bottomnav.js +0 -16
  349. package/docs/src/components/bottomnav.pug +0 -112
  350. package/docs/src/components/button.js +0 -156
  351. package/docs/src/components/button.pug +0 -194
  352. package/docs/src/components/card.js +0 -136
  353. package/docs/src/components/card.pug +0 -133
  354. package/docs/src/components/datatable.js +0 -183
  355. package/docs/src/components/datatable.pug +0 -324
  356. package/docs/src/components/dialog.pug +0 -138
  357. package/docs/src/components/elevation.js +0 -3
  358. package/docs/src/components/elevation.pug +0 -17
  359. package/docs/src/components/fab.pug +0 -84
  360. package/docs/src/components/layout.js +0 -116
  361. package/docs/src/components/layout.pug +0 -104
  362. package/docs/src/components/list.js +0 -15
  363. package/docs/src/components/list.pug +0 -293
  364. package/docs/src/components/menu.pug +0 -292
  365. package/docs/src/components/navdrawer.js +0 -112
  366. package/docs/src/components/navdrawer.pug +0 -113
  367. package/docs/src/components/progress.pug +0 -17
  368. package/docs/src/components/search.js +0 -206
  369. package/docs/src/components/search.pug +0 -149
  370. package/docs/src/components/selection.js +0 -6
  371. package/docs/src/components/selection.pug +0 -116
  372. package/docs/src/components/slider.js +0 -3
  373. package/docs/src/components/slider.pug +0 -19
  374. package/docs/src/components/snackbar.pug +0 -145
  375. package/docs/src/components/tab.js +0 -137
  376. package/docs/src/components/tab.pug +0 -329
  377. package/docs/src/components/textfield.pug +0 -416
  378. package/docs/src/components/toolbar.js +0 -6
  379. package/docs/src/components/toolbar.pug +0 -86
  380. package/docs/src/components/tooltip.js +0 -6
  381. package/docs/src/components/tooltip.pug +0 -76
  382. package/docs/src/components/type.js +0 -6
  383. package/docs/src/components/type.pug +0 -34
  384. package/docs/src/components.scss +0 -1
  385. package/docs/src/docs.scss +0 -284
  386. package/docs/src/index.js +0 -3
  387. package/docs/src/index.pug +0 -6
  388. package/docs/src/menuoptions.js +0 -136
  389. package/docs/src/mixins.pug +0 -139
  390. package/docs/src/prerender.js +0 -26
  391. package/docs/src/sample-utils.js +0 -108
  392. package/docs/src/targetHandler.js +0 -50
  393. package/docs/src/theming.ie11.scss +0 -18
  394. package/docs/src/theming.scss +0 -18
  395. package/docs/tab.html +0 -1
  396. package/docs/tab.min.js +0 -2
  397. package/docs/tab.min.js.map +0 -1
  398. package/docs/textfield.html +0 -2
  399. package/docs/textfield.min.js +0 -2
  400. package/docs/textfield.min.js.map +0 -1
  401. package/docs/theming.ie11.min.css +0 -1
  402. package/docs/theming.ie11.min.js +0 -2
  403. package/docs/theming.ie11.min.js.map +0 -1
  404. package/docs/theming.min.css +0 -1
  405. package/docs/theming.min.js +0 -2
  406. package/docs/theming.min.js.map +0 -1
  407. package/docs/toolbar.html +0 -1
  408. package/docs/toolbar.min.js +0 -2
  409. package/docs/toolbar.min.js.map +0 -1
  410. package/docs/tooltip.html +0 -1
  411. package/docs/tooltip.min.js +0 -2
  412. package/docs/tooltip.min.js.map +0 -1
  413. package/docs/type.html +0 -1
  414. package/docs/type.min.js +0 -2
  415. package/docs/type.min.js.map +0 -1
  416. package/index.js +0 -16
@@ -0,0 +1,83 @@
1
+ <% var T = '../../templates/index.eta' %>
2
+ <% layout('../_partials/_header.eta', {page: 'snackbar'}) %>
3
+ <div class="mdw-grid" mdw-margin-top mdw-margin-bottom>
4
+ <div class="mdw-grid__item" mdw-colspan="100%">
5
+ <h5 class="mdw-type" mdw-baseline-next="36">Snackbars provide brief messages about app processes at the bottom of the screen.</h5>
6
+ <p class="mdw-type">Snackbars inform users of a process that an app has performed or will perform. They appear temporarily, towards the bottom of the screen. They shouldn’t interrupt the user experience, and they don’t require user input to disappear.</p>
7
+ </div>
8
+ <div class="mdw-grid__item" mdw-colspan="100%">
9
+ <div class="mdw-grid__content component-sample" style="padding:0;">
10
+ <div class="mdw-grid" style="width:100%;height:100%;">
11
+ <div class="mdw-grid__item" mdw-colspan="100%">
12
+ <div>
13
+ <%~ includeFile(T, { button: { ink:'secondary' , text:'Create New' }}) %>
14
+ </div>
15
+ </div>
16
+ <div class="mdw-grid__item" mdw-colspan="100%">
17
+ <div class="mdw-snackbar__wrapper">
18
+ <div class="mdw-snackbar__container">
19
+ <div class="mdw-snackbar mdw-theme" aria-hidden="false" mdw-surface="background 900" mdw-dark>
20
+ <span>Short message snackbar.</span>
21
+ <%~ includeFile(T, { button: { ink:'secondary', text:'Action' }}) %>
22
+ </div>
23
+ </div>
24
+ </div>
25
+ </div>
26
+ <div class="mdw-grid__item" mdw-colspan="100%">
27
+ <div class="mdw-snackbar__wrapper">
28
+ <div class="mdw-snackbar__container js-sample"></div>
29
+ </div>
30
+ </div>
31
+ </div>
32
+ </div>
33
+ </div>
34
+ <div class="mdw-grid__item" mdw-colspan="4">
35
+ <div class="mdw-type" mdw-style="subtitle">Javascript</div>
36
+ <div class="docs-option-list">
37
+ <%~ includeFile(T, { selection: { ink:'secondary', name:'javascript', type:'radio', value:'required', disabled:true, text:'Required' }}) %>
38
+ <%~ includeFile(T, { selection: { ink:'secondary', name:'javascript', type:'radio', value:'optional', checked:true, text:'Optional' }}) %>
39
+ <%~ includeFile(T, { selection: { ink:'secondary', name:'javascript', type:'radio', value:'none' , text:'None' }}) %>
40
+ </div>
41
+ <div class="mdw-type" mdw-style="subtitle">Text</div>
42
+ <div class="docs-option-list">
43
+ <%~ includeFile(T, { selection: { ink:'secondary', name:'text', type:'radio', value:'short', checked:true, text:'Short' }}) %>
44
+ <%~ includeFile(T, { selection: { ink:'secondary', name:'text', type:'radio', value:'long', text:'Long' }}) %>
45
+ <%~ includeFile(T, { selection: { ink:'secondary', name:'text', type:'radio', value:'line-break' , text:'Explicit line-break' }}) %>
46
+ </div>
47
+ <div class="mdw-type" mdw-style="subtitle">Button</div>
48
+ <div class="docs-option-list">
49
+ <%~ includeFile(T, { selection: { ink:'secondary', name:'button', type:'radio', value:'none', text:'None' }}) %>
50
+ <%~ includeFile(T, { selection: { ink:'secondary', name:'button', type:'radio', value:'short', checked:true, text:'Short' }}) %>
51
+ <%~ includeFile(T, { selection: { ink:'secondary', name:'button', type:'radio', value:'long' , text:'Long' }}) %>
52
+ </div>
53
+ <div class="mdw-type" mdw-style="subtitle">Visibility</div>
54
+ <div class="docs-option-list">
55
+ <%~ includeFile(T, { selection: { ink:'secondary', name:'visibility', type:'radio', value:'show', checked:true, text:'Show' }}) %>
56
+ <%~ includeFile(T, { selection: { ink:'secondary', name:'visibility', type:'radio', value:'hide', text:'Hide' }}) %>
57
+ </div>
58
+ <div class="mdw-type" mdw-style="subtitle">Position</div>
59
+ <div class="docs-option-list">
60
+ <%~ includeFile(T, { selection: { ink:'secondary', name:'position', type:'radio', value:'auto', checked:true, text:'Start (Default)' }}) %>
61
+ <%~ includeFile(T, { selection: { ink:'secondary', name:'position', type:'radio', value:'center', text:'Center' }}) %>
62
+ <%~ includeFile(T, { selection: { ink:'secondary', name:'position', type:'radio', value:'end', text:'End' }}) %>
63
+ </div>
64
+ <div class="mdw-type" mdw-style="subtitle">Options</div>
65
+ <div class="docs-option-list">
66
+ <%~ includeFile(T, { selection: { ink:'secondary', name:'stacked', text:'Stacked' }}) %>
67
+ </div>
68
+ </div>
69
+ <div class="mdw-grid__item" mdw-colspan="100%" style="max-height:0"></div>
70
+ <div class="mdw-grid__item" mdw-colspan="6">
71
+ <div class="display-flex" flex-column>
72
+ <h6 class="mdw-type">HTML Code</h6>
73
+ <div class="mdw-card mdw-theme component-code component-html" mdw-surface="card" mdw-border-ink></div>
74
+ </div>
75
+ </div>
76
+ <div class="mdw-grid__item" mdw-colspan="6">
77
+ <div class="display-flex" flex-column>
78
+ <h6 class="mdw-type">Javascript Code</h6>
79
+ <div class="mdw-card mdw-theme component-code component-js" mdw-surface="card" mdw-border-ink></div>
80
+ </div>
81
+ </div>
82
+ </div>
83
+ <script src="snackbar.min.js"></script>
@@ -1,14 +1,5 @@
1
- import { setupMenuOptions } from '../menuoptions';
2
- import { convertElementToCode, attachEventListener } from '../sample-utils';
3
- import { Snackbar } from '../../../components/snackbar/index';
4
-
5
- /** @return {void} */
6
- function initializeSampleComponents() {
7
- const snackbars = document.querySelectorAll('.js .mdw-snackbar');
8
- for (let i = 0; i < snackbars.length; i += 1) {
9
- Snackbar.attach(snackbars.item(i));
10
- }
11
- }
1
+ import * as Snackbar from '../../components/snackbar/index.js';
2
+ import { convertElementToCode } from '../_sample-utils.js';
12
3
 
13
4
  /** @type {HTMLElement} */
14
5
  let sampleComponent;
@@ -19,20 +10,32 @@ function updateSampleCode() {
19
10
  const jsOptional = document.querySelector('input[name="javascript"][value="optional"]').checked;
20
11
  const useJS = jsRequired || jsOptional;
21
12
 
13
+ const snackbar = sampleComponent.getElementsByClassName('mdw-snackbar')[0];
14
+
22
15
  // Strip JS related elements and attributes
23
- Snackbar.detach(sampleComponent);
16
+ Snackbar.detach(snackbar);
24
17
 
25
18
  const htmlCodeElement = document.getElementsByClassName('component-html')[0];
26
19
  htmlCodeElement.textContent = convertElementToCode(sampleComponent);
27
20
 
28
21
  // Reattach JS if requested
29
22
  if (useJS) {
30
- Snackbar.attach(sampleComponent);
23
+ Snackbar.attach(snackbar);
31
24
  }
32
25
 
33
26
  const jsCodeElement = document.getElementsByClassName('component-js')[0];
34
27
  jsCodeElement.textContent = [
35
- 'Snackbar.show(snackBarElement);',
28
+ 'Snackbar.create({',
29
+ " text: 'Required text.',",
30
+ " buttonText: 'Optional button text',",
31
+ " buttonInk: 'secondary',",
32
+ ' stacked: false,',
33
+ ' autoHide: 4,',
34
+ ' autoDestroy: true,',
35
+ " parent: document.getElementsByClassName('.mdw-snackbar__container')[0],",
36
+ ' show: true,',
37
+ ' skipQueue: false',
38
+ '})',
36
39
  ].join('\n');
37
40
  }
38
41
 
@@ -70,17 +73,11 @@ function onOptionChange(event) {
70
73
  case 'visibility':
71
74
  switch (value) {
72
75
  default:
73
- case 'auto':
74
- snackbar.removeAttribute('mdw-hide');
75
- snackbar.removeAttribute('mdw-show');
76
- break;
77
76
  case 'show':
78
- snackbar.removeAttribute('mdw-hide');
79
- snackbar.setAttribute('mdw-show', '');
77
+ snackbar.setAttribute('aria-hidden', 'false');
80
78
  break;
81
79
  case 'hide':
82
- snackbar.setAttribute('mdw-hide', '');
83
- snackbar.removeAttribute('mdw-show');
80
+ snackbar.setAttribute('aria-hidden', 'true');
84
81
  break;
85
82
  }
86
83
  break;
@@ -114,14 +111,15 @@ function onOptionChange(event) {
114
111
  case 'button':
115
112
  if (value === 'none') {
116
113
  if (buttonElement) {
117
- buttonElement.parentElement.removeChild(buttonElement);
114
+ buttonElement.remove();
118
115
  }
119
116
  break;
120
117
  }
121
118
  if (!buttonElement) {
122
- buttonElement = document.createElement('button');
119
+ buttonElement = document.createElement('a');
123
120
  buttonElement.classList.add('mdw-button');
124
- buttonElement.setAttribute('mdw-theme-color', 'accent');
121
+ buttonElement.classList.add('mdw-theme');
122
+ buttonElement.setAttribute('mdw-ink', 'secondary');
125
123
  snackbar.appendChild(buttonElement);
126
124
  }
127
125
  switch (value) {
@@ -141,22 +139,19 @@ function onOptionChange(event) {
141
139
 
142
140
  /** @return {void} */
143
141
  function setupComponentOptions() {
144
- sampleComponent = document.querySelector('.component-sample .mdw-snackbar__container');
145
- document.querySelector('.component-sample button.mdw-button').addEventListener('click', () => {
142
+ sampleComponent = document.querySelector('.mdw-snackbar__container');
143
+ /** @type {HTMLElement} */
144
+ const jsSnackbarContainer = (document.querySelector('.mdw-snackbar__container.js-sample'));
145
+ document.querySelector('.component-sample .mdw-button').addEventListener('click', () => {
146
146
  Snackbar.create({
147
147
  text: `Snackbar created at: ${new Date().toLocaleTimeString()}`,
148
- parent: document.querySelector('.js-sample'),
149
- show: true,
148
+ parent: jsSnackbarContainer,
150
149
  });
151
150
  });
152
- attachEventListener(
153
- document.querySelectorAll('input[name]'),
154
- 'change',
155
- onOptionChange
156
- );
151
+ for (const el of document.querySelectorAll('input[name]')) {
152
+ el.addEventListener('change', onOptionChange);
153
+ }
157
154
  }
158
155
 
159
- initializeSampleComponents();
160
- setupMenuOptions();
161
156
  setupComponentOptions();
162
157
  updateSampleCode();
@@ -0,0 +1,407 @@
1
+ <% var T = '../../templates/index.eta' %>
2
+ <% layout('../_partials/_header.eta', {page: 'tab'}) %>
3
+ <div class="mdw-grid docs-tab" mdw-margin-top mdw-margin-bottom mdw-stretch>
4
+ <div class="mdw-grid__item" mdw-colspan="100%">
5
+ <h5 class="mdw-type" mdw-baseline-next="36">Tabs make it easy to explore and switch between different views.</h5>
6
+ <p class="mdw-type">Tabs enable content organization at a high level, such as switching between views, data sets, or functional aspects of an app.</p>
7
+ </div>
8
+ <div class="mdw-grid__item" mdw-colspan="8">
9
+ <div class="mdw-grid__content">
10
+ <div class="component-sample">
11
+ <div class="component-sample__container">
12
+ <div class="mdw-tab">
13
+ <div class="mdw-tab__list">
14
+ <div class="mdw-tab__item mdw-theme mdw-overlay" mdw-ink="secondary A200" mdw-overlay-default="medium" aria-selected="true">
15
+ <div class="mdw-tab__icon material-icons">looks_one</div>
16
+ <div class="mdw-tab__label">Tab Item One</div>
17
+ </div>
18
+ <div class="mdw-tab__item mdw-theme mdw-overlay" mdw-ink="secondary A200" mdw-overlay-default="medium" aria-selected="false">
19
+ <div class="mdw-tab__icon material-icons">looks_two</div>
20
+ <div class="mdw-tab__label">Tab Item Two</div>
21
+ </div>
22
+ <div class="mdw-tab__item mdw-theme mdw-overlay" mdw-ink="secondary A200" mdw-overlay-default="medium" aria-selected="false">
23
+ <div class="mdw-tab__icon material-icons">looks_3</div>
24
+ <div class="mdw-tab__label">Tab Item Three</div>
25
+ </div>
26
+ <div class="mdw-tab__indicator mdw-theme" mdw-ink="secondary A200"></div>
27
+ </div>
28
+ <div class="mdw-tab__content mdw-theme" mdw-surface="gray 800" mdw-dark>
29
+ <div class="mdw-tab__panel">
30
+ <div style="min-height:200px;padding:20px;">
31
+ <p>Sample Content One</p>
32
+ <%~ includeFile(T, { button: { borderInk:true , text:'Unfocusable when inactive' }}) %>
33
+ <p>HTML Ordered List with (#) representing DOM position</p>
34
+ <ol>
35
+ <li class="mdw-tab__panel__active-hide">(1) Layer hidden when active (peek only)</li>
36
+ <li class="mdw-tab__panel__active-remove">(2) Layer removed when active (peek only)</li>
37
+ <li>(3) Always visible</li>
38
+ <li class="mdw-tab__panel__inactive-hide">(4) Layer hidden when inactive (active only)</li>
39
+ <li class="mdw-tab__panel__inactive-remove">(5) Layer removed when inactive (active only)</li>
40
+ <li>(6) Always visible</li>
41
+ </ol>
42
+ </div>
43
+ </div>
44
+ <div class="mdw-tab__panel">
45
+ <div style="min-height:200px;padding:20px;">
46
+ <p>Sample Content Two</p>
47
+ <%~ includeFile(T, { button: { borderInk:true , text:'Unfocusable when inactive' }}) %>
48
+ <p>HTML Ordered List with (#) representing DOM position</p>
49
+ <ol>
50
+ <li class="mdw-tab__panel__active-hide">(1) Layer hidden when active (peek only)</li>
51
+ <li class="mdw-tab__panel__active-remove">(2) Layer removed when active (peek only)</li>
52
+ <li>(3) Always visible</li>
53
+ <li class="mdw-tab__panel__inactive-hide">(4) Layer hidden when inactive (active only)</li>
54
+ <li class="mdw-tab__panel__inactive-remove">(5) Layer removed when inactive (active only)</li>
55
+ <li>(6) Always visible</li>
56
+ </ol>
57
+ </div>
58
+ </div>
59
+ <div class="mdw-tab__panel">
60
+ <div style="min-height:200px;padding:20px;">
61
+ <p>Sample Content Three</p>
62
+ <%~ includeFile(T, { button: { borderInk:true , text:'Unfocusable when inactive' }}) %>
63
+ <p>HTML Ordered List with (#) representing DOM position</p>
64
+ <ol>
65
+ <li class="mdw-tab__panel__active-hide">(1) Layer hidden when active (peek only)</li>
66
+ <li class="mdw-tab__panel__active-remove">(2) Layer removed when active (peek only)</li>
67
+ <li>(3) Always visible</li>
68
+ <li class="mdw-tab__panel__inactive-hide">(4) Layer hidden when inactive (active only)</li>
69
+ <li class="mdw-tab__panel__inactive-remove">(5) Layer removed when inactive (active only)</li>
70
+ <li>(6) Always visible</li>
71
+ </ol>
72
+ </div>
73
+ </div>
74
+ </div>
75
+ </div>
76
+ </div>
77
+ </div>
78
+ </div>
79
+ </div>
80
+ <div class="mdw-grid__item" mdw-colspan="4">
81
+ <div class="mdw-type" mdw-style="subtitle">Javascript</div>
82
+ <div class="docs-option-list">
83
+ <%~ includeFile(T, { selection: { ink:'secondary', name:'javascript', type:'radio', value:'required', checked:true, text:'Required' }}) %>
84
+ <%~ includeFile(T, { selection: { ink:'secondary', name:'javascript', type:'radio', value:'optional', disabled:true, text:'Optional' }}) %>
85
+ <%~ includeFile(T, { selection: { ink:'secondary', name:'javascript', type:'radio', value:'none', disabled:true, text:'None' }}) %>
86
+ </div>
87
+ <div class="mdw-type" mdw-style="subtitle">Ink</div>
88
+ <div class="docs-option-list">
89
+ <%~ includeFile(T, { selection: { ink:'secondary', name:'ink', type:'radio', value:'default', text:'Default' }}) %>
90
+ <%~ includeFile(T, { selection: { ink:'secondary', name:'ink', type:'radio', value:'primary A400', text:'Primary A400' }}) %>
91
+ <%~ includeFile(T, { selection: { ink:'secondary', name:'ink', type:'radio', value:'secondary A200', checked:true, text:'Secondary A200' }}) %>
92
+ <%~ includeFile(T, { selection: { ink:'secondary', name:'ink', type:'radio', value:'warn', text:'Warn' }}) %>
93
+ <%~ includeFile(T, { selection: { ink:'secondary', name:'ink', type:'radio', value:'purple A400', text:'Purple A400' }}) %>
94
+ </div>
95
+ <div class="mdw-type" mdw-style="subtitle">Surface</div>
96
+ <div class="docs-option-list">
97
+ <%~ includeFile(T, { selection: { ink:'secondary', name:'surface', type:'radio', value:'none', checked:true, text:'None' }}) %>
98
+ <%~ includeFile(T, { selection: { ink:'secondary', name:'surface', type:'radio', value:'primary dark', text:'Primary (Dark)' }}) %>
99
+ <%~ includeFile(T, { selection: { ink:'secondary', name:'surface', type:'radio', value:'secondary 100 dark', text:'Secondary 100 (Dark)' }}) %>
100
+ <%~ includeFile(T, { selection: { ink:'secondary', name:'surface', type:'radio', value:'warn 200 light', text:'Warn 200 (Light)' }}) %>
101
+ <%~ includeFile(T, { selection: { ink:'secondary', name:'surface', type:'radio', value:'dark 700 dark', text:'Green 700 (Dark)' }}) %>
102
+ </div>
103
+ <div class="mdw-type" mdw-style="subtitle">Scrollable</div>
104
+ <div class="docs-option-list">
105
+ <%~ includeFile(T, { selection: { ink:'secondary', name:'content-scrollable', checked:true, text:'Content' }}) %>
106
+ <%~ includeFile(T, { selection: { ink:'secondary', name:'tabs-scrollable', text:'Tabs' }}) %>
107
+ </div>
108
+ </div>
109
+ <div class="mdw-grid__item" mdw-colspan="100%" style="max-height:0;"></div>
110
+ <div class="mdw-grid__item" mdw-colspan="8">
111
+ <h6 class="mdw-type">HTML Code</h6>
112
+ <div class="mdw-card mdw-theme component-code component-html" mdw-surface="card" mdw-border-ink>
113
+ <%~ includeFile(T, {button: { icon: true, ink:'secondary', attributes: { 'aria-pressed':'false', 'mdw-overlay-off':'activated' }, text:'PUG', id:'usePug' }}) %>
114
+ </div>
115
+ </div>
116
+ <div class="mdw-grid__item" mdw-colspan="4">
117
+ <h6 class="mdw-type">Javascript Code</h6>
118
+ <div class="mdw-card mdw-theme component-code component-js" mdw-surface="card" mdw-border-ink></div>
119
+ </div>
120
+ <div class="mdw-grid__item" mdw-colspan="100%">
121
+ <h6 class="mdw-type">Samples</h6>
122
+ </div>
123
+ <div class="mdw-grid__item display-flex clipped-300" mdw-colspan="4">
124
+ <div class="render-fill">
125
+ <div class="mdw-tab">
126
+ <div class="mdw-tab__list mdw-theme" mdw-surface="cyan 500" mdw-dark>
127
+ <div class="mdw-tab__item mdw-theme" mdw-ink="yellow A400" mdw-overlay-default="medium">
128
+ <div class="mdw-tab__label">Item One</div>
129
+ </div>
130
+ <div class="mdw-tab__item mdw-theme" mdw-ink="yellow A400" mdw-overlay-default="medium">
131
+ <div class="mdw-tab__label">Item Two</div>
132
+ </div>
133
+ <div class="mdw-tab__item mdw-theme" mdw-ink="yellow A400" mdw-overlay-default="medium">
134
+ <div class="mdw-tab__label">Item Three</div>
135
+ </div>
136
+ <div class="mdw-tab__indicator mdw-theme" mdw-ink="yellow A400"></div>
137
+ </div>
138
+ <div class="mdw-tab__content">
139
+ <div class="mdw-tab__panel">Item One</div>
140
+ <div class="mdw-tab__panel">Item Two</div>
141
+ <div class="mdw-tab__panel">Item Three</div>
142
+ </div>
143
+ </div>
144
+ </div>
145
+ </div>
146
+ <div class="mdw-grid__item display-flex clipped-300" mdw-colspan="4">
147
+ <div class="render-fill">
148
+ <%~ includeFile('../_partials/_androidstatusbar.eta', { surface:'cyan 700', dark:true }) %>
149
+ <div class="mdw-appbar mdw-theme" mdw-surface="cyan 500" mdw-dark mdw-prominent>
150
+ <div class="mdw-appbar__start">
151
+ <%~ includeFile(T, { button: { icon:true , class:'material-icons', text:'menu' }}) %>
152
+ </div>
153
+ <div class="mdw-appbar__title">Page title</div>
154
+ <div class="mdw-appbar__end">
155
+ <%~ includeFile(T, { button: { icon:true , class:'material-icons', text:'search' }}) %>
156
+ <%~ includeFile(T, { button: { icon:true , class:'material-icons', text:'more_vert' }}) %>
157
+ </div>
158
+ <div class="mdw-tab">
159
+ <div class="mdw-tab__list">
160
+ <div class="mdw-tab__item mdw-theme" mdw-ink="yellow A400" mdw-overlay-default="medium">
161
+ <div class="mdw-tab__label">Item One</div>
162
+ </div>
163
+ <div class="mdw-tab__item mdw-theme" mdw-ink="yellow A400" mdw-overlay-default="medium">
164
+ <div class="mdw-tab__label">Item Two</div>
165
+ </div>
166
+ <div class="mdw-tab__item mdw-theme" mdw-ink="yellow A400" mdw-overlay-default="medium">
167
+ <div class="mdw-tab__label">Item Three</div>
168
+ </div>
169
+ <div class="mdw-tab__indicator mdw-theme" mdw-ink="yellow A400"></div>
170
+ </div>
171
+ </div>
172
+ </div>
173
+ <div class="content"></div>
174
+ </div>
175
+ </div>
176
+ <div class="mdw-grid__item display-flex clipped-300" mdw-colspan="4">
177
+ <div class="render-fill">
178
+ <%~ includeFile('../_partials/_androidstatusbar.eta', { surface:'cyan 700', dark:true }) %>
179
+ <div class="mdw-tab">
180
+ <div class="mdw-tab__list-wrapper mdw-appbar mdw-theme" mdw-surface="cyan 500" mdw-dark>
181
+ <div class="mdw-appbar__start">
182
+ <%~ includeFile(T, { button: { icon:true , class:'material-icons', text:'menu' }}) %>
183
+ </div>
184
+ <div class="mdw-appbar__title">Page title</div>
185
+ <div class="mdw-appbar__end">
186
+ <%~ includeFile(T, { button: { icon:true , class:'material-icons', text:'search' }}) %>
187
+ <%~ includeFile(T, { button: { icon:true , class:'material-icons', text:'more_vert' }}) %>
188
+ </div>
189
+ <div class="mdw-tab__list">
190
+ <div class="mdw-tab__item mdw-theme" mdw-ink="yellow A400" mdw-overlay-default="medium">
191
+ <div class="mdw-tab__label">Item One</div>
192
+ </div>
193
+ <div class="mdw-tab__item mdw-theme" mdw-ink="yellow A400" mdw-overlay-default="medium">
194
+ <div class="mdw-tab__label">Item Two</div>
195
+ </div>
196
+ <div class="mdw-tab__item mdw-theme" mdw-ink="yellow A400" mdw-overlay-default="medium">
197
+ <div class="mdw-tab__label">Item Three</div>
198
+ </div>
199
+ <div class="mdw-tab__indicator mdw-theme" mdw-ink="yellow A400"></div>
200
+ </div>
201
+ </div>
202
+ <div class="mdw-tab__content">
203
+ <div class="mdw-tab__panel">Item One</div>
204
+ <div class="mdw-tab__panel">Item Two</div>
205
+ <div class="mdw-tab__panel">Item Three</div>
206
+ </div>
207
+ </div>
208
+ </div>
209
+ </div>
210
+ <div class="mdw-grid__item display-flex clipped-300" mdw-colspan="4">
211
+ <div class="render-fill">
212
+ <%~ includeFile('../_partials/_androidstatusbar.eta', { surface:'background 600', dark:true }) %>
213
+ <div class="mdw-tab">
214
+ <div class="mdw-tab__list-wrapper mdw-appbar">
215
+ <div class="mdw-appbar__start">
216
+ <%~ includeFile(T, { button: { icon:true , class:'material-icons', text:'menu' }}) %>
217
+ </div>
218
+ <div class="mdw-appbar__title">Page title</div>
219
+ <div class="mdw-appbar__end">
220
+ <%~ includeFile(T, { button: { icon:true , class:'material-icons', text:'search' }}) %>
221
+ <%~ includeFile(T, { button: { icon:true , class:'material-icons', text:'more_vert' }}) %>
222
+ </div>
223
+ <div class="mdw-tab__list">
224
+ <div class="mdw-tab__item mdw-theme" mdw-ink="cyan A700" mdw-overlay-default="medium">
225
+ <div class="mdw-tab__label">Item One</div>
226
+ </div>
227
+ <div class="mdw-tab__item mdw-theme" mdw-ink="cyan A700" mdw-overlay-default="medium">
228
+ <div class="mdw-tab__label">Item Two</div>
229
+ </div>
230
+ <div class="mdw-tab__item mdw-theme" mdw-ink="cyan A700" mdw-overlay-default="medium">
231
+ <div class="mdw-tab__label">Item Three</div>
232
+ </div>
233
+ <div class="mdw-tab__indicator mdw-theme" mdw-ink="cyan A700"></div>
234
+ </div>
235
+ </div>
236
+ <div class="mdw-tab__content">
237
+ <div class="mdw-tab__panel">Item One</div>
238
+ <div class="mdw-tab__panel">Item Two</div>
239
+ <div class="mdw-tab__panel">Item Three</div>
240
+ </div>
241
+ </div>
242
+ </div>
243
+ </div>
244
+ <div class="mdw-grid__item display-flex clipped-300" mdw-colspan="4">
245
+ <div class="render-fill">
246
+ <%~ includeFile('../_partials/_androidstatusbar.eta', { surface:'cyan 700', dark:true }) %>
247
+ <div class="mdw-appbar mdw-theme" mdw-surface="cyan 500" mdw-dark>
248
+ <div class="mdw-appbar__start">
249
+ <%~ includeFile(T, { button: { icon:true , class:'material-icons', text:'menu' }}) %>
250
+ </div>
251
+ <div class="mdw-appbar__title">Page title</div>
252
+ <div class="mdw-appbar__end">
253
+ <%~ includeFile(T, { button: { icon:true , class:'material-icons', text:'search' }}) %>
254
+ <%~ includeFile(T, { button: { icon:true , class:'material-icons', text:'more_vert' }}) %>
255
+ </div>
256
+ <div class="mdw-tab">
257
+ <div class="mdw-tab__list">
258
+ <div class="mdw-tab__item mdw-theme" mdw-ink="yellow A400" mdw-overlay-default="medium">
259
+ <div class="mdw-tab__icon material-icons">phone</div>
260
+ <div class="mdw-tab__label">Recents</div>
261
+ </div>
262
+ <div class="mdw-tab__item mdw-theme" mdw-ink="yellow A400" mdw-overlay-default="medium">
263
+ <div class="mdw-tab__icon material-icons">favorite</div>
264
+ <div class="mdw-tab__label">Favorites</div>
265
+ </div>
266
+ <div class="mdw-tab__item mdw-theme" mdw-ink="yellow A400" mdw-overlay-default="medium">
267
+ <div class="mdw-tab__icon material-icons">person_pin</div>
268
+ <div class="mdw-tab__label">Nearby</div>
269
+ </div>
270
+ <div class="mdw-tab__indicator mdw-theme" mdw-ink="yellow A400"></div>
271
+ </div>
272
+ </div>
273
+ </div>
274
+ <div class="content"></div>
275
+ </div>
276
+ </div>
277
+ <div class="mdw-grid__item display-flex clipped-300" mdw-colspan="4">
278
+ <div class="render-fill">
279
+ <%~ includeFile('../_partials/_androidstatusbar.eta', { surface:'background 600', dark:true }) %>
280
+ <div class="mdw-appbar">
281
+ <div class="mdw-appbar__start">
282
+ <%~ includeFile(T, { button: { icon:true , class:'material-icons', text:'menu' }}) %>
283
+ </div>
284
+ <div class="mdw-appbar__title">Page title</div>
285
+ <div class="mdw-appbar__end">
286
+ <%~ includeFile(T, { button: { icon:true , class:'material-icons', text:'search' }}) %>
287
+ <%~ includeFile(T, { button: { icon:true , class:'material-icons', text:'more_vert' }}) %>
288
+ </div>
289
+ <div class="mdw-tab">
290
+ <div class="mdw-tab__list">
291
+ <div class="mdw-tab__item mdw-theme" mdw-ink="cyan A700" mdw-overlay-default="medium">
292
+ <div class="mdw-tab__icon material-icons">phone</div>
293
+ </div>
294
+ <div class="mdw-tab__item mdw-theme" mdw-ink="cyan A700" mdw-overlay-default="medium">
295
+ <div class="mdw-tab__icon material-icons">favorite</div>
296
+ </div>
297
+ <div class="mdw-tab__item mdw-theme" mdw-ink="cyan A700" mdw-overlay-default="medium">
298
+ <div class="mdw-tab__icon material-icons">person_pin</div>
299
+ </div>
300
+ <div class="mdw-tab__indicator mdw-theme" mdw-ink="cyan A700"></div>
301
+ </div>
302
+ </div>
303
+ </div>
304
+ <div class="content"></div>
305
+ </div>
306
+ </div>
307
+ <div class="mdw-grid__item display-flex" mdw-colspan="100%">
308
+ <div class="display-flex" flex-column style="width:100%;padding:24px;box-sizing:border-box;">
309
+ <%~ includeFile('../_partials/_androidstatusbar.eta', { surface:'cyan 700', dark:true }) %>
310
+ <div class="mdw-tab">
311
+ <div class="mdw-tab__list-wrapper mdw-appbar mdw-theme" mdw-surface="cyan 500" mdw-dark>
312
+ <div class="mdw-appbar__start">
313
+ <%~ includeFile(T, { button: { icon:true , class:'material-icons', text:'menu' }}) %>
314
+ </div>
315
+ <div class="mdw-appbar__title">Clustered</div>
316
+ <div class="mdw-appbar__end">
317
+ <%~ includeFile(T, { button: { icon:true , class:'material-icons', text:'search' }}) %>
318
+ <%~ includeFile(T, { button: { icon:true , class:'material-icons', text:'more_vert' }}) %>
319
+ </div>
320
+ <div class="mdw-tab__list" style="align-self:center;">
321
+ <div class="mdw-tab__item mdw-theme" mdw-ink="yellow A400" mdw-overlay-default="medium">
322
+ <div class="mdw-tab__icon material-icons">phone</div>
323
+ <div class="mdw-tab__label">Recents</div>
324
+ </div>
325
+ <div class="mdw-tab__item mdw-theme" mdw-ink="yellow A400" mdw-overlay-default="medium">
326
+ <div class="mdw-tab__icon material-icons">favorite</div>
327
+ <div class="mdw-tab__label">Favorites</div>
328
+ </div>
329
+ <div class="mdw-tab__item mdw-theme" mdw-ink="yellow A400" mdw-overlay-default="medium">
330
+ <div class="mdw-tab__icon material-icons">person_pin</div>
331
+ <div class="mdw-tab__label">Nearby</div>
332
+ </div>
333
+ <div class="mdw-tab__indicator mdw-theme" mdw-ink="yellow A400"></div>
334
+ </div>
335
+ </div>
336
+ <div class="mdw-tab__content">
337
+ <div class="mdw-tab__panel">Recents</div>
338
+ <div class="mdw-tab__panel">Favorites</div>
339
+ <div class="mdw-tab__panel">Nearby</div>
340
+ </div>
341
+ </div>
342
+ </div>
343
+ </div>
344
+ <div class="mdw-grid__item" mdw-colspan="100%">
345
+ <div class="mdw-grid__content js">
346
+ <%~ includeFile('../_partials/_androidstatusbar.eta', { surface:'cyan 700', dark:true }) %>
347
+ <div class="mdw-tab">
348
+ <div class="mdw-appbar mdw-theme" mdw-surface="cyan 500" mdw-dark>
349
+ <div class="mdw-appbar__start">
350
+ <%~ includeFile(T, { button: { icon:true , class:'material-icons', text:'menu' }}) %>
351
+ </div>
352
+ <div class="mdw-appbar__title">Scrollable</div>
353
+ <div class="mdw-appbar__end">
354
+ <%~ includeFile(T, { button: { icon:true , class:'material-icons', text:'search' }}) %>
355
+ <%~ includeFile(T, { button: { icon:true , class:'material-icons', text:'more_vert' }}) %>
356
+ </div>
357
+ <div class="mdw-tab__list" mdw-scrollable>
358
+ <div class="mdw-tab__item mdw-theme" mdw-ink="yellow A400" mdw-overlay-default="medium">
359
+ <div class="mdw-tab__icon material-icons">phone</div>
360
+ <div class="mdw-tab__label">Recents</div>
361
+ </div>
362
+ <div class="mdw-tab__item mdw-theme" mdw-ink="yellow A400" mdw-overlay-default="medium">
363
+ <div class="mdw-tab__icon material-icons">favorite</div>
364
+ <div class="mdw-tab__label">My Oversized Favorites Tab</div>
365
+ </div>
366
+ <div class="mdw-tab__item mdw-theme" mdw-ink="yellow A400" mdw-overlay-default="medium">
367
+ <div class="mdw-tab__icon material-icons">person_pin</div>
368
+ <div class="mdw-tab__label">Nearby</div>
369
+ </div>
370
+ <div class="mdw-tab__item mdw-theme" mdw-ink="yellow A400" mdw-overlay-default="medium">
371
+ <div class="mdw-tab__icon material-icons">edit</div>
372
+ <div class="mdw-tab__label">Edit</div>
373
+ </div>
374
+ <div class="mdw-tab__item mdw-theme" mdw-ink="yellow A400" mdw-overlay-default="medium">
375
+ <div class="mdw-tab__icon material-icons">clear</div>
376
+ <div class="mdw-tab__label">Clear</div>
377
+ </div>
378
+ <div class="mdw-tab__item mdw-theme" mdw-ink="yellow A400" mdw-overlay-default="medium">
379
+ <div class="mdw-tab__icon material-icons">search</div>
380
+ <div class="mdw-tab__label">Search</div>
381
+ </div>
382
+ <div class="mdw-tab__item mdw-theme" mdw-ink="yellow A400" mdw-overlay-default="medium">
383
+ <div class="mdw-tab__icon material-icons">restore</div>
384
+ <div class="mdw-tab__label">Restore</div>
385
+ </div>
386
+ <div class="mdw-tab__item mdw-theme" mdw-ink="yellow A400" mdw-overlay-default="medium">
387
+ <div class="mdw-tab__icon material-icons">stars</div>
388
+ <div class="mdw-tab__label">Stars</div>
389
+ </div>
390
+ <div class="mdw-tab__indicator mdw-theme" mdw-ink="yellow A400"></div>
391
+ </div>
392
+ </div>
393
+ <div class="mdw-tab__content">
394
+ <div class="mdw-tab__panel">1</div>
395
+ <div class="mdw-tab__panel">2</div>
396
+ <div class="mdw-tab__panel">3</div>
397
+ <div class="mdw-tab__panel">4</div>
398
+ <div class="mdw-tab__panel">5</div>
399
+ <div class="mdw-tab__panel">6</div>
400
+ <div class="mdw-tab__panel">7</div>
401
+ <div class="mdw-tab__panel">8</div>
402
+ </div>
403
+ </div>
404
+ </div>
405
+ </div>
406
+ </div>
407
+ <script src="tab.min.js"></script>