@shortfuse/materialdesignweb 0.4.0 → 0.7.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 (452) hide show
  1. package/README.md +155 -79
  2. package/bin/generate-css.js +12 -0
  3. package/components/Badge.css +30 -0
  4. package/components/Badge.js +15 -0
  5. package/components/Body.css +14 -0
  6. package/components/Body.js +7 -0
  7. package/components/BottomAppBar.css +23 -0
  8. package/components/BottomAppBar.js +25 -0
  9. package/components/Box.css +31 -0
  10. package/components/Box.js +24 -0
  11. package/components/Button.css +146 -0
  12. package/components/Button.js +95 -0
  13. package/components/Button.md +61 -0
  14. package/components/Card.css +109 -0
  15. package/components/Card.js +82 -0
  16. package/components/Checkbox.css +77 -0
  17. package/components/Checkbox.js +59 -0
  18. package/components/CheckboxIcon.css +89 -0
  19. package/components/CheckboxIcon.js +41 -0
  20. package/components/Chip.css +35 -0
  21. package/components/Chip.js +22 -0
  22. package/components/Dialog.css +235 -0
  23. package/components/Dialog.js +327 -0
  24. package/components/DialogActions.js +13 -0
  25. package/components/Divider.css +41 -0
  26. package/components/Divider.js +13 -0
  27. package/components/ExtendedFab.css +24 -0
  28. package/components/ExtendedFab.js +11 -0
  29. package/components/Fab.css +23 -0
  30. package/components/Fab.js +26 -0
  31. package/components/FilterChip.css +80 -0
  32. package/components/FilterChip.js +51 -0
  33. package/components/Headline.css +14 -0
  34. package/components/Headline.js +33 -0
  35. package/components/Icon.css +76 -0
  36. package/components/Icon.js +174 -0
  37. package/components/IconButton.css +151 -0
  38. package/components/IconButton.js +65 -0
  39. package/components/Input.js +16 -0
  40. package/components/Label.css +14 -0
  41. package/components/Label.js +7 -0
  42. package/components/Layout.css +19 -0
  43. package/components/Layout.js +12 -0
  44. package/components/List.css +12 -0
  45. package/components/List.js +17 -0
  46. package/components/ListItem.css +224 -0
  47. package/components/ListItem.js +112 -0
  48. package/components/ListOption.css +34 -0
  49. package/components/ListOption.js +122 -0
  50. package/components/ListSelect.css +9 -0
  51. package/components/ListSelect.js +206 -0
  52. package/components/Menu.css +171 -0
  53. package/components/Menu.js +470 -0
  54. package/components/MenuItem.css +53 -0
  55. package/components/MenuItem.js +215 -0
  56. package/components/Nav.css +17 -0
  57. package/components/Nav.js +23 -0
  58. package/components/NavBar.css +34 -0
  59. package/components/NavBar.js +88 -0
  60. package/components/NavBarItem.css +41 -0
  61. package/components/NavBarItem.js +7 -0
  62. package/components/NavDrawer.css +31 -0
  63. package/components/NavDrawer.js +13 -0
  64. package/components/NavDrawerItem.css +42 -0
  65. package/components/NavDrawerItem.js +12 -0
  66. package/components/NavItem.css +181 -0
  67. package/components/NavItem.js +83 -0
  68. package/components/NavRail.css +47 -0
  69. package/components/NavRail.js +17 -0
  70. package/components/NavRailItem.css +25 -0
  71. package/components/NavRailItem.js +7 -0
  72. package/components/Option.js +91 -0
  73. package/components/Outline.css +138 -0
  74. package/components/Pane.css +261 -0
  75. package/components/Pane.js +21 -0
  76. package/components/Progress.css +74 -0
  77. package/components/Progress.js +67 -0
  78. package/components/ProgressCircle.css +226 -0
  79. package/components/ProgressLine.css +155 -0
  80. package/components/Radio.css +83 -0
  81. package/components/Radio.js +42 -0
  82. package/components/RadioIcon.css +73 -0
  83. package/components/RadioIcon.js +37 -0
  84. package/components/Ripple.css +74 -0
  85. package/components/Ripple.js +114 -0
  86. package/components/SegmentedButton.css +94 -0
  87. package/components/SegmentedButton.js +49 -0
  88. package/components/SegmentedButtonGroup.css +12 -0
  89. package/components/SegmentedButtonGroup.js +44 -0
  90. package/components/Select.css +52 -0
  91. package/components/Select.js +71 -0
  92. package/components/Shape.css +132 -0
  93. package/components/Shape.js +25 -0
  94. package/components/Slider.css +306 -0
  95. package/components/Slider.js +206 -0
  96. package/components/Snackbar.css +80 -0
  97. package/components/Snackbar.js +75 -0
  98. package/components/Surface.css +10 -0
  99. package/components/Surface.js +23 -0
  100. package/components/Switch.css +63 -0
  101. package/components/Switch.js +127 -0
  102. package/components/SwitchIcon.css +177 -0
  103. package/components/SwitchIcon.js +89 -0
  104. package/components/SwitchIconAnimations.css +89 -0
  105. package/components/Tab.css +85 -0
  106. package/components/Tab.js +103 -0
  107. package/components/TabContent.js +151 -0
  108. package/components/TabList.css +129 -0
  109. package/components/TabList.js +309 -0
  110. package/components/TabPanel.js +37 -0
  111. package/components/TextArea.css +93 -0
  112. package/components/TextArea.js +229 -0
  113. package/components/Title.css +14 -0
  114. package/components/Title.js +15 -0
  115. package/components/Tooltip.css +40 -0
  116. package/components/Tooltip.js +22 -0
  117. package/components/TopAppBar.css +209 -0
  118. package/components/TopAppBar.js +201 -0
  119. package/core/Composition.js +988 -0
  120. package/core/CustomElement.js +844 -0
  121. package/core/ICustomElement.d.ts +288 -0
  122. package/core/ICustomElement.js +1 -0
  123. package/core/css.js +51 -0
  124. package/core/customTypes.js +125 -0
  125. package/core/dom.js +56 -245
  126. package/core/identify.js +40 -0
  127. package/core/observe.js +410 -0
  128. package/core/template.js +121 -0
  129. package/core/typings.d.ts +135 -0
  130. package/core/typings.js +1 -0
  131. package/mixins/AriaReflectorMixin.js +42 -0
  132. package/mixins/AriaToolbarMixin.js +13 -0
  133. package/mixins/ControlMixin.css +57 -0
  134. package/mixins/ControlMixin.js +212 -0
  135. package/mixins/DensityMixin.css +40 -0
  136. package/mixins/DensityMixin.js +11 -0
  137. package/mixins/FlexableMixin.css +79 -0
  138. package/mixins/FlexableMixin.js +32 -0
  139. package/mixins/FormAssociatedMixin.js +170 -0
  140. package/mixins/InputMixin.js +335 -0
  141. package/mixins/KeyboardNavMixin.js +244 -0
  142. package/mixins/RTLObserverMixin.js +35 -0
  143. package/mixins/ResizeObserverMixin.js +38 -0
  144. package/mixins/RippleMixin.css +12 -0
  145. package/mixins/RippleMixin.js +115 -0
  146. package/mixins/ScrollListenerMixin.js +100 -0
  147. package/mixins/ShapeMixin.css +135 -0
  148. package/mixins/ShapeMixin.js +31 -0
  149. package/mixins/StateMixin.css +82 -0
  150. package/mixins/StateMixin.js +114 -0
  151. package/mixins/SurfaceMixin.css +150 -0
  152. package/mixins/SurfaceMixin.js +32 -0
  153. package/mixins/TextFieldMixin.css +657 -0
  154. package/mixins/TextFieldMixin.js +121 -0
  155. package/mixins/ThemableMixin.css +204 -0
  156. package/mixins/ThemableMixin.js +16 -0
  157. package/mixins/TooltipTriggerMixin.css +27 -0
  158. package/mixins/TooltipTriggerMixin.js +366 -0
  159. package/mixins/TouchTargetMixin.css +26 -0
  160. package/mixins/TouchTargetMixin.js +9 -0
  161. package/package.json +57 -41
  162. package/theming/index.js +594 -0
  163. package/theming/loader.js +24 -0
  164. package/utils/cli.js +11 -0
  165. package/utils/color_keywords.js +151 -0
  166. package/utils/hct/Cam16.js +298 -0
  167. package/utils/hct/CorePalette.js +84 -0
  168. package/utils/hct/Hct.js +172 -0
  169. package/utils/hct/Scheme.js +587 -0
  170. package/utils/hct/TonalPalette.js +68 -0
  171. package/utils/hct/ViewingConditions.js +136 -0
  172. package/utils/hct/blend.js +93 -0
  173. package/utils/hct/colorUtils.js +302 -0
  174. package/utils/hct/hctSolver.js +559 -0
  175. package/utils/hct/helper.js +182 -0
  176. package/utils/hct/mathUtils.js +153 -0
  177. package/utils/jsonMergePatch.js +100 -0
  178. package/utils/jsx-runtime.js +101 -0
  179. package/utils/popup.js +117 -0
  180. package/utils/svg.js +129 -0
  181. package/.browserslistrc +0 -3
  182. package/.eslintrc.json +0 -153
  183. package/.stylelintrc.json +0 -600
  184. package/.vscode/launch.json +0 -31
  185. package/.vscode/settings.json +0 -3
  186. package/.vscode/tasks.json +0 -32
  187. package/CHANGELOG.md +0 -24
  188. package/CODE_OF_CONDUCT.md +0 -46
  189. package/adapters/datatable/column.js +0 -203
  190. package/adapters/datatable/index.js +0 -972
  191. package/adapters/dom/index.js +0 -601
  192. package/adapters/list/index.js +0 -69
  193. package/adapters/search/index.js +0 -521
  194. package/components/appbar/_spec.scss +0 -225
  195. package/components/appbar/_theme.scss +0 -0
  196. package/components/appbar/index.scss +0 -2
  197. package/components/banner/_spec.scss +0 -118
  198. package/components/banner/_theme.scss +0 -0
  199. package/components/banner/index.scss +0 -2
  200. package/components/bottomnav/README.md +0 -85
  201. package/components/bottomnav/_spec.scss +0 -157
  202. package/components/bottomnav/_theme.scss +0 -0
  203. package/components/bottomnav/index.js +0 -122
  204. package/components/bottomnav/index.scss +0 -2
  205. package/components/bottomnav/item.js +0 -89
  206. package/components/button/README.md +0 -61
  207. package/components/button/_spec.scss +0 -161
  208. package/components/button/_theme.scss +0 -65
  209. package/components/button/index.eta +0 -32
  210. package/components/button/index.js +0 -43
  211. package/components/button/index.pug +0 -18
  212. package/components/button/index.scss +0 -2
  213. package/components/card/_spec.scss +0 -249
  214. package/components/card/_theme.scss +0 -0
  215. package/components/card/index.scss +0 -2
  216. package/components/chip/_spec.scss +0 -134
  217. package/components/chip/_theme.scss +0 -177
  218. package/components/chip/index.js +0 -21
  219. package/components/chip/index.scss +0 -2
  220. package/components/chip/item.js +0 -20
  221. package/components/datatable/_spec.scss +0 -288
  222. package/components/datatable/_theme.scss +0 -154
  223. package/components/datatable/cell.js +0 -45
  224. package/components/datatable/columnheader.js +0 -47
  225. package/components/datatable/index.js +0 -388
  226. package/components/datatable/index.scss +0 -2
  227. package/components/datatable/row.js +0 -49
  228. package/components/datatable/rowheader.js +0 -18
  229. package/components/dialog/_spec.scss +0 -213
  230. package/components/dialog/_theme.scss +0 -0
  231. package/components/dialog/index.js +0 -627
  232. package/components/dialog/index.scss +0 -2
  233. package/components/divider/_spec.scss +0 -13
  234. package/components/divider/_theme.scss +0 -0
  235. package/components/divider/index.scss +0 -2
  236. package/components/elevation/_spec.scss +0 -9
  237. package/components/elevation/_theme.scss +0 -0
  238. package/components/elevation/index.scss +0 -2
  239. package/components/fab/_spec.scss +0 -222
  240. package/components/fab/_theme.scss +0 -0
  241. package/components/fab/index.js +0 -103
  242. package/components/fab/index.scss +0 -2
  243. package/components/grid/_spec.scss +0 -312
  244. package/components/grid/_theme.scss +0 -0
  245. package/components/grid/index.scss +0 -2
  246. package/components/layout/_mixins.scss +0 -33
  247. package/components/layout/_spec.scss +0 -1012
  248. package/components/layout/_theme.scss +0 -44
  249. package/components/layout/index.js +0 -464
  250. package/components/layout/index.scss +0 -2
  251. package/components/list/_spec.scss +0 -397
  252. package/components/list/_theme.scss +0 -111
  253. package/components/list/content.js +0 -110
  254. package/components/list/index.js +0 -260
  255. package/components/list/index.scss +0 -2
  256. package/components/list/item.js +0 -170
  257. package/components/list/secondary.js +0 -46
  258. package/components/menu/_spec.scss +0 -362
  259. package/components/menu/_theme.scss +0 -0
  260. package/components/menu/index.js +0 -721
  261. package/components/menu/index.scss +0 -2
  262. package/components/menu/item.js +0 -239
  263. package/components/progress/_spec.scss +0 -147
  264. package/components/progress/_theme.scss +0 -0
  265. package/components/progress/index.js +0 -36
  266. package/components/progress/index.scss +0 -2
  267. package/components/selection/_spec.scss +0 -386
  268. package/components/selection/_theme.scss +0 -166
  269. package/components/selection/index.eta +0 -60
  270. package/components/selection/index.js +0 -76
  271. package/components/selection/index.pug +0 -30
  272. package/components/selection/index.scss +0 -2
  273. package/components/selection/input.js +0 -56
  274. package/components/selection/radiogroup.js +0 -47
  275. package/components/slider/_spec.scss +0 -64
  276. package/components/slider/_theme.scss +0 -0
  277. package/components/slider/index.scss +0 -2
  278. package/components/snackbar/_spec.scss +0 -195
  279. package/components/snackbar/_theme.scss +0 -0
  280. package/components/snackbar/index.js +0 -344
  281. package/components/snackbar/index.scss +0 -2
  282. package/components/tab/_spec.scss +0 -235
  283. package/components/tab/_theme.scss +0 -0
  284. package/components/tab/content.js +0 -205
  285. package/components/tab/index.js +0 -260
  286. package/components/tab/index.scss +0 -2
  287. package/components/tab/item.js +0 -89
  288. package/components/tab/list.js +0 -210
  289. package/components/tab/panel.js +0 -54
  290. package/components/template/_theme.scss +0 -27
  291. package/components/textfield/README.md +0 -179
  292. package/components/textfield/_mixins.scss +0 -52
  293. package/components/textfield/_spec.scss +0 -809
  294. package/components/textfield/_theme.scss +0 -299
  295. package/components/textfield/index.eta +0 -74
  296. package/components/textfield/index.js +0 -168
  297. package/components/textfield/index.pug +0 -30
  298. package/components/textfield/index.scss +0 -2
  299. package/components/tooltip/_spec.scss +0 -188
  300. package/components/tooltip/_theme.scss +0 -0
  301. package/components/tooltip/index.scss +0 -2
  302. package/components/type/_spec.scss +0 -224
  303. package/components/type/_theme.scss +0 -0
  304. package/components/type/index.scss +0 -2
  305. package/core/_breakpoint.scss +0 -189
  306. package/core/_elevation.scss +0 -38
  307. package/core/_length.scss +0 -9
  308. package/core/_motion.scss +0 -31
  309. package/core/_platform.scss +0 -34
  310. package/core/_type.scss +0 -127
  311. package/core/aria/attributes.js +0 -141
  312. package/core/aria/button.js +0 -50
  313. package/core/aria/keyboard.js +0 -93
  314. package/core/aria/rovingtabindex.js +0 -178
  315. package/core/aria/tab.js +0 -60
  316. package/core/color/_spec.scss +0 -0
  317. package/core/color/_theme.scss +0 -390
  318. package/core/color/index.scss +0 -2
  319. package/core/document/index.js +0 -39
  320. package/core/overlay/_spec.scss +0 -31
  321. package/core/overlay/_theme.scss +0 -171
  322. package/core/overlay/index.js +0 -108
  323. package/core/overlay/index.scss +0 -2
  324. package/core/ripple/_spec.scss +0 -197
  325. package/core/ripple/_theme.scss +0 -40
  326. package/core/ripple/index.js +0 -294
  327. package/core/ripple/index.scss +0 -2
  328. package/core/theme/_config.scss +0 -2
  329. package/core/theme/_mixins.scss +0 -172
  330. package/core/theme/_palettes.scss +0 -406
  331. package/core/theme/_variables.scss +0 -24
  332. package/core/theme/index.js +0 -50
  333. package/core/throttler.js +0 -42
  334. package/core/transition/index.js +0 -468
  335. package/docs/_flex.scss +0 -22
  336. package/docs/_menuoptions.js +0 -183
  337. package/docs/_mixins.pug +0 -155
  338. package/docs/_partials/_androidnavbar.eta +0 -5
  339. package/docs/_partials/_androidstatusbar.eta +0 -13
  340. package/docs/_partials/_appbar.eta +0 -29
  341. package/docs/_partials/_buttontest.eta +0 -31
  342. package/docs/_partials/_header.eta +0 -149
  343. package/docs/_partials/_navlistitem.eta +0 -16
  344. package/docs/_partials/_target.eta +0 -1
  345. package/docs/_sample-utils.js +0 -93
  346. package/docs/_storage.js +0 -33
  347. package/docs/docs.scss +0 -295
  348. package/docs/index.eta +0 -16
  349. package/docs/index.js +0 -0
  350. package/docs/pages/appbar.eta +0 -114
  351. package/docs/pages/appbar.js +0 -0
  352. package/docs/pages/appbar.pug +0 -78
  353. package/docs/pages/bottomnav.eta +0 -188
  354. package/docs/pages/bottomnav.js +0 -115
  355. package/docs/pages/bottomnav.pug +0 -137
  356. package/docs/pages/button.eta +0 -124
  357. package/docs/pages/button.js +0 -224
  358. package/docs/pages/button.pug +0 -121
  359. package/docs/pages/card.eta +0 -90
  360. package/docs/pages/card.js +0 -177
  361. package/docs/pages/card.pug +0 -74
  362. package/docs/pages/chip.eta +0 -122
  363. package/docs/pages/chip.js +0 -82
  364. package/docs/pages/chip.pug +0 -91
  365. package/docs/pages/color.eta +0 -143
  366. package/docs/pages/color.js +0 -262
  367. package/docs/pages/color.pug +0 -121
  368. package/docs/pages/datatable.eta +0 -323
  369. package/docs/pages/datatable.js +0 -164
  370. package/docs/pages/datatable.pug +0 -283
  371. package/docs/pages/dialog.eta +0 -186
  372. package/docs/pages/dialog.js +0 -177
  373. package/docs/pages/dialog.pug +0 -132
  374. package/docs/pages/dom.eta +0 -26
  375. package/docs/pages/dom.js +0 -143
  376. package/docs/pages/dom.pug +0 -22
  377. package/docs/pages/elevation.eta +0 -35
  378. package/docs/pages/elevation.js +0 -0
  379. package/docs/pages/elevation.pug +0 -25
  380. package/docs/pages/fab.eta +0 -99
  381. package/docs/pages/fab.js +0 -44
  382. package/docs/pages/fab.pug +0 -66
  383. package/docs/pages/grid.eta +0 -135
  384. package/docs/pages/grid.js +0 -128
  385. package/docs/pages/grid.pug +0 -95
  386. package/docs/pages/layout.eta +0 -8
  387. package/docs/pages/layout.js +0 -0
  388. package/docs/pages/layout.pug +0 -7
  389. package/docs/pages/list.eta +0 -465
  390. package/docs/pages/list.js +0 -9
  391. package/docs/pages/list.pug +0 -326
  392. package/docs/pages/menu.eta +0 -276
  393. package/docs/pages/menu.js +0 -217
  394. package/docs/pages/menu.pug +0 -205
  395. package/docs/pages/overlay.eta +0 -69
  396. package/docs/pages/overlay.js +0 -4
  397. package/docs/pages/overlay.pug +0 -55
  398. package/docs/pages/progress.eta +0 -23
  399. package/docs/pages/progress.js +0 -12
  400. package/docs/pages/progress.pug +0 -16
  401. package/docs/pages/ripple.eta +0 -27
  402. package/docs/pages/ripple.js +0 -4
  403. package/docs/pages/ripple.pug +0 -21
  404. package/docs/pages/search.eta +0 -246
  405. package/docs/pages/search.js +0 -243
  406. package/docs/pages/search.pug +0 -165
  407. package/docs/pages/selection.eta +0 -111
  408. package/docs/pages/selection.js +0 -13
  409. package/docs/pages/selection.pug +0 -74
  410. package/docs/pages/slider.eta +0 -23
  411. package/docs/pages/slider.js +0 -0
  412. package/docs/pages/slider.pug +0 -17
  413. package/docs/pages/snackbar.eta +0 -83
  414. package/docs/pages/snackbar.js +0 -158
  415. package/docs/pages/snackbar.pug +0 -60
  416. package/docs/pages/tab.eta +0 -421
  417. package/docs/pages/tab.js +0 -151
  418. package/docs/pages/tab.pug +0 -304
  419. package/docs/pages/textfield.eta +0 -486
  420. package/docs/pages/textfield.js +0 -254
  421. package/docs/pages/textfield.pug +0 -360
  422. package/docs/pages/tooltip.eta +0 -94
  423. package/docs/pages/tooltip.js +0 -0
  424. package/docs/pages/tooltip.pug +0 -78
  425. package/docs/pages/transition.eta +0 -117
  426. package/docs/pages/transition.js +0 -54
  427. package/docs/pages/transition.pug +0 -76
  428. package/docs/pages/type.eta +0 -31
  429. package/docs/pages/type.js +0 -0
  430. package/docs/pages/type.pug +0 -29
  431. package/docs/postrender.js +0 -39
  432. package/docs/prerender.js +0 -16
  433. package/docs/pwa/_dialogs.eta +0 -143
  434. package/docs/pwa/_dialogs.pug +0 -96
  435. package/docs/pwa/_menus.eta +0 -16
  436. package/docs/pwa/_menus.pug +0 -11
  437. package/docs/pwa/pwa-prerender.js +0 -3
  438. package/docs/pwa/pwa.eta +0 -480
  439. package/docs/pwa/pwa.js +0 -306
  440. package/docs/pwa/pwa.pug +0 -325
  441. package/docs/pwa/pwa.scss +0 -26
  442. package/docs/spec.scss +0 -26
  443. package/docs/themes/_component-themes.scss +0 -26
  444. package/docs/themes/theme-colored-fallbacks.scss +0 -17
  445. package/docs/themes/theme-colored.scss +0 -17
  446. package/docs/themes/theme-default-fallbacks.scss +0 -17
  447. package/docs/themes/theme-default.scss +0 -17
  448. package/jsconfig.json +0 -12
  449. package/scripts/deploy-docs.sh +0 -9
  450. package/templates/index.eta +0 -2
  451. package/templates/index.pug +0 -3
  452. package/webpack.config.cjs +0 -257
