@shortfuse/materialdesignweb 0.2.0 → 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.browserslistrc +2 -1
- package/.eslintrc.json +188 -30
- package/.stylelintrc.json +643 -2
- package/.vscode/launch.json +20 -5
- package/.vscode/settings.json +3 -0
- package/CHANGELOG.md +36 -0
- package/README.md +82 -2
- package/adapters/datatable/column.js +176 -0
- package/adapters/datatable/index.js +253 -437
- package/adapters/dom/index.js +586 -0
- package/adapters/list/index.js +36 -113
- package/adapters/search/index.js +153 -180
- package/components/appbar/_spec.scss +165 -0
- package/components/appbar/_theme.scss +0 -0
- package/components/appbar/index.scss +2 -0
- package/components/banner/_spec.scss +83 -0
- package/components/banner/_theme.scss +0 -0
- package/components/banner/index.scss +2 -0
- package/components/bottomnav/README.md +4 -4
- package/components/bottomnav/_spec.scss +149 -0
- package/components/bottomnav/_theme.scss +0 -0
- package/components/bottomnav/index.js +100 -120
- package/components/bottomnav/index.scss +2 -0
- package/components/bottomnav/item.js +88 -0
- package/components/button/README.md +16 -22
- package/components/button/_spec.scss +162 -0
- package/components/button/_theme.scss +42 -0
- package/components/button/index.eta +32 -0
- package/components/button/index.js +37 -48
- package/components/button/index.pug +18 -0
- package/components/button/index.scss +2 -0
- package/components/card/_spec.scss +241 -0
- package/components/card/_theme.scss +0 -0
- package/components/card/index.scss +2 -0
- package/components/chip/_spec.scss +111 -0
- package/components/chip/_theme.scss +105 -0
- package/components/chip/index.js +23 -0
- package/components/chip/index.scss +2 -0
- package/components/chip/item.js +20 -0
- package/components/datatable/_spec.scss +225 -0
- package/components/datatable/_theme.scss +128 -0
- package/components/datatable/cell.js +44 -0
- package/components/datatable/columnheader.js +46 -0
- package/components/datatable/index.js +339 -443
- package/components/datatable/index.scss +2 -0
- package/components/datatable/row.js +48 -0
- package/components/datatable/rowheader.js +18 -0
- package/components/dialog/_spec.scss +203 -0
- package/components/dialog/_theme.scss +7 -0
- package/components/dialog/index.js +512 -437
- package/components/dialog/index.scss +2 -0
- package/components/divider/_spec.scss +11 -0
- package/components/divider/_theme.scss +0 -0
- package/components/divider/index.scss +2 -0
- package/components/elevation/_spec.scss +9 -0
- package/components/elevation/_theme.scss +0 -0
- package/components/elevation/index.scss +2 -0
- package/components/fab/{style.scss → _spec.scss} +104 -79
- package/components/fab/_theme.scss +0 -0
- package/components/fab/index.js +85 -79
- package/components/fab/index.scss +2 -0
- package/components/grid/_spec.scss +169 -0
- package/components/grid/_theme.scss +0 -0
- package/components/grid/index.scss +2 -0
- package/components/layout/_mixins.scss +11 -0
- package/components/layout/_spec.scss +916 -0
- package/components/layout/_theme.scss +19 -0
- package/components/layout/index.js +454 -0
- package/components/layout/index.scss +2 -0
- package/components/list/_spec.scss +363 -0
- package/components/list/_theme.scss +102 -0
- package/components/list/content.js +106 -0
- package/components/list/index.js +234 -79
- package/components/list/index.scss +2 -0
- package/components/list/item.js +167 -0
- package/components/list/secondary.js +45 -0
- package/components/menu/_spec.scss +329 -0
- package/components/menu/_theme.scss +0 -0
- package/components/menu/index.js +636 -651
- package/components/menu/index.scss +2 -0
- package/components/menu/item.js +231 -0
- package/components/progress/_spec.scss +156 -0
- package/components/progress/_theme.scss +0 -0
- package/components/progress/index.js +29 -13
- package/components/progress/index.scss +2 -0
- package/components/selection/_spec.scss +376 -0
- package/components/selection/_theme.scss +134 -0
- package/components/selection/index.eta +60 -0
- package/components/selection/index.js +70 -0
- package/components/selection/index.pug +30 -0
- package/components/selection/index.scss +2 -0
- package/components/selection/input.js +54 -0
- package/components/selection/radiogroup.js +40 -0
- package/components/slider/{style.scss → _spec.scss} +31 -34
- package/components/slider/_theme.scss +0 -0
- package/components/slider/index.scss +2 -0
- package/components/snackbar/_spec.scss +150 -0
- package/components/snackbar/_theme.scss +0 -0
- package/components/snackbar/index.js +293 -206
- package/components/snackbar/index.scss +2 -0
- package/components/tab/_spec.scss +220 -0
- package/components/tab/_theme.scss +0 -0
- package/components/tab/content.js +210 -0
- package/components/tab/index.js +229 -213
- package/components/tab/index.scss +2 -0
- package/components/tab/item.js +88 -0
- package/components/tab/list.js +196 -0
- package/components/tab/panel.js +54 -0
- package/components/textfield/README.md +4 -4
- package/components/textfield/_spec.scss +763 -0
- package/components/textfield/_theme.scss +264 -0
- package/components/textfield/index.eta +74 -0
- package/components/textfield/index.js +132 -138
- package/components/textfield/index.pug +30 -0
- package/components/textfield/index.scss +2 -0
- package/components/tooltip/_spec.scss +185 -0
- package/components/tooltip/_theme.scss +0 -0
- package/components/tooltip/index.scss +2 -0
- package/components/type/_spec.scss +227 -0
- package/components/type/_theme.scss +0 -0
- package/components/type/index.scss +2 -0
- package/core/_breakpoint.scss +189 -0
- package/core/_elevation.scss +78 -0
- package/core/_length.scss +8 -0
- package/core/_motion.scss +31 -0
- package/core/_platform.scss +12 -0
- package/core/_type.scss +128 -0
- package/core/aria/attributes.js +141 -0
- package/core/aria/button.js +49 -0
- package/core/aria/keyboard.js +92 -0
- package/core/aria/rovingtabindex.js +175 -0
- package/core/aria/tab.js +59 -0
- package/core/document/index.js +39 -0
- package/core/dom.js +180 -0
- package/core/overlay/_spec.scss +28 -0
- package/core/overlay/_theme.scss +147 -0
- package/core/overlay/index.js +95 -0
- package/core/overlay/index.scss +2 -0
- package/core/ripple/_spec.scss +196 -0
- package/core/ripple/_theme.scss +20 -0
- package/core/ripple/index.js +286 -0
- package/core/ripple/index.scss +2 -0
- package/core/theme/_aliases.scss +15 -0
- package/core/theme/_config.scss +8 -0
- package/core/theme/_functions.scss +22 -0
- package/{components/theming/palettes.scss → core/theme/_palettes.scss} +173 -151
- package/core/theme/_spec.scss +0 -0
- package/core/theme/_theme.scss +268 -0
- package/core/theme/index.js +50 -0
- package/core/theme/index.scss +4 -0
- package/core/throttler.js +42 -0
- package/core/transition/index.js +465 -0
- package/docs/_flex.scss +28 -0
- package/docs/_menuoptions.js +183 -0
- package/docs/_partials/_androidnavbar.eta +5 -0
- package/docs/_partials/_androidstatusbar.eta +13 -0
- package/docs/_partials/_appbar.eta +27 -0
- package/docs/_partials/_buttontest.eta +31 -0
- package/docs/_partials/_header.eta +146 -0
- package/docs/_partials/_navlistitem.eta +16 -0
- package/docs/_partials/_target.eta +1 -0
- package/docs/_sample-utils.js +88 -0
- package/docs/{src/storage.js → _storage.js} +0 -0
- package/docs/docs.scss +331 -0
- package/docs/framework.scss +26 -0
- package/docs/index.eta +12 -0
- package/docs/index.js +7 -0
- package/docs/pages/appbar.eta +108 -0
- package/docs/pages/appbar.js +0 -0
- package/docs/pages/bottomnav.eta +188 -0
- package/docs/pages/bottomnav.js +118 -0
- package/docs/pages/button.eta +124 -0
- package/docs/pages/button.js +224 -0
- package/docs/pages/card.eta +90 -0
- package/docs/pages/card.js +175 -0
- package/docs/pages/chip.eta +122 -0
- package/docs/pages/chip.js +80 -0
- package/docs/pages/color.eta +143 -0
- package/docs/pages/color.js +261 -0
- package/docs/pages/datatable.eta +323 -0
- package/docs/pages/datatable.js +160 -0
- package/docs/pages/dialog.eta +184 -0
- package/docs/{src/components → pages}/dialog.js +35 -48
- package/docs/pages/dom.eta +26 -0
- package/docs/pages/dom.js +140 -0
- package/docs/pages/elevation.eta +35 -0
- package/docs/pages/elevation.js +0 -0
- package/docs/pages/fab.eta +99 -0
- package/docs/{src/components → pages}/fab.js +6 -13
- package/docs/pages/grid.eta +135 -0
- package/docs/pages/grid.js +128 -0
- package/docs/pages/layout.eta +8 -0
- package/docs/pages/layout.js +0 -0
- package/docs/pages/list.eta +465 -0
- package/docs/pages/list.js +8 -0
- package/docs/pages/menu.eta +274 -0
- package/docs/{src/components → pages}/menu.js +26 -42
- package/docs/pages/overlay.eta +69 -0
- package/docs/pages/overlay.js +3 -0
- package/docs/pages/progress.eta +23 -0
- package/docs/{src/components → pages}/progress.js +2 -4
- package/docs/pages/ripple.eta +27 -0
- package/docs/pages/ripple.js +3 -0
- package/docs/pages/search.eta +242 -0
- package/docs/pages/search.js +226 -0
- package/docs/pages/selection.eta +107 -0
- package/docs/pages/selection.js +12 -0
- package/docs/pages/slider.eta +23 -0
- package/docs/pages/slider.js +0 -0
- package/docs/pages/snackbar.eta +83 -0
- package/docs/{src/components → pages}/snackbar.js +31 -36
- package/docs/pages/tab.eta +407 -0
- package/docs/pages/tab.js +152 -0
- package/docs/pages/textfield.eta +487 -0
- package/docs/{src/components → pages}/textfield.js +41 -45
- package/docs/pages/tooltip.eta +92 -0
- package/docs/pages/tooltip.js +0 -0
- package/docs/pages/transition.eta +117 -0
- package/docs/pages/transition.js +52 -0
- package/docs/pages/type.eta +31 -0
- package/docs/pages/type.js +0 -0
- package/docs/postrender.js +41 -0
- package/docs/prerender.js +16 -0
- package/docs/pwa/_dialogs.eta +143 -0
- package/docs/pwa/_menus.eta +16 -0
- package/docs/pwa/pwa-prerender.js +3 -0
- package/docs/pwa/pwa.eta +478 -0
- package/docs/pwa/pwa.js +298 -0
- package/docs/pwa/pwa.scss +31 -0
- package/docs/themes/theme-colored.scss +15 -0
- package/docs/themes/theme-default.scss +3 -0
- package/index.scss +27 -0
- package/jsconfig.json +8 -2
- package/package.json +54 -27
- package/scripts/deploy-docs.sh +9 -0
- package/templates/index.eta +2 -0
- package/templates/index.pug +3 -0
- package/tsconfig.json +16 -0
- package/utils/function.js +3 -0
- package/webpack.config.js +224 -68
- package/_index.scss +0 -4
- package/components/all-components.scss +0 -21
- package/components/bottomnav/style.scss +0 -190
- package/components/bottomnav/theming.scss +0 -76
- package/components/button/style.scss +0 -315
- package/components/button/theming.scss +0 -134
- package/components/card/style.scss +0 -175
- package/components/card/theming.scss +0 -43
- package/components/common/dom.js +0 -51
- package/components/common/functions.scss +0 -174
- package/components/common/mixins.scss +0 -122
- package/components/common/motion.scss +0 -36
- package/components/common/type.scss +0 -104
- package/components/common/variables.scss +0 -46
- package/components/datatable/style.scss +0 -257
- package/components/datatable/theming.scss +0 -119
- package/components/dialog/style.scss +0 -159
- package/components/dialog/theming.scss +0 -29
- package/components/divider/style.scss +0 -7
- package/components/divider/theming.scss +0 -20
- package/components/elevation/style.scss +0 -32
- package/components/layout/style.scss +0 -223
- package/components/list/style.scss +0 -358
- package/components/list/theming.scss +0 -83
- package/components/menu/style.scss +0 -280
- package/components/menu/theming.scss +0 -80
- package/components/navdrawer/index.js +0 -200
- package/components/navdrawer/style.scss +0 -595
- package/components/navdrawer/theming.scss +0 -62
- package/components/progress/style.scss +0 -136
- package/components/ripple/index.js +0 -63
- package/components/ripple/ripple.scss +0 -122
- package/components/selection/style.scss +0 -320
- package/components/selection/theming.scss +0 -98
- package/components/snackbar/style.scss +0 -212
- package/components/switch/style.scss +0 -3
- package/components/tab/style.scss +0 -275
- package/components/tab/theming.scss +0 -34
- package/components/template/theming.scss +0 -31
- package/components/textfield/style.scss +0 -795
- package/components/textfield/theming.scss +0 -256
- package/components/theming/globals.scss +0 -25
- package/components/theming/theming.scss +0 -559
- package/components/toolbar/style.scss +0 -190
- package/components/toolbar/theming.scss +0 -32
- package/components/tooltip/style.scss +0 -135
- package/components/type/style.scss +0 -167
- package/components/type/theming.scss +0 -25
- package/docs/bottomnav.html +0 -1
- package/docs/bottomnav.min.js +0 -2
- package/docs/bottomnav.min.js.map +0 -1
- package/docs/button.html +0 -1
- package/docs/button.min.js +0 -2
- package/docs/button.min.js.map +0 -1
- package/docs/card.html +0 -1
- package/docs/card.min.js +0 -2
- package/docs/card.min.js.map +0 -1
- package/docs/components.min.css +0 -1
- package/docs/components.min.js +0 -2
- package/docs/components.min.js.map +0 -1
- package/docs/datatable.html +0 -1
- package/docs/datatable.min.js +0 -2
- package/docs/datatable.min.js.map +0 -1
- package/docs/dialog.html +0 -1
- package/docs/dialog.min.js +0 -2
- package/docs/dialog.min.js.map +0 -1
- package/docs/docs.min.css +0 -1
- package/docs/docs.min.js +0 -2
- package/docs/docs.min.js.map +0 -1
- package/docs/elevation.html +0 -1
- package/docs/elevation.min.js +0 -2
- package/docs/elevation.min.js.map +0 -1
- package/docs/fab.html +0 -1
- package/docs/fab.min.js +0 -2
- package/docs/fab.min.js.map +0 -1
- package/docs/index.html +0 -1
- package/docs/index.min.js +0 -2
- package/docs/index.min.js.map +0 -1
- package/docs/layout.html +0 -1
- package/docs/layout.min.js +0 -2
- package/docs/layout.min.js.map +0 -1
- package/docs/list.html +0 -1
- package/docs/list.min.js +0 -2
- package/docs/list.min.js.map +0 -1
- package/docs/menu.html +0 -1
- package/docs/menu.min.js +0 -2
- package/docs/menu.min.js.map +0 -1
- package/docs/navdrawer.html +0 -1
- package/docs/navdrawer.min.js +0 -2
- package/docs/navdrawer.min.js.map +0 -1
- package/docs/prerender.min.js +0 -2
- package/docs/prerender.min.js.map +0 -1
- package/docs/progress.html +0 -1
- package/docs/progress.min.js +0 -2
- package/docs/progress.min.js.map +0 -1
- package/docs/search.html +0 -1
- package/docs/search.min.js +0 -2
- package/docs/search.min.js.map +0 -1
- package/docs/selection.html +0 -1
- package/docs/selection.min.js +0 -2
- package/docs/selection.min.js.map +0 -1
- package/docs/slider.html +0 -1
- package/docs/slider.min.js +0 -2
- package/docs/slider.min.js.map +0 -1
- package/docs/snackbar.html +0 -1
- package/docs/snackbar.min.js +0 -2
- package/docs/snackbar.min.js.map +0 -1
- package/docs/src/components/bottomnav.js +0 -16
- package/docs/src/components/bottomnav.pug +0 -112
- package/docs/src/components/button.js +0 -156
- package/docs/src/components/button.pug +0 -194
- package/docs/src/components/card.js +0 -136
- package/docs/src/components/card.pug +0 -133
- package/docs/src/components/datatable.js +0 -183
- package/docs/src/components/datatable.pug +0 -324
- package/docs/src/components/dialog.pug +0 -138
- package/docs/src/components/elevation.js +0 -3
- package/docs/src/components/elevation.pug +0 -17
- package/docs/src/components/fab.pug +0 -84
- package/docs/src/components/layout.js +0 -116
- package/docs/src/components/layout.pug +0 -104
- package/docs/src/components/list.js +0 -15
- package/docs/src/components/list.pug +0 -293
- package/docs/src/components/menu.pug +0 -292
- package/docs/src/components/navdrawer.js +0 -112
- package/docs/src/components/navdrawer.pug +0 -113
- package/docs/src/components/progress.pug +0 -17
- package/docs/src/components/search.js +0 -206
- package/docs/src/components/search.pug +0 -149
- package/docs/src/components/selection.js +0 -6
- package/docs/src/components/selection.pug +0 -116
- package/docs/src/components/slider.js +0 -3
- package/docs/src/components/slider.pug +0 -19
- package/docs/src/components/snackbar.pug +0 -145
- package/docs/src/components/tab.js +0 -137
- package/docs/src/components/tab.pug +0 -329
- package/docs/src/components/textfield.pug +0 -416
- package/docs/src/components/toolbar.js +0 -6
- package/docs/src/components/toolbar.pug +0 -86
- package/docs/src/components/tooltip.js +0 -6
- package/docs/src/components/tooltip.pug +0 -76
- package/docs/src/components/type.js +0 -6
- package/docs/src/components/type.pug +0 -34
- package/docs/src/components.scss +0 -1
- package/docs/src/docs.scss +0 -284
- package/docs/src/index.js +0 -3
- package/docs/src/index.pug +0 -6
- package/docs/src/menuoptions.js +0 -136
- package/docs/src/mixins.pug +0 -139
- package/docs/src/prerender.js +0 -26
- package/docs/src/sample-utils.js +0 -108
- package/docs/src/targetHandler.js +0 -50
- package/docs/src/theming.ie11.scss +0 -18
- package/docs/src/theming.scss +0 -18
- package/docs/tab.html +0 -1
- package/docs/tab.min.js +0 -2
- package/docs/tab.min.js.map +0 -1
- package/docs/textfield.html +0 -2
- package/docs/textfield.min.js +0 -2
- package/docs/textfield.min.js.map +0 -1
- package/docs/theming.ie11.min.css +0 -1
- package/docs/theming.ie11.min.js +0 -2
- package/docs/theming.ie11.min.js.map +0 -1
- package/docs/theming.min.css +0 -1
- package/docs/theming.min.js +0 -2
- package/docs/theming.min.js.map +0 -1
- package/docs/toolbar.html +0 -1
- package/docs/toolbar.min.js +0 -2
- package/docs/toolbar.min.js.map +0 -1
- package/docs/tooltip.html +0 -1
- package/docs/tooltip.min.js +0 -2
- package/docs/tooltip.min.js.map +0 -1
- package/docs/type.html +0 -1
- package/docs/type.min.js +0 -2
- package/docs/type.min.js.map +0 -1
- package/index.js +0 -16
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
const crosshairs = {
|
|
2
|
-
};
|
|
3
|
-
let vOffset = 0;
|
|
4
|
-
let hOffset = 0;
|
|
5
|
-
|
|
6
|
-
Object.defineProperty(crosshairs, 'vOffset', {
|
|
7
|
-
enumerable: true,
|
|
8
|
-
configurable: false,
|
|
9
|
-
get() {
|
|
10
|
-
return vOffset;
|
|
11
|
-
},
|
|
12
|
-
set(val) {
|
|
13
|
-
vOffset = val;
|
|
14
|
-
document.getElementById('verticalLineLeft').style.left = `${val}px`;
|
|
15
|
-
document.getElementById('verticalLineRight').style.left = `${val}px`;
|
|
16
|
-
},
|
|
17
|
-
});
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
Object.defineProperty(crosshairs, 'hOffset', {
|
|
21
|
-
enumerable: true,
|
|
22
|
-
configurable: false,
|
|
23
|
-
get() {
|
|
24
|
-
return hOffset;
|
|
25
|
-
},
|
|
26
|
-
set(val) {
|
|
27
|
-
hOffset = val;
|
|
28
|
-
document.getElementById('horizontalLine').style.top = `${val}px`;
|
|
29
|
-
},
|
|
30
|
-
});
|
|
31
|
-
|
|
32
|
-
/**
|
|
33
|
-
* @param {MouseEvent} event
|
|
34
|
-
* @return {void}
|
|
35
|
-
*/
|
|
36
|
-
function onTemplateImageClick(event) {
|
|
37
|
-
document.getElementById('horizontalLine').style.top = `${event.clientY}px`;
|
|
38
|
-
document.getElementById('verticalLineLeft').style.left = `${event.layerX}px`;
|
|
39
|
-
document.getElementById('verticalLineRight').style.left = `${event.clientX}px`;
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
/** @return {void} */
|
|
43
|
-
function setupImageTargets() {
|
|
44
|
-
const targets = document.getElementsByClassName('target');
|
|
45
|
-
for (let i = 0; i < targets.length; i += 1) {
|
|
46
|
-
targets[i].addEventListener('click', onTemplateImageClick);
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
export default setupImageTargets;
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
@import "../../components/theming/theming.scss";
|
|
2
|
-
$themes: (
|
|
3
|
-
"default": ('indigo', 'pink', 'red'),
|
|
4
|
-
"textfield": ('deeppurple', 'amber', 'red'),
|
|
5
|
-
"toolbar": ('blue', 'pink', 'red'),
|
|
6
|
-
"bottomnav": ('teal', 'brown', 'red'),
|
|
7
|
-
"list": ('teal', 'cyan', 'pink'),
|
|
8
|
-
"selection": ('blue', 'teal', 'red'),
|
|
9
|
-
"tab": ('cyan', 'yellow', 'red')
|
|
10
|
-
);
|
|
11
|
-
$colors: ('cyan', 'red', 'green','lightblue', 'purple');
|
|
12
|
-
$config: (
|
|
13
|
-
themes: $themes,
|
|
14
|
-
explicit-colors: $colors,
|
|
15
|
-
ie11-support: 'only',
|
|
16
|
-
ie11-media-wrap: 'no'
|
|
17
|
-
);
|
|
18
|
-
@include buildMDWThemes($config);
|
package/docs/src/theming.scss
DELETED
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
@import "../../components/theming/theming.scss";
|
|
2
|
-
$themes: (
|
|
3
|
-
"default": ('indigo', 'pink', 'red'),
|
|
4
|
-
"textfield": ('deeppurple', 'amber', 'red'),
|
|
5
|
-
"toolbar": ('blue', 'pink', 'red'),
|
|
6
|
-
"bottomnav": ('teal', 'brown', 'red'),
|
|
7
|
-
"list": ('teal', 'cyan', 'pink'),
|
|
8
|
-
"selection": ('blue', 'teal', 'red'),
|
|
9
|
-
"tab": ('cyan', 'yellow', 'red')
|
|
10
|
-
);
|
|
11
|
-
$colors: ('cyan', 'red', 'green','lightblue', 'purple');
|
|
12
|
-
$mdw-config: (
|
|
13
|
-
themes: $themes,
|
|
14
|
-
automatic-contrast: 'no',
|
|
15
|
-
explicit-colors: $colors,
|
|
16
|
-
ie11-support: 'no'
|
|
17
|
-
);
|
|
18
|
-
@include buildMDWThemes($mdw-config);
|
package/docs/tab.html
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
<!DOCTYPE html><html lang="en"><head><title>Material Design Web</title><meta charset="utf-8"><meta content="IE=edge" http-equiv="X-UA-Compatible"><meta content="" name="description"><meta content="width=device-width, initial-scale=1, viewport-fit=cover" name="viewport"><meta name="theme-color" content="#E91E63"><meta name="apple-mobile-web-app-status-bar-style" content="black-translucent"><meta name="apple-mobile-web-app-capable" content="yes"><link rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Material+Icons"><link rel="stylesheet" href="//fonts.googleapis.com/css?family=Roboto:300,400,500,700"><link rel="stylesheet" href="docs.min.css"><link rel="stylesheet" href="components.min.css"><link rel="stylesheet" href="theming.min.css"><link rel="stylesheet" href="theming.ie11.min.css" media="screen and (-ms-high-contrast: active), (-ms-high-contrast: none)"><script src="prerender.min.js"></script></head><body class="mdw-type"><div class="mdw-navdrawer" id="docs-navdrawer"><a class="mdw-navdrawer__scrim" href="#"></a><div class="mdw-navdrawer__toolbar"><div class="mdw-toolbar" mdw-theme-fill="accent-500 dark" mdw-app-bar><div class="mdw-toolbar__action"><div class="mdw-toolbar__start"><div class="mdw-tooltip__wrapper"><a class="mdw-tooltip__target mdw-button material-icons" mdw-icon href="#docs-navdrawer">menu</a><div class="mdw-tooltip">Menu</div></div></div><div class="mdw-toolbar__title">tab</div><div class="mdw-toolbar__end" id="docs-menu-buttons"><div class="mdw-tooltip__wrapper"><div class="mdw-tooltip__target mdw-button docs-rtl" mdw-inactive>RTL</div><div class="mdw-tooltip">Right-to-Left</div></div><div class="mdw-tooltip__wrapper"><div class="mdw-tooltip__target mdw-button material-icons" mdw-icon mdw-inactive>brightness_3</div><div class="mdw-tooltip">Dark Mode</div></div><div class="mdw-tooltip__wrapper"><div class="mdw-tooltip__target mdw-button material-icons" mdw-icon mdw-inactive>format_size</div><div class="mdw-tooltip">Large Font</div></div></div></div></div></div><div class="mdw-navdrawer__drawer"><div class="mdw-list"><a class="mdw-list__item" href="index.html" mdw-theme-color="primary"><div class="mdw-list__text">Home</div></a><div class="mdw-list__subheader">Components</div><a class="mdw-list__item" href="bottomnav.html" mdw-theme-color="accent"><div class="mdw-list__icon material-icons">call_to_action</div><div class="mdw-list__text">Bottom Navigation</div></a><a class="mdw-list__item" href="button.html" mdw-theme-color="accent"><div class="mdw-list__icon material-icons">crop_landscape</div><div class="mdw-list__text">Button</div></a><a class="mdw-list__item" href="card.html" mdw-theme-color="accent"><div class="mdw-list__icon material-icons">crop_square</div><div class="mdw-list__text">Card</div></a><a class="mdw-list__item" href="dialog.html" mdw-theme-color="accent"><div class="mdw-list__icon material-icons">select_all</div><div class="mdw-list__text">Dialog</div></a><a class="mdw-list__item" href="datatable.html" mdw-theme-color="accent"><div class="mdw-list__icon material-icons">format_align_justify</div><div class="mdw-list__text">Data Table</div></a><a class="mdw-list__item" href="elevation.html" mdw-theme-color="accent"><div class="mdw-list__icon material-icons">layers</div><div class="mdw-list__text">Elevation</div></a><a class="mdw-list__item" href="fab.html" mdw-theme-color="accent"><div class="mdw-list__icon material-icons">add_circle</div><div class="mdw-list__text">Floating Action Button</div></a><a class="mdw-list__item" href="layout.html" mdw-theme-color="accent"><div class="mdw-list__icon material-icons">view_compact</div><div class="mdw-list__text">Layout</div></a><a class="mdw-list__item" href="list.html" mdw-theme-color="accent"><div class="mdw-list__icon material-icons">view_list</div><div class="mdw-list__text">List</div></a><a class="mdw-list__item" href="menu.html" mdw-theme-color="accent"><div class="mdw-list__icon material-icons">picture_in_picture</div><div class="mdw-list__text">Menu</div></a><a class="mdw-list__item" href="navdrawer.html" mdw-theme-color="accent"><div class="mdw-list__icon material-icons">menu</div><div class="mdw-list__text">Navigation Drawer</div></a><a class="mdw-list__item" href="progress.html" mdw-theme-color="accent"><div class="mdw-list__icon material-icons">timelapse</div><div class="mdw-list__text">Progress</div></a><a class="mdw-list__item" href="search.html" mdw-theme-color="accent"><div class="mdw-list__icon material-icons">search</div><div class="mdw-list__text">Search</div></a><a class="mdw-list__item" href="selection.html" mdw-theme-color="accent"><div class="mdw-list__icon material-icons">toggle_on</div><div class="mdw-list__text">Selection</div></a><a class="mdw-list__item" href="slider.html" mdw-theme-color="accent"><div class="mdw-list__icon material-icons">tune</div><div class="mdw-list__text">Slider</div></a><a class="mdw-list__item" href="snackbar.html" mdw-theme-color="accent"><div class="mdw-list__icon material-icons">video_label</div><div class="mdw-list__text">Snackbar</div></a><a class="mdw-list__item" mdw-selected href="tab.html" mdw-theme-color="accent"><div class="mdw-list__icon material-icons">tab</div><div class="mdw-list__text">Tab</div></a><a class="mdw-list__item" href="textfield.html" mdw-theme-color="accent"><div class="mdw-list__icon material-icons">text_fields</div><div class="mdw-list__text">Text Field</div></a><a class="mdw-list__item" href="toolbar.html" mdw-theme-color="accent"><div class="mdw-list__icon material-icons">web_asset</div><div class="mdw-list__text">Toolbar</div></a><a class="mdw-list__item" href="tooltip.html" mdw-theme-color="accent"><div class="mdw-list__icon material-icons">info</div><div class="mdw-list__text">Tooltip</div></a><a class="mdw-list__item" href="type.html" mdw-theme-color="accent"><div class="mdw-list__icon material-icons">font_download</div><div class="mdw-list__text">Typography</div></a></div></div><div class="mdw-navdrawer__content" style="padding-bottom:24px"><div class="mdw-layout docs-tab" mdw-margin-top mdw-margin-bottom><div class="mdw-layout__item" mdw-colspan="100%"><div><h5 class="mdw-type" mdw-baseline-next="36">Tabs make it easy to explore and switch between different views.</h5><p class="mdw-type">Tabs enable content organization at a high level, such as switching between views, data sets, or functional aspects of an app.</p></div></div><div class="mdw-layout__item" mdw-colspan="4"><div class="component-sample"><div class="component-sample__container"><form class="mdw-tab"><input class="mdw-tab__input" id="tab1" type="radio" name="tab" checked><input class="mdw-tab__input" id="tab2" type="radio" name="tab"><input class="mdw-tab__input" id="tab3" type="radio" name="tab"><div class="mdw-tab__items" mdw-theme-color="accent-A200"><label class="mdw-tab__item" for="tab1"><div class="mdw-tab__label">Item One</div></label><label class="mdw-tab__item" for="tab2"><div class="mdw-tab__label">Item Two</div></label><label class="mdw-tab__item" for="tab3"><div class="mdw-tab__label">Item Three</div></label><div class="mdw-tab__indicator"></div></div><div class="mdw-tab__content"><div class="mdw-tab__content-item">Sample Content One</div><div class="mdw-tab__content-item">Sample Content Two</div><div class="mdw-tab__content-item">Sample Content Three</div></div></form></div></div></div><div class="mdw-layout__item" mdw-colspan="8"><div><div class="mdw-type" mdw-style="subtitle">Javascript</div><div><label class="mdw-selection" mdw-theme-color="accent" style="margin:16px 8px"><input class="mdw-selection__input" type="radio" name="javascript" value="required"><div class="mdw-selection__icon"></div><div class="mdw-selection__label">Required</div></label><label class="mdw-selection" mdw-theme-color="accent" style="margin:16px 8px"><input class="mdw-selection__input" type="radio" name="javascript" value="optional" checked><div class="mdw-selection__icon"></div><div class="mdw-selection__label">Optional</div></label><label class="mdw-selection" mdw-theme-color="accent" style="margin:16px 8px"><input class="mdw-selection__input" type="radio" name="javascript" value="none"><div class="mdw-selection__icon"></div><div class="mdw-selection__label">None</div></label></div><div class="mdw-type" mdw-style="subtitle">Color</div><div><label class="mdw-selection" mdw-theme-color="accent" style="margin:16px 8px"><input class="mdw-selection__input" type="radio" name="color" value="default"><div class="mdw-selection__icon"></div><div class="mdw-selection__label">Default</div></label><label class="mdw-selection" mdw-theme-color="accent" style="margin:16px 8px"><input class="mdw-selection__input" type="radio" name="color" value="primary-400"><div class="mdw-selection__icon"></div><div class="mdw-selection__label">Primary 400</div></label><label class="mdw-selection" mdw-theme-color="accent" style="margin:16px 8px"><input class="mdw-selection__input" type="radio" name="color" value="accent-A200" checked><div class="mdw-selection__icon"></div><div class="mdw-selection__label">Accent A200</div></label><label class="mdw-selection" mdw-theme-color="accent" style="margin:16px 8px"><input class="mdw-selection__input" type="radio" name="color" value="warn"><div class="mdw-selection__icon"></div><div class="mdw-selection__label">Warn</div></label><label class="mdw-selection" mdw-theme-color="accent" style="margin:16px 8px"><input class="mdw-selection__input" type="radio" name="color" value="purple-A400"><div class="mdw-selection__icon"></div><div class="mdw-selection__label">Purple-A400</div></label></div><div class="mdw-type" mdw-style="subtitle">Fill</div><div><label class="mdw-selection" mdw-theme-color="accent" style="margin:16px 8px"><input class="mdw-selection__input" type="radio" name="fill" value="none" checked><div class="mdw-selection__icon"></div><div class="mdw-selection__label">None</div></label><label class="mdw-selection" mdw-theme-color="accent" style="margin:16px 8px"><input class="mdw-selection__input" type="radio" name="fill" value="primary dark"><div class="mdw-selection__icon"></div><div class="mdw-selection__label">Primary</div></label><label class="mdw-selection" mdw-theme-color="accent" style="margin:16px 8px"><input class="mdw-selection__input" type="radio" name="fill" value="accent-A100 light"><div class="mdw-selection__icon"></div><div class="mdw-selection__label">Accent A100</div></label><label class="mdw-selection" mdw-theme-color="accent" style="margin:16px 8px"><input class="mdw-selection__input" type="radio" name="fill" value="warn-200 light"><div class="mdw-selection__icon"></div><div class="mdw-selection__label">Warn 200</div></label><label class="mdw-selection" mdw-theme-color="accent" style="margin:16px 8px"><input class="mdw-selection__input" type="radio" name="fill" value="green-700 dark"><div class="mdw-selection__icon"></div><div class="mdw-selection__label">Green 700</div></label></div></div></div><div class="mdw-layout__item" mdw-colspan="100%" style="max-height:0"></div><div class="mdw-layout__item" mdw-colspan="6"><div class="display-flex" flex-column><h6 class="mdw-type">HTML Code</h6><div class="mdw-card component-code component-html"></div></div></div><div class="mdw-layout__item" mdw-colspan="2"><div class="display-flex" flex-column><h6 class="mdw-type">Javascript Code</h6><div class="mdw-card component-code component-js"></div></div></div><div class="mdw-layout__item" mdw-colspan="100%"><h6 class="mdw-type">Samples</h6></div><div class="mdw-layout__item display-flex clipped" mdw-colspan="4" flex-justify-content="center"><div class="render mdw-theme-tab"><form class="mdw-tab"><input class="mdw-tab__input" id="no-toolbar-tab1" type="radio" name="tab" value="one" checked><input class="mdw-tab__input" id="no-toolbar-tab2" type="radio" name="tab" value="two"><input class="mdw-tab__input" id="no-toolbar-tab3" type="radio" name="tab" value="three"><div class="mdw-tab__items" mdw-theme-fill="primary-500 dark" mdw-theme-color="accent"><label class="mdw-tab__item" for="no-toolbar-tab1"><div class="mdw-tab__label">Item One</div></label><label class="mdw-tab__item" for="no-toolbar-tab2"><div class="mdw-tab__label">Item Two</div></label><label class="mdw-tab__item" for="no-toolbar-tab3"><div class="mdw-tab__label">Item Three</div></label><div class="mdw-tab__indicator"></div></div><div class="mdw-tab__content"><div class="mdw-tab__content-item">Item One</div><div class="mdw-tab__content-item">Item Two</div><div class="mdw-tab__content-item">Item Three</div></div></form></div></div><div class="mdw-layout__item display-flex clipped" mdw-colspan="4" flex-justify-content="center"><div class="render mdw-theme-tab"><div class="androidstatusbar" mdw-theme-fill="primary-700"><div>12:30</div><i class="material-icons" style="letter-spacing:2px;padding:0 2px"></i></div><div class="mdw-toolbar" mdw-theme-fill="primary-500 dark" mdw-prominent><div class="mdw-toolbar__action"><div class="mdw-toolbar__start"><div class="mdw-button material-icons" mdw-icon>menu</div></div><div class="mdw-toolbar__title">Page title</div><div class="mdw-toolbar__end"><div class="mdw-button material-icons" mdw-icon>search</div><div class="mdw-button material-icons" mdw-icon mdw-more-button>more_vert</div></div></div><form class="mdw-tab"><input class="mdw-tab__input" id="large-text-tab1" type="radio" name="tab" value="one" checked><input class="mdw-tab__input" id="large-text-tab2" type="radio" name="tab" value="two"><input class="mdw-tab__input" id="large-text-tab3" type="radio" name="tab" value="three"><div class="mdw-tab__items" mdw-theme-color="accent"><label class="mdw-tab__item" for="large-text-tab1"><div class="mdw-tab__label">Item One</div></label><label class="mdw-tab__item" for="large-text-tab2"><div class="mdw-tab__label">Item Two</div></label><label class="mdw-tab__item" for="large-text-tab3"><div class="mdw-tab__label">Item Three</div></label><div class="mdw-tab__indicator"></div></div></form></div><div class="content"></div></div></div><div class="mdw-layout__item display-flex clipped" mdw-colspan="4" flex-justify-content="center"><div class="render mdw-theme-tab"><div class="androidstatusbar" mdw-theme-fill="primary-700"><div>12:30</div><i class="material-icons" style="letter-spacing:2px;padding:0 2px"></i></div><form class="mdw-tab"><input class="mdw-tab__input" type="radio" name="tab" value="one" id="text-tab1" checked><input class="mdw-tab__input" type="radio" name="tab" value="two" id="text-tab2"><input class="mdw-tab__input" type="radio" name="tab" value="three" id="text-tab3"><div class="mdw-tab__items-wrapper mdw-toolbar" mdw-theme-fill="primary-500 dark"><div class="mdw-toolbar__action"><div class="mdw-toolbar__start"><div class="mdw-button material-icons" mdw-icon>menu</div></div><div class="mdw-toolbar__title">Page title</div><div class="mdw-toolbar__end"><div class="mdw-button material-icons" mdw-icon>search</div><div class="mdw-button material-icons" mdw-icon mdw-more-button>more_vert</div></div></div><div class="mdw-tab__items" mdw-theme-color="accent"><label class="mdw-tab__item" for="text-tab1"><div class="mdw-tab__label">Item One</div></label><label class="mdw-tab__item" for="text-tab2"><div class="mdw-tab__label">Item Two</div></label><label class="mdw-tab__item" for="text-tab3"><div class="mdw-tab__label">Item Three</div></label><div class="mdw-tab__indicator"></div></div></div><div class="mdw-tab__content"><div class="mdw-tab__content-item">Item One</div><div class="mdw-tab__content-item">Item Two</div><div class="mdw-tab__content-item">Item Three</div></div></form></div></div><div class="mdw-layout__item display-flex clipped" mdw-colspan="4" flex-justify-content="center"><div class="render mdw-theme-tab"><div class="androidstatusbar" mdw-theme-fill="background-600 dark"><div>12:30</div><i class="material-icons" style="letter-spacing:2px;padding:0 2px"></i></div><form class="mdw-tab"><input class="mdw-tab__input" id="clear-toolbar-tab1" type="radio" name="tab" value="one" checked><input class="mdw-tab__input" id="clear-toolbar-tab2" type="radio" name="tab" value="two"><input class="mdw-tab__input" id="clear-toolbar-tab3" type="radio" name="tab" value="three"><div class="mdw-tab__items-wrapper mdw-toolbar"><div class="mdw-toolbar__action"><div class="mdw-toolbar__start"><div class="mdw-button material-icons" mdw-icon>menu</div></div><div class="mdw-toolbar__title">Page title</div><div class="mdw-toolbar__end"><div class="mdw-button material-icons" mdw-icon>search</div><div class="mdw-button material-icons" mdw-icon mdw-more-button>more_vert</div></div></div><div class="mdw-tab__items" mdw-theme-color="primary"><label class="mdw-tab__item" for="clear-toolbar-tab1"><div class="mdw-tab__label">Item One</div></label><label class="mdw-tab__item" for="clear-toolbar-tab2"><div class="mdw-tab__label">Item Two</div></label><label class="mdw-tab__item" for="clear-toolbar-tab3"><div class="mdw-tab__label">Item Three</div></label><div class="mdw-tab__indicator"></div></div></div><div class="mdw-tab__content"><div class="mdw-tab__content-item">Item One</div><div class="mdw-tab__content-item">Item Two</div><div class="mdw-tab__content-item">Item Three</div></div></form></div></div><div class="mdw-layout__item display-flex clipped" mdw-colspan="4" flex-justify-content="center"><div class="render mdw-theme-tab"><div class="androidstatusbar" mdw-theme-fill="primary-700 dark"><div>12:30</div><i class="material-icons" style="letter-spacing:2px;padding:0 2px"></i></div><div class="mdw-toolbar" mdw-theme-fill="primary-500 dark" mdw-theme-color="accent"><div class="mdw-toolbar__action"><div class="mdw-toolbar__start"><div class="mdw-button material-icons" mdw-icon>menu</div></div><div class="mdw-toolbar__title">Page title</div><div class="mdw-toolbar__end"><div class="mdw-button material-icons" mdw-icon>search</div><div class="mdw-button material-icons" mdw-icon mdw-more-button>more_vert</div></div></div><form class="mdw-tab"><input class="mdw-tab__input" type="radio" name="tab" value="recents" id="tab-text-icon1" checked><input class="mdw-tab__input" type="radio" name="tab" value="favorites" id="tab-text-icon2"><input class="mdw-tab__input" type="radio" name="tab" value="nearby" id="tab-text-icon3"><div class="mdw-tab__items" mdw-theme-color="accent"><label class="mdw-tab__item" for="tab-text-icon1"><div class="mdw-tab__icon material-icons">phone</div><div class="mdw-tab__label">Recents</div></label><label class="mdw-tab__item" for="tab-text-icon2"><div class="mdw-tab__icon material-icons">favorite</div><div class="mdw-tab__label">Favorites</div></label><label class="mdw-tab__item" for="tab-text-icon3"><div class="mdw-tab__icon material-icons">person_pin</div><div class="mdw-tab__label">Nearby</div></label><div class="mdw-tab__indicator"></div></div></form></div><div class="content"></div></div></div><div class="mdw-layout__item display-flex clipped" mdw-colspan="4" flex-justify-content="center"><div class="render mdw-theme-tab"><div class="androidstatusbar" mdw-theme-fill="background-600 dark"><div>12:30</div><i class="material-icons" style="letter-spacing:2px;padding:0 2px"></i></div><div class="mdw-toolbar"><div class="mdw-toolbar__action"><div class="mdw-toolbar__start"><div class="mdw-button material-icons" mdw-icon>menu</div></div><div class="mdw-toolbar__title">Page title</div><div class="mdw-toolbar__end"><div class="mdw-button material-icons" mdw-icon>search</div><div class="mdw-button material-icons" mdw-icon mdw-more-button>more_vert</div></div></div><form class="mdw-tab"><input class="mdw-tab__input" type="radio" name="tab" value="recents" id="tabs-icon1" checked><input class="mdw-tab__input" type="radio" name="tab" value="favorites" id="tabs-icon2"><input class="mdw-tab__input" type="radio" name="tab" value="nearby" id="tabs-icon3"><div class="mdw-tab__items" mdw-theme-color="primary"><label class="mdw-tab__item" for="tabs-icon1"><div class="mdw-tab__icon material-icons">phone</div></label><label class="mdw-tab__item" for="tabs-icon2"><div class="mdw-tab__icon material-icons">favorite</div></label><label class="mdw-tab__item" for="tabs-icon3"><div class="mdw-tab__icon material-icons">person_pin</div></label><div class="mdw-tab__indicator"></div></div></form></div><div class="content"></div></div></div><div class="mdw-layout__item display-flex" mdw-colspan="100%" flex-justify-content="center"><div class="display-flex mdw-theme-tab" flex-column style="width:100%;padding:24px;box-sizing:border-box"><div class="androidstatusbar" mdw-theme-fill="primary-700 dark"><div>12:30</div><i class="material-icons" style="letter-spacing:2px;padding:0 2px"></i></div><div class="mdw-tab"><input class="mdw-tab__input" type="radio" name="tab" value="recents" id="dynamic-1" checked><input class="mdw-tab__input" type="radio" name="tab" value="favorites" id="dynamic-2"><input class="mdw-tab__input" type="radio" name="tab" value="nearby" id="dynamic-3"><div class="mdw-tab__items-wrapper mdw-toolbar" mdw-theme-fill="primary-500 dark"><div class="mdw-toolbar__action"><div class="mdw-toolbar__start"><div class="mdw-button material-icons" mdw-icon>menu</div></div><div class="mdw-toolbar__title">Clustered</div><div class="mdw-toolbar__end"><div class="mdw-button material-icons" mdw-icon>search</div><div class="mdw-button material-icons" mdw-icon mdw-more-button>more_vert</div></div></div><div class="mdw-tab__items" mdw-theme-color="accent" style="align-self:center"><label class="mdw-tab__item" for="dynamic-1"><div class="mdw-tab__icon material-icons">phone</div><div class="mdw-tab__label">Recents</div></label><label class="mdw-tab__item" for="dynamic-2"><div class="mdw-tab__icon material-icons">favorite</div><div class="mdw-tab__label">Favorites</div></label><label class="mdw-tab__item" for="dynamic-3"><div class="mdw-tab__icon material-icons">person_pin</div><div class="mdw-tab__label">Nearby</div></label><div class="mdw-tab__indicator"></div></div></div><div class="mdw-tab__content"><div class="mdw-tab__content-item">Recents</div><div class="mdw-tab__content-item">Favorites</div><div class="mdw-tab__content-item">Nearby</div></div></div></div></div><div class="mdw-layout__item display-flex" mdw-colspan="100%" flex-justify-content="center"><div class="display-flex mdw-theme-tab js" flex-column style="width:0;padding:24px;box-sizing:border-box"><div class="androidstatusbar" mdw-theme-fill="primary-700 dark"><div>12:30</div><i class="material-icons" style="letter-spacing:2px;padding:0 2px"></i></div><div class="mdw-tab"><div class="mdw-toolbar" mdw-theme-fill="primary-500 dark"><div class="mdw-toolbar__action"><div class="mdw-toolbar__start"><div class="mdw-button material-icons" mdw-icon>menu</div></div><div class="mdw-toolbar__title">Scrollable (JS)</div><div class="mdw-toolbar__end"><div class="mdw-button material-icons" mdw-icon>search</div><div class="mdw-button material-icons" mdw-icon mdw-more-button>more_vert</div></div></div><div class="mdw-tab__items" mdw-theme-color="accent" mdw-scrollable><div class="mdw-tab__item" mdw-selected><div class="mdw-tab__icon material-icons">phone</div><div class="mdw-tab__label">Recents</div></div><div class="mdw-tab__item"><div class="mdw-tab__icon material-icons">favorite</div><div class="mdw-tab__label">My Oversized Favorites Tab</div></div><div class="mdw-tab__item"><div class="mdw-tab__icon material-icons">person_pin</div><div class="mdw-tab__label">Nearby</div></div><div class="mdw-tab__item"><div class="mdw-tab__icon material-icons">edit</div><div class="mdw-tab__label">Edit</div></div><div class="mdw-tab__item"><div class="mdw-tab__icon material-icons">clear</div><div class="mdw-tab__label">Clear</div></div><div class="mdw-tab__item"><div class="mdw-tab__icon material-icons">search</div><div class="mdw-tab__label">Search</div></div><div class="mdw-tab__item"><div class="mdw-tab__icon material-icons">restore</div><div class="mdw-tab__label">Restore</div></div><div class="mdw-tab__item"><div class="mdw-tab__icon material-icons">stars</div><div class="mdw-tab__label">Stars</div></div></div></div><div class="mdw-tab__content"><div class="mdw-tab__content-item">1</div><div class="mdw-tab__content-item">2</div><div class="mdw-tab__content-item">3</div><div class="mdw-tab__content-item">4</div><div class="mdw-tab__content-item">5</div><div class="mdw-tab__content-item">6</div><div class="mdw-tab__content-item">7</div><div class="mdw-tab__content-item">8</div></div></div></div></div></div></div></div><script src="tab.min.js"></script></body></html>
|
package/docs/tab.min.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
!function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)n.d(r,o,function(t){return e[t]}.bind(null,o));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=64)}({0:function(e,t,n){"use strict";function r(e){return window.localStorage?localStorage.getItem(e):null}function o(e,t){window.localStorage&&localStorage.setItem(e,t)}function a(e){window.localStorage&&localStorage.removeItem(e)}n.d(t,"a",function(){return r}),n.d(t,"c",function(){return o}),n.d(t,"b",function(){return a})},1:function(e,t,n){"use strict";function r(e,t){var n=e.getElementsByClassName(t)[0];return n&&n.parentElement!==e?null:n}function o(e,t,n){var r;for(r=!1===n?e.parentElement:e;null!=r&&!r.classList.contains(t);)r=r.parentElement;return r}function a(){return document.documentElement.hasAttribute("dir")&&"rtl"===document.documentElement.getAttribute("dir").toLowerCase()}function c(e,t){var n=document.createEvent("Event");return n.initEvent(t,!0,!0),e.dispatchEvent(n)}n.d(t,"c",function(){return r}),n.d(t,"b",function(){return o}),n.d(t,"d",function(){return a}),n.d(t,"a",function(){return c}),n.d(t,"e",function(){return i});var i=window.requestAnimationFrame||function(e){return setTimeout(e,17)}},2:function(e,t,n){"use strict";n.d(t,"c",function(){return c}),n.d(t,"a",function(){return i}),n.d(t,"b",function(){return l}),n.d(t,"d",function(){return u});var r=n(0),o="black dark",a="white light";function c(e,t){e?(document.documentElement.setAttribute("dir","rtl"),t&&t.removeAttribute("mdw-inactive"),Object(r.c)("rtlmode","true")):(document.documentElement.removeAttribute("dir"),t&&t.setAttribute("mdw-inactive",""),Object(r.b)("rtlmode"))}function i(e,t){e?(document.documentElement.setAttribute("mdw-theme-fill",o),t&&t.removeAttribute("mdw-inactive")):(document.documentElement.setAttribute("mdw-theme-fill",a),t&&t.setAttribute("mdw-inactive","")),Object(r.c)("darkmode",e?"true":"false")}function l(e,t){e?(document.documentElement.style.setProperty("font-size",e),t&&t.removeAttribute("mdw-inactive"),Object(r.c)("fontsize",e)):(document.documentElement.style.removeProperty("font-size"),t&&t.setAttribute("mdw-inactive",""),Object(r.b)("fontsize"))}function u(){var e=document.getElementById("docs-menu-buttons").getElementsByClassName("mdw-button"),t=e[0],n=e[1],a=e[2];!function(e){"true"===Object(r.a)("rtlmode")&&c(!0,e),e.addEventListener("click",function(){"rtl"===document.documentElement.getAttribute("dir")?c(!1,e):c(!0,e)})}(t),function(e){"true"===Object(r.a)("darkmode")&&i(!0,e),e.addEventListener("click",function(){document.documentElement.getAttribute("mdw-theme-fill")===o?i(!1,e):i(!0,e)})}(n),function(e){l(Object(r.a)("fontsize"),e),e.addEventListener("click",function(){document.documentElement.style.getPropertyValue("font-size")?l(null,e):l("125%",e)})}(a)}},3:function(e,t,n){"use strict";n.d(t,"a",function(){return a});var r=n(1);function o(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}var a=function(){function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e)}return function(e,t,n){n&&o(e,n)}(e,0,[{key:"attach",value:function(t){var n=Object(r.c)(t,"mdw-ripple");n||((n=document.createElement("div")).classList.add("mdw-ripple"),t.firstChild?t.insertBefore(n,t.firstChild):t.appendChild(n));var o=Object(r.c)(n,"mdw-ripple__inner");o||((o=document.createElement("div")).classList.add("mdw-ripple__inner"),n.appendChild(o)),t.setAttribute("mdw-ripple",""),n.addEventListener("click",e.onClick)}},{key:"onClick",value:function(e){var t=e.currentTarget,n=Object(r.c)(t,"mdw-ripple__inner");if(n){if(!e.pointerType&&!e.detail)return n.style.removeProperty("left"),void n.style.removeProperty("top");n.style.setProperty("left","".concat(e.offsetX,"px")),n.style.setProperty("top","".concat(e.offsetY,"px"))}}},{key:"detach",value:function(t){var n=Object(r.c)(t,"mdw-ripple");n&&t.removeChild(n),t.removeAttribute("mdw-ripple"),t.removeEventListener("click",e.onClick)}}]),e}()},4:function(e,t,n){"use strict";function r(e){for(var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",n=e.tagName.toLowerCase(),o=[],a=0;a<e.attributes.length;a+=1){var c=e.attributes.item(a);c.value.length?o.push("".concat(c.name,'="').concat(c.value,'"')):o.push(c.name)}o.sort();for(var i=[n,o.join(" ")],l="<".concat(i.filter(function(e){return e}).join(" ").trim(),">"),u="</".concat(n,">"),m=[l],d=[],s=!0,f=0;f<e.childNodes.length;f+=1){var b=e.childNodes.item(f),v=void 0;b instanceof HTMLElement?(v=r(b," ".concat(t))).trim()&&(s=!1):b.nodeValue&&(v=" ".concat(b.nodeValue)),v&&v.trim()&&d.push(v)}return s?t+m.join("")+d.join("").trim()+u:(d.filter(function(e){return e.trim()}).forEach(function(e){return m.push(e)}),m.push(t+u),t+m.join("\n"))}function o(e,t,n){var r;r=e instanceof Element?[r]:e;for(var o=0;o<r.length;o+=1)r[o].addEventListener(t,n)}function a(e){for(var t=0;t<e.childNodes.length;t+=1){var n=e.childNodes[t];if(n.nodeType===Node.TEXT_NODE)return n}var r=document.createTextNode("");return e.appendChild(r),r}function c(e,t){for(var n=document.createElement(t),r=e.attributes.length-1;r>=0;r-=1){var o=e.attributes.item(r);n.attributes.setNamedItem(o.cloneNode())}for(;e.firstChild;)n.appendChild(e.firstChild);return e.parentElement.replaceChild(n,e),n}n.d(t,"c",function(){return r}),n.d(t,"a",function(){return o}),n.d(t,"d",function(){return a}),n.d(t,"b",function(){return c})},64:function(e,t,n){n(80),e.exports=n(65)},65:function(e,t,n){e.exports=n.p+"tab.html"},80:function(e,t,n){"use strict";n.r(t);var r=n(3),o=n(1);function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function c(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function i(e,t,n){return t&&c(e.prototype,t),n&&c(e,n),e}var l,u=function(){function e(){a(this,e)}return i(e,null,[{key:"attach",value:function(e){r.a.attach(e)}},{key:"detach",value:function(e){r.a.detach(e)}}]),e}(),m=function(){function e(){a(this,e)}return i(e,null,[{key:"attach",value:function(t){var n=t.getElementsByClassName("mdw-tab__items")[0],r=n.getElementsByClassName("mdw-tab__indicator")[0];r||((r=document.createElement("div")).classList.add("mdw-tab__indicator"),n.appendChild(r));var o=t.getElementsByClassName("mdw-tab__content")[0];o&&o.addEventListener("scroll",e.onTabContentScroll);for(var a=t.getElementsByClassName("mdw-tab__input"),c=t.getElementsByClassName("mdw-tab__item"),i=!1,l=0;l<a.length;l+=1){var m=a[l];m.checked&&(i=!0,e.onInputChanged({currentTarget:m})),m.addEventListener("change",e.onInputChanged)}!i&&a.length&&(a[0].checked=!0,e.onInputChanged({currentTarget:a[0]}));for(var d=!1,s=0;s<c.length;s+=1){var f=c[s];u.attach(f),f.hasAttribute("mdw-selected")&&(d=!0,e.selectItem(f)),f.addEventListener("click",e.onItemClicked)}!d&&c.length&&e.selectItem(c[0])}},{key:"detach",value:function(t){for(var n=t.getElementsByClassName("mdw-tab__input"),r=t.getElementsByClassName("mdw-tab__item"),o=t.getElementsByClassName("mdw-tab__content")[0],a=t.getElementsByClassName("mdw-tab__content-item"),c=0;c<n.length;c+=1)n[c].removeEventListener("change",e.onInputChanged);for(var i=0;i<r.length;i+=1){var l=r[i];u.detach(l),l.removeEventListener("click",e.onItemClicked),l.removeAttribute("mdw-selected")}o&&(o.removeAttribute("mdw-selected-index"),o.removeEventListener("scroll",e.onTabContentScroll));for(var m=0;m<a.length;m+=1)a[m].removeAttribute("mdw-selected")}},{key:"onTabContentScroll",value:function(e){var t=e.currentTarget;e.preventDefault(),e.stopPropagation(),t.scrollLeft=0,Object(o.e)(function(){t.scrollLeft=0})}},{key:"onItemClicked",value:function(t){var n=t.currentTarget;if(n){if(n instanceof HTMLLabelElement){var r=document.getElementById(n.getAttribute("for"));r&&r instanceof HTMLInputElement&&(r.checked=!0)}e.selectItem(n);var a=Object(o.b)(n,"mdw-tab__items",!1);a&&a.hasAttribute("mdw-scrollable")&&n.scrollIntoView({behavior:"smooth",block:"center",inline:"center"})}}},{key:"onInputChanged",value:function(t){var n=t.currentTarget;if(n.id){var r=document.querySelector('label.mdw-tab__item[for="'.concat(n.id,'"]'));r&&e.selectItem(r)}}},{key:"selectItem",value:function(e){var t=Object(o.b)(e,"mdw-tab");if(t){var n=Object(o.b)(e,"mdw-tab__items");if(n){var r=n.getElementsByClassName("mdw-tab__item"),a=t.getElementsByClassName("mdw-tab__content")[0],c=!1,i=!1,l=0,u=null;a&&(u=a.getElementsByClassName("mdw-tab__content-item"));for(var m=Object(o.d)(),d=0;d<r.length;d+=1){var s=m?r.length-1-d:d,f=r.item(s),b=u&&u.item(s);if(f===e?(i=!0,e.setAttribute("mdw-selected",""),a&&a.setAttribute("mdw-selected-index",s.toString()),b&&b.setAttribute("mdw-selected","")):(f.hasAttribute("mdw-selected")&&(c=!0,f.removeAttribute("mdw-selected")),b&&b.hasAttribute("mdw-selected")&&b.removeAttribute("mdw-selected")),i||(l+=f.clientWidth),i&&c)break}a&&(a.scrollLeft=0,Object(o.e)(function(){a.scrollLeft=0}));var v=n.getElementsByClassName("mdw-tab__indicator")[0];if(!(window.MSInputMethodContext&&document.documentMode||n.hasAttribute("mdw-scrollable")&&n.clientWidth))return v.style.removeProperty("transform"),void v.removeAttribute("mdw-js-indicator");var p=e.clientWidth;v.hasAttribute("mdw-js-indicator")||v.setAttribute("mdw-js-indicator",""),v.style.setProperty("transform","translateX(".concat(l,"px) scaleX(").concat(p,")"))}}}}]),e}(),d=n(2),s=n(4);function f(){var e=document.querySelector('input[name="javascript"][value="required"]').checked,t=document.querySelector('input[name="javascript"][value="optional"]').checked,n=e||t;m.detach(l),e&&l instanceof HTMLDivElement==0?l=Object(s.b)(l,"div"):e||l instanceof HTMLFormElement!=0||(l=Object(s.b)(l,"form"));var r=l.getElementsByTagName("input"),o=l.getElementsByClassName("mdw-tab__item");if(e){for(var a=r.length-1;a>=0;a-=1){var c=r.item(a);c.parentElement.removeChild(c)}for(var i=0;i<o.length;i+=1){var u=o.item(i);u instanceof HTMLDivElement==0&&(u=Object(s.b)(u,"div")),u.removeAttribute("for")}}else for(var d=l.getElementsByClassName("mdw-tab__items")[0],f=0;f<3;f+=1){var b=r.item(f),v=o.item(f);b||((b=document.createElement("input")).checked=0===f,b.classList.add("mdw-tab__input"),b.setAttribute("id","tab".concat(f+1)),b.setAttribute("name","tab"),b.setAttribute("type","radio"),l.insertBefore(b,d)),v instanceof HTMLLabelElement==0&&(v=Object(s.b)(v,"label")),v.setAttribute("for","tab".concat(f+1))}var p=document.getElementsByClassName("component-html")[0],h=document.querySelector(".component-sample__container").firstElementChild;p.textContent=Object(s.c)(h),n&&m.attach(l),document.getElementsByClassName("component-js")[0].textContent="mdw.Tab.attach(tabElement);"}!function(){for(var e=document.querySelectorAll(".js .mdw-tab"),t=0;t<e.length;t+=1)m.attach(e.item(t))}(),l=document.querySelector(".component-sample .mdw-tab"),Object(s.a)(document.querySelectorAll("input[name]"),"change",function(e){var t=e.target,n=t.name,r=t.value,o=(t.checked,l.querySelector(".mdw-tab__items"));switch(n){case"framework":break;case"color":switch(r){case"default":o.removeAttribute("mdw-theme-color");break;default:o.setAttribute("mdw-theme-color",r)}break;case"fill":switch(r){case"none":o.removeAttribute("mdw-theme-fill");break;default:o.setAttribute("mdw-theme-fill",r)}}f()}),f(),Object(d.d)()}});
|
|
2
|
-
//# sourceMappingURL=tab.min.js.map
|
package/docs/tab.min.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./docs/src/storage.js","webpack:///./components/common/dom.js","webpack:///./docs/src/menuoptions.js","webpack:///./components/ripple/index.js","webpack:///./docs/src/sample-utils.js","webpack:///./docs/src/components/tab.pug","webpack:///./docs/src/components/tab.js","webpack:///./components/tab/index.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","default","object","property","prototype","hasOwnProperty","p","s","0","e","getStorageItem","window","localStorage","getItem","setStorageItem","setItem","removeStorageItem","removeItem","__webpack_exports__","getChildElementByClass","element","className","child","getElementsByClassName","parentElement","findElementParentByClassName","includeSelf","el","classList","contains","isRtl","document","documentElement","hasAttribute","getAttribute","toLowerCase","dispatchDomEvent","type","event","createEvent","initEvent","dispatchEvent","nextTick","requestAnimationFrame","cb","setTimeout","2","setRTLMode","setDarkMode","setFontSize","setupMenuOptions","_storage__WEBPACK_IMPORTED_MODULE_0__","darkAttribute","lightAttribute","button","setAttribute","removeAttribute","style","setProperty","removeProperty","buttons","getElementById","buttonRTLMode","buttonDarkMode","largeFontMode","addEventListener","getPropertyValue","Ripple","ripple","createElement","add","firstChild","insertBefore","appendChild","rippleInner","onClick","currentTarget","pointerType","detail","concat","offsetX","offsetY","removeChild","removeEventListener","convertElementToCode","linePrefix","arguments","length","htmlType","tagName","attributes","attribute","item","push","sort","syntaxItems","join","openingHTMLLine","filter","trim","closingHTMLLine","lines","innerLines","onlyText","childNodes","lineText","HTMLElement","nodeValue","line","forEach","attachEventListener","elements","listener","elementList","Element","getChildTextNode","node","childNode","nodeType","Node","TEXT_NODE","textNode","createTextNode","changeElementTagName","tagname","newElement","attr","setNamedItem","cloneNode","replaceChild","80","a","TypeError","configurable","writable","sampleComponent","TabItem","tabItemElement","attach","detach","Tab","tabElement","tabItemsElement","indicatorElement","tabContentElement","onTabContentScroll","inputs","items","foundChecked","inputElement","checked","onInputChanged","foundSelected","itemElement","selectItem","onItemClicked","tabContentItems","preventDefault","stopPropagation","scrollLeft","HTMLLabelElement","HTMLInputElement","scrollIntoView","behavior","block","inline","id","querySelector","tabItems","foundPreviousSelection","foundTarget","left","contentItems","isRtlValue","index","tabItem","contentItem","toString","clientWidth","MSInputMethodContext","documentMode","width","updateSampleCode","jsRequired","jsOptional","useJS","HTMLDivElement","HTMLFormElement","getElementsByTagName","input","htmlCodeElement","sampleContainer","firstElementChild","textContent","tabs","querySelectorAll","_event$target","target"],"mappings":"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","file":"tab.min.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 64);\n","/**\n * @param {string} key\n * @return {string}\n */\nexport function getStorageItem(key) {\n if (!window.localStorage) {\n return null;\n }\n return localStorage.getItem(key);\n}\n\n/**\n * @param {string} key\n * @param {string} value\n * @return {void}\n */\nexport function setStorageItem(key, value) {\n if (!window.localStorage) {\n return;\n }\n localStorage.setItem(key, value);\n}\n\n/**\n * @param {string} key\n * @return {void}\n */\nexport function removeStorageItem(key) {\n if (!window.localStorage) {\n return;\n }\n localStorage.removeItem(key);\n}\n","/**\n * @param {Element} element\n * @param {string} className\n * @return {Element}\n */\nexport function getChildElementByClass(element, className) {\n const child = element.getElementsByClassName(className)[0];\n if (child && child.parentElement !== element) {\n return null;\n }\n return child;\n}\n\n/**\n * @param {Element} element\n * @param {string} className\n * @param {boolean=} [includeSelf=true]\n * @return {Element}\n */\nexport function findElementParentByClassName(element, className, includeSelf) {\n /** @type {Element} */\n let el;\n if (includeSelf === false) {\n el = element.parentElement;\n } else {\n el = element;\n }\n while (el != null && !el.classList.contains(className)) {\n el = el.parentElement;\n }\n return el;\n}\n\n/** @return {boolean} */\nexport function isRtl() {\n return document.documentElement.hasAttribute('dir')\n && document.documentElement.getAttribute('dir').toLowerCase() === 'rtl';\n}\n\n/**\n * @param {Element} element\n * @param {string} type\n * @return {boolean}\n */\nexport function dispatchDomEvent(element, type) {\n const event = document.createEvent('Event');\n event.initEvent(type, true, true);\n return element.dispatchEvent(event);\n}\n\nexport const nextTick = window.requestAnimationFrame || (cb => setTimeout(cb, 17));\n","import { setStorageItem, removeStorageItem, getStorageItem } from './storage';\n\nconst darkAttribute = 'black dark';\nconst lightAttribute = 'white light';\n\n/**\n * @param {boolean} value\n * @param {Element=} button\n * @return {void}\n */\nexport function setRTLMode(value, button) {\n if (value) {\n document.documentElement.setAttribute('dir', 'rtl');\n if (button) {\n button.removeAttribute('mdw-inactive');\n }\n // element.setAttribute('mdw-active', '');\n // Poor visibility even though spec says 70% opacity\n setStorageItem('rtlmode', 'true');\n } else {\n document.documentElement.removeAttribute('dir');\n if (button) {\n button.setAttribute('mdw-inactive', '');\n }\n // element.removeAttribute('mdw-active');\n removeStorageItem('rtlmode');\n }\n}\n\n/**\n * @param {boolean} value\n * @param {Element=} button\n * @return {void}\n */\nexport function setDarkMode(value, button) {\n if (value) {\n document.documentElement.setAttribute('mdw-theme-fill', darkAttribute);\n if (button) {\n button.removeAttribute('mdw-inactive');\n }\n // element.setAttribute('mdw-active', '');\n // Poor visibility even though spec says 70% opacity\n } else {\n document.documentElement.setAttribute('mdw-theme-fill', lightAttribute);\n if (button) {\n button.setAttribute('mdw-inactive', '');\n }\n // element.removeAttribute('mdw-active');\n }\n setStorageItem('darkmode', value ? 'true' : 'false');\n}\n\n/**\n * @param {string} value\n * @param {Element=} button\n * @return {void}\n */\nexport function setFontSize(value, button) {\n if (value) {\n document.documentElement.style.setProperty('font-size', value);\n if (button) {\n button.removeAttribute('mdw-inactive');\n }\n // element.setAttribute('mdw-active', '');\n // Poor visibility even though spec says 70% opacity\n setStorageItem('fontsize', value);\n } else {\n document.documentElement.style.removeProperty('font-size');\n if (button) {\n button.setAttribute('mdw-inactive', '');\n }\n // element.removeAttribute('mdw-active');\n removeStorageItem('fontsize');\n }\n}\n\n/**\n * @param {Element} element\n * @return {void}\n */\nfunction setupRTLMode(element) {\n if (getStorageItem('rtlmode') === 'true') {\n setRTLMode(true, element);\n }\n element.addEventListener('click', () => {\n if (document.documentElement.getAttribute('dir') === 'rtl') {\n setRTLMode(false, element);\n } else {\n setRTLMode(true, element);\n }\n });\n}\n\n/**\n * @param {Element} element\n * @return {void}\n */\nfunction setupDarkMode(element) {\n if (getStorageItem('darkmode') === 'true') {\n setDarkMode(true, element);\n }\n element.addEventListener('click', () => {\n if (document.documentElement.getAttribute('mdw-theme-fill') === darkAttribute) {\n setDarkMode(false, element);\n } else {\n setDarkMode(true, element);\n }\n });\n}\n\n/**\n * @param {Element} element\n * @return {void}\n */\nfunction setupLargeFontMode(element) {\n const fontsize = getStorageItem('fontsize');\n setFontSize(fontsize, element);\n element.addEventListener('click', () => {\n if (document.documentElement.style.getPropertyValue('font-size')) {\n setFontSize(null, element);\n } else {\n setFontSize('125%', element);\n }\n });\n}\n\n/** @return {void} */\nexport function setupMenuOptions() {\n const buttons = document.getElementById('docs-menu-buttons').getElementsByClassName('mdw-button');\n const buttonRTLMode = buttons[0];\n const buttonDarkMode = buttons[1];\n const largeFontMode = buttons[2];\n setupRTLMode(buttonRTLMode);\n setupDarkMode(buttonDarkMode);\n setupLargeFontMode(largeFontMode);\n}\n","import { getChildElementByClass } from '../common/dom';\n\nclass Ripple {\n /**\n * @param {Element} element\n * @return {void}\n */\n static attach(element) {\n let ripple = getChildElementByClass(element, 'mdw-ripple');\n if (!ripple) {\n ripple = document.createElement('div');\n ripple.classList.add('mdw-ripple');\n if (element.firstChild) {\n element.insertBefore(ripple, element.firstChild);\n } else {\n element.appendChild(ripple);\n }\n }\n\n let rippleInner = getChildElementByClass(ripple, 'mdw-ripple__inner');\n if (!rippleInner) {\n rippleInner = document.createElement('div');\n rippleInner.classList.add('mdw-ripple__inner');\n ripple.appendChild(rippleInner);\n }\n element.setAttribute('mdw-ripple', '');\n ripple.addEventListener('click', Ripple.onClick);\n }\n\n /**\n * @param {PointerEvent|MouseEvent} event\n * @return {void}\n */\n static onClick(event) {\n /** @type {HTMLElement} */\n const el = event.currentTarget;\n const rippleInner = getChildElementByClass(el, 'mdw-ripple__inner');\n if (!rippleInner) {\n return;\n }\n if (!event.pointerType && !event.detail) {\n // Ripple from center\n rippleInner.style.removeProperty('left');\n rippleInner.style.removeProperty('top');\n return;\n }\n rippleInner.style.setProperty('left', `${event.offsetX}px`);\n rippleInner.style.setProperty('top', `${event.offsetY}px`);\n }\n\n static detach(element) {\n const ripple = getChildElementByClass(element, 'mdw-ripple');\n if (ripple) {\n element.removeChild(ripple);\n }\n element.removeAttribute('mdw-ripple');\n element.removeEventListener('click', Ripple.onClick);\n }\n}\n\nexport {\n Ripple,\n};\n","/**\n * @param {HTMLElement} element\n * @param {string=} linePrefix\n * @return {string}\n */\nfunction convertElementToCode(element, linePrefix = '') {\n const htmlType = element.tagName.toLowerCase();\n const attributes = [];\n for (let i = 0; i < element.attributes.length; i += 1) {\n const attribute = element.attributes.item(i);\n if (attribute.value.length) {\n attributes.push(`${attribute.name}=\"${attribute.value}\"`);\n } else {\n attributes.push(attribute.name);\n }\n }\n attributes.sort();\n const syntaxItems = [htmlType, attributes.join(' ')];\n const openingHTMLLine = `<${syntaxItems.filter(item => item).join(' ').trim()}>`;\n const closingHTMLLine = `</${htmlType}>`;\n const lines = [openingHTMLLine];\n const innerLines = [];\n let onlyText = true;\n for (let i = 0; i < element.childNodes.length; i += 1) {\n const child = element.childNodes.item(i);\n let lineText;\n if (child instanceof HTMLElement) {\n lineText = convertElementToCode(child, ` ${linePrefix}`);\n if (lineText.trim()) {\n onlyText = false;\n }\n } else if (child.nodeValue) {\n lineText = ` ${child.nodeValue}`;\n }\n if (lineText && lineText.trim()) {\n innerLines.push(lineText);\n }\n }\n if (onlyText) {\n return linePrefix + lines.join('') + innerLines.join('').trim() + closingHTMLLine;\n }\n innerLines\n .filter(line => line.trim())\n .forEach(line => lines.push(line));\n lines.push(linePrefix + closingHTMLLine);\n return linePrefix + lines.join('\\n');\n}\n\n/**\n * @param {Element|NodeListOf<Element>} elements\n * @param {string} event\n * @param {Function} listener\n * @return {void}\n */\nfunction attachEventListener(elements, event, listener) {\n let elementList;\n if (elements instanceof Element) {\n elementList = [elementList];\n } else {\n elementList = elements;\n }\n for (let i = 0; i < elementList.length; i += 1) {\n const el = elementList[i];\n el.addEventListener(event, listener);\n }\n}\n\n/**\n * @param {Element} node\n * @return {Node}\n */\nfunction getChildTextNode(node) {\n for (let i = 0; i < node.childNodes.length; i += 1) {\n const childNode = node.childNodes[i];\n if (childNode.nodeType === Node.TEXT_NODE) {\n return childNode;\n }\n }\n const textNode = document.createTextNode('');\n node.appendChild(textNode);\n return textNode;\n}\n\n/**\n * @param {Element} element\n * @param {string} tagname\n * @return {Element}\n */\nfunction changeElementTagName(element, tagname) {\n const newElement = document.createElement(tagname);\n for (let i = element.attributes.length - 1; i >= 0; i -= 1) {\n const attr = element.attributes.item(i);\n newElement.attributes.setNamedItem(attr.cloneNode());\n }\n while (element.firstChild) {\n newElement.appendChild(element.firstChild);\n }\n\n element.parentElement.replaceChild(newElement, element);\n return newElement;\n}\n\nexport {\n convertElementToCode,\n attachEventListener,\n getChildTextNode,\n changeElementTagName,\n};\n","module.exports = __webpack_public_path__ + \"tab.html\";","import { Tab } from '../../../components/tab/index';\nimport { setupMenuOptions } from '../menuoptions';\nimport { convertElementToCode, attachEventListener, changeElementTagName } from '../sample-utils';\n\n/** @type {HTMLElement} */\nlet sampleComponent;\n\n/** @return {void} */\nfunction updateSampleCode() {\n const jsRequired = document.querySelector('input[name=\"javascript\"][value=\"required\"]').checked;\n const jsOptional = document.querySelector('input[name=\"javascript\"][value=\"optional\"]').checked;\n const useJS = jsRequired || jsOptional;\n\n // Strip JS related elements and attributes\n Tab.detach(sampleComponent);\n\n if (jsRequired && sampleComponent instanceof HTMLDivElement === false) {\n sampleComponent = changeElementTagName(sampleComponent, 'div');\n } else if (!jsRequired && sampleComponent instanceof HTMLFormElement === false) {\n sampleComponent = changeElementTagName(sampleComponent, 'form');\n }\n\n const inputs = sampleComponent.getElementsByTagName('input');\n const tabItems = sampleComponent.getElementsByClassName('mdw-tab__item');\n\n if (jsRequired) {\n for (let i = inputs.length - 1; i >= 0; i -= 1) {\n const input = inputs.item(i);\n input.parentElement.removeChild(input);\n }\n for (let i = 0; i < tabItems.length; i += 1) {\n let item = tabItems.item(i);\n if (item instanceof HTMLDivElement === false) {\n item = changeElementTagName(item, 'div');\n }\n item.removeAttribute('for');\n }\n } else {\n const tabItemsElement = sampleComponent.getElementsByClassName('mdw-tab__items')[0];\n for (let i = 0; i < 3; i += 1) {\n let input = inputs.item(i);\n let tabItem = tabItems.item(i);\n if (!input) {\n input = document.createElement('input');\n input.checked = (i === 0);\n input.classList.add('mdw-tab__input');\n input.setAttribute('id', `tab${i + 1}`);\n input.setAttribute('name', 'tab');\n input.setAttribute('type', 'radio');\n sampleComponent.insertBefore(input, tabItemsElement);\n }\n if (tabItem instanceof HTMLLabelElement === false) {\n tabItem = changeElementTagName(tabItem, 'label');\n }\n tabItem.setAttribute('for', `tab${i + 1}`);\n }\n }\n\n const htmlCodeElement = document.getElementsByClassName('component-html')[0];\n const sampleContainer = document.querySelector('.component-sample__container').firstElementChild;\n htmlCodeElement.textContent = convertElementToCode(sampleContainer);\n\n // Reattach JS if requested\n if (useJS) {\n Tab.attach(sampleComponent);\n }\n\n const jsCodeElement = document.getElementsByClassName('component-js')[0];\n jsCodeElement.textContent = 'mdw.Tab.attach(tabElement);';\n}\n\n/** @return {void} */\nfunction initializeSampleComponents() {\n const tabs = document.querySelectorAll('.js .mdw-tab');\n for (let i = 0; i < tabs.length; i += 1) {\n Tab.attach(tabs.item(i));\n }\n}\n\n/**\n * @param {Event} event\n * @return {void}\n */\nfunction onOptionChange(event) {\n const { name, value, checked } = event.target;\n const tabItemsElement = sampleComponent.querySelector('.mdw-tab__items');\n\n switch (name) {\n case 'framework':\n switch (value) {\n case 'javascript':\n break;\n case 'css':\n break;\n default:\n }\n break;\n case 'color':\n switch (value) {\n case 'default':\n tabItemsElement.removeAttribute('mdw-theme-color');\n break;\n default:\n tabItemsElement.setAttribute('mdw-theme-color', value);\n break;\n }\n break;\n case 'fill':\n switch (value) {\n case 'none':\n tabItemsElement.removeAttribute('mdw-theme-fill');\n break;\n default:\n tabItemsElement.setAttribute('mdw-theme-fill', value);\n break;\n }\n break;\n default:\n }\n updateSampleCode();\n}\n\n/** @return {void} */\nfunction setupComponentOptions() {\n sampleComponent = document.querySelector('.component-sample .mdw-tab');\n attachEventListener(\n document.querySelectorAll('input[name]'),\n 'change',\n onOptionChange\n );\n}\n\ninitializeSampleComponents();\nsetupComponentOptions();\nupdateSampleCode();\n\nsetupMenuOptions();\n","import { Ripple } from '../ripple/index';\nimport { findElementParentByClassName, isRtl, nextTick } from '../common/dom';\n\nclass TabItem {\n /**\n * @param {Element} tabItemElement\n * @return {void}\n */\n static attach(tabItemElement) {\n Ripple.attach(tabItemElement);\n }\n\n /**\n * @param {Element} tabItemElement\n * @return {void}\n */\n static detach(tabItemElement) {\n Ripple.detach(tabItemElement);\n }\n}\n\nclass Tab {\n /**\n * @param {Element} tabElement\n * @return {void}\n */\n static attach(tabElement) {\n const tabItemsElement = tabElement.getElementsByClassName('mdw-tab__items')[0];\n let indicatorElement = tabItemsElement.getElementsByClassName('mdw-tab__indicator')[0];\n if (!indicatorElement) {\n indicatorElement = document.createElement('div');\n indicatorElement.classList.add('mdw-tab__indicator');\n tabItemsElement.appendChild(indicatorElement);\n }\n\n const tabContentElement = tabElement.getElementsByClassName('mdw-tab__content')[0];\n if (tabContentElement) {\n tabContentElement.addEventListener('scroll', Tab.onTabContentScroll);\n }\n\n const inputs = tabElement.getElementsByClassName('mdw-tab__input');\n const items = tabElement.getElementsByClassName('mdw-tab__item');\n\n let foundChecked = false;\n for (let i = 0; i < inputs.length; i += 1) {\n const inputElement = inputs[i];\n if (inputElement.checked) {\n foundChecked = true;\n Tab.onInputChanged({ currentTarget: inputElement });\n }\n inputElement.addEventListener('change', Tab.onInputChanged);\n }\n if (!foundChecked && inputs.length) {\n inputs[0].checked = true;\n Tab.onInputChanged({ currentTarget: inputs[0] });\n }\n\n let foundSelected = false;\n for (let i = 0; i < items.length; i += 1) {\n const itemElement = items[i];\n TabItem.attach(itemElement);\n if (itemElement.hasAttribute('mdw-selected')) {\n foundSelected = true;\n Tab.selectItem(itemElement);\n }\n itemElement.addEventListener('click', Tab.onItemClicked);\n }\n if (!foundSelected && items.length) {\n Tab.selectItem(items[0]);\n }\n }\n\n /**\n * @param {Element} tabElement\n * @return {void}\n */\n static detach(tabElement) {\n const inputs = tabElement.getElementsByClassName('mdw-tab__input');\n const items = tabElement.getElementsByClassName('mdw-tab__item');\n const tabContentElement = tabElement.getElementsByClassName('mdw-tab__content')[0];\n const tabContentItems = tabElement.getElementsByClassName('mdw-tab__content-item');\n\n for (let i = 0; i < inputs.length; i += 1) {\n const inputElement = inputs[i];\n inputElement.removeEventListener('change', Tab.onInputChanged);\n }\n\n for (let i = 0; i < items.length; i += 1) {\n const itemElement = items[i];\n TabItem.detach(itemElement);\n itemElement.removeEventListener('click', Tab.onItemClicked);\n itemElement.removeAttribute('mdw-selected');\n }\n\n if (tabContentElement) {\n tabContentElement.removeAttribute('mdw-selected-index');\n tabContentElement.removeEventListener('scroll', Tab.onTabContentScroll);\n }\n for (let i = 0; i < tabContentItems.length; i += 1) {\n const itemElement = tabContentItems[i];\n itemElement.removeAttribute('mdw-selected');\n }\n }\n\n /**\n * @param {Event} event\n * @return {void}\n */\n static onTabContentScroll(event) {\n /** @type {HTMLElement} */\n const tabContentElement = (event.currentTarget);\n event.preventDefault();\n event.stopPropagation();\n tabContentElement.scrollLeft = 0;\n nextTick(() => {\n tabContentElement.scrollLeft = 0;\n });\n }\n\n /**\n * @param {Event} event\n * @return {void}\n */\n static onItemClicked(event) {\n /** @type {HTMLElement} */\n const itemElement = (event.currentTarget);\n if (!itemElement) {\n return;\n }\n if (itemElement instanceof HTMLLabelElement) {\n // Fixes ripple animation\n const inputElement = document.getElementById(itemElement.getAttribute('for'));\n if (inputElement && inputElement instanceof HTMLInputElement) {\n inputElement.checked = true;\n }\n }\n\n Tab.selectItem(itemElement);\n const tabItemsElement = findElementParentByClassName(itemElement, 'mdw-tab__items', false);\n if (tabItemsElement && tabItemsElement.hasAttribute('mdw-scrollable')) {\n itemElement.scrollIntoView({ behavior: 'smooth', block: 'center', inline: 'center' });\n }\n }\n\n static onInputChanged(event) {\n const inputElement = event.currentTarget;\n if (!inputElement.id) {\n return;\n }\n const itemElement = document.querySelector(`label.mdw-tab__item[for=\"${inputElement.id}\"]`);\n if (itemElement) {\n Tab.selectItem(itemElement);\n }\n }\n\n /**\n * @param {Element} itemElement\n * @return {void}\n */\n static selectItem(itemElement) {\n const tabElement = findElementParentByClassName(itemElement, 'mdw-tab');\n if (!tabElement) {\n return;\n }\n const tabItemsElement = findElementParentByClassName(itemElement, 'mdw-tab__items');\n if (!tabItemsElement) {\n return;\n }\n const tabItems = tabItemsElement.getElementsByClassName('mdw-tab__item');\n const tabContentElement = tabElement.getElementsByClassName('mdw-tab__content')[0];\n let foundPreviousSelection = false;\n let foundTarget = false;\n let left = 0;\n let contentItems = null;\n if (tabContentElement) {\n contentItems = tabContentElement.getElementsByClassName('mdw-tab__content-item');\n }\n const isRtlValue = isRtl();\n for (let i = 0; i < tabItems.length; i += 1) {\n const index = isRtlValue ? tabItems.length - 1 - i : i;\n const tabItem = tabItems.item(index);\n const contentItem = contentItems && contentItems.item(index);\n if (tabItem === itemElement) {\n foundTarget = true;\n itemElement.setAttribute('mdw-selected', '');\n if (tabContentElement) {\n tabContentElement.setAttribute('mdw-selected-index', index.toString());\n }\n if (contentItem) {\n contentItem.setAttribute('mdw-selected', '');\n }\n } else {\n if (tabItem.hasAttribute('mdw-selected')) {\n foundPreviousSelection = true;\n tabItem.removeAttribute('mdw-selected');\n }\n if (contentItem && contentItem.hasAttribute('mdw-selected')) {\n contentItem.removeAttribute('mdw-selected');\n }\n }\n\n if (!foundTarget) {\n left += tabItem.clientWidth;\n }\n if (foundTarget && foundPreviousSelection) {\n break;\n }\n }\n\n if (tabContentElement) {\n tabContentElement.scrollLeft = 0;\n nextTick(() => {\n tabContentElement.scrollLeft = 0;\n });\n }\n\n /** @type {HTMLElement} */\n const indicatorElement = (tabItemsElement.getElementsByClassName('mdw-tab__indicator')[0]);\n // Animate selection\n // Only use explicity positioning on scrollable tabs\n const isIE11 = !!window.MSInputMethodContext && !!document.documentMode;\n if (!isIE11\n && (!tabItemsElement.hasAttribute('mdw-scrollable') || !tabItemsElement.clientWidth)) {\n // use CSS styling fallback\n indicatorElement.style.removeProperty('transform');\n indicatorElement.removeAttribute('mdw-js-indicator');\n // this.onItemSelected(itemElement);\n return;\n }\n const width = itemElement.clientWidth;\n if (!indicatorElement.hasAttribute('mdw-js-indicator')) {\n indicatorElement.setAttribute('mdw-js-indicator', '');\n }\n indicatorElement.style.setProperty('transform', `translateX(${left}px) scaleX(${width})`);\n }\n}\n\nexport {\n Tab,\n TabItem,\n};\n"],"sourceRoot":""}
|
package/docs/textfield.html
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
<!DOCTYPE html><html lang="en"><head><title>Material Design Web</title><meta charset="utf-8"><meta content="IE=edge" http-equiv="X-UA-Compatible"><meta content="" name="description"><meta content="width=device-width, initial-scale=1, viewport-fit=cover" name="viewport"><meta name="theme-color" content="#E91E63"><meta name="apple-mobile-web-app-status-bar-style" content="black-translucent"><meta name="apple-mobile-web-app-capable" content="yes"><link rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Material+Icons"><link rel="stylesheet" href="//fonts.googleapis.com/css?family=Roboto:300,400,500,700"><link rel="stylesheet" href="docs.min.css"><link rel="stylesheet" href="components.min.css"><link rel="stylesheet" href="theming.min.css"><link rel="stylesheet" href="theming.ie11.min.css" media="screen and (-ms-high-contrast: active), (-ms-high-contrast: none)"><script src="prerender.min.js"></script></head><body class="mdw-type"><div class="mdw-navdrawer" id="docs-navdrawer"><a class="mdw-navdrawer__scrim" href="#"></a><div class="mdw-navdrawer__toolbar"><div class="mdw-toolbar" mdw-theme-fill="accent-500 dark" mdw-app-bar><div class="mdw-toolbar__action"><div class="mdw-toolbar__start"><div class="mdw-tooltip__wrapper"><a class="mdw-tooltip__target mdw-button material-icons" mdw-icon href="#docs-navdrawer">menu</a><div class="mdw-tooltip">Menu</div></div></div><div class="mdw-toolbar__title">textfield</div><div class="mdw-toolbar__end" id="docs-menu-buttons"><div class="mdw-tooltip__wrapper"><div class="mdw-tooltip__target mdw-button docs-rtl" mdw-inactive>RTL</div><div class="mdw-tooltip">Right-to-Left</div></div><div class="mdw-tooltip__wrapper"><div class="mdw-tooltip__target mdw-button material-icons" mdw-icon mdw-inactive>brightness_3</div><div class="mdw-tooltip">Dark Mode</div></div><div class="mdw-tooltip__wrapper"><div class="mdw-tooltip__target mdw-button material-icons" mdw-icon mdw-inactive>format_size</div><div class="mdw-tooltip">Large Font</div></div></div></div></div></div><div class="mdw-navdrawer__drawer"><div class="mdw-list"><a class="mdw-list__item" href="index.html" mdw-theme-color="primary"><div class="mdw-list__text">Home</div></a><div class="mdw-list__subheader">Components</div><a class="mdw-list__item" href="bottomnav.html" mdw-theme-color="accent"><div class="mdw-list__icon material-icons">call_to_action</div><div class="mdw-list__text">Bottom Navigation</div></a><a class="mdw-list__item" href="button.html" mdw-theme-color="accent"><div class="mdw-list__icon material-icons">crop_landscape</div><div class="mdw-list__text">Button</div></a><a class="mdw-list__item" href="card.html" mdw-theme-color="accent"><div class="mdw-list__icon material-icons">crop_square</div><div class="mdw-list__text">Card</div></a><a class="mdw-list__item" href="dialog.html" mdw-theme-color="accent"><div class="mdw-list__icon material-icons">select_all</div><div class="mdw-list__text">Dialog</div></a><a class="mdw-list__item" href="datatable.html" mdw-theme-color="accent"><div class="mdw-list__icon material-icons">format_align_justify</div><div class="mdw-list__text">Data Table</div></a><a class="mdw-list__item" href="elevation.html" mdw-theme-color="accent"><div class="mdw-list__icon material-icons">layers</div><div class="mdw-list__text">Elevation</div></a><a class="mdw-list__item" href="fab.html" mdw-theme-color="accent"><div class="mdw-list__icon material-icons">add_circle</div><div class="mdw-list__text">Floating Action Button</div></a><a class="mdw-list__item" href="layout.html" mdw-theme-color="accent"><div class="mdw-list__icon material-icons">view_compact</div><div class="mdw-list__text">Layout</div></a><a class="mdw-list__item" href="list.html" mdw-theme-color="accent"><div class="mdw-list__icon material-icons">view_list</div><div class="mdw-list__text">List</div></a><a class="mdw-list__item" href="menu.html" mdw-theme-color="accent"><div class="mdw-list__icon material-icons">picture_in_picture</div><div class="mdw-list__text">Menu</div></a><a class="mdw-list__item" href="navdrawer.html" mdw-theme-color="accent"><div class="mdw-list__icon material-icons">menu</div><div class="mdw-list__text">Navigation Drawer</div></a><a class="mdw-list__item" href="progress.html" mdw-theme-color="accent"><div class="mdw-list__icon material-icons">timelapse</div><div class="mdw-list__text">Progress</div></a><a class="mdw-list__item" href="search.html" mdw-theme-color="accent"><div class="mdw-list__icon material-icons">search</div><div class="mdw-list__text">Search</div></a><a class="mdw-list__item" href="selection.html" mdw-theme-color="accent"><div class="mdw-list__icon material-icons">toggle_on</div><div class="mdw-list__text">Selection</div></a><a class="mdw-list__item" href="slider.html" mdw-theme-color="accent"><div class="mdw-list__icon material-icons">tune</div><div class="mdw-list__text">Slider</div></a><a class="mdw-list__item" href="snackbar.html" mdw-theme-color="accent"><div class="mdw-list__icon material-icons">video_label</div><div class="mdw-list__text">Snackbar</div></a><a class="mdw-list__item" href="tab.html" mdw-theme-color="accent"><div class="mdw-list__icon material-icons">tab</div><div class="mdw-list__text">Tab</div></a><a class="mdw-list__item" mdw-selected href="textfield.html" mdw-theme-color="accent"><div class="mdw-list__icon material-icons">text_fields</div><div class="mdw-list__text">Text Field</div></a><a class="mdw-list__item" href="toolbar.html" mdw-theme-color="accent"><div class="mdw-list__icon material-icons">web_asset</div><div class="mdw-list__text">Toolbar</div></a><a class="mdw-list__item" href="tooltip.html" mdw-theme-color="accent"><div class="mdw-list__icon material-icons">info</div><div class="mdw-list__text">Tooltip</div></a><a class="mdw-list__item" href="type.html" mdw-theme-color="accent"><div class="mdw-list__icon material-icons">font_download</div><div class="mdw-list__text">Typography</div></a></div></div><div class="mdw-navdrawer__content" style="padding-bottom:24px"><div class="mdw-layout" mdw-margin-top mdw-margin-bottom><div class="mdw-layout__item" mdw-colspan="100%"><div><h5 class="mdw-type" mdw-baseline-next="36">Text fields allow users to input, edit, and select text.</h5><p class="mdw-type">Text fields typically reside in forms but can appear in other places, like dialog boxes and search.</p></div></div><div class="mdw-layout__item" mdw-colspan="4"><div class="component-sample"><div class="component-sample__container"><label class="mdw-textfield"><input class="mdw-textfield__input" placeholder="Placeholder"><div class="mdw-textfield__border"><div class="mdw-textfield__outline-gap"><div class="mdw-textfield__label">Label</div></div></div></label></div></div></div><div class="mdw-layout__item" mdw-colspan="8"><div><div class="mdw-type" mdw-style="subtitle">Javascript</div><div><label class="mdw-selection" mdw-theme-color="accent" style="margin:16px 8px"><input class="mdw-selection__input" type="radio" name="javascript" value="required" disabled><div class="mdw-selection__icon"></div><div class="mdw-selection__label">Required</div></label><label class="mdw-selection" mdw-theme-color="accent" style="margin:16px 8px"><input class="mdw-selection__input" type="radio" name="javascript" value="optional" checked><div class="mdw-selection__icon"></div><div class="mdw-selection__label">Optional</div></label><label class="mdw-selection" mdw-theme-color="accent" style="margin:16px 8px"><input class="mdw-selection__input" type="radio" name="javascript" value="none"><div class="mdw-selection__icon"></div><div class="mdw-selection__label">None</div></label></div><div class="mdw-type" mdw-style="subtitle">Field type</div><div><label class="mdw-selection" mdw-theme-color="accent" style="margin:16px 8px"><input class="mdw-selection__input" type="radio" name="field-type" value="single-line" checked><div class="mdw-selection__icon"></div><div class="mdw-selection__label">Single-line</div></label><label class="mdw-selection" mdw-theme-color="accent" style="margin:16px 8px"><input class="mdw-selection__input" type="radio" name="field-type" value="text-area"><div class="mdw-selection__icon"></div><div class="mdw-selection__label">Text area</div></label><label class="mdw-selection" mdw-theme-color="accent" style="margin:16px 8px"><input class="mdw-selection__input" type="radio" name="field-type" value="dropdown"><div class="mdw-selection__icon"></div><div class="mdw-selection__label">Dropdown</div></label></div><div class="mdw-type" mdw-style="subtitle">Style</div><div><label class="mdw-selection" mdw-theme-color="accent" style="margin:16px 8px"><input class="mdw-selection__input" type="radio" name="style" value="filled" checked><div class="mdw-selection__icon"></div><div class="mdw-selection__label">Filled</div></label><label class="mdw-selection" mdw-theme-color="accent" style="margin:16px 8px"><input class="mdw-selection__input" type="radio" name="style" value="outlined"><div class="mdw-selection__icon"></div><div class="mdw-selection__label">Outlined</div></label><label class="mdw-selection" mdw-theme-color="accent" style="margin:16px 8px"><input class="mdw-selection__input" type="radio" name="style" value="solo"><div class="mdw-selection__icon"></div><div class="mdw-selection__label">Solo</div></label></div><div class="mdw-type" mdw-style="subtitle">Options</div><div><label class="mdw-selection" mdw-theme-color="accent" style="margin:16px 8px"><input class="mdw-selection__input" type="checkbox" name="signifier"><div class="mdw-selection__icon"></div><div class="mdw-selection__label">Signifier</div></label><label class="mdw-selection" mdw-theme-color="accent" style="margin:16px 8px"><input class="mdw-selection__input" type="checkbox" name="prefix"><div class="mdw-selection__icon"></div><div class="mdw-selection__label">Prefix</div></label><label class="mdw-selection" mdw-theme-color="accent" style="margin:16px 8px"><input class="mdw-selection__input" type="checkbox" name="suffix"><div class="mdw-selection__icon"></div><div class="mdw-selection__label">Suffix</div></label><label class="mdw-selection" mdw-theme-color="accent" style="margin:16px 8px"><input class="mdw-selection__input" type="checkbox" name="helper-text"><div class="mdw-selection__icon"></div><div class="mdw-selection__label">Helper Text</div></label><label class="mdw-selection" mdw-theme-color="accent" style="margin:16px 8px"><input class="mdw-selection__input" type="checkbox" name="error-text"><div class="mdw-selection__icon"></div><div class="mdw-selection__label">Error Text</div></label></div><div class="mdw-type" mdw-style="subtitle">Color</div><div><label class="mdw-selection" mdw-theme-color="accent" style="margin:16px 8px"><input class="mdw-selection__input" type="radio" name="color" value="none" checked><div class="mdw-selection__icon"></div><div class="mdw-selection__label">Primary</div></label><label class="mdw-selection" mdw-theme-color="accent" style="margin:16px 8px"><input class="mdw-selection__input" type="radio" name="color" value="accent"><div class="mdw-selection__icon"></div><div class="mdw-selection__label">Accent</div></label></div><div class="mdw-type" mdw-style="subtitle">Attributes</div><div><label class="mdw-selection" mdw-theme-color="accent" style="margin:16px 8px"><input class="mdw-selection__input" type="checkbox" name="autosize" checked><div class="mdw-selection__icon"></div><div class="mdw-selection__label">Autosize</div></label><label class="mdw-selection" mdw-theme-color="accent" style="margin:16px 8px"><input class="mdw-selection__input" type="checkbox" name="disabled"><div class="mdw-selection__icon"></div><div class="mdw-selection__label">Disabled</div></label><label class="mdw-selection" mdw-theme-color="accent" style="margin:16px 8px"><input class="mdw-selection__input" type="checkbox" name="required"><div class="mdw-selection__icon"></div><div class="mdw-selection__label">Required</div></label></div></div></div><div class="mdw-layout__item" mdw-colspan="100%" style="max-height:0"></div><div class="mdw-layout__item" mdw-colspan="6"><div class="display-flex" flex-column><h6 class="mdw-type">HTML Code</h6><div class="mdw-card component-code component-html"></div></div></div><div class="mdw-layout__item" mdw-colspan="2"><div class="display-flex" flex-column><h6 class="mdw-type">Javascript Code</h6><div class="mdw-card component-code component-js"></div></div></div><div class="mdw-layout__item" mdw-colspan="100%"><h6 class="mdw-type">Samples</h6></div><div class="mdw-layout__item display-flex" mdw-colspan="4" flex-justify-content="center"><div class="render"><div class="androidstatusbar" mdw-theme-fill="primary-700 dark"><div>12:30</div><i class="material-icons" style="letter-spacing:2px;padding:0 2px"></i></div><div class="mdw-toolbar" mdw-theme-fill="primary-500 dark"><div class="mdw-toolbar__action"><div class="mdw-toolbar__start"><div class="mdw-button material-icons" mdw-icon="mdw-icon">arrow_back</div></div><div class="mdw-toolbar__title">Application</div><div class="mdw-toolbar__end"><div class="mdw-button material-icons" mdw-icon="mdw-icon" mdw-more-button="mdw-more-button">more_vert</div></div></div></div><div class="content" style="padding:0px 16px"><label class="mdw-textfield" style="font-size: 2.125rem"><input class="mdw-textfield__input" value="Vintage 50" placeholder=" "><div class="mdw-textfield__border"><div class="mdw-textfield__outline-gap"><div class="mdw-textfield__label">Title</div></div></div></label><div class="horizontal-controls"><label class="mdw-textfield" style="width:88px"><input class="mdw-textfield__input" type="text" placeholder=" "><div class="mdw-textfield__prefix">$</div><div class="mdw-textfield__border"><div class="mdw-textfield__outline-gap"><div class="mdw-textfield__label">Price</div></div></div></label><label class="mdw-textfield flex-1"><input class="mdw-textfield__input" type="text" placeholder=" "><div class="mdw-textfield__border"><div class="mdw-textfield__outline-gap"><div class="mdw-textfield__label">Location (optional)</div></div></div></label></div><label class="mdw-textfield"><input class="mdw-textfield__input" type="text" placeholder="text"><div class="mdw-textfield__border"><div class="mdw-textfield__outline-gap"><div class="mdw-textfield__label">Description</div></div></div></label><label class="mdw-textfield"><div class="mdw-textfield__signifier material-icons">security</div><input class="mdw-textfield__input" type="password" placeholder="••••••••" required minlength="8"><div class="mdw-textfield__border"><div class="mdw-textfield__outline-gap"><div class="mdw-textfield__label">Password text field with signifier and overflowing label *</div></div></div><div class="mdw-textfield__helper-text">At least 8 characters</div><div class="mdw-textfield__error-text">Error: Password of at least 8 characters required.</div></label><label class="mdw-textfield"><input class="mdw-textfield__input" type="text" placeholder=" " disabled value="filled"><div class="mdw-textfield__border"><div class="mdw-textfield__outline-gap"><div class="mdw-textfield__label">Disabled Filled with Suffix</div></div></div><div class="mdw-textfield__suffix">lbs</div><div class="mdw-textfield__helper-text">Disabled Helper Text</div></label></div><div class="androidnavbar"><i class="material-icons back-button"></i><i class="material-icons"></i><i class="material-icons"></i></div></div></div><div class="mdw-layout__item display-flex" mdw-colspan="4" flex-justify-content="center"><div class="render"><div class="androidstatusbar" mdw-theme-fill="accent-300"><div>12:30</div><i class="material-icons" style="letter-spacing:2px;padding:0 2px"></i></div><div class="mdw-toolbar" mdw-theme-fill="accent-A100 dark"><div class="mdw-toolbar__action"><div class="mdw-toolbar__start"><div class="mdw-button material-icons" mdw-icon="mdw-icon">arrow_back</div></div><div class="mdw-toolbar__title"></div><div class="mdw-toolbar__end"><div class="mdw-button material-icons" mdw-icon="mdw-icon">search</div></div></div></div><form class="content" style="padding:0px 16px"><label class="mdw-textfield" mdw-theme-color="accent"><input class="mdw-textfield__input" type="text" placeholder=" " required><div class="mdw-textfield__border"><div class="mdw-textfield__outline-gap"><div class="mdw-textfield__label">Name *</div></div></div></label><label class="mdw-textfield" mdw-theme-color="accent"><input class="mdw-textfield__input" type="text" placeholder=" "><div class="mdw-textfield__border"><div class="mdw-textfield__outline-gap"><div class="mdw-textfield__label">Address</div></div></div></label><label class="mdw-textfield" mdw-theme-color="accent"><input class="mdw-textfield__input" type="text" placeholder=" "><div class="mdw-textfield__border"><div class="mdw-textfield__outline-gap"><div class="mdw-textfield__label">City</div></div></div></label><div class="horizontal-controls"><label class="mdw-textfield" mdw-theme-color="accent" style="width:88px"><input class="mdw-textfield__input" type="text" placeholder=" "><div class="mdw-textfield__border"><div class="mdw-textfield__outline-gap"><div class="mdw-textfield__label">State</div></div></div></label><label class="mdw-textfield flex-1"><input class="mdw-textfield__input" type="text" placeholder=" " required><div class="mdw-textfield__border"><div class="mdw-textfield__outline-gap"><div class="mdw-textfield__label">Zip code *</div></div></div></label></div><label class="mdw-textfield" mdw-theme-color="accent"><input class="mdw-textfield__input" type="text" placeholder=" "><div class="mdw-textfield__border"><div class="mdw-textfield__outline-gap"><div class="mdw-textfield__label">Phone number</div></div></div></label><p class="mdw-type">* Required fields</p></form><div class="androidnavbar"><i class="material-icons back-button"></i><i class="material-icons"></i><i class="material-icons"></i></div></div></div><div class="mdw-layout__item display-flex" mdw-colspan="4" flex-justify-content="center"><div class="render"><div class="androidstatusbar" mdw-theme-fill="accent-800"><div>12:30</div><i class="material-icons" style="letter-spacing:2px;padding:0 2px"></i></div><div class="mdw-toolbar" mdw-theme-fill="accent-A700 dark"><div class="mdw-toolbar__action"><div class="mdw-toolbar__start"><div class="mdw-button material-icons" mdw-icon="mdw-icon">arrow_back</div></div><div class="mdw-toolbar__title"></div><div class="mdw-toolbar__end"><div class="mdw-button material-icons" mdw-icon="mdw-icon">search</div></div></div></div><form class="content" style="padding:8px 16px"><div class="display-flex" style="margin-bottom:-32px;margin-top:-24px;" flex-justify-content="center"><i class="material-icons" style="color:#ccc;font-size:256px">person</i></div><div class="horizontal-controls"><label class="mdw-textfield flex-1" mdw-theme-color="accent"><div class="mdw-textfield__signifier material-icons">person</div><input class="mdw-textfield__input" type="text" placeholder=" " value="Ali Connors"><div class="mdw-textfield__border"><div class="mdw-textfield__outline-gap"><div class="mdw-textfield__label">Name</div></div></div></label></div><div class="horizontal-controls"><label class="mdw-textfield" mdw-theme-color="accent"><div class="mdw-textfield__signifier material-icons">phone</div><input class="mdw-textfield__input" type="phone" placeholder=" " value="65"><div class="mdw-textfield__border"><div class="mdw-textfield__outline-gap"><div class="mdw-textfield__label">Phone number</div></div></div></label><label class="mdw-textfield" mdw-theme-color="accent" style="width:150px;"><select class="mdw-textfield__input" type="phone"><option value="">Unknown</option><option value="Mobile">Mobile</option><option value="Home">Home</option><option value="Work">Work</option></select><div class="mdw-textfield__icon" mdw-dropdown></div><div class="mdw-textfield__border"><div class="mdw-textfield__outline-gap"><div class="mdw-textfield__label">Phone Type</div></div></div></label></div><div class="horizontal-controls"><label class="mdw-textfield" mdw-theme-color="accent"><div class="mdw-textfield__signifier material-icons">email</div><input class="mdw-textfield__input" type="email" placeholder=" "><div class="mdw-textfield__border"><div class="mdw-textfield__outline-gap"><div class="mdw-textfield__label">Email</div></div></div></label><label class="mdw-textfield" mdw-theme-color="accent" style="width:150px;"><select class="mdw-textfield__input" type="phone"><option value="">Unknown</option><option value="">Unknown</option><option value="Personal">Personal</option><option value="Business">Business</option></select><div class="mdw-textfield__icon" mdw-dropdown></div><div class="mdw-textfield__border"><div class="mdw-textfield__outline-gap"><div class="mdw-textfield__label">Email type</div></div></div></label></div><div class="horizontal-controls"><label class="mdw-textfield" mdw-theme-color="accent"><div class="mdw-textfield__signifier material-icons">place</div><input class="mdw-textfield__input" type="address" placeholder=" "><div class="mdw-textfield__border"><div class="mdw-textfield__outline-gap"><div class="mdw-textfield__label">Address</div></div></div></label><label class="mdw-textfield" mdw-theme-color="accent" style="width:150px"><select class="mdw-textfield__input" type="phone"><option value="Home">Home</option><option value="Work">Work</option></select><div class="mdw-textfield__icon" mdw-dropdown></div><div class="mdw-textfield__border"><div class="mdw-textfield__outline-gap"><div class="mdw-textfield__label">Address type</div></div></div></label></div></form><div class="androidnavbar"><i class="material-icons back-button"></i><i class="material-icons"></i><i class="material-icons"></i></div></div></div><div class="mdw-layout__item display-flex" mdw-colspan="4" flex-justify-content="center"><div class="render mdw-theme-textfield"><div class="androidstatusbar" mdw-theme-fill="primary-A700"><div>12:30</div><i class="material-icons" style="letter-spacing:2px;padding:0 2px"></i></div><div class="mdw-toolbar" mdw-theme-fill="primary-A200 dark"><div class="mdw-toolbar__action"><div class="mdw-toolbar__start"><div class="mdw-button material-icons" mdw-icon="mdw-icon">arrow_back</div></div><div class="mdw-toolbar__title"></div><div class="mdw-toolbar__end"><div class="mdw-button material-icons" mdw-icon="mdw-icon">done</div></div></div></div><div class="content" style="padding:8px 16px"><label class="mdw-textfield" mdw-outlined><input class="mdw-textfield__input" value="Vintage 50's Dress" placeholder=" "><div class="mdw-textfield__border"><div class="mdw-textfield__outline-gap"><div class="mdw-textfield__label">Title</div></div></div><div class="mdw-textfield__helper-text">Helper</div></label><div class="horizontal-controls"><label class="mdw-textfield" mdw-outlined style="width:88px"><input class="mdw-textfield__input" value="10.00" placeholder=" "><div class="mdw-textfield__border"><div class="mdw-textfield__outline-gap"><div class="mdw-textfield__label">Price</div></div></div><div class="mdw-textfield__prefix">$</div><div class="mdw-textfield__helper-text">Helper</div></label><label class="mdw-textfield flex-1" mdw-outlined><input class="mdw-textfield__input" value="Hanover" placeholder=" "><div class="mdw-textfield__border"><div class="mdw-textfield__outline-gap"><div class="mdw-textfield__label">Location (optional)</div></div></div><div class="mdw-textfield__helper-text">Helper</div></label></div><label class="mdw-textfield" mdw-outlined><textarea class="mdw-textfield__input" placeholder=" " rows="3">Unique and rare dress from 1952. Made out of washed cotton with front pockets. Sleeveless with button closures.</textarea><div class="mdw-textfield__border"><div class="mdw-textfield__outline-gap"><div class="mdw-textfield__label">Description</div></div></div></label><label class="mdw-textfield" mdw-outlined><div class="mdw-textfield__signifier material-icons">security</div><input class="mdw-textfield__input" type="password" placeholder="••••••••" required minlength="8"><div class="mdw-textfield__border"><div class="mdw-textfield__outline-gap"><div class="mdw-textfield__label">Password text field with signifier and overflowing label *</div></div></div><div class="mdw-textfield__helper-text">At least 8 characters</div><div class="mdw-textfield__error-text">Error: Password of at least 8 characters required.</div></label><label class="mdw-textfield" mdw-outlined style="max-width:150px"><input class="mdw-textfield__input" type="text" placeholder=" " disabled value="filled"><div class="mdw-textfield__border"><div class="mdw-textfield__outline-gap"><div class="mdw-textfield__label">Disabled Filled with Suffix</div></div></div><div class="mdw-textfield__suffix">lbs</div><div class="mdw-textfield__helper-text">Disabled Helper Text</div></label></div><div class="androidnavbar"><i class="material-icons back-button"></i><i class="material-icons"></i><i class="material-icons"></i></div></div></div><div class="mdw-layout__item display-flex" mdw-colspan="4" flex-justify-content="center"><div class="render mdw-theme-textfield"><div class="androidstatusbar" mdw-theme-fill="accent-600"><div>12:30</div><i class="material-icons" style="letter-spacing:2px;padding:0 2px"></i></div><div class="mdw-toolbar" mdw-theme-fill="accent-A400 dark"><div class="mdw-toolbar__action"><div class="mdw-toolbar__start"><div class="mdw-button material-icons" mdw-icon="mdw-icon">arrow_back</div></div><div class="mdw-toolbar__title"></div><div class="mdw-toolbar__end"><div class="mdw-button material-icons" mdw-icon="mdw-icon">done</div></div></div></div><div class="content" style="padding:0 16px"><label class="mdw-textfield" mdw-theme-color="accent"><input class="mdw-textfield__input" placeholder=" "><div class="mdw-textfield__border"><div class="mdw-textfield__outline-gap"><div class="mdw-textfield__label">Name</div></div></div><div class="mdw-textfield__error-text">spacer</div></label><label class="mdw-textfield" mdw-theme-color="accent"><textarea class="mdw-textfield__input" placeholder=" " rows="5"></textarea><div class="mdw-textfield__border"><div class="mdw-textfield__outline-gap"><div class="mdw-textfield__label">Message</div></div></div></label><label class="mdw-textfield" mdw-outlined><textarea class="mdw-textfield__input" placeholder=" " rows="5"></textarea><div class="mdw-textfield__border"><div class="mdw-textfield__outline-gap"><div class="mdw-textfield__label">Message</div></div></div></label></div><div class="androidnavbar"><i class="material-icons back-button"></i><i class="material-icons"></i><i class="material-icons"></i></div></div></div><div class="mdw-layout__item display-flex" mdw-colspan="4" flex-justify-content="center"><div class="render mdw-theme-textfield"><div class="androidstatusbar" mdw-theme-fill="accent-A700"><div>12:30</div><i class="material-icons" style="letter-spacing:2px;padding:0 2px"></i></div><div class="mdw-toolbar" mdw-theme-fill="accent-A400 dark"><div class="mdw-toolbar__action"><div class="mdw-toolbar__start"><div class="mdw-button material-icons" mdw-icon="mdw-icon">arrow_back</div></div><div class="mdw-toolbar__title"></div><div class="mdw-toolbar__end"><div class="mdw-button material-icons" mdw-icon="mdw-icon">done</div></div></div></div><div class="content" style="padding:0 16px"><label class="mdw-textfield" mdw-theme-color="accent"><input class="mdw-textfield__input" placeholder=" "><div class="mdw-textfield__border"><div class="mdw-textfield__outline-gap"><div class="mdw-textfield__label">Name</div></div></div><div class="mdw-textfield__error-text">spacer</div></label><label class="mdw-textfield" mdw-theme-color="accent"><textarea class="mdw-textfield__input" placeholder=" " rows="5" required>Just wanted to let you kn</textarea><div class="mdw-textfield__border"><div class="mdw-textfield__outline-gap"><div class="mdw-textfield__label">Message *</div></div></div><div class="mdw-textfield__helper-text">Helper text.</div><div class="mdw-textfield__error-text">Error: Required.</div></label><label class="mdw-textfield"><textarea class="mdw-textfield__input" placeholder=" " rows="5" disabled>This textarea is disabled.</textarea><div class="mdw-textfield__border"><div class="mdw-textfield__outline-gap"><div class="mdw-textfield__label">Message *</div></div></div><div class="mdw-textfield__helper-text">Helper text.</div><div class="mdw-textfield__error-text">Error: Required.</div></label></div><div class="androidnavbar"><i class="material-icons back-button"></i><i class="material-icons"></i><i class="material-icons"></i></div></div></div><div class="mdw-layout__item display-flex js" mdw-colspan="4" flex-justify-content="center"><div class="render mdw-theme-textfield"><div class="androidstatusbar" mdw-theme-fill="primary-A700"><div>12:30</div><i class="material-icons" style="letter-spacing:2px;padding:0 2px"></i></div><div class="mdw-toolbar" mdw-theme-fill="primary-A200 dark"><div class="mdw-toolbar__action"><div class="mdw-toolbar__start"><div class="mdw-button material-icons" mdw-icon="mdw-icon">arrow_back</div></div><div class="mdw-toolbar__title">With Javascript</div><div class="mdw-toolbar__end"><div class="mdw-button material-icons" mdw-icon="mdw-icon">done</div></div></div></div><div class="content" style="padding:8px 16px"><label class="mdw-textfield" mdw-outlined><input class="mdw-textfield__input" placeholder=" "><div class="mdw-textfield__border"><div class="mdw-textfield__outline-gap"><div class="mdw-textfield__label">Title</div></div></div><div class="mdw-textfield__helper-text">Helper</div></label><div class="horizontal-controls"><label class="mdw-textfield" style="width:88px"><input class="mdw-textfield__input" value="10.00" placeholder=" "><div class="mdw-textfield__prefix">$</div><div class="mdw-textfield__border"><div class="mdw-textfield__outline-gap"><div class="mdw-textfield__label">Price</div></div></div><div class="mdw-textfield__helper-text">Helper</div></label><label class="mdw-textfield flex-1"><input class="mdw-textfield__input" placeholder=" "><div class="mdw-textfield__border"><div class="mdw-textfield__outline-gap"><div class="mdw-textfield__label">Location (optional)</div></div></div><div class="mdw-textfield__helper-text">Helper</div></label></div><label class="mdw-textfield" mdw-autosize><textarea class="mdw-textfield__input" placeholder=" " rows="4">Unique and rare dress from 1952. Made out of washed cotton with front pockets. Sleeveless with button closures.
|
|
2
|
-
(Erase Me)</textarea><div class="mdw-textfield__border"><div class="mdw-textfield__outline-gap"><div class="mdw-textfield__label">Description</div></div></div></label><div class="horizontal-controls"><label class="mdw-textfield" mdw-theme-color="accent"><input class="mdw-textfield__input" type="phone" placeholder=" " value="65"><div class="mdw-textfield__signifier material-icons">phone</div><div class="mdw-textfield__border"><div class="mdw-textfield__outline-gap"><div class="mdw-textfield__label">Name</div></div></div></label><label class="mdw-textfield" mdw-theme-color="accent" style="width:150px"><select class="mdw-textfield__input" type="phone"><option value="">Unknown</option><option value="Mobile">Mobile</option><option value="Home">Home</option><option value="Work">Work</option></select><div class="mdw-textfield__icon" mdw-dropdown></div><div class="mdw-textfield__border"><div class="mdw-textfield__outline-gap"><div class="mdw-textfield__label">Phone Type</div></div></div></label></div></div><div class="androidnavbar"><i class="material-icons back-button"></i><i class="material-icons"></i><i class="material-icons"></i></div></div></div><div class="mdw-layout__item" mdw-colspan="4"></div><div class="mdw-layout__item" mdw-colspan="4"></div></div></div></div><script src="textfield.min.js"></script></body></html>
|
package/docs/textfield.min.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
!function(e){var t={};function n(r){if(t[r])return t[r].exports;var a=t[r]={i:r,l:!1,exports:{}};return e[r].call(a.exports,a,a.exports,n),a.l=!0,a.exports}n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var a in e)n.d(r,a,function(t){return e[t]}.bind(null,a));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=66)}({0:function(e,t,n){"use strict";function r(e){return window.localStorage?localStorage.getItem(e):null}function a(e,t){window.localStorage&&localStorage.setItem(e,t)}function i(e){window.localStorage&&localStorage.removeItem(e)}n.d(t,"a",function(){return r}),n.d(t,"c",function(){return a}),n.d(t,"b",function(){return i})},1:function(e,t,n){"use strict";function r(e,t){var n=e.getElementsByClassName(t)[0];return n&&n.parentElement!==e?null:n}function a(e,t,n){var r;for(r=!1===n?e.parentElement:e;null!=r&&!r.classList.contains(t);)r=r.parentElement;return r}function i(){return document.documentElement.hasAttribute("dir")&&"rtl"===document.documentElement.getAttribute("dir").toLowerCase()}function u(e,t){var n=document.createEvent("Event");return n.initEvent(t,!0,!0),e.dispatchEvent(n)}n.d(t,"c",function(){return r}),n.d(t,"b",function(){return a}),n.d(t,"d",function(){return i}),n.d(t,"a",function(){return u}),n.d(t,"e",function(){return o});var o=window.requestAnimationFrame||function(e){return setTimeout(e,17)}},2:function(e,t,n){"use strict";n.d(t,"c",function(){return u}),n.d(t,"a",function(){return o}),n.d(t,"b",function(){return l}),n.d(t,"d",function(){return c});var r=n(0),a="black dark",i="white light";function u(e,t){e?(document.documentElement.setAttribute("dir","rtl"),t&&t.removeAttribute("mdw-inactive"),Object(r.c)("rtlmode","true")):(document.documentElement.removeAttribute("dir"),t&&t.setAttribute("mdw-inactive",""),Object(r.b)("rtlmode"))}function o(e,t){e?(document.documentElement.setAttribute("mdw-theme-fill",a),t&&t.removeAttribute("mdw-inactive")):(document.documentElement.setAttribute("mdw-theme-fill",i),t&&t.setAttribute("mdw-inactive","")),Object(r.c)("darkmode",e?"true":"false")}function l(e,t){e?(document.documentElement.style.setProperty("font-size",e),t&&t.removeAttribute("mdw-inactive"),Object(r.c)("fontsize",e)):(document.documentElement.style.removeProperty("font-size"),t&&t.setAttribute("mdw-inactive",""),Object(r.b)("fontsize"))}function c(){var e=document.getElementById("docs-menu-buttons").getElementsByClassName("mdw-button"),t=e[0],n=e[1],i=e[2];!function(e){"true"===Object(r.a)("rtlmode")&&u(!0,e),e.addEventListener("click",function(){"rtl"===document.documentElement.getAttribute("dir")?u(!1,e):u(!0,e)})}(t),function(e){"true"===Object(r.a)("darkmode")&&o(!0,e),e.addEventListener("click",function(){document.documentElement.getAttribute("mdw-theme-fill")===a?o(!1,e):o(!0,e)})}(n),function(e){l(Object(r.a)("fontsize"),e),e.addEventListener("click",function(){document.documentElement.style.getPropertyValue("font-size")?l(null,e):l("125%",e)})}(i)}},4:function(e,t,n){"use strict";function r(e){for(var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",n=e.tagName.toLowerCase(),a=[],i=0;i<e.attributes.length;i+=1){var u=e.attributes.item(i);u.value.length?a.push("".concat(u.name,'="').concat(u.value,'"')):a.push(u.name)}a.sort();for(var o=[n,a.join(" ")],l="<".concat(o.filter(function(e){return e}).join(" ").trim(),">"),c="</".concat(n,">"),d=[l],s=[],m=!0,f=0;f<e.childNodes.length;f+=1){var b=e.childNodes.item(f),p=void 0;b instanceof HTMLElement?(p=r(b," ".concat(t))).trim()&&(m=!1):b.nodeValue&&(p=" ".concat(b.nodeValue)),p&&p.trim()&&s.push(p)}return m?t+d.join("")+s.join("").trim()+c:(s.filter(function(e){return e.trim()}).forEach(function(e){return d.push(e)}),d.push(t+c),t+d.join("\n"))}function a(e,t,n){var r;r=e instanceof Element?[r]:e;for(var a=0;a<r.length;a+=1)r[a].addEventListener(t,n)}function i(e){for(var t=0;t<e.childNodes.length;t+=1){var n=e.childNodes[t];if(n.nodeType===Node.TEXT_NODE)return n}var r=document.createTextNode("");return e.appendChild(r),r}function u(e,t){for(var n=document.createElement(t),r=e.attributes.length-1;r>=0;r-=1){var a=e.attributes.item(r);n.attributes.setNamedItem(a.cloneNode())}for(;e.firstChild;)n.appendChild(e.firstChild);return e.parentElement.replaceChild(n,e),n}n.d(t,"c",function(){return r}),n.d(t,"a",function(){return a}),n.d(t,"d",function(){return i}),n.d(t,"b",function(){return u})},66:function(e,t,n){n(67),e.exports=n(68)},67:function(e,t,n){"use strict";n.r(t);var r,a=n(9),i=n(4),u=n(2);function o(){var e=document.querySelector('input[name="javascript"][value="required"]').checked,t=document.querySelector('input[name="javascript"][value="optional"]').checked,n=document.querySelector('input[name="autosize"]').checked,u=document.querySelector('input[name="field-type"][value="text-area"]').checked,o=e||t;n&&o&&u?r.setAttribute("mdw-autosize",""):r.removeAttribute("mdw-autosize"),a.a.detach(r),document.getElementsByClassName("component-html")[0].textContent=Object(i.c)(r),o&&a.a.attach(r),document.getElementsByClassName("component-js")[0].textContent="mdw.TextField.attach(element);"}!function(){for(var e=document.querySelectorAll(".js .mdw-textfield"),t=0;t<e.length;t+=1)a.a.attach(e.item(t))}(),Object(u.d)(),r=document.querySelector(".component-sample .mdw-textfield"),Object(i.a)(document.querySelectorAll("input[name]"),"change",function(e){var t,n,a,i,u,l=e.target,c=l.name,d=l.value,s=l.checked,m=r.getElementsByClassName("mdw-textfield__input")[0],f=m.tagName.toLowerCase();switch(c){case"field-type":switch(d){default:case"single-type":r.removeAttribute("mdw-autosize"),f="input";break;case"text-area":f="textarea";break;case"dropdown":r.removeAttribute("mdw-autosize"),f="select"}break;case"style":switch(d){default:case"filled":r.removeAttribute("mdw-outlined"),r.removeAttribute("mdw-solo");break;case"outlined":r.setAttribute("mdw-outlined",""),r.removeAttribute("mdw-solo");break;case"solo":r.removeAttribute("mdw-outlined"),r.setAttribute("mdw-solo","")}break;case"box":s?r.setAttribute("mdw-box",""):r.removeAttribute("mdw-box");break;case"outlined":s?r.setAttribute("mdw-outlined",""):r.removeAttribute("mdw-outlined");break;case"disabled":s?r.getElementsByClassName("mdw-textfield__input")[0].setAttribute("disabled",""):r.getElementsByClassName("mdw-textfield__input")[0].removeAttribute("disabled");break;case"required":s?r.getElementsByClassName("mdw-textfield__input")[0].setAttribute("required",""):r.getElementsByClassName("mdw-textfield__input")[0].removeAttribute("required");break;case"prefix":a=r.getElementsByClassName("mdw-textfield__prefix")[0],s?a||((a=document.createElement("div")).classList.add("mdw-textfield__prefix"),a.textContent="$",r.appendChild(a)):a&&a.parentElement.removeChild(a);break;case"suffix":i=r.getElementsByClassName("mdw-textfield__suffix")[0],s?i||((i=document.createElement("div")).classList.add("mdw-textfield__suffix"),i.textContent="lbs",r.appendChild(i)):i&&i.parentElement.removeChild(i);break;case"signifier":u=r.getElementsByClassName("mdw-textfield__signifier")[0],s?u||((u=document.createElement("div")).classList.add("mdw-textfield__signifier"),u.classList.add("material-icons"),u.textContent="security",m.nextElementSibling?r.insertBefore(u,m.nextElementSibling):r.appendChild(u)):u&&u.parentElement.removeChild(u);break;case"helper-text":t=r.getElementsByClassName("mdw-textfield__helper-text")[0],s?t||((t=document.createElement("div")).classList.add("mdw-textfield__helper-text"),t.textContent="Helper text.",r.appendChild(t)):t&&t.parentElement.removeChild(t);break;case"error-text":n=r.getElementsByClassName("mdw-textfield__error-text")[0],s?n||((n=document.createElement("div")).classList.add("mdw-textfield__error-text"),n.textContent="Error text.",r.appendChild(n)):n&&n.parentElement.removeChild(n);break;case"color":switch(d){case"none":r.removeAttribute("mdw-theme-color");break;default:r.setAttribute("mdw-theme-color",d)}break;case"fill":switch(d){case"none":r.removeAttribute("mdw-theme-fill");break;default:r.setAttribute("mdw-theme-fill",d)}}if(m.tagName.toLowerCase()!==f){for(var b=document.createElement(f),p=m.attributes.length-1;p>=0;p-=1){var v=m.attributes.item(p);b.attributes.setNamedItem(v.cloneNode())}m.parentElement.replaceChild(b,m),m=b;var w=r.getElementsByClassName("mdw-textfield__icon")[0];if("select"===f){var h=document.createElement("option");h.setAttribute("value",""),h.textContent="Empty";var g=document.createElement("option");g.setAttribute("value","option1"),g.textContent="Option 1";var E=document.createElement("option");E.setAttribute("value","option2"),E.textContent="Option 2",m.appendChild(h),m.appendChild(g),m.appendChild(E),w||((w=document.createElement("div")).classList.add("mdw-textfield__icon"),w.setAttribute("mdw-dropdown",""),r.appendChild(w))}else w&&w.parentElement.removeChild(w)}m.removeAttribute("rows"),o()}),o()},68:function(e,t,n){e.exports=n.p+"textfield.html"},9:function(e,t,n){"use strict";n.d(t,"a",function(){return i});var r=n(1);function a(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}var i=function(){function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e)}return function(e,t,n){n&&a(e,n)}(e,0,[{key:"attach",value:function(t){var n=Object(r.c)(t,"mdw-textfield__input");n&&(n.addEventListener("input",e.onInput),e.onInput({currentTarget:n}))}},{key:"detach",value:function(t){t.removeAttribute("mdw-value-empty");var n=Object(r.c)(t,"mdw-textfield__input");n&&n.removeEventListener("input",e.onInput)}},{key:"onInput",value:function(t){var n=t.currentTarget;n.parentElement.hasAttribute("mdw-autosize")&&e.updateTextAreaSize(n),e.updateInputEmptyState(n)}},{key:"updateInputEmptyState",value:function(e){var t=e.parentElement;e.value?t.hasAttribute("mdw-value-empty")&&t.removeAttribute("mdw-value-empty"):t.hasAttribute("mdw-value-empty")||t.setAttribute("mdw-value-empty","")}},{key:"updateTextAreaSize",value:function(e){var t=e.getAttribute("rows");e.setAttribute("rows","1");var n=window.getComputedStyle(e),r=n.height,a=n.paddingTop;if(!r||"auto"===r)return e.setAttribute("rows",t),-1;var i=parseInt(r.replace("px",""),10),u=parseInt(a.replace("px",""),10);return e.setAttribute("rows",Math.floor((e.scrollHeight-u)/i).toString()),i}},{key:"getValue",value:function(e){var t=Object(r.c)(e,"mdw-textfield__input");if(t instanceof HTMLTextAreaElement||t instanceof HTMLSelectElement)return t.value;switch(t.hasAttribute("type")&&t.getAttribute("type").toLowerCase()){case"number":case"range":return Number.isNaN(t.valueAsNumber)?null:t.valueAsNumber;case"date":case"datetime-local":case"time":return null==t.value?null:new Date(60*new Date(t.valueAsNumber).getTimezoneOffset()*1e3+t.valueAsNumber);default:return t.value}}},{key:"setValue",value:function(t,n){var a=Object(r.c)(t,"mdw-textfield__input");if(null==n)a.value=null;else if(a instanceof HTMLTextAreaElement||a instanceof HTMLSelectElement)n instanceof Date?a.value=n.toString():a.value="string"==typeof n?n:n.toString(10);else if(n instanceof Date){var i=a.hasAttribute("type")&&a.getAttribute("type").toLowerCase();if("time"===i){var u="".concat(n.getHours()<10?"0":"").concat(n.getHours()),o="".concat(n.getMinutes()<10?"0":"").concat(n.getMinutes()),l="".concat(n.getSeconds()<10?"0":"").concat(n.getSeconds());a.value="".concat(u,":").concat(o,":").concat(l,".").concat(n.getMilliseconds())}else switch(i){case"date":a.valueAsDate=n;break;case"datetime-local":a.valueAsNumber=n.getTime()-60*n.getTimezoneOffset()*1e3;break;case"number":case"range":a.valueAsNumber=n.getTime();break;default:a.value=n.toString()}}else if("string"==typeof n)a.value=n;else switch(a.hasAttribute("type")&&a.getAttribute("type").toLowerCase()){case"date":case"time":case"datetime-local":case"number":case"range":a.valueAsNumber=n;break;default:a.value=n.toString()}e.updateInputEmptyState(a),t.hasAttribute("mdw-multiline")&&e.updateTextAreaSize(a)}}]),e}()}});
|
|
2
|
-
//# sourceMappingURL=textfield.min.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./docs/src/storage.js","webpack:///./components/common/dom.js","webpack:///./docs/src/menuoptions.js","webpack:///./docs/src/sample-utils.js","webpack:///./docs/src/components/textfield.js","webpack:///./docs/src/components/textfield.pug","webpack:///./components/textfield/index.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","default","object","property","prototype","hasOwnProperty","p","s","0","e","getStorageItem","window","localStorage","getItem","setStorageItem","setItem","removeStorageItem","removeItem","__webpack_exports__","getChildElementByClass","element","className","child","getElementsByClassName","parentElement","findElementParentByClassName","includeSelf","el","classList","contains","isRtl","document","documentElement","hasAttribute","getAttribute","toLowerCase","dispatchDomEvent","type","event","createEvent","initEvent","dispatchEvent","nextTick","requestAnimationFrame","cb","setTimeout","2","setRTLMode","setDarkMode","setFontSize","setupMenuOptions","_storage__WEBPACK_IMPORTED_MODULE_0__","darkAttribute","lightAttribute","button","setAttribute","removeAttribute","style","setProperty","removeProperty","buttons","getElementById","buttonRTLMode","buttonDarkMode","largeFontMode","addEventListener","getPropertyValue","convertElementToCode","linePrefix","arguments","length","htmlType","tagName","attributes","attribute","item","push","concat","sort","syntaxItems","join","openingHTMLLine","filter","trim","closingHTMLLine","lines","innerLines","onlyText","childNodes","lineText","HTMLElement","nodeValue","line","forEach","attachEventListener","elements","listener","elementList","Element","getChildTextNode","node","childNode","nodeType","Node","TEXT_NODE","textNode","createTextNode","appendChild","changeElementTagName","tagname","newElement","createElement","attr","setNamedItem","cloneNode","firstChild","replaceChild","sampleComponent","_components_textfield_index__WEBPACK_IMPORTED_MODULE_0__","_sample_utils__WEBPACK_IMPORTED_MODULE_1__","_menuoptions__WEBPACK_IMPORTED_MODULE_2__","updateSampleCode","jsRequired","querySelector","checked","jsOptional","useAutoSize","isTextArea","useJS","TextField","detach","textContent","attach","textfields","querySelectorAll","helperText","errorText","prefixText","suffixText","signifierElement","_event$target","target","inputElement","desiredTagName","add","removeChild","nextElementSibling","insertBefore","dropdown","option1","option2","option3","9","a","configurable","writable","textfieldElement","input","onInput","currentTarget","removeEventListener","updateTextAreaSize","updateInputEmptyState","previousRowsValue","_window$getComputedSt","getComputedStyle","height","paddingTop","heightPx","parseInt","replace","paddingTopPx","Math","floor","scrollHeight","toString","HTMLTextAreaElement","HTMLSelectElement","Number","isNaN","valueAsNumber","Date","getTimezoneOffset","hoursStr","getHours","minutesStr","getMinutes","secondsStr","getSeconds","getMilliseconds","valueAsDate","getTime"],"mappings":"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","file":"textfield.min.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 66);\n","/**\n * @param {string} key\n * @return {string}\n */\nexport function getStorageItem(key) {\n if (!window.localStorage) {\n return null;\n }\n return localStorage.getItem(key);\n}\n\n/**\n * @param {string} key\n * @param {string} value\n * @return {void}\n */\nexport function setStorageItem(key, value) {\n if (!window.localStorage) {\n return;\n }\n localStorage.setItem(key, value);\n}\n\n/**\n * @param {string} key\n * @return {void}\n */\nexport function removeStorageItem(key) {\n if (!window.localStorage) {\n return;\n }\n localStorage.removeItem(key);\n}\n","/**\n * @param {Element} element\n * @param {string} className\n * @return {Element}\n */\nexport function getChildElementByClass(element, className) {\n const child = element.getElementsByClassName(className)[0];\n if (child && child.parentElement !== element) {\n return null;\n }\n return child;\n}\n\n/**\n * @param {Element} element\n * @param {string} className\n * @param {boolean=} [includeSelf=true]\n * @return {Element}\n */\nexport function findElementParentByClassName(element, className, includeSelf) {\n /** @type {Element} */\n let el;\n if (includeSelf === false) {\n el = element.parentElement;\n } else {\n el = element;\n }\n while (el != null && !el.classList.contains(className)) {\n el = el.parentElement;\n }\n return el;\n}\n\n/** @return {boolean} */\nexport function isRtl() {\n return document.documentElement.hasAttribute('dir')\n && document.documentElement.getAttribute('dir').toLowerCase() === 'rtl';\n}\n\n/**\n * @param {Element} element\n * @param {string} type\n * @return {boolean}\n */\nexport function dispatchDomEvent(element, type) {\n const event = document.createEvent('Event');\n event.initEvent(type, true, true);\n return element.dispatchEvent(event);\n}\n\nexport const nextTick = window.requestAnimationFrame || (cb => setTimeout(cb, 17));\n","import { setStorageItem, removeStorageItem, getStorageItem } from './storage';\n\nconst darkAttribute = 'black dark';\nconst lightAttribute = 'white light';\n\n/**\n * @param {boolean} value\n * @param {Element=} button\n * @return {void}\n */\nexport function setRTLMode(value, button) {\n if (value) {\n document.documentElement.setAttribute('dir', 'rtl');\n if (button) {\n button.removeAttribute('mdw-inactive');\n }\n // element.setAttribute('mdw-active', '');\n // Poor visibility even though spec says 70% opacity\n setStorageItem('rtlmode', 'true');\n } else {\n document.documentElement.removeAttribute('dir');\n if (button) {\n button.setAttribute('mdw-inactive', '');\n }\n // element.removeAttribute('mdw-active');\n removeStorageItem('rtlmode');\n }\n}\n\n/**\n * @param {boolean} value\n * @param {Element=} button\n * @return {void}\n */\nexport function setDarkMode(value, button) {\n if (value) {\n document.documentElement.setAttribute('mdw-theme-fill', darkAttribute);\n if (button) {\n button.removeAttribute('mdw-inactive');\n }\n // element.setAttribute('mdw-active', '');\n // Poor visibility even though spec says 70% opacity\n } else {\n document.documentElement.setAttribute('mdw-theme-fill', lightAttribute);\n if (button) {\n button.setAttribute('mdw-inactive', '');\n }\n // element.removeAttribute('mdw-active');\n }\n setStorageItem('darkmode', value ? 'true' : 'false');\n}\n\n/**\n * @param {string} value\n * @param {Element=} button\n * @return {void}\n */\nexport function setFontSize(value, button) {\n if (value) {\n document.documentElement.style.setProperty('font-size', value);\n if (button) {\n button.removeAttribute('mdw-inactive');\n }\n // element.setAttribute('mdw-active', '');\n // Poor visibility even though spec says 70% opacity\n setStorageItem('fontsize', value);\n } else {\n document.documentElement.style.removeProperty('font-size');\n if (button) {\n button.setAttribute('mdw-inactive', '');\n }\n // element.removeAttribute('mdw-active');\n removeStorageItem('fontsize');\n }\n}\n\n/**\n * @param {Element} element\n * @return {void}\n */\nfunction setupRTLMode(element) {\n if (getStorageItem('rtlmode') === 'true') {\n setRTLMode(true, element);\n }\n element.addEventListener('click', () => {\n if (document.documentElement.getAttribute('dir') === 'rtl') {\n setRTLMode(false, element);\n } else {\n setRTLMode(true, element);\n }\n });\n}\n\n/**\n * @param {Element} element\n * @return {void}\n */\nfunction setupDarkMode(element) {\n if (getStorageItem('darkmode') === 'true') {\n setDarkMode(true, element);\n }\n element.addEventListener('click', () => {\n if (document.documentElement.getAttribute('mdw-theme-fill') === darkAttribute) {\n setDarkMode(false, element);\n } else {\n setDarkMode(true, element);\n }\n });\n}\n\n/**\n * @param {Element} element\n * @return {void}\n */\nfunction setupLargeFontMode(element) {\n const fontsize = getStorageItem('fontsize');\n setFontSize(fontsize, element);\n element.addEventListener('click', () => {\n if (document.documentElement.style.getPropertyValue('font-size')) {\n setFontSize(null, element);\n } else {\n setFontSize('125%', element);\n }\n });\n}\n\n/** @return {void} */\nexport function setupMenuOptions() {\n const buttons = document.getElementById('docs-menu-buttons').getElementsByClassName('mdw-button');\n const buttonRTLMode = buttons[0];\n const buttonDarkMode = buttons[1];\n const largeFontMode = buttons[2];\n setupRTLMode(buttonRTLMode);\n setupDarkMode(buttonDarkMode);\n setupLargeFontMode(largeFontMode);\n}\n","/**\n * @param {HTMLElement} element\n * @param {string=} linePrefix\n * @return {string}\n */\nfunction convertElementToCode(element, linePrefix = '') {\n const htmlType = element.tagName.toLowerCase();\n const attributes = [];\n for (let i = 0; i < element.attributes.length; i += 1) {\n const attribute = element.attributes.item(i);\n if (attribute.value.length) {\n attributes.push(`${attribute.name}=\"${attribute.value}\"`);\n } else {\n attributes.push(attribute.name);\n }\n }\n attributes.sort();\n const syntaxItems = [htmlType, attributes.join(' ')];\n const openingHTMLLine = `<${syntaxItems.filter(item => item).join(' ').trim()}>`;\n const closingHTMLLine = `</${htmlType}>`;\n const lines = [openingHTMLLine];\n const innerLines = [];\n let onlyText = true;\n for (let i = 0; i < element.childNodes.length; i += 1) {\n const child = element.childNodes.item(i);\n let lineText;\n if (child instanceof HTMLElement) {\n lineText = convertElementToCode(child, ` ${linePrefix}`);\n if (lineText.trim()) {\n onlyText = false;\n }\n } else if (child.nodeValue) {\n lineText = ` ${child.nodeValue}`;\n }\n if (lineText && lineText.trim()) {\n innerLines.push(lineText);\n }\n }\n if (onlyText) {\n return linePrefix + lines.join('') + innerLines.join('').trim() + closingHTMLLine;\n }\n innerLines\n .filter(line => line.trim())\n .forEach(line => lines.push(line));\n lines.push(linePrefix + closingHTMLLine);\n return linePrefix + lines.join('\\n');\n}\n\n/**\n * @param {Element|NodeListOf<Element>} elements\n * @param {string} event\n * @param {Function} listener\n * @return {void}\n */\nfunction attachEventListener(elements, event, listener) {\n let elementList;\n if (elements instanceof Element) {\n elementList = [elementList];\n } else {\n elementList = elements;\n }\n for (let i = 0; i < elementList.length; i += 1) {\n const el = elementList[i];\n el.addEventListener(event, listener);\n }\n}\n\n/**\n * @param {Element} node\n * @return {Node}\n */\nfunction getChildTextNode(node) {\n for (let i = 0; i < node.childNodes.length; i += 1) {\n const childNode = node.childNodes[i];\n if (childNode.nodeType === Node.TEXT_NODE) {\n return childNode;\n }\n }\n const textNode = document.createTextNode('');\n node.appendChild(textNode);\n return textNode;\n}\n\n/**\n * @param {Element} element\n * @param {string} tagname\n * @return {Element}\n */\nfunction changeElementTagName(element, tagname) {\n const newElement = document.createElement(tagname);\n for (let i = element.attributes.length - 1; i >= 0; i -= 1) {\n const attr = element.attributes.item(i);\n newElement.attributes.setNamedItem(attr.cloneNode());\n }\n while (element.firstChild) {\n newElement.appendChild(element.firstChild);\n }\n\n element.parentElement.replaceChild(newElement, element);\n return newElement;\n}\n\nexport {\n convertElementToCode,\n attachEventListener,\n getChildTextNode,\n changeElementTagName,\n};\n","import { TextField } from '../../../components/textfield/index';\nimport { convertElementToCode, attachEventListener } from '../sample-utils';\nimport { setupMenuOptions } from '../menuoptions';\n\n/** @return {void} */\nfunction initializeSampleComponents() {\n const textfields = document.querySelectorAll('.js .mdw-textfield');\n for (let i = 0; i < textfields.length; i += 1) {\n TextField.attach(textfields.item(i));\n }\n}\n\n/** @type {HTMLElement} */\nlet sampleComponent;\n\n/** @return {void} */\nfunction updateSampleCode() {\n const jsRequired = document.querySelector('input[name=\"javascript\"][value=\"required\"]').checked;\n const jsOptional = document.querySelector('input[name=\"javascript\"][value=\"optional\"]').checked;\n const useAutoSize = document.querySelector('input[name=\"autosize\"]').checked;\n const isTextArea = document.querySelector('input[name=\"field-type\"][value=\"text-area\"]').checked;\n const useJS = jsRequired || jsOptional;\n if (useAutoSize && useJS && isTextArea) {\n sampleComponent.setAttribute('mdw-autosize', '');\n } else {\n sampleComponent.removeAttribute('mdw-autosize');\n }\n\n // Strip JS related elements and attributes\n TextField.detach(sampleComponent);\n\n const htmlCodeElement = document.getElementsByClassName('component-html')[0];\n htmlCodeElement.textContent = convertElementToCode(sampleComponent);\n\n // Reattach JS if requested\n if (useJS) {\n TextField.attach(sampleComponent);\n }\n\n const jsCodeElement = document.getElementsByClassName('component-js')[0];\n jsCodeElement.textContent = 'mdw.TextField.attach(element);';\n}\n\n/**\n * @param {Event} event\n * @return {void}\n */\nfunction onOptionChange(event) {\n const { name, value, checked } = event.target;\n let inputElement = sampleComponent.getElementsByClassName('mdw-textfield__input')[0];\n let desiredTagName = inputElement.tagName.toLowerCase();\n let helperText;\n let errorText;\n let prefixText;\n let suffixText;\n let signifierElement;\n switch (name) {\n case 'field-type':\n switch (value) {\n default:\n case 'single-type':\n sampleComponent.removeAttribute('mdw-autosize');\n desiredTagName = 'input';\n break;\n case 'text-area':\n desiredTagName = 'textarea';\n break;\n case 'dropdown':\n sampleComponent.removeAttribute('mdw-autosize');\n desiredTagName = 'select';\n break;\n }\n break;\n case 'style':\n switch (value) {\n default:\n case 'filled':\n sampleComponent.removeAttribute('mdw-outlined');\n sampleComponent.removeAttribute('mdw-solo');\n break;\n case 'outlined':\n sampleComponent.setAttribute('mdw-outlined', '');\n sampleComponent.removeAttribute('mdw-solo');\n break;\n case 'solo':\n sampleComponent.removeAttribute('mdw-outlined');\n sampleComponent.setAttribute('mdw-solo', '');\n break;\n }\n break;\n case 'box':\n if (checked) {\n sampleComponent.setAttribute('mdw-box', '');\n } else {\n sampleComponent.removeAttribute('mdw-box');\n }\n break;\n case 'outlined':\n if (checked) {\n sampleComponent.setAttribute('mdw-outlined', '');\n } else {\n sampleComponent.removeAttribute('mdw-outlined');\n }\n break;\n case 'disabled':\n if (checked) {\n sampleComponent.getElementsByClassName('mdw-textfield__input')[0].setAttribute('disabled', '');\n } else {\n sampleComponent.getElementsByClassName('mdw-textfield__input')[0].removeAttribute('disabled');\n }\n break;\n case 'required':\n if (checked) {\n sampleComponent.getElementsByClassName('mdw-textfield__input')[0].setAttribute('required', '');\n } else {\n sampleComponent.getElementsByClassName('mdw-textfield__input')[0].removeAttribute('required');\n }\n break;\n case 'prefix':\n prefixText = sampleComponent.getElementsByClassName('mdw-textfield__prefix')[0];\n if (checked) {\n if (!prefixText) {\n prefixText = document.createElement('div');\n prefixText.classList.add('mdw-textfield__prefix');\n prefixText.textContent = '$';\n sampleComponent.appendChild(prefixText);\n }\n } else if (prefixText) {\n prefixText.parentElement.removeChild(prefixText);\n }\n break;\n case 'suffix':\n suffixText = sampleComponent.getElementsByClassName('mdw-textfield__suffix')[0];\n if (checked) {\n if (!suffixText) {\n suffixText = document.createElement('div');\n suffixText.classList.add('mdw-textfield__suffix');\n suffixText.textContent = 'lbs';\n sampleComponent.appendChild(suffixText);\n }\n } else if (suffixText) {\n suffixText.parentElement.removeChild(suffixText);\n }\n break;\n case 'signifier':\n signifierElement = sampleComponent.getElementsByClassName('mdw-textfield__signifier')[0];\n if (checked) {\n if (!signifierElement) {\n signifierElement = document.createElement('div');\n signifierElement.classList.add('mdw-textfield__signifier');\n signifierElement.classList.add('material-icons');\n signifierElement.textContent = 'security';\n if (inputElement.nextElementSibling) {\n sampleComponent.insertBefore(signifierElement, inputElement.nextElementSibling);\n } else {\n sampleComponent.appendChild(signifierElement);\n }\n }\n } else if (signifierElement) {\n signifierElement.parentElement.removeChild(signifierElement);\n }\n break;\n case 'helper-text':\n helperText = sampleComponent.getElementsByClassName('mdw-textfield__helper-text')[0];\n if (checked) {\n if (!helperText) {\n helperText = document.createElement('div');\n helperText.classList.add('mdw-textfield__helper-text');\n helperText.textContent = 'Helper text.';\n sampleComponent.appendChild(helperText);\n }\n } else if (helperText) {\n helperText.parentElement.removeChild(helperText);\n }\n break;\n case 'error-text':\n errorText = sampleComponent.getElementsByClassName('mdw-textfield__error-text')[0];\n if (checked) {\n if (!errorText) {\n errorText = document.createElement('div');\n errorText.classList.add('mdw-textfield__error-text');\n errorText.textContent = 'Error text.';\n sampleComponent.appendChild(errorText);\n }\n } else if (errorText) {\n errorText.parentElement.removeChild(errorText);\n }\n break;\n case 'color':\n switch (value) {\n case 'none':\n sampleComponent.removeAttribute('mdw-theme-color');\n break;\n default:\n sampleComponent.setAttribute('mdw-theme-color', value);\n break;\n }\n break;\n case 'fill':\n switch (value) {\n case 'none':\n sampleComponent.removeAttribute('mdw-theme-fill');\n break;\n default:\n sampleComponent.setAttribute('mdw-theme-fill', value);\n break;\n }\n break;\n default:\n }\n\n if (inputElement.tagName.toLowerCase() !== desiredTagName) {\n const newElement = document.createElement(desiredTagName);\n for (let i = inputElement.attributes.length - 1; i >= 0; i -= 1) {\n const attr = inputElement.attributes.item(i);\n newElement.attributes.setNamedItem(attr.cloneNode());\n }\n inputElement.parentElement.replaceChild(newElement, inputElement);\n inputElement = newElement;\n let dropdown = sampleComponent.getElementsByClassName('mdw-textfield__icon')[0];\n if (desiredTagName === 'select') {\n const option1 = document.createElement('option');\n option1.setAttribute('value', '');\n option1.textContent = 'Empty';\n const option2 = document.createElement('option');\n option2.setAttribute('value', 'option1');\n option2.textContent = 'Option 1';\n const option3 = document.createElement('option');\n option3.setAttribute('value', 'option2');\n option3.textContent = 'Option 2';\n inputElement.appendChild(option1);\n inputElement.appendChild(option2);\n inputElement.appendChild(option3);\n if (!dropdown) {\n dropdown = document.createElement('div');\n dropdown.classList.add('mdw-textfield__icon');\n dropdown.setAttribute('mdw-dropdown', '');\n sampleComponent.appendChild(dropdown);\n }\n } else if (dropdown) {\n dropdown.parentElement.removeChild(dropdown);\n }\n }\n inputElement.removeAttribute('rows');\n updateSampleCode();\n}\n\n/** @return {void} */\nfunction setupComponentOptions() {\n sampleComponent = document.querySelector('.component-sample .mdw-textfield');\n attachEventListener(\n document.querySelectorAll('input[name]'),\n 'change',\n onOptionChange\n );\n}\n\ninitializeSampleComponents();\nsetupMenuOptions();\nsetupComponentOptions();\nupdateSampleCode();\n","module.exports = __webpack_public_path__ + \"textfield.html\";","import { getChildElementByClass } from '../common/dom';\n\nclass TextField {\n /**\n * @param {Element} textfieldElement\n * @return {void}\n */\n static attach(textfieldElement) {\n /** @type {HTMLInputElement|HTMLTextAreaElement|HTMLSelectElement} */\n const input = (getChildElementByClass(textfieldElement, 'mdw-textfield__input'));\n if (input) {\n input.addEventListener('input', TextField.onInput);\n TextField.onInput({ currentTarget: input });\n }\n }\n\n /**\n * @param {Element} textfieldElement\n * @return {void}\n */\n static detach(textfieldElement) {\n textfieldElement.removeAttribute('mdw-value-empty');\n const input = getChildElementByClass(textfieldElement, 'mdw-textfield__input');\n if (input) {\n input.removeEventListener('input', TextField.onInput);\n }\n }\n\n /**\n * @param {Event|{currentTarget}} event\n * @return {void}\n */\n static onInput(event) {\n const inputElement = event.currentTarget;\n if (inputElement.parentElement.hasAttribute('mdw-autosize')) {\n TextField.updateTextAreaSize(inputElement);\n }\n TextField.updateInputEmptyState(inputElement);\n }\n\n /**\n * @param {HTMLInputElement|HTMLTextAreaElement|HTMLSelectElement} inputElement\n * @return {void} */\n static updateInputEmptyState(inputElement) {\n const attributeName = 'mdw-value-empty';\n const textfieldElement = inputElement.parentElement;\n if (inputElement.value) {\n if (textfieldElement.hasAttribute(attributeName)) {\n textfieldElement.removeAttribute(attributeName);\n }\n } else if (!textfieldElement.hasAttribute(attributeName)) {\n textfieldElement.setAttribute('mdw-value-empty', '');\n }\n }\n\n /**\n * @param {HTMLInputElement} inputElement\n * @return {number} Single row height */\n static updateTextAreaSize(inputElement) {\n const previousRowsValue = inputElement.getAttribute('rows');\n inputElement.setAttribute('rows', '1');\n const { height, paddingTop } = window.getComputedStyle(inputElement);\n if (!height || height === 'auto') {\n inputElement.setAttribute('rows', previousRowsValue);\n return -1;\n }\n const heightPx = parseInt(height.replace('px', ''), 10);\n const paddingTopPx = parseInt(paddingTop.replace('px', ''), 10);\n inputElement.setAttribute('rows', Math.floor((inputElement.scrollHeight - paddingTopPx) / heightPx).toString());\n return heightPx;\n }\n\n /**\n * @param {Element} textfieldElement\n * @return {string|Date|number}\n */\n static getValue(textfieldElement) {\n /** @type {HTMLInputElement | HTMLTextAreaElement | HTMLSelectElement} */\n const input = (getChildElementByClass(textfieldElement, 'mdw-textfield__input'));\n if ((input instanceof HTMLTextAreaElement) || (input instanceof HTMLSelectElement)) {\n return input.value;\n }\n const type = input.hasAttribute('type') && input.getAttribute('type').toLowerCase();\n switch (type) {\n case 'number':\n case 'range':\n return Number.isNaN(input.valueAsNumber) ? null : input.valueAsNumber;\n case 'date':\n case 'datetime-local':\n case 'time':\n if (input.value == null) {\n return null;\n }\n return new Date((new Date(input.valueAsNumber).getTimezoneOffset() * 60 * 1000) + input.valueAsNumber);\n default:\n return input.value;\n }\n }\n\n /**\n * @param {Element} textfieldElement\n * @param {(string|Date|number)=} value\n * @return {void}\n */\n static setValue(textfieldElement, value) {\n /** @type {HTMLInputElement | HTMLTextAreaElement | HTMLSelectElement} */\n const input = (getChildElementByClass(textfieldElement, 'mdw-textfield__input'));\n if (value == null) {\n input.value = null;\n } else if (input instanceof HTMLTextAreaElement || input instanceof HTMLSelectElement) {\n if (value instanceof Date) {\n input.value = value.toString();\n } else if (typeof value === 'string') {\n input.value = value;\n } else {\n input.value = value.toString(10);\n }\n } else if (value instanceof Date) {\n const type = input.hasAttribute('type') && input.getAttribute('type').toLowerCase();\n if (type === 'time') {\n const hoursStr = `${value.getHours() < 10 ? '0' : ''}${value.getHours()}`;\n const minutesStr = `${value.getMinutes() < 10 ? '0' : ''}${value.getMinutes()}`;\n const secondsStr = `${value.getSeconds() < 10 ? '0' : ''}${value.getSeconds()}`;\n input.value = `${hoursStr}:${minutesStr}:${secondsStr}.${value.getMilliseconds()}`;\n } else {\n switch (type) {\n case 'date':\n input.valueAsDate = value;\n break;\n case 'datetime-local':\n input.valueAsNumber = value.getTime() - (value.getTimezoneOffset() * 60 * 1000);\n break;\n case 'number':\n case 'range':\n input.valueAsNumber = value.getTime();\n break;\n default:\n input.value = value.toString();\n }\n }\n } else if (typeof value === 'string') {\n input.value = value;\n } else {\n const type = input.hasAttribute('type') && input.getAttribute('type').toLowerCase();\n switch (type) {\n case 'date':\n case 'time':\n case 'datetime-local':\n case 'number':\n case 'range':\n input.valueAsNumber = value;\n break;\n default:\n input.value = value.toString();\n }\n }\n TextField.updateInputEmptyState(input);\n if (textfieldElement.hasAttribute('mdw-multiline')) {\n TextField.updateTextAreaSize(input);\n }\n }\n}\n\nexport {\n TextField,\n};\n"],"sourceRoot":""}
|