@shortfuse/materialdesignweb 0.5.0 → 0.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (418) hide show
  1. package/README.md +155 -77
  2. package/bin/generate-css.js +12 -0
  3. package/components/Badge.css +30 -0
  4. package/components/Badge.js +15 -0
  5. package/components/Body.css +14 -0
  6. package/components/Body.js +7 -0
  7. package/components/BottomAppBar.css +23 -0
  8. package/components/BottomAppBar.js +25 -0
  9. package/components/Box.css +31 -0
  10. package/components/Box.js +24 -0
  11. package/components/Button.css +146 -0
  12. package/components/Button.js +95 -0
  13. package/components/Button.md +61 -0
  14. package/components/Card.css +109 -0
  15. package/components/Card.js +82 -0
  16. package/components/Checkbox.css +77 -0
  17. package/components/Checkbox.js +59 -0
  18. package/components/CheckboxIcon.css +89 -0
  19. package/components/CheckboxIcon.js +41 -0
  20. package/components/Chip.css +35 -0
  21. package/components/Chip.js +22 -0
  22. package/components/Dialog.css +235 -0
  23. package/components/Dialog.js +327 -0
  24. package/components/DialogActions.js +13 -0
  25. package/components/Divider.css +41 -0
  26. package/components/Divider.js +13 -0
  27. package/components/ExtendedFab.css +24 -0
  28. package/components/ExtendedFab.js +11 -0
  29. package/components/Fab.css +23 -0
  30. package/components/Fab.js +26 -0
  31. package/components/FilterChip.css +80 -0
  32. package/components/FilterChip.js +51 -0
  33. package/components/Headline.css +14 -0
  34. package/components/Headline.js +33 -0
  35. package/components/Icon.css +76 -0
  36. package/components/Icon.js +174 -0
  37. package/components/IconButton.css +151 -0
  38. package/components/IconButton.js +65 -0
  39. package/components/Input.js +16 -0
  40. package/components/Label.css +14 -0
  41. package/components/Label.js +7 -0
  42. package/components/Layout.css +19 -0
  43. package/components/Layout.js +12 -0
  44. package/components/List.css +12 -0
  45. package/components/List.js +17 -0
  46. package/components/ListItem.css +224 -0
  47. package/components/ListItem.js +112 -0
  48. package/components/ListOption.css +34 -0
  49. package/components/ListOption.js +122 -0
  50. package/components/ListSelect.css +9 -0
  51. package/components/ListSelect.js +206 -0
  52. package/components/Menu.css +171 -0
  53. package/components/Menu.js +470 -0
  54. package/components/MenuItem.css +53 -0
  55. package/components/MenuItem.js +215 -0
  56. package/components/Nav.css +17 -0
  57. package/components/Nav.js +23 -0
  58. package/components/NavBar.css +34 -0
  59. package/components/NavBar.js +88 -0
  60. package/components/NavBarItem.css +41 -0
  61. package/components/NavBarItem.js +7 -0
  62. package/components/NavDrawer.css +31 -0
  63. package/components/NavDrawer.js +13 -0
  64. package/components/NavDrawerItem.css +42 -0
  65. package/components/NavDrawerItem.js +12 -0
  66. package/components/NavItem.css +181 -0
  67. package/components/NavItem.js +83 -0
  68. package/components/NavRail.css +47 -0
  69. package/components/NavRail.js +17 -0
  70. package/components/NavRailItem.css +25 -0
  71. package/components/NavRailItem.js +7 -0
  72. package/components/Option.js +91 -0
  73. package/components/Outline.css +138 -0
  74. package/components/Pane.css +261 -0
  75. package/components/Pane.js +21 -0
  76. package/components/Progress.css +74 -0
  77. package/components/Progress.js +67 -0
  78. package/components/ProgressCircle.css +226 -0
  79. package/components/ProgressLine.css +155 -0
  80. package/components/Radio.css +83 -0
  81. package/components/Radio.js +42 -0
  82. package/components/RadioIcon.css +73 -0
  83. package/components/RadioIcon.js +37 -0
  84. package/components/Ripple.css +74 -0
  85. package/components/Ripple.js +114 -0
  86. package/components/SegmentedButton.css +94 -0
  87. package/components/SegmentedButton.js +49 -0
  88. package/components/SegmentedButtonGroup.css +12 -0
  89. package/components/SegmentedButtonGroup.js +44 -0
  90. package/components/Select.css +52 -0
  91. package/components/Select.js +71 -0
  92. package/components/Shape.css +132 -0
  93. package/components/Shape.js +25 -0
  94. package/components/Slider.css +306 -0
  95. package/components/Slider.js +206 -0
  96. package/components/Snackbar.css +80 -0
  97. package/components/Snackbar.js +75 -0
  98. package/components/Surface.css +10 -0
  99. package/components/Surface.js +23 -0
  100. package/components/Switch.css +63 -0
  101. package/components/Switch.js +127 -0
  102. package/components/SwitchIcon.css +177 -0
  103. package/components/SwitchIcon.js +89 -0
  104. package/components/SwitchIconAnimations.css +89 -0
  105. package/components/Tab.css +85 -0
  106. package/components/Tab.js +103 -0
  107. package/components/TabContent.js +151 -0
  108. package/components/TabList.css +129 -0
  109. package/components/TabList.js +309 -0
  110. package/components/TabPanel.js +37 -0
  111. package/components/TextArea.css +93 -0
  112. package/components/TextArea.js +229 -0
  113. package/components/Title.css +14 -0
  114. package/components/Title.js +15 -0
  115. package/components/Tooltip.css +40 -0
  116. package/components/Tooltip.js +22 -0
  117. package/components/TopAppBar.css +209 -0
  118. package/components/TopAppBar.js +201 -0
  119. package/core/Composition.js +988 -0
  120. package/core/CustomElement.js +844 -0
  121. package/core/ICustomElement.d.ts +288 -0
  122. package/core/ICustomElement.js +1 -0
  123. package/core/css.js +51 -0
  124. package/core/customTypes.js +125 -0
  125. package/core/dom.js +56 -154
  126. package/core/identify.js +40 -0
  127. package/core/observe.js +410 -0
  128. package/core/template.js +121 -0
  129. package/core/typings.d.ts +135 -0
  130. package/core/typings.js +1 -0
  131. package/mixins/AriaReflectorMixin.js +42 -0
  132. package/mixins/AriaToolbarMixin.js +13 -0
  133. package/mixins/ControlMixin.css +57 -0
  134. package/mixins/ControlMixin.js +212 -0
  135. package/mixins/DensityMixin.css +40 -0
  136. package/mixins/DensityMixin.js +11 -0
  137. package/mixins/FlexableMixin.css +79 -0
  138. package/mixins/FlexableMixin.js +32 -0
  139. package/mixins/FormAssociatedMixin.js +170 -0
  140. package/mixins/InputMixin.js +335 -0
  141. package/mixins/KeyboardNavMixin.js +244 -0
  142. package/mixins/RTLObserverMixin.js +35 -0
  143. package/mixins/ResizeObserverMixin.js +38 -0
  144. package/mixins/RippleMixin.css +12 -0
  145. package/mixins/RippleMixin.js +115 -0
  146. package/mixins/ScrollListenerMixin.js +100 -0
  147. package/mixins/ShapeMixin.css +135 -0
  148. package/mixins/ShapeMixin.js +31 -0
  149. package/mixins/StateMixin.css +82 -0
  150. package/mixins/StateMixin.js +114 -0
  151. package/mixins/SurfaceMixin.css +150 -0
  152. package/mixins/SurfaceMixin.js +32 -0
  153. package/mixins/TextFieldMixin.css +657 -0
  154. package/mixins/TextFieldMixin.js +121 -0
  155. package/mixins/ThemableMixin.css +204 -0
  156. package/mixins/ThemableMixin.js +16 -0
  157. package/mixins/TooltipTriggerMixin.css +27 -0
  158. package/mixins/TooltipTriggerMixin.js +366 -0
  159. package/mixins/TouchTargetMixin.css +26 -0
  160. package/mixins/TouchTargetMixin.js +9 -0
  161. package/package.json +54 -49
  162. package/theming/index.js +594 -0
  163. package/theming/loader.js +24 -0
  164. package/utils/cli.js +11 -0
  165. package/utils/color_keywords.js +151 -0
  166. package/utils/hct/Cam16.js +298 -0
  167. package/utils/hct/CorePalette.js +84 -0
  168. package/utils/hct/Hct.js +172 -0
  169. package/utils/hct/Scheme.js +587 -0
  170. package/utils/hct/TonalPalette.js +68 -0
  171. package/utils/hct/ViewingConditions.js +136 -0
  172. package/utils/hct/blend.js +93 -0
  173. package/utils/hct/colorUtils.js +302 -0
  174. package/utils/hct/hctSolver.js +559 -0
  175. package/utils/hct/helper.js +182 -0
  176. package/utils/hct/mathUtils.js +153 -0
  177. package/utils/jsonMergePatch.js +100 -0
  178. package/utils/jsx-runtime.js +101 -0
  179. package/utils/popup.js +117 -0
  180. package/utils/svg.js +129 -0
  181. package/.browserslistrc +0 -4
  182. package/.eslintrc.json +0 -204
  183. package/.stylelintrc.json +0 -645
  184. package/.vscode/launch.json +0 -31
  185. package/.vscode/settings.json +0 -3
  186. package/.vscode/tasks.json +0 -32
  187. package/CHANGELOG.md +0 -36
  188. package/CODE_OF_CONDUCT.md +0 -46
  189. package/adapters/datatable/column.js +0 -176
  190. package/adapters/datatable/index.js +0 -960
  191. package/adapters/dom/index.js +0 -586
  192. package/adapters/list/index.js +0 -69
  193. package/adapters/search/index.js +0 -495
  194. package/components/appbar/_spec.scss +0 -165
  195. package/components/appbar/_theme.scss +0 -0
  196. package/components/appbar/index.scss +0 -2
  197. package/components/banner/_spec.scss +0 -83
  198. package/components/banner/_theme.scss +0 -0
  199. package/components/banner/index.scss +0 -2
  200. package/components/bottomnav/README.md +0 -85
  201. package/components/bottomnav/_spec.scss +0 -149
  202. package/components/bottomnav/_theme.scss +0 -0
  203. package/components/bottomnav/index.js +0 -117
  204. package/components/bottomnav/index.scss +0 -2
  205. package/components/bottomnav/item.js +0 -88
  206. package/components/button/README.md +0 -61
  207. package/components/button/_spec.scss +0 -162
  208. package/components/button/_theme.scss +0 -42
  209. package/components/button/index.eta +0 -32
  210. package/components/button/index.js +0 -43
  211. package/components/button/index.pug +0 -18
  212. package/components/button/index.scss +0 -2
  213. package/components/card/_spec.scss +0 -241
  214. package/components/card/_theme.scss +0 -0
  215. package/components/card/index.scss +0 -2
  216. package/components/chip/_spec.scss +0 -111
  217. package/components/chip/_theme.scss +0 -105
  218. package/components/chip/index.js +0 -23
  219. package/components/chip/index.scss +0 -2
  220. package/components/chip/item.js +0 -20
  221. package/components/datatable/_spec.scss +0 -225
  222. package/components/datatable/_theme.scss +0 -128
  223. package/components/datatable/cell.js +0 -44
  224. package/components/datatable/columnheader.js +0 -46
  225. package/components/datatable/index.js +0 -374
  226. package/components/datatable/index.scss +0 -2
  227. package/components/datatable/row.js +0 -48
  228. package/components/datatable/rowheader.js +0 -18
  229. package/components/dialog/_spec.scss +0 -203
  230. package/components/dialog/_theme.scss +0 -7
  231. package/components/dialog/index.js +0 -601
  232. package/components/dialog/index.scss +0 -2
  233. package/components/divider/_spec.scss +0 -11
  234. package/components/divider/_theme.scss +0 -0
  235. package/components/divider/index.scss +0 -2
  236. package/components/elevation/_spec.scss +0 -9
  237. package/components/elevation/_theme.scss +0 -0
  238. package/components/elevation/index.scss +0 -2
  239. package/components/fab/_spec.scss +0 -210
  240. package/components/fab/_theme.scss +0 -0
  241. package/components/fab/index.js +0 -99
  242. package/components/fab/index.scss +0 -2
  243. package/components/grid/_spec.scss +0 -169
  244. package/components/grid/_theme.scss +0 -0
  245. package/components/grid/index.scss +0 -2
  246. package/components/layout/_mixins.scss +0 -11
  247. package/components/layout/_spec.scss +0 -916
  248. package/components/layout/_theme.scss +0 -19
  249. package/components/layout/index.js +0 -454
  250. package/components/layout/index.scss +0 -2
  251. package/components/list/_spec.scss +0 -363
  252. package/components/list/_theme.scss +0 -102
  253. package/components/list/content.js +0 -106
  254. package/components/list/index.js +0 -256
  255. package/components/list/index.scss +0 -2
  256. package/components/list/item.js +0 -167
  257. package/components/list/secondary.js +0 -45
  258. package/components/menu/_spec.scss +0 -329
  259. package/components/menu/_theme.scss +0 -0
  260. package/components/menu/index.js +0 -705
  261. package/components/menu/index.scss +0 -2
  262. package/components/menu/item.js +0 -231
  263. package/components/progress/_spec.scss +0 -156
  264. package/components/progress/_theme.scss +0 -0
  265. package/components/progress/index.js +0 -36
  266. package/components/progress/index.scss +0 -2
  267. package/components/selection/_spec.scss +0 -376
  268. package/components/selection/_theme.scss +0 -134
  269. package/components/selection/index.eta +0 -60
  270. package/components/selection/index.js +0 -70
  271. package/components/selection/index.pug +0 -30
  272. package/components/selection/index.scss +0 -2
  273. package/components/selection/input.js +0 -54
  274. package/components/selection/radiogroup.js +0 -40
  275. package/components/slider/_spec.scss +0 -59
  276. package/components/slider/_theme.scss +0 -0
  277. package/components/slider/index.scss +0 -2
  278. package/components/snackbar/_spec.scss +0 -150
  279. package/components/snackbar/_theme.scss +0 -0
  280. package/components/snackbar/index.js +0 -338
  281. package/components/snackbar/index.scss +0 -2
  282. package/components/tab/_spec.scss +0 -220
  283. package/components/tab/_theme.scss +0 -0
  284. package/components/tab/content.js +0 -210
  285. package/components/tab/index.js +0 -257
  286. package/components/tab/index.scss +0 -2
  287. package/components/tab/item.js +0 -88
  288. package/components/tab/list.js +0 -196
  289. package/components/tab/panel.js +0 -54
  290. package/components/textfield/README.md +0 -179
  291. package/components/textfield/_spec.scss +0 -763
  292. package/components/textfield/_theme.scss +0 -264
  293. package/components/textfield/index.eta +0 -74
  294. package/components/textfield/index.js +0 -160
  295. package/components/textfield/index.pug +0 -30
  296. package/components/textfield/index.scss +0 -2
  297. package/components/tooltip/_spec.scss +0 -185
  298. package/components/tooltip/_theme.scss +0 -0
  299. package/components/tooltip/index.scss +0 -2
  300. package/components/type/_spec.scss +0 -227
  301. package/components/type/_theme.scss +0 -0
  302. package/components/type/index.scss +0 -2
  303. package/core/_breakpoint.scss +0 -189
  304. package/core/_elevation.scss +0 -78
  305. package/core/_length.scss +0 -8
  306. package/core/_motion.scss +0 -31
  307. package/core/_platform.scss +0 -12
  308. package/core/_type.scss +0 -128
  309. package/core/aria/attributes.js +0 -141
  310. package/core/aria/button.js +0 -49
  311. package/core/aria/keyboard.js +0 -92
  312. package/core/aria/rovingtabindex.js +0 -175
  313. package/core/aria/tab.js +0 -59
  314. package/core/document/index.js +0 -39
  315. package/core/overlay/_spec.scss +0 -28
  316. package/core/overlay/_theme.scss +0 -147
  317. package/core/overlay/index.js +0 -95
  318. package/core/overlay/index.scss +0 -2
  319. package/core/ripple/_spec.scss +0 -196
  320. package/core/ripple/_theme.scss +0 -20
  321. package/core/ripple/index.js +0 -286
  322. package/core/ripple/index.scss +0 -2
  323. package/core/theme/_aliases.scss +0 -15
  324. package/core/theme/_config.scss +0 -8
  325. package/core/theme/_functions.scss +0 -22
  326. package/core/theme/_palettes.scss +0 -405
  327. package/core/theme/_spec.scss +0 -0
  328. package/core/theme/_theme.scss +0 -268
  329. package/core/theme/index.js +0 -50
  330. package/core/theme/index.scss +0 -4
  331. package/core/throttler.js +0 -42
  332. package/core/transition/index.js +0 -465
  333. package/docs/_flex.scss +0 -28
  334. package/docs/_menuoptions.js +0 -183
  335. package/docs/_partials/_androidnavbar.eta +0 -5
  336. package/docs/_partials/_androidstatusbar.eta +0 -13
  337. package/docs/_partials/_appbar.eta +0 -27
  338. package/docs/_partials/_buttontest.eta +0 -31
  339. package/docs/_partials/_header.eta +0 -146
  340. package/docs/_partials/_navlistitem.eta +0 -16
  341. package/docs/_partials/_target.eta +0 -1
  342. package/docs/_sample-utils.js +0 -88
  343. package/docs/_storage.js +0 -33
  344. package/docs/docs.scss +0 -331
  345. package/docs/framework.scss +0 -26
  346. package/docs/index.eta +0 -12
  347. package/docs/index.js +0 -7
  348. package/docs/pages/appbar.eta +0 -108
  349. package/docs/pages/appbar.js +0 -0
  350. package/docs/pages/bottomnav.eta +0 -188
  351. package/docs/pages/bottomnav.js +0 -118
  352. package/docs/pages/button.eta +0 -124
  353. package/docs/pages/button.js +0 -224
  354. package/docs/pages/card.eta +0 -90
  355. package/docs/pages/card.js +0 -175
  356. package/docs/pages/chip.eta +0 -122
  357. package/docs/pages/chip.js +0 -80
  358. package/docs/pages/color.eta +0 -143
  359. package/docs/pages/color.js +0 -261
  360. package/docs/pages/datatable.eta +0 -323
  361. package/docs/pages/datatable.js +0 -160
  362. package/docs/pages/dialog.eta +0 -184
  363. package/docs/pages/dialog.js +0 -174
  364. package/docs/pages/dom.eta +0 -26
  365. package/docs/pages/dom.js +0 -140
  366. package/docs/pages/elevation.eta +0 -35
  367. package/docs/pages/elevation.js +0 -0
  368. package/docs/pages/fab.eta +0 -99
  369. package/docs/pages/fab.js +0 -43
  370. package/docs/pages/grid.eta +0 -135
  371. package/docs/pages/grid.js +0 -128
  372. package/docs/pages/layout.eta +0 -8
  373. package/docs/pages/layout.js +0 -0
  374. package/docs/pages/list.eta +0 -465
  375. package/docs/pages/list.js +0 -8
  376. package/docs/pages/menu.eta +0 -274
  377. package/docs/pages/menu.js +0 -213
  378. package/docs/pages/overlay.eta +0 -69
  379. package/docs/pages/overlay.js +0 -3
  380. package/docs/pages/progress.eta +0 -23
  381. package/docs/pages/progress.js +0 -12
  382. package/docs/pages/ripple.eta +0 -27
  383. package/docs/pages/ripple.js +0 -3
  384. package/docs/pages/search.eta +0 -242
  385. package/docs/pages/search.js +0 -226
  386. package/docs/pages/selection.eta +0 -107
  387. package/docs/pages/selection.js +0 -12
  388. package/docs/pages/slider.eta +0 -23
  389. package/docs/pages/slider.js +0 -0
  390. package/docs/pages/snackbar.eta +0 -83
  391. package/docs/pages/snackbar.js +0 -157
  392. package/docs/pages/tab.eta +0 -407
  393. package/docs/pages/tab.js +0 -152
  394. package/docs/pages/textfield.eta +0 -487
  395. package/docs/pages/textfield.js +0 -257
  396. package/docs/pages/tooltip.eta +0 -92
  397. package/docs/pages/tooltip.js +0 -0
  398. package/docs/pages/transition.eta +0 -117
  399. package/docs/pages/transition.js +0 -52
  400. package/docs/pages/type.eta +0 -31
  401. package/docs/pages/type.js +0 -0
  402. package/docs/postrender.js +0 -41
  403. package/docs/prerender.js +0 -16
  404. package/docs/pwa/_dialogs.eta +0 -143
  405. package/docs/pwa/_menus.eta +0 -16
  406. package/docs/pwa/pwa-prerender.js +0 -3
  407. package/docs/pwa/pwa.eta +0 -478
  408. package/docs/pwa/pwa.js +0 -298
  409. package/docs/pwa/pwa.scss +0 -31
  410. package/docs/themes/theme-colored.scss +0 -15
  411. package/docs/themes/theme-default.scss +0 -3
  412. package/index.scss +0 -27
  413. package/jsconfig.json +0 -16
  414. package/scripts/deploy-docs.sh +0 -9
  415. package/templates/index.eta +0 -2
  416. package/templates/index.pug +0 -3
  417. package/tsconfig.json +0 -16
  418. package/webpack.config.js +0 -304
