@shortfuse/materialdesignweb 0.0.9 → 0.4.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 (392) hide show
  1. package/.browserslistrc +3 -0
  2. package/.eslintrc.json +146 -27
  3. package/.stylelintrc.json +598 -2
  4. package/.vscode/launch.json +20 -5
  5. package/.vscode/settings.json +3 -0
  6. package/.vscode/tasks.json +19 -10
  7. package/CHANGELOG.md +24 -0
  8. package/README.md +84 -2
  9. package/adapters/datatable/column.js +203 -0
  10. package/adapters/datatable/index.js +972 -0
  11. package/adapters/dom/index.js +601 -0
  12. package/adapters/list/index.js +69 -0
  13. package/adapters/search/index.js +521 -0
  14. package/components/appbar/_spec.scss +225 -0
  15. package/components/appbar/_theme.scss +0 -0
  16. package/components/appbar/index.scss +2 -0
  17. package/components/banner/_spec.scss +118 -0
  18. package/components/banner/_theme.scss +0 -0
  19. package/components/banner/index.scss +2 -0
  20. package/components/bottomnav/README.md +85 -0
  21. package/components/bottomnav/_spec.scss +157 -0
  22. package/components/bottomnav/_theme.scss +0 -0
  23. package/components/bottomnav/index.js +122 -0
  24. package/components/bottomnav/index.scss +2 -0
  25. package/components/bottomnav/item.js +89 -0
  26. package/components/{core/button → button}/README.md +16 -22
  27. package/components/button/_spec.scss +161 -0
  28. package/components/button/_theme.scss +65 -0
  29. package/components/button/index.eta +32 -0
  30. package/components/button/index.js +43 -0
  31. package/components/button/index.pug +18 -0
  32. package/components/button/index.scss +2 -0
  33. package/components/card/_spec.scss +249 -0
  34. package/components/card/_theme.scss +0 -0
  35. package/components/card/index.scss +2 -0
  36. package/components/chip/_spec.scss +134 -0
  37. package/components/chip/_theme.scss +177 -0
  38. package/components/chip/index.js +21 -0
  39. package/components/chip/index.scss +2 -0
  40. package/components/chip/item.js +20 -0
  41. package/components/datatable/_spec.scss +288 -0
  42. package/components/datatable/_theme.scss +154 -0
  43. package/components/datatable/cell.js +45 -0
  44. package/components/datatable/columnheader.js +47 -0
  45. package/components/datatable/index.js +388 -0
  46. package/components/datatable/index.scss +2 -0
  47. package/components/datatable/row.js +49 -0
  48. package/components/datatable/rowheader.js +18 -0
  49. package/components/dialog/_spec.scss +213 -0
  50. package/components/dialog/_theme.scss +0 -0
  51. package/components/dialog/index.js +627 -0
  52. package/components/dialog/index.scss +2 -0
  53. package/components/divider/_spec.scss +13 -0
  54. package/components/divider/_theme.scss +0 -0
  55. package/components/divider/index.scss +2 -0
  56. package/components/elevation/_spec.scss +9 -0
  57. package/components/elevation/_theme.scss +0 -0
  58. package/components/elevation/index.scss +2 -0
  59. package/components/fab/_spec.scss +222 -0
  60. package/components/fab/_theme.scss +0 -0
  61. package/components/fab/index.js +103 -0
  62. package/components/fab/index.scss +2 -0
  63. package/components/grid/_spec.scss +312 -0
  64. package/components/grid/_theme.scss +0 -0
  65. package/components/grid/index.scss +2 -0
  66. package/components/layout/_mixins.scss +33 -0
  67. package/components/layout/_spec.scss +1012 -0
  68. package/components/layout/_theme.scss +44 -0
  69. package/components/layout/index.js +464 -0
  70. package/components/layout/index.scss +2 -0
  71. package/components/list/_spec.scss +397 -0
  72. package/components/list/_theme.scss +111 -0
  73. package/components/list/content.js +110 -0
  74. package/components/list/index.js +260 -0
  75. package/components/list/index.scss +2 -0
  76. package/components/list/item.js +170 -0
  77. package/components/list/secondary.js +46 -0
  78. package/components/menu/_spec.scss +362 -0
  79. package/components/menu/_theme.scss +0 -0
  80. package/components/menu/index.js +721 -0
  81. package/components/menu/index.scss +2 -0
  82. package/components/menu/item.js +239 -0
  83. package/components/{core/progress/style.scss → progress/_spec.scss} +36 -25
  84. package/components/progress/_theme.scss +0 -0
  85. package/components/progress/index.js +36 -0
  86. package/components/progress/index.scss +2 -0
  87. package/components/selection/_spec.scss +386 -0
  88. package/components/selection/_theme.scss +166 -0
  89. package/components/selection/index.eta +60 -0
  90. package/components/selection/index.js +76 -0
  91. package/components/selection/index.pug +30 -0
  92. package/components/selection/index.scss +2 -0
  93. package/components/selection/input.js +56 -0
  94. package/components/selection/radiogroup.js +47 -0
  95. package/components/slider/_spec.scss +64 -0
  96. package/components/slider/_theme.scss +0 -0
  97. package/components/slider/index.scss +2 -0
  98. package/components/snackbar/_spec.scss +195 -0
  99. package/components/snackbar/_theme.scss +0 -0
  100. package/components/snackbar/index.js +344 -0
  101. package/components/snackbar/index.scss +2 -0
  102. package/components/tab/_spec.scss +235 -0
  103. package/components/tab/_theme.scss +0 -0
  104. package/components/tab/content.js +205 -0
  105. package/components/tab/index.js +260 -0
  106. package/components/tab/index.scss +2 -0
  107. package/components/tab/item.js +89 -0
  108. package/components/tab/list.js +210 -0
  109. package/components/tab/panel.js +54 -0
  110. package/components/template/_theme.scss +27 -0
  111. package/components/{core/textfield → textfield}/README.md +70 -50
  112. package/components/textfield/_mixins.scss +52 -0
  113. package/components/textfield/_spec.scss +809 -0
  114. package/components/textfield/_theme.scss +299 -0
  115. package/components/textfield/index.eta +74 -0
  116. package/components/textfield/index.js +168 -0
  117. package/components/textfield/index.pug +30 -0
  118. package/components/textfield/index.scss +2 -0
  119. package/components/tooltip/_spec.scss +188 -0
  120. package/components/tooltip/_theme.scss +0 -0
  121. package/components/tooltip/index.scss +2 -0
  122. package/components/type/_spec.scss +224 -0
  123. package/components/type/_theme.scss +0 -0
  124. package/components/type/index.scss +2 -0
  125. package/core/_breakpoint.scss +189 -0
  126. package/core/_elevation.scss +38 -0
  127. package/core/_length.scss +9 -0
  128. package/core/_motion.scss +31 -0
  129. package/core/_platform.scss +34 -0
  130. package/core/_type.scss +127 -0
  131. package/core/aria/attributes.js +141 -0
  132. package/core/aria/button.js +50 -0
  133. package/core/aria/keyboard.js +93 -0
  134. package/core/aria/rovingtabindex.js +178 -0
  135. package/core/aria/tab.js +60 -0
  136. package/core/color/_spec.scss +0 -0
  137. package/core/color/_theme.scss +390 -0
  138. package/core/color/index.scss +2 -0
  139. package/core/document/index.js +39 -0
  140. package/core/dom.js +271 -0
  141. package/core/overlay/_spec.scss +31 -0
  142. package/core/overlay/_theme.scss +171 -0
  143. package/core/overlay/index.js +108 -0
  144. package/core/overlay/index.scss +2 -0
  145. package/core/ripple/_spec.scss +197 -0
  146. package/core/ripple/_theme.scss +40 -0
  147. package/core/ripple/index.js +294 -0
  148. package/core/ripple/index.scss +2 -0
  149. package/core/theme/_config.scss +2 -0
  150. package/core/theme/_mixins.scss +172 -0
  151. package/{components/theming/palettes.scss → core/theme/_palettes.scss} +173 -150
  152. package/core/theme/_variables.scss +24 -0
  153. package/core/theme/index.js +50 -0
  154. package/core/throttler.js +42 -0
  155. package/core/transition/index.js +468 -0
  156. package/docs/_flex.scss +22 -0
  157. package/docs/_menuoptions.js +183 -0
  158. package/docs/_mixins.pug +155 -0
  159. package/docs/_partials/_androidnavbar.eta +5 -0
  160. package/docs/_partials/_androidstatusbar.eta +13 -0
  161. package/docs/_partials/_appbar.eta +29 -0
  162. package/docs/_partials/_buttontest.eta +31 -0
  163. package/docs/_partials/_header.eta +149 -0
  164. package/docs/_partials/_navlistitem.eta +16 -0
  165. package/docs/_partials/_target.eta +1 -0
  166. package/docs/_sample-utils.js +93 -0
  167. package/docs/_storage.js +33 -0
  168. package/docs/docs.scss +295 -0
  169. package/docs/index.eta +16 -0
  170. package/docs/index.js +0 -0
  171. package/docs/pages/appbar.eta +114 -0
  172. package/docs/pages/appbar.js +0 -0
  173. package/docs/pages/appbar.pug +78 -0
  174. package/docs/pages/bottomnav.eta +188 -0
  175. package/docs/pages/bottomnav.js +115 -0
  176. package/docs/pages/bottomnav.pug +137 -0
  177. package/docs/pages/button.eta +124 -0
  178. package/docs/pages/button.js +224 -0
  179. package/docs/pages/button.pug +121 -0
  180. package/docs/pages/card.eta +90 -0
  181. package/docs/pages/card.js +177 -0
  182. package/docs/pages/card.pug +74 -0
  183. package/docs/pages/chip.eta +122 -0
  184. package/docs/pages/chip.js +82 -0
  185. package/docs/pages/chip.pug +91 -0
  186. package/docs/pages/color.eta +143 -0
  187. package/docs/pages/color.js +262 -0
  188. package/docs/pages/color.pug +121 -0
  189. package/docs/pages/datatable.eta +323 -0
  190. package/docs/pages/datatable.js +164 -0
  191. package/docs/pages/datatable.pug +283 -0
  192. package/docs/pages/dialog.eta +186 -0
  193. package/docs/pages/dialog.js +177 -0
  194. package/docs/pages/dialog.pug +132 -0
  195. package/docs/pages/dom.eta +26 -0
  196. package/docs/pages/dom.js +143 -0
  197. package/docs/pages/dom.pug +22 -0
  198. package/docs/pages/elevation.eta +35 -0
  199. package/docs/pages/elevation.js +0 -0
  200. package/docs/pages/elevation.pug +25 -0
  201. package/docs/pages/fab.eta +99 -0
  202. package/docs/pages/fab.js +44 -0
  203. package/docs/pages/fab.pug +66 -0
  204. package/docs/pages/grid.eta +135 -0
  205. package/docs/pages/grid.js +128 -0
  206. package/docs/pages/grid.pug +95 -0
  207. package/docs/pages/layout.eta +8 -0
  208. package/docs/pages/layout.js +0 -0
  209. package/docs/pages/layout.pug +7 -0
  210. package/docs/pages/list.eta +465 -0
  211. package/docs/pages/list.js +9 -0
  212. package/docs/pages/list.pug +326 -0
  213. package/docs/pages/menu.eta +276 -0
  214. package/docs/pages/menu.js +217 -0
  215. package/docs/pages/menu.pug +205 -0
  216. package/docs/pages/overlay.eta +69 -0
  217. package/docs/pages/overlay.js +4 -0
  218. package/docs/pages/overlay.pug +55 -0
  219. package/docs/pages/progress.eta +23 -0
  220. package/docs/pages/progress.js +12 -0
  221. package/docs/pages/progress.pug +16 -0
  222. package/docs/pages/ripple.eta +27 -0
  223. package/docs/pages/ripple.js +4 -0
  224. package/docs/pages/ripple.pug +21 -0
  225. package/docs/pages/search.eta +246 -0
  226. package/docs/pages/search.js +243 -0
  227. package/docs/pages/search.pug +165 -0
  228. package/docs/pages/selection.eta +111 -0
  229. package/docs/pages/selection.js +13 -0
  230. package/docs/pages/selection.pug +74 -0
  231. package/docs/pages/slider.eta +23 -0
  232. package/docs/pages/slider.js +0 -0
  233. package/docs/pages/slider.pug +17 -0
  234. package/docs/pages/snackbar.eta +83 -0
  235. package/docs/pages/snackbar.js +158 -0
  236. package/docs/pages/snackbar.pug +60 -0
  237. package/docs/pages/tab.eta +421 -0
  238. package/docs/pages/tab.js +151 -0
  239. package/docs/pages/tab.pug +304 -0
  240. package/docs/pages/textfield.eta +486 -0
  241. package/docs/pages/textfield.js +254 -0
  242. package/docs/pages/textfield.pug +360 -0
  243. package/docs/pages/tooltip.eta +94 -0
  244. package/docs/pages/tooltip.js +0 -0
  245. package/docs/pages/tooltip.pug +78 -0
  246. package/docs/pages/transition.eta +117 -0
  247. package/docs/pages/transition.js +54 -0
  248. package/docs/pages/transition.pug +76 -0
  249. package/docs/pages/type.eta +31 -0
  250. package/docs/pages/type.js +0 -0
  251. package/docs/pages/type.pug +29 -0
  252. package/docs/postrender.js +39 -0
  253. package/docs/prerender.js +16 -0
  254. package/docs/pwa/_dialogs.eta +143 -0
  255. package/docs/pwa/_dialogs.pug +96 -0
  256. package/docs/pwa/_menus.eta +16 -0
  257. package/docs/pwa/_menus.pug +11 -0
  258. package/docs/pwa/pwa-prerender.js +3 -0
  259. package/docs/pwa/pwa.eta +480 -0
  260. package/docs/pwa/pwa.js +306 -0
  261. package/docs/pwa/pwa.pug +325 -0
  262. package/docs/pwa/pwa.scss +26 -0
  263. package/docs/spec.scss +26 -0
  264. package/docs/themes/_component-themes.scss +26 -0
  265. package/docs/themes/theme-colored-fallbacks.scss +17 -0
  266. package/docs/themes/theme-colored.scss +17 -0
  267. package/docs/themes/theme-default-fallbacks.scss +17 -0
  268. package/docs/themes/theme-default.scss +17 -0
  269. package/jsconfig.json +4 -2
  270. package/package.json +43 -28
  271. package/scripts/deploy-docs.sh +9 -0
  272. package/templates/index.eta +2 -0
  273. package/templates/index.pug +3 -0
  274. package/utils/function.js +3 -0
  275. package/webpack.config.cjs +257 -0
  276. package/components/_index.scss +0 -4
  277. package/components/all-components.scss +0 -14
  278. package/components/common/functions.scss +0 -173
  279. package/components/common/mixins.scss +0 -107
  280. package/components/common/motion.scss +0 -36
  281. package/components/common/ripple.scss +0 -92
  282. package/components/common/variables.scss +0 -48
  283. package/components/complex/dialog/style.scss +0 -159
  284. package/components/complex/dialog/theming.scss +0 -29
  285. package/components/complex/navdrawer/style.scss +0 -477
  286. package/components/complex/navdrawer/theming.scss +0 -58
  287. package/components/complex/search/index.js +0 -492
  288. package/components/core/bottomnav/README.md +0 -85
  289. package/components/core/bottomnav/index.js +0 -140
  290. package/components/core/bottomnav/style.scss +0 -173
  291. package/components/core/bottomnav/theming.scss +0 -42
  292. package/components/core/button/index.js +0 -52
  293. package/components/core/button/style.scss +0 -283
  294. package/components/core/button/theming.scss +0 -131
  295. package/components/core/list/index.js +0 -94
  296. package/components/core/list/style.scss +0 -269
  297. package/components/core/list/theming.scss +0 -74
  298. package/components/core/menu/index.js +0 -127
  299. package/components/core/menu/style.scss +0 -239
  300. package/components/core/menu/theming.scss +0 -55
  301. package/components/core/progress/index.js +0 -33
  302. package/components/core/selection/style.scss +0 -249
  303. package/components/core/selection/theming.scss +0 -49
  304. package/components/core/switch/style.scss +0 -3
  305. package/components/core/tab/index.js +0 -174
  306. package/components/core/tab/style.scss +0 -202
  307. package/components/core/tab/theming.scss +0 -43
  308. package/components/core/textfield/index.js +0 -169
  309. package/components/core/textfield/style.scss +0 -672
  310. package/components/core/textfield/theming.scss +0 -262
  311. package/components/core/toolbar/style.scss +0 -109
  312. package/components/core/toolbar/theming.scss +0 -28
  313. package/components/core/tooltip/style.scss +0 -127
  314. package/components/core/type/style.scss +0 -133
  315. package/components/core/type/theming.scss +0 -25
  316. package/components/index.js +0 -24
  317. package/components/template/theming.scss +0 -31
  318. package/components/theming/theming.scss +0 -504
  319. package/docs/bottomnav.html +0 -171
  320. package/docs/bottomnav.min.js +0 -383
  321. package/docs/button.html +0 -322
  322. package/docs/button.min.js +0 -251
  323. package/docs/components.min.css +0 -1
  324. package/docs/components.min.js +0 -83
  325. package/docs/dialog.html +0 -103
  326. package/docs/dialog.min.js +0 -160
  327. package/docs/docs.min.css +0 -1
  328. package/docs/docs.min.js +0 -83
  329. package/docs/index.html +0 -55
  330. package/docs/index.min.js +0 -83
  331. package/docs/list.html +0 -442
  332. package/docs/list.min.js +0 -312
  333. package/docs/menu.html +0 -185
  334. package/docs/menu.min.js +0 -370
  335. package/docs/navdrawer.html +0 -199
  336. package/docs/navdrawer.min.js +0 -244
  337. package/docs/progress.html +0 -75
  338. package/docs/progress.min.js +0 -162
  339. package/docs/search.html +0 -230
  340. package/docs/search.min.js +0 -1202
  341. package/docs/selection.html +0 -188
  342. package/docs/selection.min.js +0 -160
  343. package/docs/src/complex/dialog.js +0 -3
  344. package/docs/src/complex/dialog.pug +0 -44
  345. package/docs/src/complex/navdrawer.js +0 -82
  346. package/docs/src/complex/navdrawer.pug +0 -109
  347. package/docs/src/complex/search.js +0 -207
  348. package/docs/src/complex/search.pug +0 -143
  349. package/docs/src/components.scss +0 -1
  350. package/docs/src/core/bottomnav.js +0 -22
  351. package/docs/src/core/bottomnav.pug +0 -93
  352. package/docs/src/core/button.js +0 -16
  353. package/docs/src/core/button.pug +0 -73
  354. package/docs/src/core/list.js +0 -21
  355. package/docs/src/core/list.pug +0 -246
  356. package/docs/src/core/menu.js +0 -33
  357. package/docs/src/core/menu.pug +0 -108
  358. package/docs/src/core/progress.js +0 -11
  359. package/docs/src/core/progress.pug +0 -17
  360. package/docs/src/core/selection.js +0 -4
  361. package/docs/src/core/selection.pug +0 -92
  362. package/docs/src/core/tab.js +0 -21
  363. package/docs/src/core/tab.pug +0 -180
  364. package/docs/src/core/textfield.js +0 -15
  365. package/docs/src/core/textfield.pug +0 -274
  366. package/docs/src/core/toolbar.js +0 -4
  367. package/docs/src/core/toolbar.pug +0 -79
  368. package/docs/src/core/tooltip.js +0 -4
  369. package/docs/src/core/tooltip.pug +0 -76
  370. package/docs/src/core/type.js +0 -4
  371. package/docs/src/core/type.pug +0 -36
  372. package/docs/src/docs.scss +0 -200
  373. package/docs/src/index.pug +0 -5
  374. package/docs/src/mixins.pug +0 -72
  375. package/docs/src/targetHandler.js +0 -50
  376. package/docs/src/theming.ie11.scss +0 -35
  377. package/docs/src/theming.scss +0 -36
  378. package/docs/tab.html +0 -301
  379. package/docs/tab.min.js +0 -397
  380. package/docs/textfield.html +0 -476
  381. package/docs/textfield.min.js +0 -381
  382. package/docs/theming.ie11.min.css +0 -1
  383. package/docs/theming.ie11.min.js +0 -83
  384. package/docs/theming.min.css +0 -1
  385. package/docs/theming.min.js +0 -83
  386. package/docs/toolbar.html +0 -213
  387. package/docs/toolbar.min.js +0 -160
  388. package/docs/tooltip.html +0 -138
  389. package/docs/tooltip.min.js +0 -160
  390. package/docs/type.html +0 -94
  391. package/docs/type.min.js +0 -160
  392. package/webpack.config.js +0 -176
