@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,135 @@
1
+ <% var T = '../../templates/index.eta' %>
2
+ <% layout('../_partials/_header.eta', {page: 'grid'}) %>
3
+ <div class="mdw-grid" mdw-margin-top>
4
+ <div class="mdw-grid__item" mdw-colspan="8">
5
+ <h5 class="mdw-type" mdw-baseline-next="36">The Material Design responsive layout grid adapts to screen size and orientation, ensuring consistency across layouts.</h5>
6
+ <p class="mdw-type">The Material Design layout grid is made up of three elements: columns, gutters, and margins.</p>
7
+ </div>
8
+ <div class="mdw-grid__item" mdw-colspan="8">
9
+ <div class="mdw-type" mdw-style="subtitle">Margins and Gutters</div>
10
+ <div class="docs-option-list">
11
+ <%~ includeFile(T, { selection: { ink:'secondary', name:'default-margins', checked:true, text:'Default Margins and Gutters' }}) %>
12
+ <%~ includeFile(T, { selection: { ink:'secondary', name:'top-margin', checked:true, text:'Top Margin' }}) %>
13
+ <%~ includeFile(T, { selection: { ink:'secondary', name:'bottom-margin', checked:true, text:'Bottom Margin' }}) %>
14
+ </div>
15
+ <div class="mdw-type" mdw-style="subtitle">Maximum Columns</div>
16
+ <div class="docs-option-list">
17
+ <%~ includeFile(T, { selection: { ink:'secondary', name:'columns', type:'radio', value:'12', checked:true, text:'12' }}) %>
18
+ <%~ includeFile(T, { selection: { ink:'secondary', name:'columns', type:'radio', value:'8', text:'8' }}) %>
19
+ <%~ includeFile(T, { selection: { ink:'secondary', name:'columns', type:'radio', value:'4', text:'4' }}) %>
20
+ <%~ includeFile(T, { selection: { ink:'secondary', name:'columns', type:'radio', value:'1', text:'1' }}) %>
21
+ </div>
22
+ <div class="mdw-type" mdw-style="subtitle">Display Model</div>
23
+ <div class="docs-option-list">
24
+ <%~ includeFile(T, { selection: { ink:'secondary', name:'style', type:'radio', value:'flex', checked:true, text:'Flexbox' }}) %>
25
+ <%~ includeFile(T, { selection: { ink:'secondary', name:'style', type:'radio', value:'grid', text:'Grid' }}) %>
26
+ </div>
27
+ <div class="mdw-type" mdw-style="subtitle">Options</div>
28
+ <div class="docs-option-list">
29
+ <%~ includeFile(T, { selection: { ink:'secondary', name:'stretch', text:'Stretch' }}) %>
30
+ <%~ includeFile(T, { selection: { ink:'secondary', name:'center', text:'Center' }}) %>
31
+ <%~ includeFile(T, { selection: { ink:'secondary', name:'dense', text:'Dense' }}) %>
32
+ </div>
33
+ </div>
34
+ <div class="mdw-grid__item" mdw-colspan="100%">
35
+ <p class="mdw-type" style="text-align:center;" mdw-texttop-top="16dp" mdw-baseline-bottom="16dp">Click on an element to change colspan</p>
36
+ </div>
37
+ </div>
38
+ <div class="docs-grid" id="sample-component">
39
+ <div class="mdw-grid" mdw-margin-top mdw-margin-bottom>
40
+ <div class="mdw-grid__item" mdw-rowspan="2">
41
+ <div class="mdw-grid__content mdw-card mdw-theme" mdw-surface="cyan 100" mdw-light mdw-border-ink>1</div>
42
+ </div>
43
+ <div class="mdw-grid__item">
44
+ <div class="mdw-grid__content mdw-card mdw-theme" mdw-surface="card" mdw-border-ink>1</div>
45
+ </div>
46
+ <div class="mdw-grid__item">
47
+ <div class="mdw-grid__content mdw-card mdw-theme" mdw-surface="cyan 200" mdw-light mdw-border-ink>1</div>
48
+ </div>
49
+ <div class="mdw-grid__item">
50
+ <div class="mdw-grid__content mdw-card mdw-theme" mdw-surface="card" mdw-border-ink>1</div>
51
+ </div>
52
+ <div class="mdw-grid__item">
53
+ <div class="mdw-grid__content mdw-card mdw-theme" mdw-surface="cyan 400" mdw-dark mdw-border-ink>1</div>
54
+ </div>
55
+ <div class="mdw-grid__item">
56
+ <div class="mdw-grid__content mdw-card mdw-theme" mdw-surface="card" mdw-border-ink>1</div>
57
+ </div>
58
+ <div class="mdw-grid__item">
59
+ <div class="mdw-grid__content mdw-card mdw-theme" mdw-surface="cyan 700" mdw-dark mdw-border-ink>1</div>
60
+ </div>
61
+ <div class="mdw-grid__item" mdw-rowspan="3">
62
+ <div class="mdw-grid__content mdw-card mdw-theme" mdw-surface="card" mdw-border-ink>1</div>
63
+ </div>
64
+ <div class="mdw-grid__item">
65
+ <div class="mdw-grid__content mdw-card mdw-theme" mdw-surface="red 100" mdw-light mdw-border-ink>1</div>
66
+ </div>
67
+ <div class="mdw-grid__item">
68
+ <div class="mdw-grid__content mdw-card mdw-theme" mdw-surface="card" mdw-border-ink>1</div>
69
+ </div>
70
+ <div class="mdw-grid__item">
71
+ <div class="mdw-grid__content mdw-card mdw-theme" mdw-surface="red 200" mdw-light mdw-border-ink>1</div>
72
+ </div>
73
+ <div class="mdw-grid__item">
74
+ <div class="mdw-grid__content mdw-card mdw-theme" mdw-surface="card" mdw-border-ink>1</div>
75
+ </div>
76
+ <div class="mdw-grid__item" mdw-colspan="2">
77
+ <div class="mdw-grid__content mdw-card mdw-theme" mdw-surface="red 400" mdw-dark mdw-border-ink>2</div>
78
+ </div>
79
+ <div class="mdw-grid__item">
80
+ <div class="mdw-grid__content mdw-card mdw-theme" mdw-surface="card" mdw-border-ink>1</div>
81
+ </div>
82
+ <div class="mdw-grid__item" mdw-rowspan="5" mdw-colspan="25%">
83
+ <div class="mdw-grid__content mdw-card mdw-theme" mdw-surface="red 700" mdw-dark mdw-border-ink>25%</div>
84
+ </div>
85
+ <div class="mdw-grid__item" mdw-colspan="3">
86
+ <div class="mdw-grid__content mdw-card mdw-theme" mdw-surface="card" mdw-border-ink>3</div>
87
+ </div>
88
+ <div class="mdw-grid__item">
89
+ <div class="mdw-grid__content mdw-card mdw-theme" mdw-surface="green 100" mdw-light mdw-border-ink>1</div>
90
+ </div>
91
+ <div class="mdw-grid__item">
92
+ <div class="mdw-grid__content mdw-card mdw-theme" mdw-surface="card" mdw-border-ink>1</div>
93
+ </div>
94
+ <div class="mdw-grid__item">
95
+ <div class="mdw-grid__content mdw-card mdw-theme" mdw-surface="green 200" mdw-light mdw-border-ink>1</div>
96
+ </div>
97
+ <div class="mdw-grid__item" mdw-colspan="75%">
98
+ <div class="mdw-grid__content mdw-card mdw-theme" mdw-surface="card" mdw-border-ink>75%</div>
99
+ </div>
100
+ <div class="mdw-grid__item">
101
+ <div class="mdw-grid__content mdw-card mdw-theme" mdw-surface="green 400" mdw-dark mdw-border-ink>1</div>
102
+ </div>
103
+ <div class="mdw-grid__item">
104
+ <div class="mdw-grid__content mdw-card mdw-theme" mdw-surface="card" mdw-border-ink>1</div>
105
+ </div>
106
+ <div class="mdw-grid__item">
107
+ <div class="mdw-grid__content mdw-card mdw-theme" mdw-surface="green 700" mdw-dark mdw-border-ink>1</div>
108
+ </div>
109
+ <div class="mdw-grid__item">
110
+ <div class="mdw-grid__content mdw-card mdw-theme" mdw-surface="card" mdw-border-ink>1</div>
111
+ </div>
112
+ <div class="mdw-grid__item">
113
+ <div class="mdw-grid__content mdw-card mdw-theme" mdw-surface="purple 100" mdw-light mdw-border-ink>1</div>
114
+ </div>
115
+ <div class="mdw-grid__item" mdw-colspan="8">
116
+ <div class="mdw-grid__content mdw-card mdw-theme" mdw-surface="card" mdw-border-ink>8</div>
117
+ </div>
118
+ <div class="mdw-grid__item">
119
+ <div class="mdw-grid__content mdw-card mdw-theme" mdw-surface="purple 200" mdw-light mdw-border-ink>1</div>
120
+ </div>
121
+ <div class="mdw-grid__item">
122
+ <div class="mdw-grid__content mdw-card mdw-theme" mdw-surface="card" mdw-border-ink>1</div>
123
+ </div>
124
+ <div class="mdw-grid__item">
125
+ <div class="mdw-grid__content mdw-card mdw-theme" mdw-surface="purple 400" mdw-dark mdw-border-ink>1</div>
126
+ </div>
127
+ <div class="mdw-grid__item" mdw-colspan="2">
128
+ <div class="mdw-grid__content mdw-card mdw-theme" mdw-surface="card" mdw-border-ink>2</div>
129
+ </div>
130
+ <div class="mdw-grid__item">
131
+ <div class="mdw-grid__content mdw-card mdw-theme" mdw-surface="purple 700" mdw-dark mdw-border-ink>1</div>
132
+ </div>
133
+ </div>
134
+ </div>
135
+ <script src="grid.min.js"></script>
@@ -0,0 +1,128 @@
1
+ import { iterateArrayLike, setTextNode } from '../../core/dom.js';
2
+
3
+ const sampleComponent = document.getElementById('sample-component');
4
+
5
+ const colspans = [
6
+ '1',
7
+ '25%', '50%', '75%', '100%',
8
+ '2', '3', '4', '5', '6', '7', '8', '9', '10', '11',
9
+ ];
10
+
11
+ /**
12
+ * @param {Element} target
13
+ * @return {void}
14
+ */
15
+ function onGridItemClick(target) {
16
+ let colspan = target.getAttribute('mdw-colspan') || '1';
17
+ const index = colspans.indexOf(colspan);
18
+ colspan = colspans[index + 1] || '1';
19
+ target.setAttribute('mdw-colspan', colspan.toString());
20
+ setTextNode(target.firstElementChild, colspan.toString());
21
+ }
22
+
23
+ /**
24
+ * @param {Event} event
25
+ * @return {void}
26
+ */
27
+ function onOptionChange(event) {
28
+ const { name, value, checked } = event.target;
29
+ const grid = sampleComponent.getElementsByClassName('mdw-grid')[0];
30
+
31
+ switch (name) {
32
+ case 'default-margins':
33
+ if (checked) {
34
+ grid.removeAttribute('mdw-margin');
35
+ grid.removeAttribute('mdw-gutter');
36
+ grid.removeAttribute('mdw-margin-8col');
37
+ grid.removeAttribute('mdw-gutter-8col');
38
+ grid.removeAttribute('mdw-margin-4col');
39
+ grid.removeAttribute('mdw-gutter-4col');
40
+ } else {
41
+ grid.setAttribute('mdw-margin', '40');
42
+ grid.setAttribute('mdw-gutter', '40');
43
+ grid.setAttribute('mdw-margin-8col', '8');
44
+ grid.setAttribute('mdw-gutter-8col', '8');
45
+ grid.setAttribute('mdw-margin-4col', '0');
46
+ grid.setAttribute('mdw-gutter-4col', '0');
47
+ }
48
+ break;
49
+ case 'top-margin':
50
+ if (checked) {
51
+ grid.setAttribute('mdw-margin-top', '');
52
+ } else {
53
+ grid.removeAttribute('mdw-margin-top');
54
+ }
55
+ break;
56
+ case 'bottom-margin':
57
+ if (checked) {
58
+ grid.setAttribute('mdw-margin-bottom', '');
59
+ } else {
60
+ grid.removeAttribute('mdw-margin-bottom');
61
+ }
62
+ break;
63
+ case 'stretch':
64
+ if (checked) {
65
+ grid.setAttribute('mdw-stretch', '');
66
+ } else {
67
+ grid.removeAttribute('mdw-stretch');
68
+ }
69
+ break;
70
+ case 'center':
71
+ if (checked) {
72
+ grid.setAttribute('mdw-center', '');
73
+ } else {
74
+ grid.removeAttribute('mdw-center');
75
+ }
76
+ break;
77
+ case 'style':
78
+ switch (value) {
79
+ case 'grid':
80
+ grid.setAttribute('mdw-grid', '');
81
+ break;
82
+ case 'flex':
83
+ grid.removeAttribute('mdw-grid');
84
+ break;
85
+ default:
86
+ }
87
+ break;
88
+ case 'dense':
89
+ if (checked) {
90
+ grid.setAttribute('mdw-dense', '');
91
+ } else {
92
+ grid.removeAttribute('mdw-dense');
93
+ }
94
+ break;
95
+ case 'columns':
96
+ switch (value) {
97
+ default:
98
+ case '12':
99
+ grid.removeAttribute('mdw-columns');
100
+ break;
101
+ case '8':
102
+ grid.setAttribute('mdw-columns', '8');
103
+ break;
104
+ case '4':
105
+ grid.setAttribute('mdw-columns', '4');
106
+ break;
107
+ case '1':
108
+ grid.setAttribute('mdw-columns', '1');
109
+ break;
110
+ }
111
+ break;
112
+ default:
113
+ }
114
+ }
115
+
116
+ /** @return {void} */
117
+ function setupInteractions() {
118
+ iterateArrayLike(sampleComponent.getElementsByClassName('mdw-grid__item'), (item) => {
119
+ item.addEventListener('click', () => {
120
+ onGridItemClick(item);
121
+ });
122
+ });
123
+ iterateArrayLike(document.querySelectorAll('[name]'), (el) => {
124
+ el.addEventListener('change', onOptionChange);
125
+ });
126
+ }
127
+
128
+ setupInteractions();
@@ -0,0 +1,95 @@
1
+ include ../_mixins.pug
2
+
3
+ +header("grid")
4
+ .mdw-grid(mdw-margin-top)
5
+ .mdw-grid__item(mdw-colspan="8")
6
+ h5.mdw-type(mdw-baseline-next="36") The Material Design responsive layout grid adapts to screen size and orientation, ensuring consistency across layouts.
7
+ p.mdw-type The Material Design layout grid is made up of three elements: columns, gutters, and margins.
8
+ .mdw-grid__item(mdw-colspan="8")
9
+ .mdw-type(mdw-style="subtitle") Margins and Gutters
10
+ .docs-option-list
11
+ +mdwSelection({ink:'secondary', name:'default-margins', checked:true}) Default Margins and Gutters
12
+ +mdwSelection({ink:'secondary', name:'top-margin', checked:true}) Top Margin
13
+ +mdwSelection({ink:'secondary', name:'bottom-margin', checked:true}) Bottom Margin
14
+ .mdw-type(mdw-style="subtitle") Maximum Columns
15
+ .docs-option-list
16
+ +mdwSelection({ink:'secondary', name:'columns', type:'radio', value:'12', checked:true}) 12
17
+ +mdwSelection({ink:'secondary', name:'columns', type:'radio', value:'8'}) 8
18
+ +mdwSelection({ink:'secondary', name:'columns', type:'radio', value:'4'}) 4
19
+ +mdwSelection({ink:'secondary', name:'columns', type:'radio', value:'1'}) 1
20
+ .mdw-type(mdw-style="subtitle") Display Model
21
+ .docs-option-list
22
+ +mdwSelection({ink:'secondary', name:'style', type:'radio', value:'flex', checked:true}) Flexbox
23
+ +mdwSelection({ink:'secondary', name:'style', type:'radio', value:'grid'}) Grid
24
+ .mdw-type(mdw-style="subtitle") Options
25
+ .docs-option-list
26
+ +mdwSelection({ink:'secondary', name:'stretch'}) Stretch
27
+ +mdwSelection({ink:'secondary', name:'center'}) Center
28
+ +mdwSelection({ink:'secondary', name:'dense'}) Dense
29
+ .mdw-grid__item(mdw-colspan="100%")
30
+ p.mdw-type(style="text-align:center" mdw-textop-top="16dp" mdw-baseline-bottom="16dp") Click on an element to change colspan
31
+ .docs-grid#sample-component
32
+ .mdw-grid(mdw-margin-top mdw-margin-bottom)
33
+ .mdw-grid__item(mdw-rowspan="2")
34
+ .mdw-grid__content.mdw-card.mdw-theme(mdw-surface="cyan 100" mdw-light mdw-border-ink) 1
35
+ .mdw-grid__item
36
+ .mdw-grid__content.mdw-card.mdw-theme(mdw-surface="card" mdw-border-ink) 1
37
+ .mdw-grid__item
38
+ .mdw-grid__content.mdw-card.mdw-theme(mdw-surface="cyan 200" mdw-light mdw-border-ink) 1
39
+ .mdw-grid__item
40
+ .mdw-grid__content.mdw-card.mdw-theme(mdw-surface="card" mdw-border-ink) 1
41
+ .mdw-grid__item
42
+ .mdw-grid__content.mdw-card.mdw-theme(mdw-surface="cyan 400" mdw-dark mdw-border-ink) 1
43
+ .mdw-grid__item
44
+ .mdw-grid__content.mdw-card.mdw-theme(mdw-surface="card" mdw-border-ink) 1
45
+ .mdw-grid__item
46
+ .mdw-grid__content.mdw-card.mdw-theme(mdw-surface="cyan 700" mdw-dark mdw-border-ink) 1
47
+ .mdw-grid__item(mdw-rowspan="3")
48
+ .mdw-grid__content.mdw-card.mdw-theme(mdw-surface="card" mdw-border-ink) 1
49
+ .mdw-grid__item
50
+ .mdw-grid__content.mdw-card.mdw-theme(mdw-surface="red 100" mdw-light mdw-border-ink) 1
51
+ .mdw-grid__item
52
+ .mdw-grid__content.mdw-card.mdw-theme(mdw-surface="card" mdw-border-ink) 1
53
+ .mdw-grid__item
54
+ .mdw-grid__content.mdw-card.mdw-theme(mdw-surface="red 200" mdw-light mdw-border-ink) 1
55
+ .mdw-grid__item
56
+ .mdw-grid__content.mdw-card.mdw-theme(mdw-surface="card" mdw-border-ink) 1
57
+ .mdw-grid__item(mdw-colspan="2")
58
+ .mdw-grid__content.mdw-card.mdw-theme(mdw-surface="red 400" mdw-dark mdw-border-ink) 2
59
+ .mdw-grid__item
60
+ .mdw-grid__content.mdw-card.mdw-theme(mdw-surface="card" mdw-border-ink) 1
61
+ .mdw-grid__item(mdw-rowspan="5" mdw-colspan="25%")
62
+ .mdw-grid__content.mdw-card.mdw-theme(mdw-surface="red 700" mdw-dark mdw-border-ink) 25%
63
+ .mdw-grid__item(mdw-colspan="3")
64
+ .mdw-grid__content.mdw-card.mdw-theme(mdw-surface="card" mdw-border-ink) 3
65
+ .mdw-grid__item
66
+ .mdw-grid__content.mdw-card.mdw-theme(mdw-surface="green 100" mdw-light mdw-border-ink) 1
67
+ .mdw-grid__item
68
+ .mdw-grid__content.mdw-card.mdw-theme(mdw-surface="card" mdw-border-ink) 1
69
+ .mdw-grid__item
70
+ .mdw-grid__content.mdw-card.mdw-theme(mdw-surface="green 200" mdw-light mdw-border-ink) 1
71
+ .mdw-grid__item(mdw-colspan="75%")
72
+ .mdw-grid__content.mdw-card.mdw-theme(mdw-surface="card" mdw-border-ink) 75%
73
+ .mdw-grid__item
74
+ .mdw-grid__content.mdw-card.mdw-theme(mdw-surface="green 400" mdw-dark mdw-border-ink) 1
75
+ .mdw-grid__item
76
+ .mdw-grid__content.mdw-card.mdw-theme(mdw-surface="card" mdw-border-ink) 1
77
+ .mdw-grid__item
78
+ .mdw-grid__content.mdw-card.mdw-theme(mdw-surface="green 700" mdw-dark mdw-border-ink) 1
79
+ .mdw-grid__item
80
+ .mdw-grid__content.mdw-card.mdw-theme(mdw-surface="card" mdw-border-ink) 1
81
+ .mdw-grid__item
82
+ .mdw-grid__content.mdw-card.mdw-theme(mdw-surface="purple 100" mdw-light mdw-border-ink) 1
83
+ .mdw-grid__item(mdw-colspan="8")
84
+ .mdw-grid__content.mdw-card.mdw-theme(mdw-surface="card" mdw-border-ink) 8
85
+ .mdw-grid__item
86
+ .mdw-grid__content.mdw-card.mdw-theme(mdw-surface="purple 200" mdw-light mdw-border-ink) 1
87
+ .mdw-grid__item
88
+ .mdw-grid__content.mdw-card.mdw-theme(mdw-surface="card" mdw-border-ink) 1
89
+ .mdw-grid__item
90
+ .mdw-grid__content.mdw-card.mdw-theme(mdw-surface="purple 400" mdw-dark mdw-border-ink) 1
91
+ .mdw-grid__item(mdw-colspan="2")
92
+ .mdw-grid__content.mdw-card.mdw-theme(mdw-surface="card" mdw-border-ink) 2
93
+ .mdw-grid__item
94
+ .mdw-grid__content.mdw-card.mdw-theme(mdw-surface="purple 700" mdw-dark mdw-border-ink) 1
95
+ script(src='grid.min.js')
@@ -0,0 +1,8 @@
1
+ <% var T = '../../templates/index.eta' %>
2
+ <% layout('../_partials/_header.eta', {page: 'layout'}) %>
3
+ <div style="margin:16px;">
4
+ <%~ includeFile(T, {button: { attributes: {href:"pwa.html", target:"_blank"}, text: 'Open in new window'}}) %>
5
+ </div>
6
+ <div style="margin:16px;">
7
+ <iframe width="1440" height="300" src="pwa.html" style="width:100%;height:80vh;"></iframe>
8
+ </div>
File without changes
@@ -0,0 +1,7 @@
1
+ include ../_mixins.pug
2
+
3
+ +header("layout")
4
+ div(style="margin:16px")
5
+ +mdwButton()(href="pwa.html" target="_blank") Open in new window
6
+ div(style="margin:16px")
7
+ iframe(width=1440 height=300 src="pwa.html" style="width:100%;height:80vh")