@@ -1,175 +0,0 @@
1
- import { setTextNode } from '../../core/dom.js';
2
- import { convertElementToCode } from '../_sample-utils.js';
3
-
4
- /** @type {HTMLElement} */
5
- let sampleComponent;
6
- /** @type {HTMLElement} */
7
- let mediaElement;
8
- /** @type {HTMLElement} */
9
- let actionsElement;
10
- /** @type {HTMLElement} */
11
- let closeActionElement;
12
- /** @type {HTMLElement} */
13
- let primaryButtonElement;
14
-
15
- /** @return {void} */
16
- function updateSampleCode() {
17
- const htmlCodeElement = document.getElementsByClassName('component-html')[0];
18
- setTextNode(htmlCodeElement, convertElementToCode(
19
- sampleComponent,
20
- document.getElementById('usePug').getAttribute('aria-pressed') === 'true',
21
- ));
22
- }
23
-
24
- /** @return {void} */
25
- function setupPugButton() {
26
- const pugButton = document.getElementById('usePug');
27
- pugButton.addEventListener('click', () => {
28
- if (pugButton.getAttribute('aria-pressed') === 'true') {
29
- pugButton.setAttribute('aria-pressed', 'false');
30
- } else {
31
- pugButton.setAttribute('aria-pressed', 'true');
32
- }
33
- updateSampleCode();
34
- });
35
- }
36
-
37
- /**
38
- * @param {Event} event
39
- * @return {void}
40
- */
41
- function onOptionChange(event) {
42
- const { name, value, checked } = /** @type {HTMLInputElement} */ (event.target);
43
- let raiseOptions;
44
- switch (name) {
45
- case 'elevation':
46
- sampleComponent.removeAttribute('mdw-elevation');
47
- switch (value) {
48
- case 'auto':
49
- break;
50
- default:
51
- sampleComponent.setAttribute('mdw-elevation', value);
52
- break;
53
- }
54
- break;
55
- case 'raise-focus-within':
56
- case 'raise-hover':
57
- raiseOptions = (sampleComponent.getAttribute('mdw-raised') || '').split(' ');
58
- if (checked) {
59
- if (!raiseOptions.includes(name.slice('raise-'.length))) {
60
- raiseOptions.push(name.slice('raise-'.length));
61
- }
62
- } else {
63
- raiseOptions = raiseOptions.filter((o) => o !== name.slice('raise-'.length));
64
- }
65
- raiseOptions.sort();
66
- if (raiseOptions.length) {
67
- sampleComponent.setAttribute('mdw-raised', raiseOptions.join(' ').trim());
68
- } else {
69
- sampleComponent.removeAttribute('mdw-raised');
70
- }
71
- break;
72
- case 'media-placement':
73
- if (mediaElement.parentElement) {
74
- mediaElement.remove();
75
- }
76
- switch (value) {
77
- default:
78
- case 'none':
79
- break;
80
- case 'top':
81
- sampleComponent.insertBefore(mediaElement, sampleComponent.getElementsByClassName('mdw-card__start')[0]);
82
- break;
83
- case 'middle':
84
- sampleComponent.insertBefore(mediaElement, sampleComponent.getElementsByClassName('mdw-card__supporting-text')[0]);
85
- break;
86
- case 'bottom':
87
- sampleComponent.appendChild(mediaElement);
88
- break;
89
- }
90
- break;
91
- case 'media-ratio':
92
- switch (value) {
93
- default:
94
- case 'none':
95
- mediaElement.removeAttribute('mdw-ratio');
96
- break;
97
- case '16:9':
98
- mediaElement.setAttribute('mdw-ratio', '16:9');
99
- break;
100
- case '3:2':
101
- mediaElement.setAttribute('mdw-ratio', '3:2');
102
- break;
103
- case '4:3':
104
- mediaElement.setAttribute('mdw-ratio', '4:3');
105
- break;
106
- case '1:1':
107
- mediaElement.setAttribute('mdw-ratio', '1:1');
108
- break;
109
- }
110
- break;
111
- case 'primary-action':
112
- if (checked) {
113
- if (!primaryButtonElement.parentElement) {
114
- sampleComponent.insertBefore(primaryButtonElement, sampleComponent.firstChild);
115
- }
116
- } else if (primaryButtonElement.parentElement) {
117
- primaryButtonElement.remove();
118
- }
119
- break;
120
- case 'secondary-actions':
121
- if (checked) {
122
- if (!actionsElement.parentElement) {
123
- sampleComponent.appendChild(actionsElement);
124
- }
125
- } else if (actionsElement.parentElement) {
126
- actionsElement.remove();
127
- }
128
- break;
129
- case 'close-action':
130
- if (checked) {
131
- if (!closeActionElement.parentElement) {
132
- sampleComponent.insertBefore(closeActionElement, sampleComponent.getElementsByClassName('mdw-card__header')[0]);
133
- }
134
- } else if (closeActionElement.parentElement) {
135
- closeActionElement.remove();
136
- }
137
- break;
138
- case 'surface':
139
- sampleComponent.setAttribute('mdw-surface', value.replace(/ (light|dark)/, ''));
140
- if (!value.includes(' light')) {
141
- sampleComponent.removeAttribute('mdw-light');
142
- } else {
143
- sampleComponent.setAttribute('mdw-light', '');
144
- }
145
- if (!value.includes(' dark')) {
146
- sampleComponent.removeAttribute('mdw-dark');
147
- } else {
148
- sampleComponent.setAttribute('mdw-dark', '');
149
- }
150
- if (value === 'card') {
151
- sampleComponent.classList.remove('mdw-theme');
152
- } else {
153
- sampleComponent.classList.add('mdw-theme');
154
- }
155
- break;
156
- default:
157
- }
158
- updateSampleCode();
159
- }
160
-
161
- /** @return {void} */
162
- function setupComponentOptions() {
163
- sampleComponent = document.querySelector('.component-sample .mdw-card');
164
- mediaElement = /** @type {HTMLElement} */ (sampleComponent.getElementsByClassName('mdw-card__media')[0]);
165
- actionsElement = /** @type {HTMLElement} */ (sampleComponent.getElementsByClassName('mdw-card__actions')[0]);
166
- primaryButtonElement = /** @type {HTMLElement} */ (sampleComponent.getElementsByClassName('mdw-card__button')[0]);
167
- closeActionElement = /** @type {HTMLElement} */ (sampleComponent.getElementsByClassName('mdw-card__end')[0]);
168
- for (const el of document.querySelectorAll('input[name]')) {
169
- el.addEventListener('change', onOptionChange);
170
- }
171
- }
172
-
173
- setupComponentOptions();
174
- setupPugButton();
175
- updateSampleCode();
@@ -1,122 +0,0 @@
1
- <% var T = '../../templates/index.eta' %>
2
- <% layout('../_partials/_header.eta', {page: 'chip'}) %>
3
- <div class="mdw-grid docs-chip" mdw-margin-top mdw-margin-bottom mdw-stretch>
4
- <div class="mdw-grid__item" mdw-colspan="100%">
5
- <h5 class="mdw-type" mdw-baseline-next="36">Chips are compact elements that represent an input, attribute, or action.</h5>
6
- <p class="mdw-type">Chips allow users to enter information, make selections, filter content, or trigger actions. Chips should appear dynamically as a group of multiple interactive elements. Unlike buttons, which should be a consistent and familiar call to action, one that a user expects to appear as the same action in the same general area.</p>
7
- </div>
8
- <div class="mdw-grid__item" mdw-colspan="6">
9
- <div class="mdw-grid__content component-sample">
10
- <div class="component-sample__container">
11
- <div>
12
- <p>Action
13
- <div class="mdw-chip" mdw-type="action">
14
- <div class="mdw-chip__item">
15
- <div class="mdw-chip__input"></div>
16
- <div class="mdw-chip__text">Send Message</div>
17
- </div>
18
- <div class="mdw-chip__item">
19
- <div class="mdw-chip__input"></div>
20
- <div class="mdw-chip__text">Call</div>
21
- </div>
22
- </div>
23
- </p>
24
- <p>Input</p>
25
- <div class="mdw-chip" mdw-type="input">
26
- <div class="mdw-chip__item">
27
- <div class="mdw-chip__input"></div>
28
- <div class="mdw-chip__text">Portland</div>
29
- <div class="mdw-chip__thumbnail material-icons">place</div>
30
- <div class="mdw-chip__remove material-icons">cancel</div>
31
- </div>
32
- <div class="mdw-chip__item">
33
- <div class="mdw-chip__input"></div>
34
- <div class="mdw-chip__text">Biking</div>
35
- <div class="mdw-chip__thumbnail material-icons">directions_bike</div>
36
- <div class="mdw-chip__remove material-icons">cancel</div>
37
- </div>
38
- </div>
39
- <p>Choice</p>
40
- <form class="mdw-chip mdw-theme" mdw-type="choice" mdw-ink="secondary">
41
- <label class="mdw-chip__item">
42
- <input class="mdw-chip__input" type="radio" name="sample" value="a" />
43
- <div class="mdw-chip__text">Apple</div>
44
- </label>
45
- <label class="mdw-chip__item">
46
- <input class="mdw-chip__input" type="radio" name="sample" value="b" />
47
- <div class="mdw-chip__text">Banana</div>
48
- </label>
49
- <label class="mdw-chip__item">
50
- <input class="mdw-chip__input" type="radio" name="sample" value="c" />
51
- <div class="mdw-chip__text">Cranberry</div>
52
- </label>
53
- <label class="mdw-chip__item">
54
- <input class="mdw-chip__input" type="radio" name="sample" value="d" />
55
- <div class="mdw-chip__text">Dragon Fruit</div>
56
- </label>
57
- </form>
58
- <p>Filter</p>
59
- <div>
60
- <div class="mdw-chip" mdw-type="filter">
61
- <label class="mdw-chip__item">
62
- <input class="mdw-chip__input" type="checkbox" />
63
- <div class="mdw-chip__text">Elevator</div>
64
- <div class="mdw-chip__checkmark material-icons">check</div>
65
- </label>
66
- <label class="mdw-chip__item">
67
- <input class="mdw-chip__input" type="checkbox" />
68
- <div class="mdw-chip__text">Washer/Dryer</div>
69
- <div class="mdw-chip__checkmark material-icons">check</div>
70
- </label>
71
- <label class="mdw-chip__item">
72
- <input class="mdw-chip__input" type="checkbox" />
73
- <div class="mdw-chip__text">Fireplace</div>
74
- <div class="mdw-chip__checkmark material-icons">check</div>
75
- </label>
76
- <label class="mdw-chip__item">
77
- <input class="mdw-chip__input" type="checkbox" />
78
- <div class="mdw-chip__text">Wheelchair access</div>
79
- <div class="mdw-chip__checkmark material-icons">check</div>
80
- </label>
81
- <label class="mdw-chip__item">
82
- <input class="mdw-chip__input" type="checkbox" />
83
- <div class="mdw-chip__text">Dogs ok</div>
84
- <div class="mdw-chip__checkmark material-icons">check</div>
85
- </label>
86
- <label class="mdw-chip__item">
87
- <input class="mdw-chip__input" type="checkbox" />
88
- <div class="mdw-chip__text">Cats ok</div>
89
- <div class="mdw-chip__checkmark material-icons">check</div>
90
- </label>
91
- </div>
92
- </div>
93
- </div>
94
- </div>
95
- </div>
96
- </div>
97
- <div class="mdw-grid__item demo-options" mdw-colspan="4">
98
- <div class="mdw-type" mdw-style="subtitle">Javascript</div>
99
- <div class="docs-option-list">
100
- <%~ includeFile(T, { selection: { ink:'secondary', name:'javascript', type:'radio', value:'required', disabled:true, text:'Required' }}) %>
101
- <%~ includeFile(T, { selection: { ink:'secondary', name:'javascript', type:'radio', value:'optional', checked:true, text:'Optional' }}) %>
102
- <%~ includeFile(T, { selection: { ink:'secondary', name:'javascript', type:'radio', value:'none', text:'None' }}) %>
103
- </div>
104
- <div class="mdw-type" mdw-style="subtitle">Options</div>
105
- <div class="docs-option-list">
106
- <%~ includeFile(T, { selection: { ink:'secondary', name:'outlined', text:'Outlined' }}) %>
107
- </div>
108
- </div>
109
- <div class="mdw-grid__item" mdw-colspan="100%" style="max-height:0;"></div>
110
- <div class="mdw-grid__item" mdw-colspan="6">
111
- <h6 class="mdw-type">HTML Code</h6>
112
- <div class="mdw-card mdw-theme component-code component-html" mdw-surface="card" mdw-border-ink></div>
113
- </div>
114
- <div class="mdw-grid__item" mdw-colspan="100%">
115
- <h6 class="mdw-type">Javascript Code</h6>
116
- <div class="mdw-card mdw-theme component-code component-js" mdw-surface="card" mdw-border-ink></div>
117
- </div>
118
- <div class="mdw-grid__item" mdw-colspan="100%">
119
- <h6 class="mdw-type">Samples</h6>
120
- </div>
121
- </div>
122
- <script src="chip.min.js"></script>
@@ -1,80 +0,0 @@
1
- import * as Chip from '../../components/chip/index.js';
2
- import { convertElementToCode } from '../_sample-utils.js';
3
-
4
- /** @type {Iterable<HTMLElement>} */
5
- let sampleComponents;
6
-
7
- /** @return {void} */
8
- function updateSampleCode() {
9
- const jsRequired = document.querySelector('input[name="javascript"][value="required"]').checked;
10
- const jsOptional = document.querySelector('input[name="javascript"][value="optional"]').checked;
11
- const useJS = jsRequired || jsOptional;
12
-
13
- // Strip JS related elements and attributes
14
- for (const element of sampleComponents) { Chip.detach(element); }
15
-
16
- const htmlCodeElement = document.getElementsByClassName('component-html')[0];
17
- const sampleContainer = document.querySelector('.component-sample__container').firstElementChild;
18
- htmlCodeElement.textContent = convertElementToCode(sampleContainer);
19
-
20
- // Reattach JS if requested
21
- if (useJS) {
22
- for (const element of sampleComponents) { Chip.attach(element); }
23
- }
24
-
25
- const jsCodeElement = document.getElementsByClassName('component-js')[0];
26
- jsCodeElement.textContent = 'mdw.Chip.attach(chipElement);';
27
- }
28
-
29
- /** @return {void} */
30
- function initializeSampleComponents() {
31
- for (const element of document.querySelectorAll('.js .mdw-tab')) { Chip.attach(element); }
32
- for (const formElement of document.getElementsByTagName('form')) {
33
- formElement.reset();
34
- }
35
- }
36
-
37
- /**
38
- * @param {Event} event
39
- * @return {void}
40
- */
41
- function onOptionChange(event) {
42
- const inputElement = /** @type {HTMLInputElement} */ (event.currentTarget);
43
- const { name, value, checked } = inputElement;
44
-
45
- switch (name) {
46
- case 'framework':
47
- switch (value) {
48
- case 'javascript':
49
- break;
50
- case 'css':
51
- break;
52
- default:
53
- }
54
- break;
55
- case 'outlined': {
56
- for (const el of sampleComponents) {
57
- if (checked) {
58
- el.setAttribute('mdw-outlined', '');
59
- } else {
60
- el.removeAttribute('mdw-outlined');
61
- }
62
- }
63
- break;
64
- }
65
- default:
66
- }
67
- updateSampleCode();
68
- }
69
-
70
- /** @return {void} */
71
- function setupComponentOptions() {
72
- sampleComponents = document.querySelectorAll('.component-sample .mdw-chip');
73
- for (const el of document.querySelectorAll('.demo-options input[name]')) {
74
- el.addEventListener('change', onOptionChange);
75
- }
76
- }
77
-
78
- initializeSampleComponents();
79
- setupComponentOptions();
80
- updateSampleCode();
@@ -1,143 +0,0 @@
1
- <% layout('../_partials/_header.eta', {page: 'color'}) %>
2
- <div class="mdw-grid" mdw-margin-top mdw-margin-bottom mdw-columns="4" id="color-page-options">
3
- <div class="mdw-grid__item" mdw-colspan="4">
4
- <div class="mdw-grid__content mdw-theme" mdw-elevation="8">
5
- <div id="color-sample-area">
6
- <a class="demo-core-item mdw-overlay mdw-elevation mdw-ripple mdw-theme" id="sample-button" tabindex="0" mdw-elevation="1" mdw-surface="binary" mdw-ink="secondary contrast">Enabled</a>
7
- <a class="demo-core-item mdw-overlay mdw-elevation mdw-ripple mdw-theme" id="sample-button__selected" tabindex="0" mdw-elevation="1" mdw-surface="binary" mdw-ink="secondary contrast" aria-selected="true">Selected</a>
8
- <a class="demo-core-item mdw-overlay mdw-elevation mdw-ripple mdw-theme" id="sample-button__activated" tabindex="0" mdw-elevation="1" mdw-surface="binary" mdw-ink="secondary contrast" aria-pressed="true">Activated</a>
9
- <div style="margin:8px">
10
- <p class="mdw-type"><span>Surface: </span><span class="mdw-theme" id="sample-surface" mdw-ink="medium"></span></p>
11
- <p class="mdw-type"><span>Ink: </span><span class="mdw-theme" id="sample-ink" mdw-ink="medium"></span></p>
12
- </div>
13
- <div style="margin:8px">
14
- <p class="mdw-type"><span>Text Contrast: </span><span class="mdw-theme" id="sample-contrast__text" mdw-ink="medium"></span><span> / 4.5</span></p>
15
- <p class="mdw-type"><span>Selected Contrast: </span><span class="mdw-theme" id="sample-contrast__selected" mdw-ink="medium"></span><span> / 4.5</span></p>
16
- <p class="mdw-type"><span>Activated Contrast: </span><span class="mdw-theme" id="sample-contrast__activated" mdw-ink="medium"></span><span> / 4.5</span></p>
17
- </div>
18
- </div>
19
- </div>
20
- </div>
21
- <div class="mdw-grid__item" mdw-colspan="2">
22
- <div class="mdw-grid__content">
23
- <div class="mdw-type" mdw-style="subtitle">Ink</div>
24
- <div>
25
- <label class="mdw-textfield mdw-theme" mdw-ink="secondary" mdw-outlined>
26
- <select class="mdw-textfield__input" name="ink-color">
27
- <option class="mdw-theme" mdw-surface="card" value="default">Default</option>
28
- <option class="mdw-theme" mdw-surface="card" value="black">Black</option>
29
- <option class="mdw-theme" mdw-surface="card" value="white">White</option>
30
- <option class="mdw-theme" mdw-surface="card" value="primary">Primary</option>
31
- <option class="mdw-theme" mdw-surface="card" value="secondary" selected>Secondary</option>
32
- <option class="mdw-theme" mdw-surface="card" value="warn">Warn</option>
33
- <option class="mdw-theme" mdw-surface="card" value="amber">Amber</option>
34
- <option class="mdw-theme" mdw-surface="card" value="blue">Blue</option>
35
- <option class="mdw-theme" mdw-surface="card" value="cyan">Cyan</option>
36
- <option class="mdw-theme" mdw-surface="card" value="red">Red</option>
37
- <option class="mdw-theme" mdw-surface="card" value="green">Green</option>
38
- <option class="mdw-theme" mdw-surface="card" value="deeppurple">Deeppurple</option>
39
- <option class="mdw-theme" mdw-surface="card" value="purple">Purple</option>
40
- <option class="mdw-theme" mdw-surface="card" value="yellow">Yellow</option>
41
- <option class="mdw-theme" mdw-surface="card" value="teal">Teal</option>
42
- </select>
43
- <div class="mdw-textfield__icon" mdw-dropdown></div>
44
- <div class="mdw-textfield__border">
45
- <div class="mdw-textfield__outline-gap">
46
- <div class="mdw-textfield__label">Color</div>
47
- </div>
48
- </div>
49
- </label>
50
- <label class="mdw-textfield mdw-theme" mdw-ink="secondary" mdw-outlined>
51
- <select class="mdw-textfield__input" name="ink-tone">
52
- <option class="mdw-theme" mdw-surface="card" value="">Auto</option>
53
- <option class="mdw-theme" mdw-surface="card" value="light">Light</option>
54
- <option class="mdw-theme" mdw-surface="card" value="contrast" auto>Contrast</option>
55
- <option class="mdw-theme" mdw-surface="card" value="A100">A100</option>
56
- <option class="mdw-theme" mdw-surface="card" value="A200">A200</option>
57
- <option class="mdw-theme" mdw-surface="card" value="A400">A400</option>
58
- <option class="mdw-theme" mdw-surface="card" value="A700">A700</option>
59
- </select>
60
- <div class="mdw-textfield__icon" mdw-dropdown></div>
61
- <div class="mdw-textfield__border">
62
- <div class="mdw-textfield__outline-gap">
63
- <div class="mdw-textfield__label">Tone</div>
64
- </div>
65
- </div>
66
- </label>
67
- <label class="mdw-textfield mdw-theme" mdw-ink="secondary" mdw-outlined>
68
- <select class="mdw-textfield__input" name="ink-opacity">
69
- <option class="mdw-theme" mdw-surface="card" value="" selected>Auto</option>
70
- <option class="mdw-theme" mdw-surface="card" value="solid">Solid</option>
71
- <option class="mdw-theme" mdw-surface="card" value="high">High</option>
72
- <option class="mdw-theme" mdw-surface="card" value="medium">Medium</option>
73
- <option class="mdw-theme" mdw-surface="card" value="inactive">Inactive</option>
74
- <option class="mdw-theme" mdw-surface="card" value="divider">Divider</option>
75
- </select>
76
- <div class="mdw-textfield__icon" mdw-dropdown></div>
77
- <div class="mdw-textfield__border">
78
- <div class="mdw-textfield__outline-gap">
79
- <div class="mdw-textfield__label">Opacity</div>
80
- </div>
81
- </div>
82
- </label>
83
- </div>
84
- </div>
85
- </div>
86
- <div class="mdw-grid__item" mdw-colspan="2">
87
- <div class="mdw-grid__content">
88
- <div class="mdw-type" mdw-style="subtitle">Surface</div>
89
- <div id="color-page-options">
90
- <label class="mdw-textfield mdw-theme" mdw-ink="secondary" mdw-outlined>
91
- <select class="mdw-textfield__input" name="surface-color">
92
- <option class="mdw-theme" mdw-surface="card" value="card">Card</option>
93
- <option class="mdw-theme" mdw-surface="card" value="binary" selected>Binary</option>
94
- <option class="mdw-theme" mdw-surface="card" value="black">Black</option>
95
- <option class="mdw-theme" mdw-surface="card" value="white">White</option>
96
- <option class="mdw-theme" mdw-surface="card" value="background">Background</option>
97
- <option class="mdw-theme" mdw-surface="card" value="primary">Primary</option>
98
- <option class="mdw-theme" mdw-surface="card" value="secondary">Secondary</option>
99
- <option class="mdw-theme" mdw-surface="card" value="warn">Warn</option>
100
- <option class="mdw-theme" mdw-surface="card" value="amber">Amber</option>
101
- <option class="mdw-theme" mdw-surface="card" value="blue">Blue</option>
102
- <option class="mdw-theme" mdw-surface="card" value="cyan">Cyan</option>
103
- <option class="mdw-theme" mdw-surface="card" value="red">Red</option>
104
- <option class="mdw-theme" mdw-surface="card" value="green">Green</option>
105
- <option class="mdw-theme" mdw-surface="card" value="deeppurple">Deeppurple</option>
106
- <option class="mdw-theme" mdw-surface="card" value="purple">Purple</option>
107
- <option class="mdw-theme" mdw-surface="card" value="yellow">Yellow</option>
108
- <option class="mdw-theme" mdw-surface="card" value="teal">Teal</option>
109
- </select>
110
- <div class="mdw-textfield__icon" mdw-dropdown></div>
111
- <div class="mdw-textfield__border">
112
- <div class="mdw-textfield__outline-gap">
113
- <div class="mdw-textfield__label">Color</div>
114
- </div>
115
- </div>
116
- </label>
117
- <label class="mdw-textfield mdw-theme" mdw-ink="secondary" mdw-outlined>
118
- <select class="mdw-textfield__input" name="surface-tone">
119
- <option class="mdw-theme" mdw-surface="card" value="" selected>Default</option>
120
- <option class="mdw-theme" mdw-surface="card" value="alt">Alternate</option>
121
- <option class="mdw-theme" mdw-surface="card" value="50">50</option>
122
- <option class="mdw-theme" mdw-surface="card" value="100">100</option>
123
- <option class="mdw-theme" mdw-surface="card" value="200">200</option>
124
- <option class="mdw-theme" mdw-surface="card" value="300">300</option>
125
- <option class="mdw-theme" mdw-surface="card" value="400">400</option>
126
- <option class="mdw-theme" mdw-surface="card" value="500">500</option>
127
- <option class="mdw-theme" mdw-surface="card" value="600">600</option>
128
- <option class="mdw-theme" mdw-surface="card" value="700">700</option>
129
- <option class="mdw-theme" mdw-surface="card" value="800">800</option>
130
- <option class="mdw-theme" mdw-surface="card" value="900">900</option>
131
- </select>
132
- <div class="mdw-textfield__icon" mdw-dropdown></div>
133
- <div class="mdw-textfield__border">
134
- <div class="mdw-textfield__outline-gap">
135
- <div class="mdw-textfield__label">Tone</div>
136
- </div>
137
- </div>
138
- </label>
139
- </div>
140
- </div>
141
- </div>
142
- </div>
143
- <script src="color.min.js"></script>