@@ -1,254 +0,0 @@
1
- import * as TextField from '../../components/textfield/index.js';
2
- import { iterateArrayLike } from '../../core/dom.js';
3
- import { convertElementToCode } from '../_sample-utils.js';
4
-
5
- /** @return {void} */
6
- function initializeSampleComponents() {
7
- iterateArrayLike(document.querySelectorAll('.js .mdw-textfield'), TextField.attach);
8
- }
9
-
10
- /** @type {HTMLElement} */
11
- let sampleComponent;
12
-
13
- /** @return {void} */
14
- function updateSampleCode() {
15
- const jsRequired = document.querySelector('input[name="javascript"][value="required"]').checked;
16
- const jsOptional = document.querySelector('input[name="javascript"][value="optional"]').checked;
17
- const useAutoSize = document.querySelector('input[name="autosize"]').checked;
18
- const isTextArea = document.querySelector('input[name="field-type"][value="text-area"]').checked;
19
- const useJS = jsRequired || jsOptional;
20
- if (useAutoSize && useJS && isTextArea) {
21
- sampleComponent.setAttribute('mdw-autosize', '');
22
- } else {
23
- sampleComponent.removeAttribute('mdw-autosize');
24
- }
25
- // Remove resize values
26
- sampleComponent.getElementsByClassName('mdw-textfield__input')[0].removeAttribute('style');
27
-
28
- // Strip JS related elements and attributes
29
- TextField.detach(sampleComponent);
30
-
31
- const htmlCodeElement = document.getElementsByClassName('component-html')[0];
32
- htmlCodeElement.textContent = convertElementToCode(sampleComponent);
33
-
34
- // Reattach JS if requested
35
- if (useJS) {
36
- TextField.attach(sampleComponent);
37
- }
38
-
39
- const jsCodeElement = document.getElementsByClassName('component-js')[0];
40
- jsCodeElement.textContent = 'mdw.TextField.attach(element);';
41
- }
42
-
43
- /**
44
- * @param {Event} event
45
- * @return {void}
46
- */
47
- function onOptionChange(event) {
48
- const { name, value, checked } = event.target;
49
- let inputElement = sampleComponent.getElementsByClassName('mdw-textfield__input')[0];
50
- let desiredTagName = inputElement.tagName.toLowerCase();
51
- let helperText;
52
- let errorText;
53
- let prefixText;
54
- let suffixText;
55
- let signifierElement;
56
- switch (name) {
57
- case 'field-type':
58
- switch (value) {
59
- default:
60
- case 'single-type':
61
- sampleComponent.removeAttribute('mdw-autosize');
62
- desiredTagName = 'input';
63
- break;
64
- case 'text-area':
65
- desiredTagName = 'textarea';
66
- break;
67
- case 'dropdown':
68
- sampleComponent.removeAttribute('mdw-autosize');
69
- desiredTagName = 'select';
70
- break;
71
- }
72
- break;
73
- case 'style':
74
- switch (value) {
75
- default:
76
- case 'filled':
77
- sampleComponent.removeAttribute('mdw-outlined');
78
- sampleComponent.removeAttribute('mdw-solo');
79
- break;
80
- case 'outlined':
81
- sampleComponent.setAttribute('mdw-outlined', '');
82
- sampleComponent.removeAttribute('mdw-solo');
83
- break;
84
- case 'solo':
85
- sampleComponent.removeAttribute('mdw-outlined');
86
- sampleComponent.setAttribute('mdw-solo', '');
87
- break;
88
- }
89
- break;
90
- case 'box':
91
- if (checked) {
92
- sampleComponent.setAttribute('mdw-box', '');
93
- } else {
94
- sampleComponent.removeAttribute('mdw-box');
95
- }
96
- break;
97
- case 'outlined':
98
- if (checked) {
99
- sampleComponent.setAttribute('mdw-outlined', '');
100
- } else {
101
- sampleComponent.removeAttribute('mdw-outlined');
102
- }
103
- break;
104
- case 'disabled':
105
- if (checked) {
106
- sampleComponent.getElementsByClassName('mdw-textfield__input')[0].setAttribute('disabled', '');
107
- } else {
108
- sampleComponent.getElementsByClassName('mdw-textfield__input')[0].removeAttribute('disabled');
109
- }
110
- break;
111
- case '4minlength':
112
- if (checked) {
113
- sampleComponent.getElementsByClassName('mdw-textfield__input')[0].setAttribute('minlength', '4');
114
- } else {
115
- sampleComponent.getElementsByClassName('mdw-textfield__input')[0].removeAttribute('minlength');
116
- }
117
- break;
118
- case 'required':
119
- if (checked) {
120
- sampleComponent.getElementsByClassName('mdw-textfield__input')[0].setAttribute('required', '');
121
- } else {
122
- sampleComponent.getElementsByClassName('mdw-textfield__input')[0].removeAttribute('required');
123
- }
124
- break;
125
- case 'prefix':
126
- prefixText = sampleComponent.getElementsByClassName('mdw-textfield__prefix')[0];
127
- if (checked) {
128
- if (!prefixText) {
129
- prefixText = document.createElement('div');
130
- prefixText.classList.add('mdw-textfield__prefix');
131
- prefixText.textContent = '$';
132
- sampleComponent.appendChild(prefixText);
133
- }
134
- } else if (prefixText) {
135
- prefixText.parentElement.removeChild(prefixText);
136
- }
137
- break;
138
- case 'suffix':
139
- suffixText = sampleComponent.getElementsByClassName('mdw-textfield__suffix')[0];
140
- if (checked) {
141
- if (!suffixText) {
142
- suffixText = document.createElement('div');
143
- suffixText.classList.add('mdw-textfield__suffix');
144
- suffixText.textContent = 'lbs';
145
- sampleComponent.appendChild(suffixText);
146
- }
147
- } else if (suffixText) {
148
- suffixText.parentElement.removeChild(suffixText);
149
- }
150
- break;
151
- case 'signifier':
152
- signifierElement = sampleComponent.getElementsByClassName('mdw-textfield__signifier')[0];
153
- if (checked) {
154
- if (!signifierElement) {
155
- signifierElement = document.createElement('div');
156
- signifierElement.classList.add('mdw-textfield__signifier');
157
- signifierElement.classList.add('material-icons');
158
- signifierElement.textContent = 'security';
159
- if (inputElement.nextElementSibling) {
160
- sampleComponent.insertBefore(signifierElement, inputElement.nextElementSibling);
161
- } else {
162
- sampleComponent.appendChild(signifierElement);
163
- }
164
- }
165
- } else if (signifierElement) {
166
- signifierElement.parentElement.removeChild(signifierElement);
167
- }
168
- break;
169
- case 'helper-text':
170
- helperText = sampleComponent.getElementsByClassName('mdw-textfield__helper-text')[0];
171
- if (checked) {
172
- if (!helperText) {
173
- helperText = document.createElement('div');
174
- helperText.classList.add('mdw-textfield__helper-text');
175
- helperText.textContent = 'Helper text.';
176
- sampleComponent.appendChild(helperText);
177
- }
178
- } else if (helperText) {
179
- helperText.parentElement.removeChild(helperText);
180
- }
181
- break;
182
- case 'error-text':
183
- errorText = sampleComponent.getElementsByClassName('mdw-textfield__error-text')[0];
184
- if (checked) {
185
- if (!errorText) {
186
- errorText = document.createElement('div');
187
- errorText.classList.add('mdw-textfield__error-text');
188
- errorText.textContent = 'Error text.';
189
- sampleComponent.appendChild(errorText);
190
- }
191
- } else if (errorText) {
192
- errorText.parentElement.removeChild(errorText);
193
- }
194
- break;
195
- case 'ink':
196
- switch (value) {
197
- case 'none':
198
- sampleComponent.removeAttribute('mdw-ink');
199
- break;
200
- default:
201
- sampleComponent.setAttribute('mdw-ink', value);
202
- break;
203
- }
204
- break;
205
- default:
206
- }
207
-
208
- if (inputElement.tagName.toLowerCase() !== desiredTagName) {
209
- const newElement = document.createElement(desiredTagName);
210
- for (let i = inputElement.attributes.length - 1; i >= 0; i -= 1) {
211
- const attr = inputElement.attributes.item(i);
212
- newElement.attributes.setNamedItem(attr.cloneNode());
213
- }
214
- inputElement.parentElement.replaceChild(newElement, inputElement);
215
- inputElement = newElement;
216
- let dropdown = sampleComponent.getElementsByClassName('mdw-textfield__icon')[0];
217
- if (desiredTagName === 'select') {
218
- const option1 = document.createElement('option');
219
- option1.setAttribute('value', '');
220
- option1.textContent = 'Empty';
221
- const option2 = document.createElement('option');
222
- option2.setAttribute('value', 'option1');
223
- option2.textContent = 'Option 1';
224
- const option3 = document.createElement('option');
225
- option3.setAttribute('value', 'option2');
226
- option3.textContent = 'Option 2';
227
- inputElement.appendChild(option1);
228
- inputElement.appendChild(option2);
229
- inputElement.appendChild(option3);
230
- if (!dropdown) {
231
- dropdown = document.createElement('div');
232
- dropdown.classList.add('mdw-textfield__icon');
233
- dropdown.setAttribute('mdw-dropdown', '');
234
- sampleComponent.appendChild(dropdown);
235
- }
236
- } else if (dropdown) {
237
- dropdown.parentElement.removeChild(dropdown);
238
- }
239
- }
240
- inputElement.removeAttribute('rows');
241
- updateSampleCode();
242
- }
243
-
244
- /** @return {void} */
245
- function setupComponentOptions() {
246
- sampleComponent = document.querySelector('.component-sample .mdw-textfield');
247
- iterateArrayLike(document.querySelectorAll('input[name]'), (el) => {
248
- el.addEventListener('change', onOptionChange);
249
- });
250
- }
251
-
252
- initializeSampleComponents();
253
- setupComponentOptions();
254
- updateSampleCode();
@@ -1,360 +0,0 @@
1
- include ../_mixins.pug
2
-
3
- +header("textfield")
4
- .mdw-grid(mdw-margin-top mdw-margin-bottom mdw-stretch)
5
- .mdw-grid__item(mdw-colspan="100%")
6
- h5.mdw-type(mdw-baseline-next="36") Text fields allow users to input, edit, and select text.
7
- p.mdw-type Text fields typically reside in forms but can appear in other places, like dialog boxes and search.
8
- .mdw-grid__item(mdw-colspan="4")
9
- .mdw-grid__content
10
- .component-sample
11
- .component-sample__container
12
- label.mdw-textfield.mdw-theme(mdw-ink="primary")
13
- input.mdw-textfield__input(placeholder="Placeholder")
14
- .mdw-textfield__border
15
- .mdw-textfield__outline-gap
16
- .mdw-textfield__label Label
17
- .mdw-grid__item(mdw-colspan="8")
18
- .mdw-type(mdw-style="subtitle") Javascript
19
- .docs-option-list
20
- +mdwSelection({ink:'secondary', name:'javascript', type:'radio', value:'required', disabled:true}) Required
21
- +mdwSelection({ink:'secondary', name:'javascript', type:'radio', value:'optional', checked:true}) Optional
22
- +mdwSelection({ink:'secondary', name:'javascript', type:'radio', value:'none'}) None
23
- .mdw-type(mdw-style="subtitle") Field type
24
- .docs-option-list
25
- +mdwSelection({ink:'secondary', name:'field-type', type:'radio', value:'single-line', checked:true}) Single-line
26
- +mdwSelection({ink:'secondary', name:'field-type', type:'radio', value:'text-area'}) Text area
27
- +mdwSelection({ink:'secondary', name:'field-type', type:'radio', value:'dropdown'}) Dropdown
28
- .mdw-type(mdw-style="subtitle") Style
29
- .docs-option-list
30
- +mdwSelection({ink:'secondary', name:'style', type:'radio', value:'filled', checked:true}) Filled
31
- +mdwSelection({ink:'secondary', name:'style', type:'radio', value:'outlined'}) Outlined
32
- +mdwSelection({ink:'secondary', name:'style', type:'radio', value:'solo'}) Solo
33
- .mdw-type(mdw-style="subtitle") Options
34
- .docs-option-list
35
- +mdwSelection({ink:'secondary', name:'signifier'}) Signifier
36
- +mdwSelection({ink:'secondary', name:'prefix'}) Prefix
37
- +mdwSelection({ink:'secondary', name:'suffix'}) Suffix
38
- +mdwSelection({ink:'secondary', name:'helper-text'}) Helper Text
39
- +mdwSelection({ink:'secondary', name:'error-text'}) Error Text
40
- .mdw-type(mdw-style="subtitle") Ink
41
- .docs-option-list
42
- +mdwSelection({ink:'secondary', name:'ink', type:'radio', value:'none'}) Default
43
- +mdwSelection({ink:'secondary', name:'ink', type:'radio', value:'primary', checked:true}) Primary
44
- +mdwSelection({ink:'secondary', name:'ink', type:'radio', value:'secondary'}) Secondary
45
- +mdwSelection({ink:'secondary', name:'ink', type:'radio', value:'green'}) Green
46
- .mdw-type(mdw-style="subtitle") Attributes
47
- .docs-option-list
48
- +mdwSelection({ink:'secondary', name:'autosize', checked:true}) Autosize
49
- +mdwSelection({ink:'secondary', name:'disabled'}) Disabled
50
- +mdwSelection({ink:'secondary', name:'4minlength'}) 4 Min Length
51
- +mdwSelection({ink:'secondary', name:'required'}) Required
52
- .mdw-grid__item(mdw-colspan="100%" style="max-height:0")
53
- .mdw-grid__item(mdw-colspan="6")
54
- h6.mdw-type HTML Code
55
- .mdw-card.mdw-theme.component-code.component-html(mdw-surface="card" mdw-border-ink)
56
- .mdw-grid__item(mdw-colspan="6")
57
- h6.mdw-type Javascript Code
58
- .mdw-card.mdw-theme.component-code.component-js(mdw-surface="card" mdw-border-ink)
59
- .mdw-grid__item(mdw-colspan="100%")
60
- h6.mdw-type Samples
61
- .mdw-grid__item(mdw-colspan="4" flex-justify-content="center")
62
- .render-fill
63
- +androidstatusbar('primary 700', 'dark')
64
- +appbar('primary 500', 'dark', ['arrow_back'], ['more_vert']) Application
65
- .content(style="padding:0px 16px")
66
- label.mdw-textfield.mdw-type.mdw-theme(mdw-ink="primary" mdw-style="h4")
67
- input.mdw-textfield__input(value="Vintage 50" placeholder=" ")
68
- .mdw-textfield__border
69
- .mdw-textfield__outline-gap
70
- .mdw-textfield__label Title
71
- .horizontal-controls
72
- label.mdw-textfield.mdw-theme(mdw-ink="primary" style="width:88px")
73
- input.mdw-textfield__input(type="text" placeholder=" ")
74
- .mdw-textfield__prefix $
75
- .mdw-textfield__border
76
- .mdw-textfield__outline-gap
77
- .mdw-textfield__label Price
78
- label.mdw-textfield.flex-1.mdw-theme(mdw-ink="primary")
79
- input.mdw-textfield__input(type="text" placeholder=" ")
80
- .mdw-textfield__border
81
- .mdw-textfield__outline-gap
82
- .mdw-textfield__label Location (optional)
83
- +mdwTextField({ink:'primary', placeholder:'text'}) Description
84
- +mdwTextField({ink:'primary', placeholder:'••••••••', required:true, minlength:8,
85
- signifier:'security', signifierClass:'material-icons', type:'password',
86
- helperText: 'At least 8 characters', errorText: 'Error: Password of at least 8 characters required.'})
87
- | Password text field with signifier and overflowing label *
88
- +mdwTextField({ink:'primary', disabled:true, value:'filled', suffix:'lbs', helperText:'Disabled Helper Text'}) Disabled Filled with Suffix
89
- +androidnavbar
90
- .mdw-grid__item(mdw-colspan="4" flex-justify-content="center")
91
- .render-fill
92
- +androidstatusbar('secondary 300', 'light')
93
- +appbar('secondary 100', 'light', ['arrow_back'], ['search']) Auto-fill styling
94
- form.content(style="padding:0px 16px")
95
- +mdwTextField({ink:'secondary', required:true})(name="name") Name *
96
- +mdwTextField({ink:'secondary'})(name="address") Address
97
- +mdwTextField({ink:'secondary'})(name="city") City
98
- .horizontal-controls
99
- label.mdw-textfield.mdw-theme(mdw-ink="secondary" style="width:88px;")
100
- select.mdw-textfield__input(name="state")
101
- option.mdw-theme(mdw-surface="card" value="") --
102
- option.mdw-theme(mdw-surface="card" value="AL") AL
103
- option.mdw-theme(mdw-surface="card" value="AK") AK
104
- option.mdw-theme(mdw-surface="card" value="AZ") AZ
105
- option.mdw-theme(mdw-surface="card" value="AR") AR
106
- option.mdw-theme(mdw-surface="card" value="CA") CA
107
- option.mdw-theme(mdw-surface="card" value="CO") CO
108
- option.mdw-theme(mdw-surface="card" value="CT") CT
109
- option.mdw-theme(mdw-surface="card" value="DE") DE
110
- option.mdw-theme(mdw-surface="card" value="FL") FL
111
- option.mdw-theme(mdw-surface="card" value="GA") GA
112
- option.mdw-theme(mdw-surface="card" value="HI") HI
113
- option.mdw-theme(mdw-surface="card" value="ID") ID
114
- option.mdw-theme(mdw-surface="card" value="IL") IL
115
- option.mdw-theme(mdw-surface="card" value="IN") IN
116
- option.mdw-theme(mdw-surface="card" value="IA") IA
117
- option.mdw-theme(mdw-surface="card" value="KS") KS
118
- option.mdw-theme(mdw-surface="card" value="KY") KY
119
- option.mdw-theme(mdw-surface="card" value="LA") LA
120
- option.mdw-theme(mdw-surface="card" value="ME") ME
121
- option.mdw-theme(mdw-surface="card" value="MD") MD
122
- option.mdw-theme(mdw-surface="card" value="MA") MA
123
- option.mdw-theme(mdw-surface="card" value="MI") MI
124
- option.mdw-theme(mdw-surface="card" value="MN") MN
125
- option.mdw-theme(mdw-surface="card" value="MS") MS
126
- option.mdw-theme(mdw-surface="card" value="MO") MO
127
- option.mdw-theme(mdw-surface="card" value="MT") MT
128
- option.mdw-theme(mdw-surface="card" value="NE") NE
129
- option.mdw-theme(mdw-surface="card" value="NV") NV
130
- option.mdw-theme(mdw-surface="card" value="NH") NH
131
- option.mdw-theme(mdw-surface="card" value="NJ") NJ
132
- option.mdw-theme(mdw-surface="card" value="NM") NM
133
- option.mdw-theme(mdw-surface="card" value="NY") NY
134
- option.mdw-theme(mdw-surface="card" value="NC") NC
135
- option.mdw-theme(mdw-surface="card" value="ND") ND
136
- option.mdw-theme(mdw-surface="card" value="OH") OH
137
- option.mdw-theme(mdw-surface="card" value="OK") OK
138
- option.mdw-theme(mdw-surface="card" value="OR") OR
139
- option.mdw-theme(mdw-surface="card" value="PA") PA
140
- option.mdw-theme(mdw-surface="card" value="RI") RI
141
- option.mdw-theme(mdw-surface="card" value="SC") SC
142
- option.mdw-theme(mdw-surface="card" value="SD") SD
143
- option.mdw-theme(mdw-surface="card" value="TN") TN
144
- option.mdw-theme(mdw-surface="card" value="TX") TX
145
- option.mdw-theme(mdw-surface="card" value="UT") UT
146
- option.mdw-theme(mdw-surface="card" value="VT") VT
147
- option.mdw-theme(mdw-surface="card" value="VA") VA
148
- option.mdw-theme(mdw-surface="card" value="WA") WA
149
- option.mdw-theme(mdw-surface="card" value="WV") WV
150
- option.mdw-theme(mdw-surface="card" value="WI") WI
151
- option.mdw-theme(mdw-surface="card" value="WY") WY
152
- .mdw-textfield__icon(mdw-dropdown)
153
- .mdw-textfield__border
154
- .mdw-textfield__outline-gap
155
- .mdw-textfield__label State
156
- label.mdw-textfield.flex-1.mdw-theme(mdw-ink="primary")
157
- input.mdw-textfield__input(type="text" placeholder=" " name="zip" required)
158
- .mdw-textfield__border
159
- .mdw-textfield__outline-gap
160
- .mdw-textfield__label Zip code *
161
- +mdwTextField({ink:'secondary'})(name="phone") Phone number
162
- p.mdw-type * Required fields
163
- +androidnavbar
164
-
165
- .mdw-grid__item(mdw-colspan="4" flex-justify-content="center")
166
- .render-fill
167
- +androidstatusbar('secondary 800', 'dark')
168
- +appbar('secondary 700', 'dark', ['arrow_back'], ['search'])
169
- form.content(style="padding:8px 16px")
170
- .display-flex(style="margin-bottom:-32px;margin-top:-24px;" flex-justify-content="center")
171
- i.material-icons(style="color:#ccc;font-size:256px") person
172
- .horizontal-controls
173
- label.mdw-textfield.flex-1.mdw-theme(mdw-ink="secondary")
174
- .mdw-textfield__signifier.material-icons person
175
- input.mdw-textfield__input(type="text" placeholder=" " value="Ali Connors")
176
- .mdw-textfield__border
177
- .mdw-textfield__outline-gap
178
- .mdw-textfield__label Name
179
- .horizontal-controls
180
- +mdwTextField({ink:'secondary', value:'65', type:'phone', signifier:'phone', signifierClass:'material-icons'})
181
- | Phone number
182
- label.mdw-textfield.mdw-theme(mdw-ink="secondary" style="width:150px;")
183
- select.mdw-textfield__input(type="phone")
184
- option.mdw-theme(mdw-surface="card" value="") Unknown
185
- option.mdw-theme(mdw-surface="card" value="Mobile") Mobile
186
- option.mdw-theme(mdw-surface="card" value="Home") Home
187
- option.mdw-theme(mdw-surface="card" value="Work") Work
188
- .mdw-textfield__icon(mdw-dropdown)
189
- .mdw-textfield__border
190
- .mdw-textfield__outline-gap
191
- .mdw-textfield__label Phone Type
192
- .horizontal-controls
193
- +mdwTextField({ink:'secondary', type:'email', signifier:'email', signifierClass:'material-icons'}) Email
194
- label.mdw-textfield.mdw-theme(mdw-ink="secondary" style="width:150px;")
195
- select.mdw-textfield__input(type="phone")
196
- option.mdw-theme(mdw-surface="card" value="") Unknown
197
- option.mdw-theme(mdw-surface="card" value="") Unknown
198
- option.mdw-theme(mdw-surface="card" value="Personal") Personal
199
- option.mdw-theme(mdw-surface="card" value="Business") Business
200
- .mdw-textfield__icon(mdw-dropdown)
201
- .mdw-textfield__border
202
- .mdw-textfield__outline-gap
203
- .mdw-textfield__label Email type
204
- .horizontal-controls
205
- +mdwTextField({ink:'secondary', type:'address', signifier:'place', signifierClass:'material-icons'}) Address
206
- label.mdw-textfield.mdw-theme(mdw-ink="secondary" style="width:150px")
207
- select.mdw-textfield__input(type="phone")
208
- option.mdw-theme(mdw-surface="card" value="Home") Home
209
- option.mdw-theme(mdw-surface="card" value="Work") Work
210
- .mdw-textfield__icon(mdw-dropdown)
211
- .mdw-textfield__border
212
- .mdw-textfield__outline-gap
213
- .mdw-textfield__label Address type
214
- +androidnavbar
215
- .mdw-grid__item(mdw-colspan="4" flex-justify-content="center")
216
- .render-fill
217
- +androidstatusbar('primary 700', 'dark')
218
- +appbar('primary 500', 'dark', ['arrow_back'], ['done'])
219
- .content(style="padding:8px 16px")
220
- +mdwTextField({ink:'primary', value:"Vintage 50's Dress", outlined:true, helperText:'Helper'}) Title
221
- .horizontal-controls
222
- label.mdw-textfield.mdw-theme(mdw-ink="primary" mdw-outlined style="width:88px")
223
- input.mdw-textfield__input(value="10.00" placeholder=" ")
224
- .mdw-textfield__border
225
- .mdw-textfield__outline-gap
226
- .mdw-textfield__label Price
227
- .mdw-textfield__prefix $
228
- .mdw-textfield__helper-text Helper
229
- label.mdw-textfield.flex-1.mdw-theme(mdw-ink="primary" mdw-outlined)
230
- input.mdw-textfield__input(value="Hanover" placeholder=" ")
231
- .mdw-textfield__border
232
- .mdw-textfield__outline-gap
233
- .mdw-textfield__label Location (optional)
234
- .mdw-textfield__helper-text Helper
235
- label.mdw-textfield.mdw-theme(mdw-ink="primary" mdw-outlined)
236
- textarea.mdw-textfield__input(placeholder=" " rows=3)
237
- | Unique and rare dress from 1952. Made out of washed cotton with front pockets. Sleeveless with button closures.
238
- .mdw-textfield__border
239
- .mdw-textfield__outline-gap
240
- .mdw-textfield__label Description
241
- label.mdw-textfield.mdw-theme(mdw-ink="primary" mdw-outlined)
242
- .mdw-textfield__signifier.material-icons security
243
- input.mdw-textfield__input(type="password" placeholder="••••••••" required minlength="8")
244
- .mdw-textfield__border
245
- .mdw-textfield__outline-gap
246
- .mdw-textfield__label Password text field with signifier and overflowing label *
247
- .mdw-textfield__helper-text At least 8 characters
248
- .mdw-textfield__error-text Error: Password of at least 8 characters required.
249
- label.mdw-textfield.mdw-theme(mdw-ink="primary" mdw-outlined style="max-width:150px")
250
- input.mdw-textfield__input(type="text" placeholder=" " disabled value="filled")
251
- .mdw-textfield__border
252
- .mdw-textfield__outline-gap
253
- .mdw-textfield__label Disabled Filled with Suffix
254
- .mdw-textfield__suffix lbs
255
- .mdw-textfield__helper-text Disabled Helper Text
256
- +androidnavbar
257
- .mdw-grid__item(mdw-colspan="4" flex-justify-content="center")
258
- .render-fill
259
- +androidstatusbar('amber 600', 'dark')
260
- +appbar('amber 400', 'dark', ['arrow_back'], ['done'])
261
- .content(style="padding:0 16px")
262
- label.mdw-textfield.mdw-theme(mdw-ink="amber")
263
- input.mdw-textfield__input(placeholder=" ")
264
- .mdw-textfield__border
265
- .mdw-textfield__outline-gap
266
- .mdw-textfield__label Name
267
- .mdw-textfield__error-text spacer
268
- label.mdw-textfield.mdw-theme(mdw-ink="amber")
269
- textarea.mdw-textfield__input(placeholder=" " rows="5")
270
- .mdw-textfield__border
271
- .mdw-textfield__outline-gap
272
- .mdw-textfield__label Message
273
- label.mdw-textfield.mdw-theme(mdw-ink="deeppurple" mdw-outlined)
274
- textarea.mdw-textfield__input(placeholder=" " rows="5")
275
- .mdw-textfield__border
276
- .mdw-textfield__outline-gap
277
- .mdw-textfield__label Message
278
- +androidnavbar
279
- .mdw-grid__item(mdw-colspan="4" flex-justify-content="center")
280
- .render-fill
281
- +androidstatusbar('amber 700', 'dark')
282
- +appbar('amber 400', 'dark', ['arrow_back'], ['done'])
283
- .content(style="padding:0 16px")
284
- label.mdw-textfield.mdw-theme(mdw-ink="amber")
285
- input.mdw-textfield__input(placeholder=" ")
286
- .mdw-textfield__border
287
- .mdw-textfield__outline-gap
288
- .mdw-textfield__label Name
289
- .mdw-textfield__error-text spacer
290
- label.mdw-textfield.mdw-theme(mdw-ink="amber")
291
- textarea.mdw-textfield__input(placeholder=" " rows="5" required)
292
- | Just wanted to let you kn
293
- .mdw-textfield__border
294
- .mdw-textfield__outline-gap
295
- .mdw-textfield__label Message *
296
- .mdw-textfield__helper-text Helper text.
297
- .mdw-textfield__error-text Error: Required.
298
- label.mdw-textfield.mdw-theme(mdw-ink="amber")
299
- textarea.mdw-textfield__input(placeholder=" " rows="5" disabled)
300
- | This textarea is disabled.
301
- .mdw-textfield__border
302
- .mdw-textfield__outline-gap
303
- .mdw-textfield__label Message *
304
- .mdw-textfield__helper-text Helper text.
305
- .mdw-textfield__error-text Error: Required.
306
- +androidnavbar
307
-
308
- .mdw-grid__item(mdw-colspan="4").js
309
- .render-fill
310
- +androidstatusbar('primary 700', 'dark')
311
- +appbar('primary 500', 'dark', ['arrow_back'], ['done']) With Javascript
312
- .content(style="padding:8px 16px")
313
- label.mdw-textfield.mdw-theme(mdw-ink="primary" mdw-outlined)
314
- input.mdw-textfield__input(placeholder=" ")
315
- .mdw-textfield__border
316
- .mdw-textfield__outline-gap
317
- .mdw-textfield__label Title
318
- .mdw-textfield__helper-text Helper
319
- .horizontal-controls
320
- label.mdw-textfield.mdw-theme(mdw-ink="primary" style="width:88px")
321
- input.mdw-textfield__input(value="10.00" placeholder=" ")
322
- .mdw-textfield__prefix $
323
- .mdw-textfield__border
324
- .mdw-textfield__outline-gap
325
- .mdw-textfield__label Price
326
- .mdw-textfield__helper-text Helper
327
- label.mdw-textfield.flex-1.mdw-theme(mdw-ink="primary")
328
- input.mdw-textfield__input(placeholder=" ")
329
- .mdw-textfield__border
330
- .mdw-textfield__outline-gap
331
- .mdw-textfield__label Location (optional)
332
- .mdw-textfield__helper-text Helper
333
- label.mdw-textfield.mdw-theme(mdw-ink="primary" mdw-autosize)
334
- textarea.mdw-textfield__input(placeholder=" " rows=4)
335
- | Unique and rare dress from 1952. Made out of washed cotton with front pockets. Sleeveless with button closures.
336
- | (Erase Me)
337
- .mdw-textfield__border
338
- .mdw-textfield__outline-gap
339
- .mdw-textfield__label Description
340
- .horizontal-controls
341
- label.mdw-textfield.mdw-theme(mdw-ink="secondary")
342
- input.mdw-textfield__input(type="phone" placeholder=" " value="65")
343
- .mdw-textfield__signifier.material-icons phone
344
- .mdw-textfield__border
345
- .mdw-textfield__outline-gap
346
- .mdw-textfield__label Name
347
- label.mdw-textfield.mdw-theme(mdw-ink="secondary" style="width:150px")
348
- select.mdw-textfield__input(type="phone")
349
- option.mdw-theme(mdw-surface="card" value="") Unknown
350
- option.mdw-theme(mdw-surface="card" value="Mobile") Mobile
351
- option.mdw-theme(mdw-surface="card" value="Home") Home
352
- option.mdw-theme(mdw-surface="card" value="Work") Work
353
- .mdw-textfield__icon(mdw-dropdown)
354
- .mdw-textfield__border
355
- .mdw-textfield__outline-gap
356
- .mdw-textfield__label Phone Type
357
- +androidnavbar
358
- .mdw-grid__item(mdw-colspan="4")
359
- .mdw-grid__item(mdw-colspan="4")
360
- script(src='textfield.min.js')