@@ -0,0 +1,217 @@
1
+ import * as Menu from '../../components/menu/index.js';
2
+ import * as MenuItem from '../../components/menu/item.js';
3
+ import { iterateArrayLike } from '../../core/dom.js';
4
+ import { convertElementToCode } from '../_sample-utils.js';
5
+
6
+ /** @type {HTMLElement} */
7
+ let sampleComponent;
8
+
9
+ /**
10
+ * @param {MouseEvent} event
11
+ * @return {void}
12
+ */
13
+ function onSampleButtonClick(event) {
14
+ Menu.show(sampleComponent, event);
15
+ }
16
+
17
+ /** @return {void} */
18
+ function updateSampleCode() {
19
+ /** @type {HTMLInputElement} */
20
+ const jsRequiredElement = (document.querySelector('input[name="javascript"][value="required"]'));
21
+ const jsRequired = jsRequiredElement.checked;
22
+ /** @type {HTMLInputElement} */
23
+ const jsOptionalElement = (document.querySelector('input[name="javascript"][value="optional"]'));
24
+ const jsOptional = jsOptionalElement.checked;
25
+ const useJS = jsRequired || jsOptional;
26
+
27
+ if (jsRequired) {
28
+ document.querySelector('[name="vdirection"][value="vcenter"]').removeAttribute('disabled');
29
+ document.querySelector('[name="hdirection"][value="hcenter"]').removeAttribute('disabled');
30
+ } else {
31
+ document.querySelector('[name="vdirection"][value="vcenter"]').setAttribute('disabled', '');
32
+ document.querySelector('[name="hdirection"][value="hcenter"]').setAttribute('disabled', '');
33
+ }
34
+
35
+ // Strip JS related elements and attributes
36
+ Menu.detach(sampleComponent);
37
+ const button = document.querySelector('.component-sample .mdw-button');
38
+ let closer = document.querySelector('.component-sample .mdw-menu__close');
39
+ button.removeEventListener('click', onSampleButtonClick);
40
+ iterateArrayLike(sampleComponent.querySelectorAll('[tabindex]'), (el) => el.removeAttribute('tabindex'));
41
+
42
+ if (closer) {
43
+ if (jsRequired || (closer instanceof HTMLAnchorElement === false)) {
44
+ closer.parentElement.removeChild(closer);
45
+ closer = null;
46
+ }
47
+ }
48
+
49
+ if (jsRequired) {
50
+ sampleComponent.removeAttribute('id');
51
+ button.removeAttribute('href');
52
+ } else {
53
+ sampleComponent.setAttribute('id', 'sample-menu');
54
+ button.setAttribute('id', '#sample-menu-button');
55
+ button.setAttribute('href', '#sample-menu');
56
+ if (!closer) {
57
+ closer = document.createElement('a');
58
+ closer.classList.add('mdw-menu__close');
59
+ closer.setAttribute('href', '#sample-menu-button');
60
+ sampleComponent.insertBefore(closer, sampleComponent.firstElementChild);
61
+ }
62
+ }
63
+
64
+ const htmlCodeElement = document.getElementsByClassName('component-html')[0];
65
+ const sampleContainer = document.querySelector('.component-sample__container');
66
+ const htmlCodeBlocks = [];
67
+ let el = sampleContainer.firstElementChild;
68
+ if (jsRequired) {
69
+ el = el.firstElementChild;
70
+ }
71
+ while (el) {
72
+ const htmlCode = convertElementToCode(el).trim();
73
+ if (htmlCode) {
74
+ htmlCodeBlocks.push(htmlCode);
75
+ }
76
+ el = el.nextElementSibling;
77
+ }
78
+ htmlCodeElement.textContent = htmlCodeBlocks.join('\n');
79
+
80
+ // Reattach JS if requested
81
+ if (useJS) {
82
+ Menu.attach(sampleComponent);
83
+ button.addEventListener('click', onSampleButtonClick);
84
+ }
85
+
86
+ const jsCodeElement = document.getElementsByClassName('component-js')[0];
87
+ jsCodeElement.textContent = [
88
+ "buttonElement.addEventListener('click', (event) => {",
89
+ ' mdw.Menu.show(menuElement, event);',
90
+ '});',
91
+ 'menuElement.addEventListener(MenuItem.ACTIVATE_EVENT, (event) => {',
92
+ ' const menuItem = event.target;',
93
+ ' handleMenuItem(menuItem);',
94
+ ' mdw.Menu.hide(menuElement)',
95
+ '});',
96
+ ].join('\n');
97
+ }
98
+
99
+ /** @return {void} */
100
+ function initializeSampleComponents() {
101
+ const button = document.querySelector('.js .mdw-button');
102
+ const menu = document.querySelector('.js .mdw-menu');
103
+ button.addEventListener('click', (/** @type {MouseEvent|PointerEvent} */ event) => {
104
+ Menu.show(menu, event);
105
+ });
106
+
107
+ // Close on activation
108
+ menu.addEventListener(MenuItem.ACTIVATE_EVENT, () => Menu.hide(menu));
109
+ }
110
+
111
+ /**
112
+ * @param {Event} event
113
+ * @return {void}
114
+ */
115
+ function onOptionChange(event) {
116
+ /** @type {HTMLInputElement} */
117
+ const { name, value } = (event.target);
118
+ let mdwDirection = sampleComponent.getAttribute('mdw-direction') || '';
119
+ let mdwPosition = sampleComponent.getAttribute('mdw-position') || '';
120
+
121
+ switch (name) {
122
+ case 'vposition':
123
+ mdwPosition = mdwPosition
124
+ .replace('bottom', '')
125
+ .replace('top', '')
126
+ .replace('vcenter', '')
127
+ .trim();
128
+ switch (value) {
129
+ case 'auto':
130
+ break;
131
+ default:
132
+ mdwPosition = `${value} ${mdwPosition}`.trim();
133
+ break;
134
+ }
135
+ break;
136
+ case 'hposition':
137
+ mdwPosition = mdwPosition
138
+ .replace('start', '')
139
+ .replace('end', '')
140
+ .replace('left', '')
141
+ .replace('right', '')
142
+ .replace('hcenter', '')
143
+ .trim();
144
+ switch (value) {
145
+ case 'auto':
146
+ break;
147
+ default:
148
+ mdwPosition = `${mdwPosition} ${value}`.trim();
149
+ break;
150
+ }
151
+ break;
152
+ case 'vdirection':
153
+ mdwDirection = mdwDirection
154
+ .replace('down', '')
155
+ .replace('up', '')
156
+ .replace('vcenter', '')
157
+ .trim();
158
+ switch (value) {
159
+ case 'auto':
160
+ break;
161
+ default:
162
+ mdwDirection = `${value} ${mdwDirection}`.trim();
163
+ break;
164
+ }
165
+ break;
166
+ case 'hdirection':
167
+ mdwDirection = mdwDirection
168
+ .replace('normal', '')
169
+ .replace('reverse', '')
170
+ .replace('ltr', '')
171
+ .replace('rtl', '')
172
+ .replace('hcenter', '')
173
+ .trim();
174
+ switch (value) {
175
+ case 'auto':
176
+ break;
177
+ default:
178
+ mdwDirection = `${mdwDirection} ${value}`.trim();
179
+ break;
180
+ }
181
+ break;
182
+ case 'width':
183
+ switch (value) {
184
+ case 'auto':
185
+ sampleComponent.removeAttribute('mdw-width-units');
186
+ break;
187
+ default:
188
+ sampleComponent.setAttribute('mdw-width-units', value);
189
+ break;
190
+ }
191
+ break;
192
+ default:
193
+ }
194
+ if (!mdwPosition) {
195
+ sampleComponent.removeAttribute('mdw-position');
196
+ } else if (sampleComponent.getAttribute('mdw-position') !== mdwPosition) {
197
+ sampleComponent.setAttribute('mdw-position', mdwPosition);
198
+ }
199
+ if (!mdwDirection) {
200
+ sampleComponent.removeAttribute('mdw-direction');
201
+ } else if (sampleComponent.getAttribute('mdw-direction') !== mdwDirection) {
202
+ sampleComponent.setAttribute('mdw-direction', mdwDirection);
203
+ }
204
+ updateSampleCode();
205
+ }
206
+
207
+ /** @return {void} */
208
+ function setupComponentOptions() {
209
+ sampleComponent = document.querySelector('.component-sample .mdw-menu');
210
+ iterateArrayLike(document.querySelectorAll('input[name]'), (el) => {
211
+ el.addEventListener('change', onOptionChange);
212
+ });
213
+ }
214
+
215
+ initializeSampleComponents();
216
+ setupComponentOptions();
217
+ updateSampleCode();
@@ -0,0 +1,205 @@
1
+ include ../_mixins.pug
2
+
3
+ +header("menu")
4
+ .mdw-grid(mdw-margin-top mdw-margin-bottom mdw-stretch)
5
+ .mdw-grid__item(mdw-colspan="100%")
6
+ .mdw-grid__content
7
+ h5.mdw-type(mdw-baseline-next="36") Menus display a list of choices on a transient sheet of material.
8
+ p.mdw-type(mdw-baseline-next="36") Menus appear upon interaction with a button, action, or other control. They display a list of choices, with one choice per line.
9
+ p.mdw-type Menu items may be disabled if not applicable to a certain context. Contextual menus dynamically change their available menu items based on the current state of the app.
10
+ .mdw-grid__item(mdw-colspan="4")
11
+ .mdw-grid__content
12
+ .component-sample
13
+ .component-sample__container
14
+ .mdw-menu__wrapper
15
+ +mdwButton Open
16
+ .mdw-menu
17
+ .mdw-menu__popup.mdw-theme(mdw-surface="card")
18
+ .mdw-menu__item
19
+ .mdw-menu__icon.mdw-theme.material-icons(mdw-ink="medium") format_bold
20
+ .mdw-menu__text Bold
21
+ .mdw-menu__info ⌘B
22
+ .mdw-menu__item(aria-disabled="true")
23
+ .mdw-menu__icon.mdw-theme.material-icons(mdw-ink="medium") format_italic
24
+ .mdw-menu__text Italic
25
+ .mdw-menu__info ⌘I
26
+ .mdw-menu__item
27
+ .mdw-menu__icon.mdw-theme.material-icons(mdw-ink="medium") format_underline
28
+ .mdw-menu__text Underline
29
+ .mdw-menu__info ⌘U
30
+ .mdw-divider.mdw-theme(mdw-ink="divider")
31
+ .mdw-menu__item(aria-checked="true")
32
+ .mdw-menu__check.mdw-theme.material-icons(mdw-ink="medium") check
33
+ .mdw-menu__text Flights
34
+ .mdw-menu__item
35
+ .mdw-menu__check.mdw-theme.material-icons(mdw-ink="medium") check
36
+ .mdw-menu__text Apps
37
+ .mdw-grid__item(mdw-colspan="8")
38
+ .mdw-grid__content
39
+ .mdw-type(mdw-style="subtitle") Javascript
40
+ .docs-option-list
41
+ +mdwSelection({ink:'secondary', name:'javascript', type:'radio', value:'required', checked:true}) Required
42
+ +mdwSelection({ink:'secondary', name:'javascript', type:'radio', value:'optional'}) Optional
43
+ +mdwSelection({ink:'secondary', name:'javascript', type:'radio', value:'none' }) None
44
+ .mdw-type(mdw-style="subtitle") Vertical Position
45
+ .docs-option-list
46
+ +mdwSelection({ink:'secondary', name:'vposition', type:'radio', value:'auto', checked:true}) Auto
47
+ +mdwSelection({ink:'secondary', name:'vposition', type:'radio', value:'bottom'}) Bottom
48
+ +mdwSelection({ink:'secondary', name:'vposition', type:'radio', value:'top' }) Top
49
+ +mdwSelection({ink:'secondary', name:'vposition', type:'radio', value:'vcenter' }) Center
50
+ .mdw-type(mdw-style="subtitle") Horizontal Position
51
+ .docs-option-list
52
+ +mdwSelection({ink:'secondary', name:'hposition', type:'radio', value:'auto', checked:true}) Auto
53
+ +mdwSelection({ink:'secondary', name:'hposition', type:'radio', value:'start'}) Start
54
+ +mdwSelection({ink:'secondary', name:'hposition', type:'radio', value:'end' }) End
55
+ +mdwSelection({ink:'secondary', name:'hposition', type:'radio', value:'left' }) Left
56
+ +mdwSelection({ink:'secondary', name:'hposition', type:'radio', value:'right' }) Right
57
+ +mdwSelection({ink:'secondary', name:'hposition', type:'radio', value:'hcenter' }) Center
58
+ .mdw-type(mdw-style="subtitle") Vertical Direction
59
+ .docs-option-list
60
+ +mdwSelection({ink:'secondary', name:'vdirection', type:'radio', value:'auto', checked:true}) Auto
61
+ +mdwSelection({ink:'secondary', name:'vdirection', type:'radio', value:'down'}) Down
62
+ +mdwSelection({ink:'secondary', name:'vdirection', type:'radio', value:'up' }) Up
63
+ +mdwSelection({ink:'secondary', name:'vdirection', type:'radio', value:'vcenter' }) Center
64
+ .mdw-type(mdw-style="subtitle") Horizontal Direction
65
+ .docs-option-list
66
+ +mdwSelection({ink:'secondary', name:'hdirection', type:'radio', value:'auto', checked:true}) Auto
67
+ +mdwSelection({ink:'secondary', name:'hdirection', type:'radio', value:'normal'}) Normal
68
+ +mdwSelection({ink:'secondary', name:'hdirection', type:'radio', value:'reverse' }) Reverse
69
+ +mdwSelection({ink:'secondary', name:'hdirection', type:'radio', value:'ltr'}) Left-to-Right
70
+ +mdwSelection({ink:'secondary', name:'hdirection', type:'radio', value:'rtl' }) Right-to-Left
71
+ +mdwSelection({ink:'secondary', name:'hdirection', type:'radio', value:'hcenter' }) Center
72
+ .mdw-type(mdw-style="subtitle") Width Units
73
+ .docs-option-list
74
+ +mdwSelection({ink:'secondary', name:'width', type:'radio', value:'auto', checked:true}) Auto
75
+ +mdwSelection({ink:'secondary', name:'width', type:'radio', value:'3' }) 3
76
+ +mdwSelection({ink:'secondary', name:'width', type:'radio', value:'4' }) 4
77
+ +mdwSelection({ink:'secondary', name:'width', type:'radio', value:'5' }) 5
78
+ +mdwSelection({ink:'secondary', name:'width', type:'radio', value:'6' }) 6
79
+ +mdwSelection({ink:'secondary', name:'width', type:'radio', value:'7' }) 7
80
+ .mdw-grid__item(mdw-colspan="100%" style="max-height:0")
81
+ .mdw-grid__item(mdw-colspan="6")
82
+ .mdw-grid__content
83
+ h6.mdw-type HTML Code
84
+ .mdw-card.mdw-theme.component-code.component-html(mdw-surface="card" mdw-border-ink)
85
+ .mdw-grid__item(mdw-colspan="6")
86
+ .mdw-grid__content
87
+ h6.mdw-type Javascript Code
88
+ .mdw-card.mdw-theme.component-code.component-js(mdw-surface="card" mdw-border-ink)
89
+ .mdw-grid__item(mdw-colspan="100%")
90
+ h6.mdw-type Samples
91
+ .mdw-grid__item.display-flex(mdw-colspan="4" flex-justify-content="center")
92
+ .mdw-grid__content
93
+ .render-fill
94
+ +androidstatusbar('primary 700', 'dark')
95
+ .mdw-appbar.mdw-theme(mdw-surface="primary 500" mdw-dark)
96
+ .mdw-appbar__action
97
+ .mdw-appbar__start
98
+ .mdw-tooltip__wrapper
99
+ +mdwButton({ icon:true }).mdw-tooltip__target.material-icons menu
100
+ .mdw-tooltip.mdw-theme(mdw-surface="background 700" mdw-dark) Menu
101
+ .mdw-appbar__end
102
+ .mdw-tooltip__wrapper.mdw-menu__wrapper
103
+ +mdwButton({ icon:true }).mdw-tooltip__target.material-icons(mdw-more-button href="#moremenu") more_vert
104
+ .mdw-tooltip.mdw-theme(mdw-surface="background 700" mdw-dark).mdw-tooltip Options
105
+ .mdw-menu#moremenu(mdw-direction="reverse" mdw-position="end" mdw-width-units="3")
106
+ a.mdw-menu__close(href="#")
107
+ .mdw-menu__popup.mdw-theme(mdw-surface="card")
108
+ .mdw-menu__text Refresh
109
+ .mdw-menu__text Settings
110
+ .mdw-menu__text Send feedback
111
+ .mdw-menu__text Help
112
+ .mdw-menu__text Signout
113
+ .content(style="padding:16px 8px")
114
+ .mdw-menu__wrapper
115
+ +mdwButton({ surface:'primary 500', dark:true, raised:true })#textmenu-button(href="#textmenu") Text
116
+ .mdw-menu#textmenu
117
+ a.mdw-menu__close(href="#textmenu-button")
118
+ .mdw-menu__popup.mdw-theme(mdw-surface="card")
119
+ .mdw-menu__item.mdw-overlay.mdw-ripple Maps
120
+ .mdw-menu__item.mdw-overlay.mdw-ripple Books
121
+ .mdw-menu__item.mdw-overlay.mdw-ripple Flights
122
+ .mdw-menu__item.mdw-overlay.mdw-ripple Apps
123
+ .mdw-menu__wrapper
124
+ +mdwButton({ surface:'primary 500', dark:true, raised:true })#checkmenu-button(href="#checkmenu") Checks
125
+ .mdw-menu#checkmenu
126
+ a.mdw-menu__close(href="#checkmenu-button")
127
+ .mdw-menu__popup.mdw-theme(mdw-surface="card")
128
+ .mdw-menu__item.mdw-overlay.mdw-ripple
129
+ .mdw-menu__check.mdw-theme.material-icons(mdw-ink="medium") check
130
+ .mdw-menu__text Maps
131
+ .mdw-menu__item.mdw-overlay.mdw-ripple(aria-checked="true")
132
+ .mdw-menu__check.mdw-theme.material-icons(mdw-ink="medium") check
133
+ .mdw-menu__text Books
134
+ .mdw-menu__item.mdw-overlay.mdw-ripple(aria-checked="true")
135
+ .mdw-menu__check.mdw-theme.material-icons(mdw-ink="medium") check
136
+ .mdw-menu__text Flights
137
+ .mdw-menu__item.mdw-overlay.mdw-ripple
138
+ .mdw-menu__check.mdw-theme.material-icons(mdw-ink="medium") check
139
+ .mdw-menu__text Apps
140
+ div(style="height:400px")
141
+ .mdw-menu__wrapper
142
+ +mdwButton({ surface:'primary 500', dark:true, raised:true })#infomenu-button(href="#infomenu") Info
143
+ .mdw-menu#infomenu(mdw-width-units=4 mdw-direction="up" mdw-position="top")
144
+ a.mdw-menu__close(href="#infomenu-button")
145
+ .mdw-menu__popup.mdw-theme(mdw-surface="card")
146
+ .mdw-menu__item.mdw-overlay.mdw-ripple(aria-disabled="true")
147
+ .mdw-menu__check.mdw-theme.material-icons(mdw-ink="medium") check
148
+ .mdw-menu__text Bold
149
+ .mdw-menu__info ⌘B
150
+ .mdw-menu__item.mdw-overlay.mdw-ripple(aria-checked="true")
151
+ .mdw-menu__check.mdw-theme.material-icons(mdw-ink="medium") check
152
+ .mdw-menu__text Italic
153
+ .mdw-menu__info ⌘I
154
+ .mdw-menu__item.mdw-overlay.mdw-ripple(aria-checked="true")
155
+ .mdw-menu__check.mdw-theme.material-icons(mdw-ink="medium") check
156
+ .mdw-menu__text Underline
157
+ .mdw-menu__info ⌘U
158
+ .mdw-divider.mdw-theme(mdw-ink="divider")
159
+ .mdw-menu__item.mdw-overlay.mdw-ripple(aria-checked="true")
160
+ .mdw-menu__check.mdw-theme.material-icons(mdw-ink="medium") check
161
+ .mdw-menu__text Flights
162
+ .mdw-menu__item.mdw-overlay.mdw-ripple
163
+ .mdw-menu__check.mdw-theme.material-icons(mdw-ink="medium") check
164
+ .mdw-menu__text Apps
165
+ .mdw-menu__wrapper
166
+ +mdwButton({ surface:'primary 500', dark:true, raised:true })#iconmenu-button(href="#iconmenu") Icons
167
+ .mdw-menu#iconmenu(mdw-width-units=4 mdw-direction="up" mdw-position="top")
168
+ a.mdw-menu__close(href="#iconmenu-button")
169
+ .mdw-menu__popup.mdw-theme(mdw-surface="card")
170
+ .mdw-menu__item.mdw-overlay.mdw-ripple
171
+ .mdw-menu__icon.mdw-theme.material-icons(mdw-ink="medium") format_bold
172
+ .mdw-menu__text Bold
173
+ .mdw-menu__info ⌘B
174
+ .mdw-menu__item.mdw-overlay.mdw-ripple
175
+ .mdw-menu__icon.mdw-theme.material-icons(mdw-ink="medium") format_italic
176
+ .mdw-menu__text Italic
177
+ .mdw-menu__info ⌘I
178
+ .mdw-menu__item.mdw-overlay.mdw-ripple
179
+ .mdw-menu__icon.mdw-theme.material-icons(mdw-ink="medium") format_underline
180
+ .mdw-menu__text Underline
181
+ .mdw-menu__info ⌘U
182
+ .mdw-menu__wrapper.js
183
+ +mdwButton({ surface:'primary 500', dark:true, raised: true }) JS
184
+ .mdw-menu(mdw-width-units=4 mdw-direction="reverse")
185
+ .mdw-menu__popup.mdw-theme(mdw-surface="card")
186
+ .mdw-menu__item
187
+ .mdw-menu__icon.mdw-theme.material-icons(mdw-ink="medium") format_bold
188
+ .mdw-menu__text Bold
189
+ .mdw-menu__info ⌘B
190
+ .mdw-menu__item(aria-disabled="true")
191
+ .mdw-menu__icon.mdw-theme.material-icons(mdw-ink="medium") format_italic
192
+ .mdw-menu__text Italic
193
+ .mdw-menu__info ⌘I
194
+ .mdw-menu__item
195
+ .mdw-menu__icon.mdw-theme.material-icons(mdw-ink="medium") format_underline
196
+ .mdw-menu__text Underline
197
+ .mdw-menu__info ⌘U
198
+ .mdw-divider.mdw-theme(mdw-ink="divider")
199
+ .mdw-menu__item(aria-checked="true")
200
+ .mdw-menu__check.mdw-theme.material-icons(mdw-ink="medium") check
201
+ .mdw-menu__text Flights
202
+ .mdw-menu__item
203
+ .mdw-menu__check.mdw-theme.material-icons(mdw-ink="medium") check
204
+ .mdw-menu__text Apps
205
+ script(src='menu.min.js')
@@ -0,0 +1,69 @@
1
+ <% var T = '../../templates/index.eta' %>
2
+ <% layout('../_partials/_header.eta', {page: 'overlay'}) %>
3
+ <div class="mdw-grid" mdw-margin-top mdw-margin-bottom mdw-stretch>
4
+ <div class="mdw-grid__item" mdw-colspan="100%">
5
+ <div class="mdw-grid__content">
6
+ <h2 class="mdw-type">JS</h2>
7
+ <p class="mdw-type">No hover or focus overlay on touch</p>
8
+ </div>
9
+ </div>
10
+ <div class="mdw-grid__item" mdw-colspan="4">
11
+ <div class="mdw-grid__content">
12
+ <h6 class="mdw-type">Default Ink</h6>
13
+ <div class="display-flex flex-column js">
14
+ <div class="demo-core-item mdw-elevation mdw-overlay mdw-theme" mdw-elevation="1" tabindex="0" mdw-raised mdw-ink="default" mdw-surface="binary">Normal</div>
15
+ <div class="demo-core-item mdw-elevation mdw-overlay mdw-theme" mdw-elevation="1" tabindex="0" mdw-raised mdw-ink="default" mdw-surface="binary" aria-selected="false">[aria-selected="false"]</div>
16
+ <div class="demo-core-item mdw-elevation mdw-overlay mdw-theme" mdw-elevation="1" tabindex="0" mdw-raised mdw-ink="default" mdw-surface="binary" aria-selected="true">[aria-selected="true"]</div>
17
+ <div class="demo-core-item mdw-elevation mdw-overlay mdw-theme" mdw-elevation="1" tabindex="0" mdw-raised mdw-ink="default" mdw-surface="binary" aria-pressed="false">[aria-pressed="false"]</div>
18
+ <div class="demo-core-item mdw-elevation mdw-overlay mdw-theme" mdw-elevation="1" tabindex="0" mdw-raised mdw-ink="default" mdw-surface="binary" aria-pressed="true">[aria-pressed="true"]</div>
19
+ <div class="demo-core-item mdw-elevation mdw-overlay mdw-theme" mdw-elevation="1" tabindex="0" mdw-raised mdw-ink="default" mdw-surface="binary" aria-current="true">[aria-current]</div>
20
+ <div class="demo-core-item mdw-elevation mdw-overlay mdw-theme" mdw-elevation="1" tabindex="0" mdw-raised mdw-ink="default" mdw-surface="binary" aria-selected="true" aria-current="true">[aria-selected="true"][aria-current]</div>
21
+ </div>
22
+ </div>
23
+ </div>
24
+ <div class="mdw-grid__item" mdw-colspan="4">
25
+ <div class="mdw-grid__content">
26
+ <h6 class="mdw-type">Secondary Ink</h6>
27
+ <div class="display-flex flex-column js">
28
+ <div class="demo-core-item mdw-elevation mdw-overlay mdw-theme" mdw-elevation="1" tabindex="0" mdw-raised mdw-ink="secondary" mdw-surface="binary">Normal</div>
29
+ <div class="demo-core-item mdw-elevation mdw-overlay mdw-theme" mdw-elevation="1" tabindex="0" mdw-raised mdw-ink="secondary" mdw-surface="binary" aria-selected="false">[aria-selected="false"]</div>
30
+ <div class="demo-core-item mdw-elevation mdw-overlay mdw-theme" mdw-elevation="1" tabindex="0" mdw-raised mdw-ink="secondary" mdw-surface="binary" aria-selected="true">[aria-selected="true"]</div>
31
+ <div class="demo-core-item mdw-elevation mdw-overlay mdw-theme" mdw-elevation="1" tabindex="0" mdw-raised mdw-ink="secondary" mdw-surface="binary" aria-pressed="false">[aria-pressed="false"]</div>
32
+ <div class="demo-core-item mdw-elevation mdw-overlay mdw-theme" mdw-elevation="1" tabindex="0" mdw-raised mdw-ink="secondary" mdw-surface="binary" aria-pressed="true">[aria-pressed="true"]</div>
33
+ <div class="demo-core-item mdw-elevation mdw-overlay mdw-theme" mdw-elevation="1" tabindex="0" mdw-raised mdw-ink="secondary" mdw-surface="binary" aria-current="true">[aria-current]</div>
34
+ <div class="demo-core-item mdw-elevation mdw-overlay mdw-theme" mdw-elevation="1" tabindex="0" mdw-raised mdw-ink="secondary" mdw-surface="binary" aria-selected="true" aria-current="true">[aria-selected="true"][aria-current]</div>
35
+ </div>
36
+ </div>
37
+ </div>
38
+ <div class="mdw-grid__item" mdw-colspan="100%">
39
+ <div class="mdw-grid__content">
40
+ <h2 class="mdw-type">CSS Only</h2>
41
+ <p class="mdw-type">No touch detection</p>
42
+ </div>
43
+ </div>
44
+ <div class="mdw-grid__item" mdw-colspan="4">
45
+ <div class="mdw-grid__content">
46
+ <h6 class="mdw-type">Default Ink</h6>
47
+ <div class="display-flex flex-column">
48
+ <div class="demo-core-item mdw-elevation mdw-overlay mdw-theme" mdw-elevation="1" tabindex="0" mdw-raised mdw-ink="default" mdw-surface="binary">Normal</div>
49
+ <div class="demo-core-item mdw-elevation mdw-overlay mdw-theme" mdw-elevation="1" tabindex="0" mdw-raised mdw-ink="default" mdw-surface="binary" aria-selected="false">[aria-selected="false"]</div>
50
+ <div class="demo-core-item mdw-elevation mdw-overlay mdw-theme" mdw-elevation="1" tabindex="0" mdw-raised mdw-ink="default" mdw-surface="binary" aria-pressed="false">[aria-pressed="false"]</div>
51
+ <div class="demo-core-item mdw-elevation mdw-overlay mdw-theme" mdw-elevation="1" tabindex="0" mdw-raised mdw-ink="default" mdw-surface="binary" aria-selected="true">[aria-selected="true"]</div>
52
+ <div class="demo-core-item mdw-elevation mdw-overlay mdw-theme" mdw-elevation="1" tabindex="0" mdw-raised mdw-ink="default" mdw-surface="binary" aria-pressed="true">[aria-pressed="true"]</div>
53
+ </div>
54
+ </div>
55
+ </div>
56
+ <div class="mdw-grid__item" mdw-colspan="4">
57
+ <div class="mdw-grid__content">
58
+ <h6 class="mdw-type">Secondary Ink</h6>
59
+ <div class="display-flex flex-column">
60
+ <div class="demo-core-item mdw-elevation mdw-overlay mdw-theme" mdw-elevation="1" tabindex="0" mdw-raised mdw-ink="secondary" mdw-surface="binary">Normal</div>
61
+ <div class="demo-core-item mdw-elevation mdw-overlay mdw-theme" mdw-elevation="1" tabindex="0" mdw-raised mdw-ink="secondary" mdw-surface="binary" aria-selected="false">[aria-selected="false"]</div>
62
+ <div class="demo-core-item mdw-elevation mdw-overlay mdw-theme" mdw-elevation="1" tabindex="0" mdw-raised mdw-ink="secondary" mdw-surface="binary" aria-pressed="false">[aria-pressed="false"]</div>
63
+ <div class="demo-core-item mdw-elevation mdw-overlay mdw-theme" mdw-elevation="1" tabindex="0" mdw-raised mdw-ink="secondary" mdw-surface="binary" aria-selected="true">[aria-selected="true"]</div>
64
+ <div class="demo-core-item mdw-elevation mdw-overlay mdw-theme" mdw-elevation="1" tabindex="0" mdw-raised mdw-ink="secondary" mdw-surface="binary" aria-pressed="true">[aria-pressed="true"]</div>
65
+ </div>
66
+ </div>
67
+ </div>
68
+ </div>
69
+ <script src="overlay.min.js"></script>
@@ -0,0 +1,4 @@
1
+ import { iterateArrayLike } from '../../core/dom.js';
2
+ import * as Overlay from '../../core/overlay/index.js';
3
+
4
+ iterateArrayLike(document.querySelectorAll('.js .mdw-overlay'), Overlay.attach);
@@ -0,0 +1,55 @@
1
+ include ../_mixins.pug
2
+
3
+ +header("overlay")
4
+ .mdw-grid(mdw-margin-top mdw-margin-bottom mdw-stretch)
5
+ .mdw-grid__item(mdw-colspan="100%")
6
+ .mdw-grid__content
7
+ h2.mdw-type JS
8
+ p.mdw-type No hover or focus overlay on touch
9
+ .mdw-grid__item(mdw-colspan="4")
10
+ .mdw-grid__content
11
+ h6.mdw-type Default Ink
12
+ .display-flex.flex-column.js
13
+ .demo-core-item.mdw-elevation.mdw-overlay.mdw-theme(mdw-elevation="1" tabindex="0" mdw-raised mdw-ink="default" mdw-surface="binary") Normal
14
+ .demo-core-item.mdw-elevation.mdw-overlay.mdw-theme(mdw-elevation="1" tabindex="0" mdw-raised mdw-ink="default" mdw-surface="binary" aria-selected="false") [aria-selected="false"]
15
+ .demo-core-item.mdw-elevation.mdw-overlay.mdw-theme(mdw-elevation="1" tabindex="0" mdw-raised mdw-ink="default" mdw-surface="binary" aria-selected="true") [aria-selected="true"]
16
+ .demo-core-item.mdw-elevation.mdw-overlay.mdw-theme(mdw-elevation="1" tabindex="0" mdw-raised mdw-ink="default" mdw-surface="binary" aria-pressed="false") [aria-pressed="false"]
17
+ .demo-core-item.mdw-elevation.mdw-overlay.mdw-theme(mdw-elevation="1" tabindex="0" mdw-raised mdw-ink="default" mdw-surface="binary" aria-pressed="true") [aria-pressed="true"]
18
+ .demo-core-item.mdw-elevation.mdw-overlay.mdw-theme(mdw-elevation="1" tabindex="0" mdw-raised mdw-ink="default" mdw-surface="binary" aria-current="true") [aria-current]
19
+ .demo-core-item.mdw-elevation.mdw-overlay.mdw-theme(mdw-elevation="1" tabindex="0" mdw-raised mdw-ink="default" mdw-surface="binary" aria-selected="true" aria-current="true") [aria-selected="true"][aria-current]
20
+ .mdw-grid__item(mdw-colspan="4")
21
+ .mdw-grid__content
22
+ h6.mdw-type Secondary Ink
23
+ .display-flex.flex-column.js
24
+ .demo-core-item.mdw-elevation.mdw-overlay.mdw-theme(mdw-elevation="1" tabindex="0" mdw-raised mdw-ink="secondary" mdw-surface="binary") Normal
25
+ .demo-core-item.mdw-elevation.mdw-overlay.mdw-theme(mdw-elevation="1" tabindex="0" mdw-raised mdw-ink="secondary" mdw-surface="binary" aria-selected="false") [aria-selected="false"]
26
+ .demo-core-item.mdw-elevation.mdw-overlay.mdw-theme(mdw-elevation="1" tabindex="0" mdw-raised mdw-ink="secondary" mdw-surface="binary" aria-selected="true") [aria-selected="true"]
27
+ .demo-core-item.mdw-elevation.mdw-overlay.mdw-theme(mdw-elevation="1" tabindex="0" mdw-raised mdw-ink="secondary" mdw-surface="binary" aria-pressed="false") [aria-pressed="false"]
28
+ .demo-core-item.mdw-elevation.mdw-overlay.mdw-theme(mdw-elevation="1" tabindex="0" mdw-raised mdw-ink="secondary" mdw-surface="binary" aria-pressed="true") [aria-pressed="true"]
29
+ .demo-core-item.mdw-elevation.mdw-overlay.mdw-theme(mdw-elevation="1" tabindex="0" mdw-raised mdw-ink="secondary" mdw-surface="binary" aria-current="true") [aria-current]
30
+ .demo-core-item.mdw-elevation.mdw-overlay.mdw-theme(mdw-elevation="1" tabindex="0" mdw-raised mdw-ink="secondary" mdw-surface="binary" aria-selected="true" aria-current="true") [aria-selected="true"][aria-current]
31
+ .mdw-grid__item(mdw-colspan="100%")
32
+ .mdw-grid__content
33
+ h2.mdw-type CSS Only
34
+ p.mdw-type No touch detection
35
+ .mdw-grid__item(mdw-colspan="4")
36
+ .mdw-grid__content
37
+ h6.mdw-type Default Ink
38
+ .display-flex.flex-column
39
+ .demo-core-item.mdw-elevation.mdw-overlay.mdw-theme(mdw-elevation="1" tabindex="0" mdw-raised mdw-ink="default" mdw-surface="binary") Normal
40
+ .demo-core-item.mdw-elevation.mdw-overlay.mdw-theme(mdw-elevation="1" tabindex="0" mdw-raised mdw-ink="default" mdw-surface="binary" aria-selected="false") [aria-selected="false"]
41
+ .demo-core-item.mdw-elevation.mdw-overlay.mdw-theme(mdw-elevation="1" tabindex="0" mdw-raised mdw-ink="default" mdw-surface="binary" aria-pressed="false") [aria-pressed="false"]
42
+ .demo-core-item.mdw-elevation.mdw-overlay.mdw-theme(mdw-elevation="1" tabindex="0" mdw-raised mdw-ink="default" mdw-surface="binary" aria-selected="true") [aria-selected="true"]
43
+ .demo-core-item.mdw-elevation.mdw-overlay.mdw-theme(mdw-elevation="1" tabindex="0" mdw-raised mdw-ink="default" mdw-surface="binary" aria-pressed="true") [aria-pressed="true"]
44
+ .mdw-grid__item(mdw-colspan="4")
45
+ .mdw-grid__content
46
+ h6.mdw-type Secondary Ink
47
+ .display-flex.flex-column
48
+ .demo-core-item.mdw-elevation.mdw-overlay.mdw-theme(mdw-elevation="1" tabindex="0" mdw-raised mdw-ink="secondary" mdw-surface="binary") Normal
49
+ .demo-core-item.mdw-elevation.mdw-overlay.mdw-theme(mdw-elevation="1" tabindex="0" mdw-raised mdw-ink="secondary" mdw-surface="binary" aria-selected="false") [aria-selected="false"]
50
+ .demo-core-item.mdw-elevation.mdw-overlay.mdw-theme(mdw-elevation="1" tabindex="0" mdw-raised mdw-ink="secondary" mdw-surface="binary" aria-pressed="false") [aria-pressed="false"]
51
+ .demo-core-item.mdw-elevation.mdw-overlay.mdw-theme(mdw-elevation="1" tabindex="0" mdw-raised mdw-ink="secondary" mdw-surface="binary" aria-selected="true") [aria-selected="true"]
52
+ .demo-core-item.mdw-elevation.mdw-overlay.mdw-theme(mdw-elevation="1" tabindex="0" mdw-raised mdw-ink="secondary" mdw-surface="binary" aria-pressed="true") [aria-pressed="true"]
53
+
54
+
55
+ script(src='overlay.min.js')
@@ -0,0 +1,23 @@
1
+ <% var T = '../../templates/index.eta' %>
2
+ <% layout('../_partials/_header.eta', {page: 'progress'}) %>
3
+ <div class="comparison clipped-300 js">
4
+ <div class="render">
5
+ <div class="content display-flex">
6
+ <div class="flex-1 display-flex" flex-justify-content="center" flex-align-items="center">
7
+ <div class="mdw-progress-circle mdw-theme" mdw-ink="primary">
8
+ <svg viewBox="0 0 24 24">
9
+ <path d="M12 3.25A8.75 8.75 0 1 1 3.25 12"></path>
10
+ <path d="M12 3.25A8.75 8.75 0 1 1 3.25 12 A 8.75 8.75 0 0 1 12 3.25"></path>
11
+ </svg>
12
+ </div>
13
+ <div class="mdw-progress-circle mdw-theme" mdw-ink="secondary" mdw-determinate>
14
+ <svg viewBox="0 0 24 24">
15
+ <path d="M12 3.25A8.75 8.75 0 1 1 3.25 12"></path>
16
+ <path d="M12 3.25A8.75 8.75 0 1 1 3.25 12 A 8.75 8.75 0 0 1 12 3.25"></path>
17
+ </svg>
18
+ </div>
19
+ </div>
20
+ </div>
21
+ </div>
22
+ </div>
23
+ <script src="progress.min.js"></script>
@@ -0,0 +1,12 @@
1
+ import * as ProgressCircle from '../../components/progress/index.js';
2
+
3
+ /** @return {void} */
4
+ function setupProgressCircleInterval() {
5
+ const progressCircleElement = document.querySelector('.mdw-progress-circle[mdw-determinate]');
6
+ ProgressCircle.setValue(progressCircleElement, Math.random() * 100);
7
+ setInterval(() => {
8
+ ProgressCircle.setValue(progressCircleElement, Math.random() * 100);
9
+ }, 2500);
10
+ }
11
+
12
+ setupProgressCircleInterval();
@@ -0,0 +1,16 @@
1
+ include ../_mixins.pug
2
+
3
+ +header("progress")
4
+ .comparison.clipped-300.js
5
+ .render
6
+ .content.display-flex
7
+ .flex-1.display-flex(flex-justify-content="center" flex-align-items="center")
8
+ .mdw-progress-circle.mdw-theme(mdw-ink="primary")
9
+ svg(viewBox="0 0 24 24")
10
+ path(d="M12 3.25A8.75 8.75 0 1 1 3.25 12")
11
+ path(d="M12 3.25A8.75 8.75 0 1 1 3.25 12 A 8.75 8.75 0 0 1 12 3.25")
12
+ .mdw-progress-circle.mdw-theme(mdw-ink="secondary" mdw-determinate)
13
+ svg(viewBox="0 0 24 24")
14
+ path(d="M12 3.25A8.75 8.75 0 1 1 3.25 12")
15
+ path(d="M12 3.25A8.75 8.75 0 1 1 3.25 12 A 8.75 8.75 0 0 1 12 3.25")
16
+ script(src='progress.min.js')
@@ -0,0 +1,27 @@
1
+ <% var T = '../../templates/index.eta' %>
2
+ <% layout('../_partials/_header.eta', {page: 'ripple'}) %>
3
+ <div class="mdw-grid" mdw-margin-top mdw-margin-bottom mdw-stretch>
4
+ <div class="mdw-grid__item" mdw-colspan="4">
5
+ <div class="mdw-grid__content">
6
+ <h6 class="mdw-type">Javascript</h6>
7
+ <div class="display-flex flex-column js">
8
+ <div class="demo-core-item mdw-elevation mdw-ripple mdw-theme" mdw-elevation="1" mdw-ink="default" mdw-surface="binary">Default Ink</div>
9
+ <div class="demo-core-item mdw-elevation mdw-ripple mdw-theme" mdw-elevation="1" mdw-ink="primary" mdw-surface="binary">Primary Ink</div>
10
+ <div class="demo-core-item mdw-elevation mdw-ripple mdw-theme" mdw-elevation="1" mdw-ink="secondary" mdw-surface="binary">Secondary Ink</div>
11
+ <div class="demo-core-item mdw-elevation mdw-ripple mdw-theme" mdw-elevation="1" mdw-ink="warn" mdw-surface="binary">Warn Ink</div>
12
+ </div>
13
+ </div>
14
+ </div>
15
+ <div class="mdw-grid__item" mdw-colspan="4">
16
+ <div class="mdw-grid__content">
17
+ <h6 class="mdw-type">CSS Only</h6>
18
+ <div class="display-flex flex-column">
19
+ <div class="demo-core-item mdw-elevation mdw-ripple mdw-theme" mdw-elevation="1" mdw-ink="default" mdw-surface="binary">Default Ink</div>
20
+ <div class="demo-core-item mdw-elevation mdw-ripple mdw-theme" mdw-elevation="1" mdw-ink="primary" mdw-surface="binary">Primary Ink</div>
21
+ <div class="demo-core-item mdw-elevation mdw-ripple mdw-theme" mdw-elevation="1" mdw-ink="secondary" mdw-surface="binary">Secondary Ink</div>
22
+ <div class="demo-core-item mdw-elevation mdw-ripple mdw-theme" mdw-elevation="1" mdw-ink="warn" mdw-surface="binary">Warn Ink</div>
23
+ </div>
24
+ </div>
25
+ </div>
26
+ </div>
27
+ <script src="ripple.min.js"></script>