├── .babelrc.js ├── .browserslistrc ├── .coveralls.yml ├── .dev-lib ├── .editorconfig ├── .env.dist ├── .eslintignore ├── .eslintrc.json ├── .github ├── ISSUE_TEMPLATE │ ├── bug_report.md │ ├── feature_request.md │ └── help_request.md └── PULL_REQUEST_TEMPLATE.md ├── .gitignore ├── .npmrc ├── .nvmrc ├── .prettierrc.json ├── .rtlcssrc ├── .stylelintignore ├── .stylelintrc.json ├── .travis.yml ├── Gruntfile.js ├── bin ├── deploy.sh ├── includes.sh ├── local-dev │ └── wordpress │ │ ├── Dockerfile │ │ └── config │ │ ├── mysql │ │ └── wptests.sql │ │ └── php │ │ ├── php.ini │ │ └── xdebug.ini ├── logs.sh ├── phpunit.sh ├── start.sh ├── stop.sh ├── tag-built.sh └── xdebug.sh ├── code_of_conduct.md ├── composer.json ├── contributing.md ├── contributing ├── engineering.md └── project-management.md ├── docker-compose.yml ├── jest.config.js ├── package-lock.json ├── package.json ├── phpcs-theme.xml ├── phpcs.xml ├── phpunit.xml ├── plugin ├── LICENSE ├── assets │ ├── css │ │ └── src │ │ │ ├── admin.css │ │ │ ├── base │ │ │ └── variables.css │ │ │ ├── block-editor.css │ │ │ ├── components │ │ │ ├── contact-form.css │ │ │ ├── core.css │ │ │ ├── masonry-grid.css │ │ │ └── material.css │ │ │ ├── conf │ │ │ ├── index.css │ │ │ └── media.css │ │ │ ├── customize-controls.css │ │ │ ├── customize-preview.css │ │ │ ├── front-end.css │ │ │ ├── getting-started.css │ │ │ ├── gsm │ │ │ ├── base.css │ │ │ ├── content.css │ │ │ ├── index.css │ │ │ ├── navigation.css │ │ │ ├── notice.css │ │ │ ├── tab.css │ │ │ └── tabs.css │ │ │ ├── material-components.css │ │ │ ├── mixins.css │ │ │ ├── overrides.css │ │ │ ├── wizard.css │ │ │ └── wizard │ │ │ ├── base.css │ │ │ ├── content.css │ │ │ ├── index.css │ │ │ ├── navigation.css │ │ │ ├── notice.css │ │ │ ├── progress.css │ │ │ └── switch.css │ ├── fonts │ │ ├── google-fonts.json │ │ ├── icons.codepoints │ │ └── icons.json │ ├── images │ │ ├── baseline.svg │ │ ├── blossom.svg │ │ ├── crane.svg │ │ ├── custom.svg │ │ ├── featured.png │ │ ├── fortnightly.svg │ │ ├── icon-collections │ │ │ ├── filled.svg │ │ │ ├── outlined.svg │ │ │ ├── rounded.svg │ │ │ ├── sharp.svg │ │ │ └── two-tone.svg │ │ ├── jpg │ │ │ ├── 1x │ │ │ │ ├── 1-Start building.jpg │ │ │ │ ├── 2-Material theme.jpg │ │ │ │ ├── 3-Quick start examples.jpg │ │ │ │ ├── 4-Customize your material theme.jpg │ │ │ │ ├── 5-Building with material blocks.jpg │ │ │ │ ├── 6-Apply your theme.jpg │ │ │ │ ├── Banner - 1544x500px.jpg │ │ │ │ ├── Banner - 772x250px.jpg │ │ │ │ ├── Hero - 2500x1400px.jpg │ │ │ │ ├── Hero - 360x180px.jpg │ │ │ │ └── Hero - 760x360px.jpg │ │ │ └── 2x │ │ │ │ ├── 1-Start building.jpg │ │ │ │ ├── 2-Material theme.jpg │ │ │ │ ├── 3-Quick start examples.jpg │ │ │ │ ├── 4-Customize your material theme.jpg │ │ │ │ ├── 5-Building with material blocks.jpg │ │ │ │ ├── 6-Apply your theme.jpg │ │ │ │ ├── Banner - 1544x500px.jpg │ │ │ │ ├── Banner - 772x250px.jpg │ │ │ │ ├── Hero - 2500x1400px.jpg │ │ │ │ ├── Hero - 360x180px.jpg │ │ │ │ └── Hero - 760x360px.jpg │ │ ├── logo-outline-dark.svg │ │ ├── logo-outline.svg │ │ ├── onboarding │ │ │ ├── apply-your-theme.png │ │ │ ├── build-with-material-blocks.png │ │ │ ├── customize-your-theme.png │ │ │ └── material-blocks-getting-started.gif │ │ ├── plugin-logo.png │ │ ├── png │ │ │ ├── 1x │ │ │ │ ├── 1-Start building.png │ │ │ │ ├── 2-Material theme.png │ │ │ │ ├── 3-Quick start examples.png │ │ │ │ ├── 4-Customize your material theme.png │ │ │ │ ├── 5-Building with material blocks.png │ │ │ │ ├── 6-Apply your theme.png │ │ │ │ ├── Banner - 1544x500px.png │ │ │ │ ├── Banner - 772x250px.png │ │ │ │ ├── Hero - 2500x1400px.png │ │ │ │ ├── Hero - 360x180px.png │ │ │ │ └── Hero - 760x360px.png │ │ │ └── 2x │ │ │ │ ├── 1-Start building.png │ │ │ │ ├── 2-Material theme.png │ │ │ │ ├── 3-Quick start examples.png │ │ │ │ ├── 4-Customize your material theme.png │ │ │ │ ├── 5-Building with material blocks.png │ │ │ │ ├── 6-Apply your theme.png │ │ │ │ ├── Banner - 1544x500px.png │ │ │ │ ├── Banner - 772x250px.png │ │ │ │ ├── Hero - 2500x1400px.png │ │ │ │ ├── Hero - 360x180px.png │ │ │ │ └── Hero - 760x360px.png │ │ ├── preview │ │ │ ├── contact-form.jpg │ │ │ ├── handpicked-posts.jpg │ │ │ └── tab-bar.jpg │ │ └── wizard │ │ │ ├── addon-material-theme.png │ │ │ ├── addon-quick-start-examples.png │ │ │ ├── complete-build-with-blocks.png │ │ │ ├── customize-your-material-theme.png │ │ │ ├── placeholder-small.png │ │ │ ├── placeholder.png │ │ │ └── welcome.png │ ├── importer │ │ ├── demo-content.test.xml │ │ └── demo-content.xml │ └── src │ │ ├── admin │ │ ├── get-config.js │ │ └── index.js │ │ ├── block-editor │ │ ├── blocks │ │ │ ├── button │ │ │ │ ├── block.json │ │ │ │ ├── components │ │ │ │ │ ├── block-icon.js │ │ │ │ │ └── icon-types.js │ │ │ │ ├── edit.js │ │ │ │ ├── example.js │ │ │ │ ├── index.js │ │ │ │ ├── options.js │ │ │ │ ├── save.js │ │ │ │ ├── style.css │ │ │ │ ├── transforms.js │ │ │ │ └── utils │ │ │ │ │ └── has-bg.js │ │ │ ├── buttons │ │ │ │ ├── block.json │ │ │ │ ├── components │ │ │ │ │ └── block-icon.js │ │ │ │ ├── edit.js │ │ │ │ ├── example.js │ │ │ │ ├── index.js │ │ │ │ ├── save.js │ │ │ │ ├── style.css │ │ │ │ └── transforms.js │ │ │ ├── card │ │ │ │ ├── block.json │ │ │ │ ├── components │ │ │ │ │ ├── card-action-button.js │ │ │ │ │ ├── card-actions-edit.js │ │ │ │ │ ├── card-actions.js │ │ │ │ │ ├── card-image-edit.js │ │ │ │ │ ├── card-image.js │ │ │ │ │ ├── card-primary.js │ │ │ │ │ ├── card-supporting-text.js │ │ │ │ │ ├── horizontal-card-layout.js │ │ │ │ │ ├── inspector-controls-content-panel.js │ │ │ │ │ ├── inspector-controls-style-panel.js │ │ │ │ │ └── vertical-card-layout.js │ │ │ │ ├── edit.js │ │ │ │ ├── editor.css │ │ │ │ ├── example.js │ │ │ │ ├── index.js │ │ │ │ ├── save.js │ │ │ │ └── style.css │ │ │ ├── cards-collection │ │ │ │ ├── block.json │ │ │ │ ├── components │ │ │ │ │ ├── cards-collection-inspector-controls.js │ │ │ │ │ ├── cards.js │ │ │ │ │ └── focused-card-controls.js │ │ │ │ ├── constants.js │ │ │ │ ├── edit.js │ │ │ │ ├── editor.css │ │ │ │ ├── example.js │ │ │ │ ├── index.js │ │ │ │ ├── save.js │ │ │ │ └── utils │ │ │ │ │ └── get-column-span.js │ │ │ ├── common-posts-list │ │ │ │ ├── components │ │ │ │ │ ├── card-actions.js │ │ │ │ │ ├── card-header.js │ │ │ │ │ ├── card-image.js │ │ │ │ │ ├── horizontal-card-layout.js │ │ │ │ │ ├── inspector-controls.js │ │ │ │ │ ├── no-posts.js │ │ │ │ │ ├── posts-list.js │ │ │ │ │ ├── single-post.js │ │ │ │ │ ├── style-icons.js │ │ │ │ │ └── vertical-card-layout.js │ │ │ │ ├── edit-with-select.js │ │ │ │ └── style.css │ │ │ ├── contact-form │ │ │ │ ├── block.json │ │ │ │ ├── components │ │ │ │ │ ├── inspector-controls.js │ │ │ │ │ └── recaptcha-inspector-controls-panel.js │ │ │ │ ├── contact-form-context.js │ │ │ │ ├── edit.js │ │ │ │ ├── editor.css │ │ │ │ ├── index.js │ │ │ │ ├── inner-blocks │ │ │ │ │ ├── common │ │ │ │ │ │ ├── components │ │ │ │ │ │ │ ├── inspector-controls.js │ │ │ │ │ │ │ ├── text-input-edit.js │ │ │ │ │ │ │ ├── text-input-element.js │ │ │ │ │ │ │ ├── text-input-save.js │ │ │ │ │ │ │ ├── textarea-input-edit.js │ │ │ │ │ │ │ ├── textarea-input-element.js │ │ │ │ │ │ │ └── textarea-input-save.js │ │ │ │ │ │ ├── editor.css │ │ │ │ │ │ └── style.css │ │ │ │ │ ├── email-input-field │ │ │ │ │ │ ├── block-icon.js │ │ │ │ │ │ └── index.js │ │ │ │ │ ├── message-input-field │ │ │ │ │ │ ├── block-icon.js │ │ │ │ │ │ └── index.js │ │ │ │ │ ├── name-input-field │ │ │ │ │ │ ├── block-icon.js │ │ │ │ │ │ └── index.js │ │ │ │ │ ├── short-text-input-field │ │ │ │ │ │ ├── block-icon.js │ │ │ │ │ │ └── index.js │ │ │ │ │ └── website-input-field │ │ │ │ │ │ ├── block-icon.js │ │ │ │ │ │ └── index.js │ │ │ │ └── save.js │ │ │ ├── data-table │ │ │ │ ├── block.json │ │ │ │ ├── edit.js │ │ │ │ ├── example.js │ │ │ │ ├── hooks.js │ │ │ │ ├── index.js │ │ │ │ ├── save.js │ │ │ │ ├── state.js │ │ │ │ └── styles.css │ │ │ ├── hand-picked-posts │ │ │ │ ├── block.json │ │ │ │ ├── components │ │ │ │ │ ├── block-controls.js │ │ │ │ │ └── posts-picker.js │ │ │ │ ├── edit.js │ │ │ │ ├── editor.css │ │ │ │ └── index.js │ │ │ ├── image-list │ │ │ │ ├── block.json │ │ │ │ ├── components │ │ │ │ │ ├── gallery.js │ │ │ │ │ └── image.js │ │ │ │ ├── deprecated.js │ │ │ │ ├── edit.js │ │ │ │ ├── example.js │ │ │ │ ├── index.js │ │ │ │ ├── save.js │ │ │ │ ├── style.css │ │ │ │ └── transforms.js │ │ │ ├── list │ │ │ │ ├── block.json │ │ │ │ ├── components │ │ │ │ │ ├── list-item.js │ │ │ │ │ └── list-styles.js │ │ │ │ ├── edit.js │ │ │ │ ├── example.js │ │ │ │ ├── index.js │ │ │ │ ├── options.js │ │ │ │ ├── save.js │ │ │ │ ├── style.css │ │ │ │ └── transforms.js │ │ │ ├── recent-posts │ │ │ │ ├── block.json │ │ │ │ ├── components │ │ │ │ │ └── inspector-controls.js │ │ │ │ ├── edit.js │ │ │ │ ├── example.js │ │ │ │ └── index.js │ │ │ └── tab-bar │ │ │ │ ├── block.json │ │ │ │ ├── components │ │ │ │ ├── order-toolbar.js │ │ │ │ └── tab.js │ │ │ │ ├── edit.js │ │ │ │ ├── index.js │ │ │ │ ├── options.js │ │ │ │ ├── save.js │ │ │ │ └── style.css │ │ ├── components │ │ │ ├── attribute-with-devices │ │ │ │ ├── index.js │ │ │ │ └── style.css │ │ │ ├── button-group │ │ │ │ ├── index.js │ │ │ │ └── style.css │ │ │ ├── card-styles-panel │ │ │ │ ├── index.js │ │ │ │ ├── style-icons │ │ │ │ │ ├── grid-icon │ │ │ │ │ │ └── index.js │ │ │ │ │ ├── index.js │ │ │ │ │ ├── list-icon │ │ │ │ │ │ └── index.js │ │ │ │ │ └── masonry-icon │ │ │ │ │ │ └── index.js │ │ │ │ └── style.css │ │ │ ├── circular-option-picker │ │ │ │ ├── index.js │ │ │ │ └── style.css │ │ │ ├── error-message │ │ │ │ ├── editor.css │ │ │ │ ├── error-icon.js │ │ │ │ ├── error-message.js │ │ │ │ └── index.js │ │ │ ├── global-color │ │ │ │ └── index.js │ │ │ ├── global-shape-size │ │ │ │ ├── index.js │ │ │ │ └── style.css │ │ │ ├── icon-picker │ │ │ │ ├── index.js │ │ │ │ └── style.css │ │ │ ├── image-radio-control │ │ │ │ ├── index.js │ │ │ │ └── style.css │ │ │ ├── layout-controls │ │ │ │ ├── index.js │ │ │ │ └── style.css │ │ │ ├── material-color-palette │ │ │ │ ├── index.js │ │ │ │ └── style.css │ │ │ ├── polyfills │ │ │ │ ├── index.js │ │ │ │ └── toolbar-group.js │ │ │ ├── post-order-by-control │ │ │ │ └── index.js │ │ │ ├── posts-control │ │ │ │ └── index.js │ │ │ ├── toolbar-url-input-popover │ │ │ │ ├── icons.js │ │ │ │ └── index.js │ │ │ ├── url-input-popover │ │ │ │ ├── editor.css │ │ │ │ └── index.js │ │ │ ├── with-global-default │ │ │ │ └── index.js │ │ │ └── with-id │ │ │ │ └── index.js │ │ ├── constants.js │ │ ├── helpers │ │ │ ├── hooks.js │ │ │ └── index.js │ │ ├── hocs │ │ │ └── with-searched-posts.js │ │ ├── index.js │ │ └── utils │ │ │ ├── api.js │ │ │ ├── error.js │ │ │ ├── find-icon.js │ │ │ ├── generic-attributes-setter.js │ │ │ ├── get-config.js │ │ │ ├── get-icon-name.js │ │ │ └── index.js │ │ ├── common │ │ ├── color-utils.js │ │ ├── material-colors.js │ │ └── mdc-components-init.js │ │ ├── customizer │ │ ├── components │ │ │ ├── google-fonts-control │ │ │ │ ├── index.js │ │ │ │ ├── item.js │ │ │ │ ├── style.css │ │ │ │ └── styles.js │ │ │ ├── material-library │ │ │ │ ├── common │ │ │ │ │ └── icon-button-link.js │ │ │ │ ├── index.js │ │ │ │ ├── sections │ │ │ │ │ ├── buttons.js │ │ │ │ │ ├── cards.js │ │ │ │ │ ├── checkboxes.js │ │ │ │ │ ├── chips.js │ │ │ │ │ ├── fields.js │ │ │ │ │ ├── image-lists.js │ │ │ │ │ ├── lists.js │ │ │ │ │ ├── radios.js │ │ │ │ │ ├── switch.js │ │ │ │ │ ├── tab-bar.js │ │ │ │ │ └── table.js │ │ │ │ ├── styles.js │ │ │ │ └── utils.js │ │ │ ├── range-slider-control │ │ │ │ ├── global.js │ │ │ │ ├── index.js │ │ │ │ └── style.css │ │ │ └── theme-prompt │ │ │ │ └── index.js │ │ ├── customize-controls.js │ │ ├── customize-preview.js │ │ ├── material-library.js │ │ ├── notifications.js │ │ └── utils.js │ │ ├── front-end │ │ ├── contact-form.js │ │ └── index.js │ │ ├── getting-started │ │ ├── components │ │ │ ├── content │ │ │ │ ├── content.js │ │ │ │ ├── customize.js │ │ │ │ ├── index.js │ │ │ │ ├── overview.js │ │ │ │ ├── updates.js │ │ │ │ └── wizard.js │ │ │ ├── index.js │ │ │ └── navigation │ │ │ │ ├── index.js │ │ │ │ └── tab.js │ │ ├── constants.js │ │ ├── context.js │ │ ├── get-config.js │ │ ├── index.js │ │ └── reducer.js │ │ ├── polyfills │ │ └── index.js │ │ └── wizard │ │ ├── components │ │ ├── content │ │ │ ├── addons.js │ │ │ ├── card.js │ │ │ ├── index.js │ │ │ ├── switch.js │ │ │ ├── welcome.js │ │ │ └── work.js │ │ ├── header │ │ │ └── index.js │ │ ├── index.js │ │ ├── navigation │ │ │ ├── button.js │ │ │ ├── index.js │ │ │ └── loader.js │ │ ├── notice │ │ │ └── index.js │ │ ├── progress-bar │ │ │ ├── index.js │ │ │ └── step.js │ │ └── svg │ │ │ ├── check.js │ │ │ └── logo.js │ │ ├── constants.js │ │ ├── context.js │ │ ├── index.js │ │ ├── reducer.js │ │ └── utils.js ├── instance.php ├── material-design.php ├── php │ ├── admin │ │ └── class-admin-updates.php │ ├── api │ │ ├── class-update-fonts.php │ │ ├── class-update-icons.php │ │ └── class-updates-api-base.php │ ├── blocks │ │ ├── class-contact-form-block.php │ │ ├── class-image-list-block.php │ │ └── class-posts-list-block.php │ ├── class-admin.php │ ├── class-block-types.php │ ├── class-blocks-frontend.php │ ├── class-design-assets-rest-controller.php │ ├── class-exception.php │ ├── class-google-fonts.php │ ├── class-helpers.php │ ├── class-importer.php │ ├── class-module-base.php │ ├── class-onboarding-rest-controller.php │ ├── class-plugin-base.php │ ├── class-plugin.php │ ├── class-template.php │ ├── cli │ │ ├── class-fonts.php │ │ └── class-icons.php │ ├── customizer │ │ ├── class-controls.php │ │ ├── class-google-fonts-control.php │ │ ├── class-icon-radio-control.php │ │ ├── class-image-radio-control.php │ │ ├── class-material-color-palette-control.php │ │ └── class-range-slider-control.php │ └── templates │ │ ├── contact-form-email.php │ │ ├── contact-form.php │ │ ├── partials │ │ ├── card-actions.php │ │ ├── card-content.php │ │ ├── card-header.php │ │ ├── card-image.php │ │ └── single-post.php │ │ ├── posts-list-grid.php │ │ └── posts-masonry.php ├── readme.md ├── readme.txt ├── tests │ ├── bootstrap.php │ ├── e2e │ │ ├── config │ │ │ └── bootstrap.js │ │ ├── jest.config.js │ │ ├── merge-coverage.js │ │ ├── specs │ │ │ ├── block-editor │ │ │ │ └── blocks │ │ │ │ │ ├── data-table │ │ │ │ │ └── data-table.spec.js │ │ │ │ │ ├── list │ │ │ │ │ └── list.spec.js │ │ │ │ │ ├── recent-posts │ │ │ │ │ └── recent-posts.spec.js │ │ │ │ │ ├── render │ │ │ │ │ ├── blocks.html │ │ │ │ │ └── render.spec.js │ │ │ │ │ └── tab-bar │ │ │ │ │ └── tab-bar.spec.js │ │ │ └── customizer │ │ │ │ ├── customize-controls.spec.js │ │ │ │ └── shape-size.spec.js │ │ └── utils │ │ │ ├── activate-plugin.js │ │ │ ├── click-button-by-label.js │ │ │ ├── click-button.js │ │ │ ├── deactivate-plugin.js │ │ │ ├── index.js │ │ │ ├── insert-block.js │ │ │ ├── remove-blocks.js │ │ │ ├── search-for-block.js │ │ │ ├── select-block-by-name.js │ │ │ └── switch-editor-mode-to.js │ ├── js │ │ ├── block-editor │ │ │ ├── blocks │ │ │ │ ├── button │ │ │ │ │ ├── __snapshots__ │ │ │ │ │ │ ├── edit.test.js.snap │ │ │ │ │ │ └── save.test.js.snap │ │ │ │ │ ├── button.spec.js │ │ │ │ │ ├── components │ │ │ │ │ │ ├── __snapshots__ │ │ │ │ │ │ │ └── block-icon.test.js.snap │ │ │ │ │ │ └── block-icon.test.js │ │ │ │ │ ├── edit.test.js │ │ │ │ │ └── save.test.js │ │ │ │ ├── buttons │ │ │ │ │ ├── __snapshots__ │ │ │ │ │ │ ├── edit.test.js.snap │ │ │ │ │ │ └── save.test.js.snap │ │ │ │ │ ├── buttons.spec.js │ │ │ │ │ ├── components │ │ │ │ │ │ ├── __snapshots__ │ │ │ │ │ │ │ └── block-icon.test.js.snap │ │ │ │ │ │ └── block-icon.test.js │ │ │ │ │ ├── edit.test.js │ │ │ │ │ └── save.test.js │ │ │ │ ├── card │ │ │ │ │ ├── __snapshots__ │ │ │ │ │ │ ├── edit.test.js.snap │ │ │ │ │ │ └── save.test.js.snap │ │ │ │ │ ├── card.test.js │ │ │ │ │ ├── components │ │ │ │ │ │ ├── __snapshots__ │ │ │ │ │ │ │ ├── card-action-button.test.js.snap │ │ │ │ │ │ │ ├── card-actions-edit.test.js.snap │ │ │ │ │ │ │ ├── card-actions.test.js.snap │ │ │ │ │ │ │ ├── card-image-edit.test.js.snap │ │ │ │ │ │ │ ├── card-image.test.js.snap │ │ │ │ │ │ │ ├── card-primary.test.js.snap │ │ │ │ │ │ │ ├── card-supporting-text.test.js.snap │ │ │ │ │ │ │ ├── horizontal-card-layout.test.js.snap │ │ │ │ │ │ │ ├── inspector-controls-content-panel.test.js.snap │ │ │ │ │ │ │ ├── inspector-controls-style-panel.test.js.snap │ │ │ │ │ │ │ └── vertical-card-layout.test.js.snap │ │ │ │ │ │ ├── card-action-button.test.js │ │ │ │ │ │ ├── card-actions-edit.test.js │ │ │ │ │ │ ├── card-actions.test.js │ │ │ │ │ │ ├── card-image-edit.test.js │ │ │ │ │ │ ├── card-image.test.js │ │ │ │ │ │ ├── card-primary.test.js │ │ │ │ │ │ ├── card-supporting-text.test.js │ │ │ │ │ │ ├── horizontal-card-layout.test.js │ │ │ │ │ │ ├── inspector-controls-content-panel.test.js │ │ │ │ │ │ ├── inspector-controls-style-panel.test.js │ │ │ │ │ │ └── vertical-card-layout.test.js │ │ │ │ │ ├── edit.test.js │ │ │ │ │ └── save.test.js │ │ │ │ ├── cards-collection │ │ │ │ │ ├── __snapshots__ │ │ │ │ │ │ ├── edit.test.js.snap │ │ │ │ │ │ └── save.test.js.snap │ │ │ │ │ ├── cards-collection.test.js │ │ │ │ │ ├── components │ │ │ │ │ │ ├── __snapshots__ │ │ │ │ │ │ │ ├── cards-collection-inspector-controls.test.js.snap │ │ │ │ │ │ │ ├── cards.test.js.snap │ │ │ │ │ │ │ └── focused-card-controls.test.js.snap │ │ │ │ │ │ ├── cards-collection-inspector-controls.test.js │ │ │ │ │ │ ├── cards.test.js │ │ │ │ │ │ └── focused-card-controls.test.js │ │ │ │ │ ├── edit.test.js │ │ │ │ │ ├── save.test.js │ │ │ │ │ └── utils │ │ │ │ │ │ └── get-column-span.test.js │ │ │ │ ├── common-posts-list │ │ │ │ │ ├── __snapshots__ │ │ │ │ │ │ └── edit-with-select.test.js.snap │ │ │ │ │ ├── components │ │ │ │ │ │ ├── __snapshots__ │ │ │ │ │ │ │ ├── card-actions.test.js.snap │ │ │ │ │ │ │ ├── card-header.test.js.snap │ │ │ │ │ │ │ ├── card-image.test.js.snap │ │ │ │ │ │ │ ├── horizontal-card-layout.test.js.snap │ │ │ │ │ │ │ ├── no-posts.test.js.snap │ │ │ │ │ │ │ ├── posts-list.test.js.snap │ │ │ │ │ │ │ ├── single-post.test.js.snap │ │ │ │ │ │ │ ├── style-icons.test.js.snap │ │ │ │ │ │ │ └── vertical-card-layout.test.js.snap │ │ │ │ │ │ ├── card-actions.test.js │ │ │ │ │ │ ├── card-header.test.js │ │ │ │ │ │ ├── card-image.test.js │ │ │ │ │ │ ├── horizontal-card-layout.test.js │ │ │ │ │ │ ├── no-posts.test.js │ │ │ │ │ │ ├── posts-list.test.js │ │ │ │ │ │ ├── single-post.test.js │ │ │ │ │ │ ├── style-icons.test.js │ │ │ │ │ │ └── vertical-card-layout.test.js │ │ │ │ │ └── edit-with-select.test.js │ │ │ │ ├── contact-form │ │ │ │ │ ├── __snapshots__ │ │ │ │ │ │ ├── edit.test.js.snap │ │ │ │ │ │ └── save.test.js.snap │ │ │ │ │ ├── components │ │ │ │ │ │ ├── __snapshots__ │ │ │ │ │ │ │ ├── inspector-controls.test.js.snap │ │ │ │ │ │ │ └── recaptcha-inspector-controls-panel.test.js.snap │ │ │ │ │ │ ├── inspector-controls.test.js │ │ │ │ │ │ └── recaptcha-inspector-controls-panel.test.js │ │ │ │ │ ├── contact-form.test.js │ │ │ │ │ ├── edit.test.js │ │ │ │ │ ├── inner-blocks │ │ │ │ │ │ ├── common │ │ │ │ │ │ │ ├── __snapshots__ │ │ │ │ │ │ │ │ ├── inspector-controls.test.js.snap │ │ │ │ │ │ │ │ ├── text-input-edit.test.js.snap │ │ │ │ │ │ │ │ ├── text-input-element.test.js.snap │ │ │ │ │ │ │ │ ├── text-input-save.test.js.snap │ │ │ │ │ │ │ │ ├── textarea-input-edit.test.js.snap │ │ │ │ │ │ │ │ ├── textarea-input-element.test.js.snap │ │ │ │ │ │ │ │ └── textarea-input-save.test.js.snap │ │ │ │ │ │ │ ├── inspector-controls.test.js │ │ │ │ │ │ │ ├── text-input-edit.test.js │ │ │ │ │ │ │ ├── text-input-element.test.js │ │ │ │ │ │ │ ├── text-input-save.test.js │ │ │ │ │ │ │ ├── textarea-input-edit.test.js │ │ │ │ │ │ │ ├── textarea-input-element.test.js │ │ │ │ │ │ │ └── textarea-input-save.test.js │ │ │ │ │ │ ├── email-input-field │ │ │ │ │ │ │ ├── __snapshots__ │ │ │ │ │ │ │ │ └── block-icon.test.js.snap │ │ │ │ │ │ │ ├── block-icon.test.js │ │ │ │ │ │ │ └── index.test.js │ │ │ │ │ │ ├── message-input-field │ │ │ │ │ │ │ ├── __snapshots__ │ │ │ │ │ │ │ │ └── block-icon.test.js.snap │ │ │ │ │ │ │ ├── block-icon.test.js │ │ │ │ │ │ │ └── index.test.js │ │ │ │ │ │ ├── name-input-field │ │ │ │ │ │ │ ├── __snapshots__ │ │ │ │ │ │ │ │ └── block-icon.test.js.snap │ │ │ │ │ │ │ ├── block-icon.test.js │ │ │ │ │ │ │ └── index.test.js │ │ │ │ │ │ ├── short-text-input-field │ │ │ │ │ │ │ ├── __snapshots__ │ │ │ │ │ │ │ │ └── block-icon.test.js.snap │ │ │ │ │ │ │ ├── block-icon.test.js │ │ │ │ │ │ │ └── index.test.js │ │ │ │ │ │ └── website-input-field │ │ │ │ │ │ │ ├── __snapshots__ │ │ │ │ │ │ │ └── block-icon.test.js.snap │ │ │ │ │ │ │ ├── block-icon.test.js │ │ │ │ │ │ │ └── index.test.js │ │ │ │ │ └── save.test.js │ │ │ │ ├── data-table │ │ │ │ │ ├── __snapshots__ │ │ │ │ │ │ ├── edit.test.js.snap │ │ │ │ │ │ ├── hooks.test.js.snap │ │ │ │ │ │ └── save.test.js.snap │ │ │ │ │ ├── edit.test.js │ │ │ │ │ ├── hooks.test.js │ │ │ │ │ ├── index.test.js │ │ │ │ │ ├── save.test.js │ │ │ │ │ └── state.test.js │ │ │ │ ├── hand-picked-posts │ │ │ │ │ ├── __snapshots__ │ │ │ │ │ │ └── edit.test.js.snap │ │ │ │ │ ├── components │ │ │ │ │ │ ├── __snapshots__ │ │ │ │ │ │ │ ├── block-controls.test.js.snap │ │ │ │ │ │ │ └── posts-picker.test.js.snap │ │ │ │ │ │ ├── block-controls.test.js │ │ │ │ │ │ └── posts-picker.test.js │ │ │ │ │ ├── edit.test.js │ │ │ │ │ └── hand-picked-posts.test.js │ │ │ │ ├── image-list │ │ │ │ │ ├── __snapshots__ │ │ │ │ │ │ ├── edit.test.js.snap │ │ │ │ │ │ └── save.test.js.snap │ │ │ │ │ ├── components │ │ │ │ │ │ ├── __snapshots__ │ │ │ │ │ │ │ ├── gallery.test.js.snap │ │ │ │ │ │ │ └── image.test.js.snap │ │ │ │ │ │ ├── gallery.test.js │ │ │ │ │ │ └── image.test.js │ │ │ │ │ ├── edit.test.js │ │ │ │ │ ├── index.test.js │ │ │ │ │ └── save.test.js │ │ │ │ ├── list │ │ │ │ │ ├── __snapshots__ │ │ │ │ │ │ ├── edit.test.js.snap │ │ │ │ │ │ └── save.test.js.snap │ │ │ │ │ ├── components │ │ │ │ │ │ ├── __snapshots__ │ │ │ │ │ │ │ └── list-item.test.js.snap │ │ │ │ │ │ └── list-item.test.js │ │ │ │ │ ├── edit.test.js │ │ │ │ │ ├── index.test.js │ │ │ │ │ └── save.test.js │ │ │ │ ├── recent-posts │ │ │ │ │ ├── __snapshots__ │ │ │ │ │ │ └── edit.test.js.snap │ │ │ │ │ ├── edit.test.js │ │ │ │ │ └── recent-posts.test.js │ │ │ │ └── tab-bar │ │ │ │ │ ├── __snapshots__ │ │ │ │ │ ├── edit.test.js.snap │ │ │ │ │ └── save.test.js.snap │ │ │ │ │ ├── components │ │ │ │ │ ├── __snapshots__ │ │ │ │ │ │ ├── order-toolbar.test.js.snap │ │ │ │ │ │ └── tab.test.js.snap │ │ │ │ │ ├── order-toolbar.test.js │ │ │ │ │ └── tab.test.js │ │ │ │ │ ├── edit.test.js │ │ │ │ │ └── save.test.js │ │ │ ├── components │ │ │ │ ├── __snapshots__ │ │ │ │ │ ├── attribute-with-devices.test.js.snap │ │ │ │ │ ├── global-shape-size.test.js.snap │ │ │ │ │ ├── layout-controls.test.js.snap │ │ │ │ │ ├── post-order-by-control.test.js.snap │ │ │ │ │ ├── posts-control.test.js.snap │ │ │ │ │ ├── toolbar-url-input-popover.test.js.snap │ │ │ │ │ ├── url-input-popover.test.js.snap │ │ │ │ │ └── with-global-default.test.js.snap │ │ │ │ ├── attribute-with-devices.test.js │ │ │ │ ├── card-styles-panel │ │ │ │ │ ├── __snapshots__ │ │ │ │ │ │ └── index.test.js.snap │ │ │ │ │ └── index.test.js │ │ │ │ ├── error-message │ │ │ │ │ ├── __snapshots__ │ │ │ │ │ │ ├── error-icon.test.js.snap │ │ │ │ │ │ ├── error-message.test.js.snap │ │ │ │ │ │ └── index.test.js.snap │ │ │ │ │ ├── error-icon.test.js │ │ │ │ │ ├── error-message.test.js │ │ │ │ │ └── index.test.js │ │ │ │ ├── global-shape-size.test.js │ │ │ │ ├── layout-controls.test.js │ │ │ │ ├── material-color-palette.test.js │ │ │ │ ├── post-order-by-control.test.js │ │ │ │ ├── posts-control.test.js │ │ │ │ ├── toolbar-url-input-popover.test.js │ │ │ │ ├── url-input-popover.test.js │ │ │ │ ├── with-global-default.test.js │ │ │ │ └── with-id.test.js │ │ │ ├── helpers │ │ │ │ └── register-blocks.spec.js │ │ │ ├── hocs │ │ │ │ └── with-searched-posts.test.js │ │ │ └── utils │ │ │ │ └── error.test.js │ │ ├── customizer │ │ │ └── components │ │ │ │ ├── __snapshots__ │ │ │ │ ├── material-library.test.js.snap │ │ │ │ └── range-slider-control.test.js.snap │ │ │ │ ├── google-fonts-control │ │ │ │ ├── __snapshots__ │ │ │ │ │ ├── index.test.js.snap │ │ │ │ │ └── item.test.js.snap │ │ │ │ ├── index.test.js │ │ │ │ └── item.test.js │ │ │ │ ├── material-library.test.js │ │ │ │ ├── range-slider-control.test.js │ │ │ │ └── theme-prompt.test.js │ │ ├── front-end │ │ │ ├── contact-form.html │ │ │ ├── contact-form.test.js │ │ │ └── invalid-contact-form.html │ │ ├── getting-started │ │ │ ├── __snapshots__ │ │ │ │ └── index.test.js.snap │ │ │ ├── components │ │ │ │ ├── __snapshots__ │ │ │ │ │ ├── customize.test.js.snap │ │ │ │ │ ├── overview.test.js.snap │ │ │ │ │ └── wizard.test.js.snap │ │ │ │ ├── customize.test.js │ │ │ │ ├── navigation │ │ │ │ │ ├── __snapshots__ │ │ │ │ │ │ ├── index.test.js.snap │ │ │ │ │ │ └── tab.test.js.snap │ │ │ │ │ ├── index.test.js │ │ │ │ │ └── tab.test.js │ │ │ │ ├── overview.test.js │ │ │ │ └── wizard.test.js │ │ │ ├── index.test.js │ │ │ └── reducer.test.js │ │ ├── utils │ │ │ ├── api.test.js │ │ │ └── error.test.js │ │ └── wizard │ │ │ ├── __snapshots__ │ │ │ └── index.test.js.snap │ │ │ ├── components │ │ │ ├── content │ │ │ │ ├── __snapshots__ │ │ │ │ │ ├── addons.test.js.snap │ │ │ │ │ ├── card.test.js.snap │ │ │ │ │ ├── index.test.js.snap │ │ │ │ │ ├── switch.test.js.snap │ │ │ │ │ └── works.test.js.snap │ │ │ │ ├── addons.test.js │ │ │ │ ├── card.test.js │ │ │ │ ├── index.test.js │ │ │ │ ├── switch.test.js │ │ │ │ └── works.test.js │ │ │ ├── header │ │ │ │ └── index.test.js │ │ │ ├── navigation │ │ │ │ ├── __snapshots__ │ │ │ │ │ ├── index.test.js.snap │ │ │ │ │ └── loader.test.js.snap │ │ │ │ ├── button.test.js │ │ │ │ ├── index.test.js │ │ │ │ └── loader.test.js │ │ │ ├── notice │ │ │ │ ├── __snapshots__ │ │ │ │ │ └── index.test.js.snap │ │ │ │ └── index.test.js │ │ │ ├── progress-bar │ │ │ │ ├── __snapshots__ │ │ │ │ │ └── index.test.js.snap │ │ │ │ └── index.test.js │ │ │ └── svg │ │ │ │ ├── check.test.js │ │ │ │ └── logo.test.js │ │ │ ├── index.test.js │ │ │ └── reducer.test.js │ ├── mocks │ │ ├── @wordpress │ │ │ ├── block-editor.js │ │ │ └── rich-text.js │ │ ├── icon-picker.js │ │ └── ijmap.js │ ├── phpunit │ │ ├── class-test-material-design.php │ │ └── php │ │ │ ├── admin │ │ │ └── class-test-admin-updates.php │ │ │ ├── api │ │ │ ├── class-test-update-fonts.php │ │ │ └── class-test-update-icons.php │ │ │ ├── blocks │ │ │ ├── class-test-ajax-contact-form-block.php │ │ │ ├── class-test-contact-form-block.php │ │ │ ├── class-test-image-list-block.php │ │ │ └── class-test-posts-list-block.php │ │ │ ├── class-test-admin.php │ │ │ ├── class-test-block-types.php │ │ │ ├── class-test-blocks-frontend.php │ │ │ ├── class-test-design-assets-rest-controller.php │ │ │ ├── class-test-google-fonts.php │ │ │ ├── class-test-helpers.php │ │ │ ├── class-test-importer.php │ │ │ ├── class-test-onboarding-rest-controller.php │ │ │ ├── class-test-plugin-base.php │ │ │ ├── class-test-plugin.php │ │ │ ├── class-test-template.php │ │ │ └── customizer │ │ │ ├── class-test-controls.php │ │ │ ├── class-test-google-fonts-control.php │ │ │ ├── class-test-icon-radio-control.php │ │ │ ├── class-test-image-radio-control.php │ │ │ ├── class-test-material-color-palette-control.php │ │ │ └── class-test-range-slider-control.php │ └── wp-tests-config.php └── wp-assets │ ├── banner-1544x500.png │ ├── banner-772x250.png │ ├── icon-128x128.png │ ├── icon-256x256.png │ ├── screenshot-1.jpg │ ├── screenshot-2.jpg │ ├── screenshot-3.jpg │ ├── screenshot-4.jpg │ ├── screenshot-5.jpg │ ├── screenshot-6.jpg │ ├── screenshot-7.jpg │ └── screenshot-8.jpg ├── postcss.config.js ├── readme.md ├── readme.txt ├── renovate.json ├── theme ├── 404.php ├── LICENSE ├── README.md ├── archive.php ├── assets │ ├── css │ │ └── src │ │ │ ├── base │ │ │ ├── index.css │ │ │ ├── layout.css │ │ │ ├── masonry-grid.css │ │ │ ├── typography.css │ │ │ └── wordpress.css │ │ │ ├── components │ │ │ ├── archive-image-list.css │ │ │ ├── avatar.css │ │ │ ├── byline.css │ │ │ ├── comments.css │ │ │ ├── drawer.css │ │ │ ├── entry-content.css │ │ │ ├── entry-footer.css │ │ │ ├── entry-header.css │ │ │ ├── entry-meta.css │ │ │ ├── footer.css │ │ │ ├── index.css │ │ │ ├── load-more.css │ │ │ ├── logo.css │ │ │ ├── material.css │ │ │ ├── page-navigation.css │ │ │ ├── post-card.css │ │ │ ├── post-navigation.css │ │ │ ├── post-thumbnail.css │ │ │ ├── search.css │ │ │ ├── tab-bar.css │ │ │ ├── tables.css │ │ │ ├── top-app-bar.css │ │ │ └── widgets.css │ │ │ ├── conf │ │ │ ├── index.css │ │ │ ├── media.css │ │ │ ├── mixins.css │ │ │ └── variables.css │ │ │ ├── customize-controls.css │ │ │ ├── customize-preview.css │ │ │ ├── editor.css │ │ │ ├── front-end.css │ │ │ ├── material-components.css │ │ │ └── templates │ │ │ ├── archive.css │ │ │ ├── error404.css │ │ │ ├── index.css │ │ │ └── search-results.css │ ├── images │ │ ├── placeholder.png │ │ └── plugin-logo.png │ └── src │ │ ├── customizer │ │ ├── customize-controls.js │ │ └── customize-preview.js │ │ └── front-end │ │ ├── components │ │ ├── comments.js │ │ ├── drawer.js │ │ ├── embeds.js │ │ ├── floating-label.js │ │ ├── navigation.js │ │ ├── ripple.js │ │ ├── scroll.js │ │ ├── search.js │ │ ├── skip-link-focus-fix.js │ │ ├── tab-bar.js │ │ ├── textfield.js │ │ ├── top-app-bar.js │ │ └── widgets.js │ │ └── index.js ├── comments.php ├── footer.php ├── functions.php ├── header.php ├── inc │ ├── admin.php │ ├── class-menu-drawer-walker.php │ ├── class-menu-walker.php │ ├── class-tgm-plugin-activation.php │ ├── class-walker-comment.php │ ├── customizer.php │ ├── customizer │ │ ├── class-more-options.php │ │ ├── colors.php │ │ ├── header-footer.php │ │ ├── layout.php │ │ └── menu.php │ ├── jetpack.php │ ├── template-functions.php │ ├── template-tags.php │ ├── widgets.php │ └── widgets │ │ ├── class-wp-widget-archives.php │ │ ├── class-wp-widget-categories.php │ │ ├── class-wp-widget-meta.php │ │ ├── class-wp-widget-pages.php │ │ ├── class-wp-widget-recent-comments.php │ │ ├── class-wp-widget-recent-posts.php │ │ └── class-wp-widget-rss.php ├── index.php ├── languages │ └── readme.txt ├── page.php ├── readme.txt ├── screenshot.png ├── search.php ├── searchform.php ├── sidebar.php ├── single.php ├── style.css ├── template-parts │ ├── archive-card.php │ ├── archive-image-list.php │ ├── archive.php │ ├── back-to-top.php │ ├── content-image-card.php │ ├── content-none.php │ ├── content-search.php │ ├── content.php │ ├── drawer.php │ ├── footer.php │ ├── header-navigation.php │ ├── menu-header.php │ ├── menu-tabs.php │ ├── post-nav-links.php │ ├── posts-navigation.php │ ├── search-archive.php │ ├── search-header.php │ ├── single-page.php │ ├── single.php │ └── site-title.php ├── tests │ ├── bootstrap.php │ ├── phpunit │ │ └── class-test-functions.php │ └── wp-tests-config.php └── wp-assets │ ├── banner-1544x500.png │ ├── banner-772x250.png │ ├── icon-128x128.png │ ├── icon-256x256.png │ └── screenshot.png ├── webpack.config.js └── webpack └── fix-line-endings-plugin.js /.babelrc.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2020 Google LLC 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | module.exports = { 18 | presets: [ '@wordpress/default' ], 19 | plugins: [ 20 | '@wordpress/babel-plugin-import-jsx-pragma', 21 | '@babel/transform-react-jsx', 22 | '@babel/plugin-proposal-optional-chaining', 23 | ], 24 | env: { 25 | test: { 26 | plugins: [ 'transform-require-context' ], 27 | }, 28 | development: { 29 | plugins: [ 'istanbul' ], 30 | }, 31 | teste2e: { 32 | plugins: [ 'istanbul' ], 33 | }, 34 | }, 35 | }; 36 | -------------------------------------------------------------------------------- /.browserslistrc: -------------------------------------------------------------------------------- 1 | extends @wordpress/browserslist-config 2 | -------------------------------------------------------------------------------- /.coveralls.yml: -------------------------------------------------------------------------------- 1 | # Copyright 2020 Google LLC 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | service_name: travis-ci 16 | coverage_clover: build/logs/clover.xml 17 | json_path: build/logs/coveralls-upload.json 18 | -------------------------------------------------------------------------------- /.dev-lib: -------------------------------------------------------------------------------- 1 | DEFAULT_BASE_BRANCH=develop 2 | ASSETS_DIR=wp-assets 3 | README_MD_TITLE="Material Design for WordPress" 4 | CHECK_SCOPE=all 5 | DOCKER_PHPUNIT_BIN=bin/phpunit.sh 6 | TRAVIS_CI_COM_URL=true 7 | 8 | source ./bin/includes.sh 9 | 10 | function can_run_e2e() { 11 | if command_exists "curl" && is_wp_available "$1"; then 12 | return 0 13 | fi 14 | 15 | return 1 16 | } 17 | 18 | function run_tests { 19 | if [ "$TRAVIS" != true ]; then 20 | echo "" 21 | echo "## Linting" 22 | npm run lint 23 | 24 | echo "" 25 | echo "## JavaScript tests" 26 | npm run test:js 27 | 28 | if can_run_e2e "localhost:8088"; then 29 | echo "" 30 | echo "## E2E tests" 31 | npm run test:e2e 32 | fi 33 | 34 | echo "" 35 | fi 36 | } 37 | -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- 1 | # WordPress Coding Standards 2 | # https://make.wordpress.org/core/handbook/coding-standards/ 3 | 4 | root = true 5 | 6 | [*] 7 | charset = utf-8 8 | end_of_line = lf 9 | insert_final_newline = true 10 | trim_trailing_whitespace = true 11 | indent_style = tab 12 | 13 | [{.babelrc,.eslintrc,.rtlcssrc,*.json,*.yml}] 14 | indent_style = space 15 | indent_size = 2 16 | 17 | [{*.md}] 18 | trim_trailing_whitespace = false 19 | -------------------------------------------------------------------------------- /.env.dist: -------------------------------------------------------------------------------- 1 | # MySQL 2 | MYSQL_ROOT_PASSWORD=root 3 | MYSQL_DATABASE=wordpress 4 | MYSQL_USER=wordpress 5 | MYSQL_PASSWORD=wordpress 6 | 7 | # WordPress 8 | WP_VERSION=5.6 9 | WP_DB_USER=wordpress 10 | WP_DB_PASSWORD=wordpress 11 | 12 | # PHP 13 | PHP_VERSION=php7.4-apache 14 | -------------------------------------------------------------------------------- /.eslintignore: -------------------------------------------------------------------------------- 1 | **/*.min.js 2 | **/bin/** 3 | **/node_modules/** 4 | **/vendor/** 5 | **/plugin/assets/js/*.js 6 | **/theme/assets/js/*.js 7 | build/* 8 | built/* 9 | -------------------------------------------------------------------------------- /.eslintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": [ 3 | "plugin:@wordpress/eslint-plugin/recommended" 4 | ], 5 | "overrides": [ 6 | { 7 | "files":[ 8 | "**/__tests__/**/*.js", 9 | "**/test/*.js", 10 | "**/?(*.)test.js", 11 | "**/tests/js/**/*.js" 12 | ], 13 | "extends": [ 14 | "plugin:jest/all" 15 | ], 16 | "rules": { 17 | "jest/lowercase-name": [ 18 | "error", 19 | { 20 | "ignore": [ "describe" ] 21 | } 22 | ], 23 | "no-undef": "off", 24 | "jest/no-hooks": "off", 25 | "jest/prefer-expect-assertions": "off", 26 | "jest/prefer-inline-snapshots": "off" 27 | } 28 | } 29 | ], 30 | "rules": { 31 | "no-console": "off", 32 | "no-nested-ternary": "off", 33 | "jsx-a11y/click-events-have-key-events": "off", 34 | "react-hooks/rules-of-hooks": "error", 35 | "react-hooks/exhaustive-deps": "warn" 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature_request.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Feature request 3 | about: Suggest an idea for this project 4 | 5 | --- 6 | 7 | ## Feature description 8 | 9 | 10 | 11 | --------------- 12 | 13 | _Do not alter or remove anything below. The following sections will be managed by moderators only._ 14 | 15 | ## Acceptance criteria 16 | 17 | * 18 | 19 | ## Implementation brief 20 | 21 | * 22 | 23 | ## QA testing instructions 24 | 25 | * 26 | 27 | ## Demo 28 | 29 | * 30 | 31 | ## Changelog entry 32 | 33 | * 34 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/help_request.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Help Request 3 | about: Please post help requests or ‘how to’ questions in support forum 4 | 5 | --- 6 | 7 | For general, technical and product help requests, please post it on the [Material Design plugin support forum](https://wordpress.org/support/plugin/material-design/). Support will not be provided on GitHub. 8 | 9 | Thank you! 10 | -------------------------------------------------------------------------------- /.github/PULL_REQUEST_TEMPLATE.md: -------------------------------------------------------------------------------- 1 | ## Summary 2 | 3 | 4 | Fixes # 5 | 6 | ## Checklist 7 | 8 | - [ ] My pull request is addressing an [open issue](https://github.com/xwp/material-design-wp-plugin/issues) (please create one otherwise). 9 | - [ ] My code is tested and passes existing [tests](https://github.com/xwp/material-design-wp-plugin/contributing.md#scripts). 10 | - [ ] My code follows the [Contributing Guidelines](https://github.com/xwp/material-design-wp-plugin/contributing.md) (updates are often made to the guidelines, check it out periodically). 11 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | ._.DS_Store 3 | .env 4 | .idea 5 | composer.lock 6 | material-design.zip 7 | material-design-google.zip 8 | yarn.lock 9 | plugin/assets/css/* 10 | !plugin/assets/css/src/ 11 | plugin/assets/js/* 12 | theme/assets/css/* 13 | !theme/assets/css/src/ 14 | theme/assets/js/* 15 | bin/local-dev/mysql/ 16 | bin/local-dev/wordpress/html/ 17 | build/ 18 | node_modules/ 19 | vendor/ 20 | plugin/tests/coverage 21 | plugin/composer* 22 | theme/composer* -------------------------------------------------------------------------------- /.npmrc: -------------------------------------------------------------------------------- 1 | engine-strict = true 2 | -------------------------------------------------------------------------------- /.nvmrc: -------------------------------------------------------------------------------- 1 | lts/* 2 | -------------------------------------------------------------------------------- /.prettierrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "singleQuote": true, 3 | "parenSpacing": true, 4 | "trailingComma": "es5", 5 | "jsxBracketSameLine": false 6 | } 7 | -------------------------------------------------------------------------------- /.rtlcssrc: -------------------------------------------------------------------------------- 1 | { 2 | "options": { 3 | "autoRename": false, 4 | "autoRenameStrict": false, 5 | "blacklist":{}, 6 | "clean": true, 7 | "greedy": false, 8 | "processUrls": false, 9 | "stringMap":[] 10 | }, 11 | "plugins": [ ], 12 | "map": false 13 | } 14 | -------------------------------------------------------------------------------- /.stylelintignore: -------------------------------------------------------------------------------- 1 | /theme/assets/css/*.css 2 | /plugin/assets/css/*.css 3 | /bin 4 | /build 5 | /node_modules 6 | /tests 7 | /vendor 8 | /plugin/assets/css/src/mixins.css 9 | -------------------------------------------------------------------------------- /.stylelintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "stylelint-config-wordpress", 3 | "rules": { 4 | "font-weight-notation": null, 5 | "function-url-quotes": null, 6 | "max-line-length": null, 7 | "no-descending-specificity": null, 8 | "no-duplicate-selectors": null, 9 | "number-leading-zero": null, 10 | "selector-class-pattern": null, 11 | "selector-type-no-unknown": [ true, { "ignore": ["custom-elements"] } ], 12 | "at-rule-no-unknown": [ true, { "ignoreAtRules": ["mixin"] } ] 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /bin/local-dev/wordpress/config/mysql/wptests.sql: -------------------------------------------------------------------------------- 1 | -- Copyright 2020 Google LLC 2 | -- 3 | -- Licensed under the Apache License, Version 2.0 (the "License"); 4 | -- you may not use this file except in compliance with the License. 5 | -- You may obtain a copy of the License at 6 | -- 7 | -- http://www.apache.org/licenses/LICENSE-2.0 8 | -- 9 | -- Unless required by applicable law or agreed to in writing, software 10 | -- distributed under the License is distributed on an "AS IS" BASIS, 11 | -- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | -- See the License for the specific language governing permissions and 13 | -- limitations under the License. 14 | 15 | CREATE DATABASE IF NOT EXISTS wptests; 16 | GRANT ALL ON wptests.* TO 'wptests'@'%' IDENTIFIED BY 'wptests'; 17 | FLUSH PRIVILEGES; 18 | -------------------------------------------------------------------------------- /bin/local-dev/wordpress/config/php/php.ini: -------------------------------------------------------------------------------- 1 | date.timezone = "America/Los_Angeles" 2 | session.auto_start = Off 3 | file_uploads = On 4 | memory_limit = -1 5 | upload_max_filesize = 1G 6 | post_max_size = 1G 7 | 8 | # Forward mail to the MailHog container. 9 | sendmail_path = "/usr/bin/msmtp --host=mailhog --port=1025 --read-recipients --read-envelope-from --auto-from=on" 10 | -------------------------------------------------------------------------------- /bin/local-dev/wordpress/config/php/xdebug.ini: -------------------------------------------------------------------------------- 1 | # Enable remote Xdebug. 2 | xdebug.remote_enable = 1 3 | xdebug.remote_autostart = 1 4 | xdebug.remote_connect_back = 1 5 | xdebug.scream = 1 6 | -------------------------------------------------------------------------------- /bin/logs.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # Copyright 2020 Google LLC 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | 16 | 17 | source ./bin/includes.sh 18 | 19 | # Grab full name of wordpress container 20 | WORDPRESS_CONTAINER=$(docker ps | grep wordpress | awk '{print $1}') 21 | 22 | if [[ '' == $WORDPRESS_CONTAINER ]]; then 23 | echo -e "$(error_message "The WordPress Docker container must be running!")" 24 | echo -e "Execute the following command: $(action_format "npm run env:start")" 25 | echo "" 26 | exit 0 27 | fi 28 | 29 | echo -e "Here comes the logs in real-time ... $(action_format "done")" 30 | echo "" 31 | 32 | docker-compose logs -f 33 | -------------------------------------------------------------------------------- /bin/phpunit.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # Copyright 2020 Google LLC 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | 16 | 17 | docker-compose run --rm -u 1000 --workdir=/var/www/html/wp-content/plugins/material-design wordpress -- composer test 18 | -------------------------------------------------------------------------------- /bin/stop.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # Copyright 2020 Google LLC 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | 16 | 17 | source ./bin/includes.sh 18 | 19 | printf "Shutting down containers ... " 20 | 21 | docker-compose down 2>/dev/null 22 | 23 | printf "$(action_format "done")" 24 | echo "" 25 | echo "" 26 | -------------------------------------------------------------------------------- /contributing.md: -------------------------------------------------------------------------------- 1 | # How to Contribute 2 | 3 | We'd love to accept your patches and contributions to this project. There are 4 | just a few small guidelines you need to follow. 5 | 6 | ## Contributor License Agreement 7 | 8 | Contributions to this project must be accompanied by a Contributor License 9 | Agreement (CLA). You (or your employer) retain the copyright to your 10 | contribution; this simply gives us permission to use and redistribute your 11 | contributions as part of the project. Head over to 12 | to see your current agreements on file or 13 | to sign a new one. 14 | 15 | You generally only need to submit a CLA once, so if you've already submitted one 16 | (even if it was for a different project), you probably don't need to do it 17 | again. 18 | 19 | ## Code reviews 20 | 21 | All submissions, including submissions by project members, require review. We 22 | use GitHub pull requests for this purpose. Consult 23 | [GitHub Help](https://help.github.com/articles/about-pull-requests/) for more 24 | information on using pull requests. 25 | 26 | ## Community Guidelines 27 | 28 | This project follows 29 | [Google's Open Source Community Guidelines](https://opensource.google/conduct/). -------------------------------------------------------------------------------- /jest.config.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2020 Google LLC 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | module.exports = { 18 | verbose: true, 19 | testMatch: [ '**/?(*.)+(spec|test).[jt]s?(x)' ], 20 | preset: '@wordpress/jest-preset-default', 21 | collectCoverageFrom: [ 'plugin/assets/src/**/*.js' ], 22 | testPathIgnorePatterns: [ 23 | '/node_modules/', 24 | '/vendor/', 25 | '/bin/', 26 | '/plugin/tests/e2e/', 27 | ], 28 | moduleNameMapper: { 29 | '^!!json-loader!(.*).ijmap$': '/plugin/tests/mocks/ijmap.js', 30 | '@wordpress/block-editor': 31 | '/plugin/tests/mocks/@wordpress/block-editor.js', 32 | '@wordpress/rich-text': 33 | '/plugin/tests/mocks/@wordpress/rich-text.js', 34 | 'icon-picker*': '/plugin/tests/mocks/icon-picker.js', 35 | }, 36 | }; 37 | -------------------------------------------------------------------------------- /phpunit.xml: -------------------------------------------------------------------------------- 1 | 16 | 17 | 25 | 26 | 27 | 28 | ./plugin/tests/phpunit/ 29 | 30 | 31 | 32 | 33 | 34 | ./plugin/php 35 | ./plugin/material-design.php 36 | ./plugin/instance.php 37 | 38 | 39 | 40 | -------------------------------------------------------------------------------- /plugin/assets/css/src/base/variables.css: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2020 Google LLC 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | /* stylelint disable */ 18 | -------------------------------------------------------------------------------- /plugin/assets/css/src/components/contact-form.css: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2020 Google LLC 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | .material-design-contact-form { 18 | margin-bottom: 2em; 19 | } 20 | 21 | .mdc-text-field-container--not-required { 22 | margin-top: 2.5em; 23 | } 24 | 25 | .mdc-text-field-container { 26 | display: flex; 27 | flex-direction: column; 28 | margin-bottom: 1.5em; 29 | 30 | .components-base-control__field { 31 | flex-direction: row; 32 | align-items: center; 33 | justify-content: flex-end; 34 | } 35 | } 36 | 37 | .editor-styles-wrapper .mdc-floating-label { 38 | font-weight: 400 !important; 39 | } 40 | 41 | 42 | .mdc-text-field--custom-full { 43 | width: 100%; 44 | } 45 | -------------------------------------------------------------------------------- /plugin/assets/css/src/components/core.css: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2020 Google LLC 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | /* Cover */ 18 | .wp-block-cover-image, 19 | .wp-block-cover { 20 | background-color: var(--mdc-theme-surface, #000); 21 | } 22 | -------------------------------------------------------------------------------- /plugin/assets/css/src/conf/index.css: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2020 Google LLC 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | @import "./media.css"; 18 | -------------------------------------------------------------------------------- /plugin/assets/css/src/conf/media.css: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2020 Google LLC 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | @custom-media --small-viewport-max (max-width: 37.43rem); /* 768px */ 18 | @custom-media --medium-viewport (min-width: 48em); /* 768px */ 19 | -------------------------------------------------------------------------------- /plugin/assets/css/src/customize-preview.css: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2020 Google LLC 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | /* 18 | * Put Customize Preview CSS here. 19 | */ 20 | -------------------------------------------------------------------------------- /plugin/assets/css/src/front-end.css: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2020 Google LLC 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | /* 18 | * All Frontend CSS. 19 | */ 20 | @import "./base/variables.css"; 21 | @import "./conf/index.css"; 22 | @import "./material-components.css"; 23 | @import "./components/contact-form.css"; 24 | @import "./components/masonry-grid.css"; 25 | @import "./components/core.css"; 26 | @import "../../src/block-editor/blocks/common-posts-list/style.css"; 27 | @import "../../src/block-editor/blocks/contact-form/inner-blocks/common/style.css"; 28 | @import "../../src/block-editor/blocks/card/style.css"; 29 | -------------------------------------------------------------------------------- /plugin/assets/css/src/getting-started.css: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2020 Google LLC 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | @import "@material/typography/dist/mdc.typography.css"; 18 | @import "@material/layout-grid/dist/mdc.layout-grid.css"; 19 | @import "@material/button/dist/mdc.button.css"; 20 | @import "@material/ripple/dist/mdc.ripple.css"; 21 | @import "@material/circular-progress/dist/mdc.circular-progress.css"; 22 | @import "./gsm/index.css"; 23 | -------------------------------------------------------------------------------- /plugin/assets/css/src/gsm/content.css: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2020 Google LLC 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | .material-gsm__content { 18 | padding-right: 1rem; 19 | 20 | & .mdc-circular-progress { 21 | --mdc-theme-primary: #fff; 22 | } 23 | 24 | & .mdc-button.is-loading { 25 | text-align: left; 26 | width: 105px; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /plugin/assets/css/src/gsm/index.css: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2020 Google LLC 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | @import "./base.css"; 18 | @import "./content.css"; 19 | @import "./navigation.css"; 20 | @import "./tabs.css"; 21 | @import "./tab.css"; 22 | @import "./notice.css"; 23 | -------------------------------------------------------------------------------- /plugin/assets/css/src/gsm/navigation.css: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2020 Google LLC 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | .material-gsm__navigation { 18 | border-right: 1px solid #eee; 19 | 20 | & .material-gsm__heading { 21 | padding: 1rem 1.25rem; 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /plugin/assets/css/src/gsm/notice.css: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2020 Google LLC 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | .material-wizard__notice { 18 | border-bottom: 0; 19 | border-right: 0; 20 | border-top: 0; 21 | box-shadow: none; 22 | margin-left: 0; 23 | margin-right: 0; 24 | margin-top: 1rem; 25 | } 26 | -------------------------------------------------------------------------------- /plugin/assets/css/src/gsm/tab.css: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2020 Google LLC 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | .material-gsm__tab { 18 | align-items: center; 19 | background-color: transparent; 20 | border: 0; 21 | border-top: 1px solid rgba(33, 33, 33, 0.08); 22 | cursor: pointer; 23 | display: flex; 24 | padding-left: 0; 25 | width: 100%; 26 | 27 | & .material-icons { 28 | border-top: 1px solid #fff; 29 | color: var(--material-design-gsm-icon-color); 30 | margin-top: -1px; 31 | padding-bottom: 1rem; 32 | padding-left: 1rem; 33 | padding-right: 1.5rem; 34 | padding-top: 1rem; 35 | } 36 | 37 | &-title { 38 | padding-bottom: 1rem; 39 | padding-top: 1rem; 40 | text-align: left; 41 | } 42 | 43 | &-active { 44 | background-color: #e4f6ff; 45 | font-weight: 700; 46 | } 47 | } 48 | -------------------------------------------------------------------------------- /plugin/assets/css/src/gsm/tabs.css: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2020 Google LLC 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | .material-gsm__tabs { 18 | margin-left: 0; 19 | } 20 | -------------------------------------------------------------------------------- /plugin/assets/css/src/wizard.css: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2020 Google LLC 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | @import "@material/typography/dist/mdc.typography.css"; 18 | @import "@material/layout-grid/dist/mdc.layout-grid.css"; 19 | @import "@material/button/dist/mdc.button.css"; 20 | @import "@material/switch/dist/mdc.switch.css"; 21 | @import "@material/ripple/dist/mdc.ripple.css"; 22 | @import "@material/circular-progress/dist/mdc.circular-progress.css"; 23 | @import "./wizard/index.css"; 24 | -------------------------------------------------------------------------------- /plugin/assets/css/src/wizard/index.css: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2020 Google LLC 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | @import "./base.css"; 18 | @import "./progress.css"; 19 | @import "./navigation.css"; 20 | @import "./content.css"; 21 | @import "./switch.css"; 22 | @import "./notice.css"; 23 | -------------------------------------------------------------------------------- /plugin/assets/css/src/wizard/navigation.css: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2020 Google LLC 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | .material-wizard__navigation { 18 | 19 | & .material-wizard__next { 20 | float: right; 21 | } 22 | 23 | & .mdc-circular-progress { 24 | --mdc-theme-primary: #fff; 25 | } 26 | 27 | & .mdc-button.is-loading { 28 | text-align: left; 29 | width: 105px; 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /plugin/assets/css/src/wizard/notice.css: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2020 Google LLC 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | .material-wizard__notice { 18 | margin: 0 0 15px; 19 | } 20 | -------------------------------------------------------------------------------- /plugin/assets/css/src/wizard/switch.css: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2020 Google LLC 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | /** 18 | * Override core admin styles 19 | */ 20 | .material-wizard-switch { 21 | --mdc-theme-secondary: var(--material-design-wizard-primary-color); 22 | 23 | & input[type="checkbox"] { 24 | height: 48px; 25 | margin: 0; 26 | width: 68px; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /plugin/assets/images/custom.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /plugin/assets/images/featured.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xwp/material-design-wp-plugin/f0b4e69f0852a56dda99b4315f7386735c86c9be/plugin/assets/images/featured.png -------------------------------------------------------------------------------- /plugin/assets/images/icon-collections/filled.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /plugin/assets/images/icon-collections/outlined.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /plugin/assets/images/icon-collections/rounded.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /plugin/assets/images/icon-collections/sharp.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /plugin/assets/images/icon-collections/two-tone.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /plugin/assets/images/jpg/1x/1-Start building.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xwp/material-design-wp-plugin/f0b4e69f0852a56dda99b4315f7386735c86c9be/plugin/assets/images/jpg/1x/1-Start building.jpg -------------------------------------------------------------------------------- /plugin/assets/images/jpg/1x/2-Material theme.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xwp/material-design-wp-plugin/f0b4e69f0852a56dda99b4315f7386735c86c9be/plugin/assets/images/jpg/1x/2-Material theme.jpg -------------------------------------------------------------------------------- /plugin/assets/images/jpg/1x/3-Quick start examples.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xwp/material-design-wp-plugin/f0b4e69f0852a56dda99b4315f7386735c86c9be/plugin/assets/images/jpg/1x/3-Quick start examples.jpg -------------------------------------------------------------------------------- /plugin/assets/images/jpg/1x/4-Customize your material theme.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xwp/material-design-wp-plugin/f0b4e69f0852a56dda99b4315f7386735c86c9be/plugin/assets/images/jpg/1x/4-Customize your material theme.jpg -------------------------------------------------------------------------------- /plugin/assets/images/jpg/1x/5-Building with material blocks.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xwp/material-design-wp-plugin/f0b4e69f0852a56dda99b4315f7386735c86c9be/plugin/assets/images/jpg/1x/5-Building with material blocks.jpg -------------------------------------------------------------------------------- /plugin/assets/images/jpg/1x/6-Apply your theme.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xwp/material-design-wp-plugin/f0b4e69f0852a56dda99b4315f7386735c86c9be/plugin/assets/images/jpg/1x/6-Apply your theme.jpg -------------------------------------------------------------------------------- /plugin/assets/images/jpg/1x/Banner - 1544x500px.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xwp/material-design-wp-plugin/f0b4e69f0852a56dda99b4315f7386735c86c9be/plugin/assets/images/jpg/1x/Banner - 1544x500px.jpg -------------------------------------------------------------------------------- /plugin/assets/images/jpg/1x/Banner - 772x250px.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xwp/material-design-wp-plugin/f0b4e69f0852a56dda99b4315f7386735c86c9be/plugin/assets/images/jpg/1x/Banner - 772x250px.jpg -------------------------------------------------------------------------------- /plugin/assets/images/jpg/1x/Hero - 2500x1400px.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xwp/material-design-wp-plugin/f0b4e69f0852a56dda99b4315f7386735c86c9be/plugin/assets/images/jpg/1x/Hero - 2500x1400px.jpg -------------------------------------------------------------------------------- /plugin/assets/images/jpg/1x/Hero - 360x180px.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xwp/material-design-wp-plugin/f0b4e69f0852a56dda99b4315f7386735c86c9be/plugin/assets/images/jpg/1x/Hero - 360x180px.jpg -------------------------------------------------------------------------------- /plugin/assets/images/jpg/1x/Hero - 760x360px.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xwp/material-design-wp-plugin/f0b4e69f0852a56dda99b4315f7386735c86c9be/plugin/assets/images/jpg/1x/Hero - 760x360px.jpg -------------------------------------------------------------------------------- /plugin/assets/images/jpg/2x/1-Start building.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xwp/material-design-wp-plugin/f0b4e69f0852a56dda99b4315f7386735c86c9be/plugin/assets/images/jpg/2x/1-Start building.jpg -------------------------------------------------------------------------------- /plugin/assets/images/jpg/2x/2-Material theme.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xwp/material-design-wp-plugin/f0b4e69f0852a56dda99b4315f7386735c86c9be/plugin/assets/images/jpg/2x/2-Material theme.jpg -------------------------------------------------------------------------------- /plugin/assets/images/jpg/2x/3-Quick start examples.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xwp/material-design-wp-plugin/f0b4e69f0852a56dda99b4315f7386735c86c9be/plugin/assets/images/jpg/2x/3-Quick start examples.jpg -------------------------------------------------------------------------------- /plugin/assets/images/jpg/2x/4-Customize your material theme.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xwp/material-design-wp-plugin/f0b4e69f0852a56dda99b4315f7386735c86c9be/plugin/assets/images/jpg/2x/4-Customize your material theme.jpg -------------------------------------------------------------------------------- /plugin/assets/images/jpg/2x/5-Building with material blocks.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xwp/material-design-wp-plugin/f0b4e69f0852a56dda99b4315f7386735c86c9be/plugin/assets/images/jpg/2x/5-Building with material blocks.jpg -------------------------------------------------------------------------------- /plugin/assets/images/jpg/2x/6-Apply your theme.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xwp/material-design-wp-plugin/f0b4e69f0852a56dda99b4315f7386735c86c9be/plugin/assets/images/jpg/2x/6-Apply your theme.jpg -------------------------------------------------------------------------------- /plugin/assets/images/jpg/2x/Banner - 1544x500px.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xwp/material-design-wp-plugin/f0b4e69f0852a56dda99b4315f7386735c86c9be/plugin/assets/images/jpg/2x/Banner - 1544x500px.jpg -------------------------------------------------------------------------------- /plugin/assets/images/jpg/2x/Banner - 772x250px.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xwp/material-design-wp-plugin/f0b4e69f0852a56dda99b4315f7386735c86c9be/plugin/assets/images/jpg/2x/Banner - 772x250px.jpg -------------------------------------------------------------------------------- /plugin/assets/images/jpg/2x/Hero - 2500x1400px.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xwp/material-design-wp-plugin/f0b4e69f0852a56dda99b4315f7386735c86c9be/plugin/assets/images/jpg/2x/Hero - 2500x1400px.jpg -------------------------------------------------------------------------------- /plugin/assets/images/jpg/2x/Hero - 360x180px.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xwp/material-design-wp-plugin/f0b4e69f0852a56dda99b4315f7386735c86c9be/plugin/assets/images/jpg/2x/Hero - 360x180px.jpg -------------------------------------------------------------------------------- /plugin/assets/images/jpg/2x/Hero - 760x360px.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xwp/material-design-wp-plugin/f0b4e69f0852a56dda99b4315f7386735c86c9be/plugin/assets/images/jpg/2x/Hero - 760x360px.jpg -------------------------------------------------------------------------------- /plugin/assets/images/logo-outline-dark.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /plugin/assets/images/logo-outline.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /plugin/assets/images/onboarding/apply-your-theme.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xwp/material-design-wp-plugin/f0b4e69f0852a56dda99b4315f7386735c86c9be/plugin/assets/images/onboarding/apply-your-theme.png -------------------------------------------------------------------------------- /plugin/assets/images/onboarding/build-with-material-blocks.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xwp/material-design-wp-plugin/f0b4e69f0852a56dda99b4315f7386735c86c9be/plugin/assets/images/onboarding/build-with-material-blocks.png -------------------------------------------------------------------------------- /plugin/assets/images/onboarding/customize-your-theme.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xwp/material-design-wp-plugin/f0b4e69f0852a56dda99b4315f7386735c86c9be/plugin/assets/images/onboarding/customize-your-theme.png -------------------------------------------------------------------------------- /plugin/assets/images/onboarding/material-blocks-getting-started.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xwp/material-design-wp-plugin/f0b4e69f0852a56dda99b4315f7386735c86c9be/plugin/assets/images/onboarding/material-blocks-getting-started.gif -------------------------------------------------------------------------------- /plugin/assets/images/plugin-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xwp/material-design-wp-plugin/f0b4e69f0852a56dda99b4315f7386735c86c9be/plugin/assets/images/plugin-logo.png -------------------------------------------------------------------------------- /plugin/assets/images/png/1x/1-Start building.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xwp/material-design-wp-plugin/f0b4e69f0852a56dda99b4315f7386735c86c9be/plugin/assets/images/png/1x/1-Start building.png -------------------------------------------------------------------------------- /plugin/assets/images/png/1x/2-Material theme.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xwp/material-design-wp-plugin/f0b4e69f0852a56dda99b4315f7386735c86c9be/plugin/assets/images/png/1x/2-Material theme.png -------------------------------------------------------------------------------- /plugin/assets/images/png/1x/3-Quick start examples.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xwp/material-design-wp-plugin/f0b4e69f0852a56dda99b4315f7386735c86c9be/plugin/assets/images/png/1x/3-Quick start examples.png -------------------------------------------------------------------------------- /plugin/assets/images/png/1x/4-Customize your material theme.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xwp/material-design-wp-plugin/f0b4e69f0852a56dda99b4315f7386735c86c9be/plugin/assets/images/png/1x/4-Customize your material theme.png -------------------------------------------------------------------------------- /plugin/assets/images/png/1x/5-Building with material blocks.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xwp/material-design-wp-plugin/f0b4e69f0852a56dda99b4315f7386735c86c9be/plugin/assets/images/png/1x/5-Building with material blocks.png -------------------------------------------------------------------------------- /plugin/assets/images/png/1x/6-Apply your theme.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xwp/material-design-wp-plugin/f0b4e69f0852a56dda99b4315f7386735c86c9be/plugin/assets/images/png/1x/6-Apply your theme.png -------------------------------------------------------------------------------- /plugin/assets/images/png/1x/Banner - 1544x500px.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xwp/material-design-wp-plugin/f0b4e69f0852a56dda99b4315f7386735c86c9be/plugin/assets/images/png/1x/Banner - 1544x500px.png -------------------------------------------------------------------------------- /plugin/assets/images/png/1x/Banner - 772x250px.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xwp/material-design-wp-plugin/f0b4e69f0852a56dda99b4315f7386735c86c9be/plugin/assets/images/png/1x/Banner - 772x250px.png -------------------------------------------------------------------------------- /plugin/assets/images/png/1x/Hero - 2500x1400px.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xwp/material-design-wp-plugin/f0b4e69f0852a56dda99b4315f7386735c86c9be/plugin/assets/images/png/1x/Hero - 2500x1400px.png -------------------------------------------------------------------------------- /plugin/assets/images/png/1x/Hero - 360x180px.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xwp/material-design-wp-plugin/f0b4e69f0852a56dda99b4315f7386735c86c9be/plugin/assets/images/png/1x/Hero - 360x180px.png -------------------------------------------------------------------------------- /plugin/assets/images/png/1x/Hero - 760x360px.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xwp/material-design-wp-plugin/f0b4e69f0852a56dda99b4315f7386735c86c9be/plugin/assets/images/png/1x/Hero - 760x360px.png -------------------------------------------------------------------------------- /plugin/assets/images/png/2x/1-Start building.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xwp/material-design-wp-plugin/f0b4e69f0852a56dda99b4315f7386735c86c9be/plugin/assets/images/png/2x/1-Start building.png -------------------------------------------------------------------------------- /plugin/assets/images/png/2x/2-Material theme.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xwp/material-design-wp-plugin/f0b4e69f0852a56dda99b4315f7386735c86c9be/plugin/assets/images/png/2x/2-Material theme.png -------------------------------------------------------------------------------- /plugin/assets/images/png/2x/3-Quick start examples.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xwp/material-design-wp-plugin/f0b4e69f0852a56dda99b4315f7386735c86c9be/plugin/assets/images/png/2x/3-Quick start examples.png -------------------------------------------------------------------------------- /plugin/assets/images/png/2x/4-Customize your material theme.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xwp/material-design-wp-plugin/f0b4e69f0852a56dda99b4315f7386735c86c9be/plugin/assets/images/png/2x/4-Customize your material theme.png -------------------------------------------------------------------------------- /plugin/assets/images/png/2x/5-Building with material blocks.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xwp/material-design-wp-plugin/f0b4e69f0852a56dda99b4315f7386735c86c9be/plugin/assets/images/png/2x/5-Building with material blocks.png -------------------------------------------------------------------------------- /plugin/assets/images/png/2x/6-Apply your theme.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xwp/material-design-wp-plugin/f0b4e69f0852a56dda99b4315f7386735c86c9be/plugin/assets/images/png/2x/6-Apply your theme.png -------------------------------------------------------------------------------- /plugin/assets/images/png/2x/Banner - 1544x500px.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xwp/material-design-wp-plugin/f0b4e69f0852a56dda99b4315f7386735c86c9be/plugin/assets/images/png/2x/Banner - 1544x500px.png -------------------------------------------------------------------------------- /plugin/assets/images/png/2x/Banner - 772x250px.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xwp/material-design-wp-plugin/f0b4e69f0852a56dda99b4315f7386735c86c9be/plugin/assets/images/png/2x/Banner - 772x250px.png -------------------------------------------------------------------------------- /plugin/assets/images/png/2x/Hero - 2500x1400px.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xwp/material-design-wp-plugin/f0b4e69f0852a56dda99b4315f7386735c86c9be/plugin/assets/images/png/2x/Hero - 2500x1400px.png -------------------------------------------------------------------------------- /plugin/assets/images/png/2x/Hero - 360x180px.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xwp/material-design-wp-plugin/f0b4e69f0852a56dda99b4315f7386735c86c9be/plugin/assets/images/png/2x/Hero - 360x180px.png -------------------------------------------------------------------------------- /plugin/assets/images/png/2x/Hero - 760x360px.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xwp/material-design-wp-plugin/f0b4e69f0852a56dda99b4315f7386735c86c9be/plugin/assets/images/png/2x/Hero - 760x360px.png -------------------------------------------------------------------------------- /plugin/assets/images/preview/contact-form.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xwp/material-design-wp-plugin/f0b4e69f0852a56dda99b4315f7386735c86c9be/plugin/assets/images/preview/contact-form.jpg -------------------------------------------------------------------------------- /plugin/assets/images/preview/handpicked-posts.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xwp/material-design-wp-plugin/f0b4e69f0852a56dda99b4315f7386735c86c9be/plugin/assets/images/preview/handpicked-posts.jpg -------------------------------------------------------------------------------- /plugin/assets/images/preview/tab-bar.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xwp/material-design-wp-plugin/f0b4e69f0852a56dda99b4315f7386735c86c9be/plugin/assets/images/preview/tab-bar.jpg -------------------------------------------------------------------------------- /plugin/assets/images/wizard/addon-material-theme.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xwp/material-design-wp-plugin/f0b4e69f0852a56dda99b4315f7386735c86c9be/plugin/assets/images/wizard/addon-material-theme.png -------------------------------------------------------------------------------- /plugin/assets/images/wizard/addon-quick-start-examples.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xwp/material-design-wp-plugin/f0b4e69f0852a56dda99b4315f7386735c86c9be/plugin/assets/images/wizard/addon-quick-start-examples.png -------------------------------------------------------------------------------- /plugin/assets/images/wizard/complete-build-with-blocks.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xwp/material-design-wp-plugin/f0b4e69f0852a56dda99b4315f7386735c86c9be/plugin/assets/images/wizard/complete-build-with-blocks.png -------------------------------------------------------------------------------- /plugin/assets/images/wizard/customize-your-material-theme.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xwp/material-design-wp-plugin/f0b4e69f0852a56dda99b4315f7386735c86c9be/plugin/assets/images/wizard/customize-your-material-theme.png -------------------------------------------------------------------------------- /plugin/assets/images/wizard/placeholder-small.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xwp/material-design-wp-plugin/f0b4e69f0852a56dda99b4315f7386735c86c9be/plugin/assets/images/wizard/placeholder-small.png -------------------------------------------------------------------------------- /plugin/assets/images/wizard/placeholder.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xwp/material-design-wp-plugin/f0b4e69f0852a56dda99b4315f7386735c86c9be/plugin/assets/images/wizard/placeholder.png -------------------------------------------------------------------------------- /plugin/assets/images/wizard/welcome.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xwp/material-design-wp-plugin/f0b4e69f0852a56dda99b4315f7386735c86c9be/plugin/assets/images/wizard/welcome.png -------------------------------------------------------------------------------- /plugin/assets/src/admin/get-config.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2020 Google LLC 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | /* istanbul ignore file */ 18 | 19 | /** 20 | * Get Material onboarding wizard config value. 21 | * 22 | * @param {string} name Name of the config value to retrieve. 23 | * @return {string|Object|undefined} Value of config. 24 | */ 25 | const getConfig = name => { 26 | const configData = window.materialDesignWizard; 27 | 28 | if ( undefined === configData ) { 29 | return undefined; 30 | } 31 | 32 | return configData[ name ]; 33 | }; 34 | 35 | export default getConfig; 36 | -------------------------------------------------------------------------------- /plugin/assets/src/block-editor/blocks/button/components/block-icon.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2020 Google LLC 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | /** 18 | * Block Icon component. 19 | * 20 | * @return {Function} Function returning the HTML markup for the component. 21 | */ 22 | const BlockIcon = () => ( 23 | 24 | 31 | 32 | 36 | 37 | 38 | 39 | ); 40 | 41 | export default BlockIcon; 42 | -------------------------------------------------------------------------------- /plugin/assets/src/block-editor/blocks/button/example.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2020 Google LLC 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | import { __ } from '@wordpress/i18n'; 18 | 19 | export const example = { 20 | attributes: { 21 | label: __( 'Label', 'material-design' ), 22 | type: 'text', 23 | style: 'text', 24 | iconPosition: 'leading', 25 | }, 26 | }; 27 | -------------------------------------------------------------------------------- /plugin/assets/src/block-editor/blocks/button/transforms.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2020 Google LLC 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | /** 18 | * WordPress dependencies 19 | */ 20 | import { createBlock } from '@wordpress/blocks'; 21 | 22 | const transforms = { 23 | from: [ 24 | { 25 | type: 'block', 26 | blocks: [ 'core/buttons' ], 27 | transform: ( buttonsAttributes, buttons ) => { 28 | return buttons.map( ( { attributes } ) => { 29 | return createBlock( 'material/button', { 30 | label: attributes.text, 31 | url: attributes.url, 32 | linkTarget: attributes.linkTarget, 33 | rel: attributes.rel, 34 | } ); 35 | } ); 36 | }, 37 | }, 38 | ], 39 | }; 40 | 41 | export default transforms; 42 | -------------------------------------------------------------------------------- /plugin/assets/src/block-editor/blocks/button/utils/has-bg.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2020 Google LLC 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | export default style => style === 'unelevated' || style === 'raised'; 18 | -------------------------------------------------------------------------------- /plugin/assets/src/block-editor/blocks/buttons/block.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "material/buttons", 3 | "category": "material", 4 | "supports": { 5 | "anchor": true, 6 | "align": true, 7 | "alignWide": false 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /plugin/assets/src/block-editor/blocks/buttons/components/block-icon.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2020 Google LLC 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | /** 18 | * Block Icon component. 19 | * 20 | * @return {Function} Function returning the HTML markup for the component. 21 | */ 22 | const BlockIcon = () => ( 23 | 24 | 31 | 32 | 36 | 37 | 38 | 39 | ); 40 | 41 | export default BlockIcon; 42 | -------------------------------------------------------------------------------- /plugin/assets/src/block-editor/blocks/buttons/edit.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2020 Google LLC 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | /** 18 | * WordPress dependencies 19 | */ 20 | import { InnerBlocks } from '@wordpress/block-editor'; 21 | 22 | /** 23 | * Internal dependencies 24 | */ 25 | import './style.css'; 26 | import metadata from '../button/block.json'; 27 | 28 | const { name } = metadata; 29 | 30 | const ALLOWED_BLOCKS = [ name ]; 31 | const BUTTONS_TEMPLATE = [ [ name ] ]; 32 | 33 | const Edit = () => { 34 | return ( 35 |
36 | 41 |
42 | ); 43 | }; 44 | 45 | export default Edit; 46 | -------------------------------------------------------------------------------- /plugin/assets/src/block-editor/blocks/buttons/example.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2020 Google LLC 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | import { __ } from '@wordpress/i18n'; 18 | 19 | export const example = { 20 | innerBlocks: [ 21 | { 22 | name: 'material/button', 23 | attributes: { text: __( 'Find out more' ) }, 24 | }, 25 | { 26 | name: 'material/button', 27 | attributes: { text: __( 'Contact us' ) }, 28 | }, 29 | ], 30 | }; 31 | -------------------------------------------------------------------------------- /plugin/assets/src/block-editor/blocks/buttons/save.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2020 Google LLC 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | /** 18 | * WordPress dependencies 19 | */ 20 | import { InnerBlocks } from '@wordpress/block-editor'; 21 | 22 | const Save = () => { 23 | return ( 24 |
25 | 26 |
27 | ); 28 | }; 29 | 30 | export default Save; 31 | -------------------------------------------------------------------------------- /plugin/assets/src/block-editor/blocks/buttons/style.css: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2020 Google LLC 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | .wp-block.block-editor-block-list__block .block-editor-inner-blocks[data-type="material/button"] { 18 | display: inline-block; 19 | margin: 0; 20 | width: auto; 21 | } 22 | 23 | .wp-block-material-buttons .block-editor-button-block-appender { 24 | background: none; 25 | outline: none; 26 | } 27 | 28 | .wp-block-material-buttons .block-editor-block-list__layout > div:last-child { 29 | display: inline-block; 30 | } 31 | 32 | .wp-block-material-buttons .block-editor-block-list__layout { 33 | align-items: center; 34 | display: flex; 35 | justify-content: flex-start; 36 | } 37 | -------------------------------------------------------------------------------- /plugin/assets/src/block-editor/blocks/buttons/transforms.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2020 Google LLC 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | /** 18 | * WordPress dependencies 19 | */ 20 | import { createBlock } from '@wordpress/blocks'; 21 | 22 | const transforms = { 23 | from: [ 24 | { 25 | type: 'block', 26 | blocks: [ 'core/buttons' ], 27 | transform: ( buttonsAttributes, buttons ) => { 28 | const innerButtons = buttons.map( ( { attributes } ) => { 29 | return createBlock( 'material/button', { 30 | label: attributes.text, 31 | url: attributes.url, 32 | linkTarget: attributes.linkTarget, 33 | rel: attributes.rel, 34 | } ); 35 | } ); 36 | 37 | return createBlock( 'material/buttons', {}, innerButtons ); 38 | }, 39 | }, 40 | ], 41 | }; 42 | 43 | export default transforms; 44 | -------------------------------------------------------------------------------- /plugin/assets/src/block-editor/blocks/card/example.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2020 Google LLC 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | /** 18 | * Internal dependencies 19 | */ 20 | import { CARD_ATTRIBUTES_VALUE } from '../cards-collection/constants'; 21 | 22 | export const example = { 23 | attributes: { 24 | ...CARD_ATTRIBUTES_VALUE, 25 | displayActions: false, 26 | imageSourceUrl: 27 | 'https://images.unsplash.com/photo-1574191942747-140df1f9c477?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=2643&q=80', 28 | }, 29 | }; 30 | -------------------------------------------------------------------------------- /plugin/assets/src/block-editor/blocks/cards-collection/example.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2020 Google LLC 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | /** 18 | * Internal dependencies 19 | */ 20 | import { example as cardExample } from '../card/example'; 21 | import { DEFAULT_NUMBER_OF_CARDS } from './constants'; 22 | 23 | const cardsProps = []; 24 | 25 | for ( let index = 0; index < DEFAULT_NUMBER_OF_CARDS; index++ ) { 26 | cardsProps.push( cardExample.attributes ); 27 | } 28 | 29 | export const example = { 30 | attributes: { 31 | displayActions: false, 32 | cardsProps, 33 | }, 34 | }; 35 | -------------------------------------------------------------------------------- /plugin/assets/src/block-editor/blocks/cards-collection/utils/get-column-span.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2020 Google LLC 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | /** 18 | * Get column span for grid. 19 | * 20 | * @param {string} style - Grid style. 21 | * @param {number} columns - Number of columns. 22 | * 23 | * @return {number} Column span. 24 | */ 25 | export default ( style, columns ) => { 26 | let columnSpan = 12; 27 | 28 | if ( style === 'grid' ) { 29 | /* 30 | * This works well for the design if we have a maximum of 4 columns. It would not work 31 | * so well for 5 and 7 columns for example. Something to keep in mind if the max number of columns 32 | * increase above 4. 33 | */ 34 | columnSpan = Math.floor( 12 / columns ); 35 | } 36 | 37 | return columnSpan; 38 | }; 39 | -------------------------------------------------------------------------------- /plugin/assets/src/block-editor/blocks/contact-form/block.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "material/contact-form", 3 | "category": "material", 4 | "attributes": { 5 | "emailTo": { 6 | "type": "string", 7 | "default": "" 8 | }, 9 | "subject": { 10 | "type": "string", 11 | "default": "This e-mail was sent from a contact form" 12 | }, 13 | "confirmationMessage": { 14 | "type": "string", 15 | "default": "Your message has been successfully sent" 16 | }, 17 | "outlined": { 18 | "type": "boolean", 19 | "default": false 20 | }, 21 | "fullWidth": { 22 | "type": "boolean", 23 | "default": true 24 | }, 25 | "preview": { 26 | "type": "boolean", 27 | "default": false 28 | } 29 | } 30 | } -------------------------------------------------------------------------------- /plugin/assets/src/block-editor/blocks/contact-form/contact-form-context.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2020 Google LLC 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | /** 18 | * WordPress dependencies 19 | */ 20 | import { createContext } from '@wordpress/element'; 21 | 22 | const ContactFormContext = createContext( { 23 | parentOutlined: true, 24 | parentFullWidth: true, 25 | parentSetter: () => {}, 26 | } ); 27 | 28 | export default ContactFormContext; 29 | -------------------------------------------------------------------------------- /plugin/assets/src/block-editor/blocks/contact-form/editor.css: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2020 Google LLC 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | .contact-form-notice { 18 | margin: 5px 0 2px !important; 19 | padding-right: 0 !important; 20 | } 21 | -------------------------------------------------------------------------------- /plugin/assets/src/block-editor/blocks/contact-form/inner-blocks/email-input-field/block-icon.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2020 Google LLC 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | /** 18 | * Block Icon component. 19 | * 20 | * @return {Function} Function returning the HTML markup for the component. 21 | */ 22 | const BlockIcon = () => ( 23 | 29 | 30 | 31 | 32 | ); 33 | 34 | export default BlockIcon; 35 | -------------------------------------------------------------------------------- /plugin/assets/src/block-editor/blocks/contact-form/inner-blocks/message-input-field/block-icon.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2020 Google LLC 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | /** 18 | * Block Icon component. 19 | * 20 | * @return {Function} Function returning the HTML markup for the component. 21 | */ 22 | const BlockIcon = () => ( 23 | 29 | 30 | 31 | 32 | ); 33 | 34 | export default BlockIcon; 35 | -------------------------------------------------------------------------------- /plugin/assets/src/block-editor/blocks/contact-form/inner-blocks/short-text-input-field/block-icon.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2020 Google LLC 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | /** 18 | * Block Icon component. 19 | * 20 | * @return {Function} Function returning the HTML markup for the component. 21 | */ 22 | const BlockIcon = () => ( 23 | 24 | 25 | 26 | 27 | ); 28 | 29 | export default BlockIcon; 30 | -------------------------------------------------------------------------------- /plugin/assets/src/block-editor/blocks/contact-form/inner-blocks/website-input-field/block-icon.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2020 Google LLC 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | /** 18 | * Block Icon component. 19 | * 20 | * @return {Function} Function returning the HTML markup for the component. 21 | */ 22 | const BlockIcon = () => ( 23 | 29 | 30 | 31 | 32 | ); 33 | 34 | export default BlockIcon; 35 | -------------------------------------------------------------------------------- /plugin/assets/src/block-editor/blocks/contact-form/save.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2020 Google LLC 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | /** 18 | * WordPress dependencies 19 | */ 20 | import { InnerBlocks } from '@wordpress/block-editor'; 21 | 22 | /** 23 | * Contact Form Save component. 24 | * 25 | * @param {Object} props - Component props. 26 | * @param {string} props.className - Component classes. 27 | * 28 | * @return {Function} Function returning the HTML markup for the component. 29 | */ 30 | const Save = props => { 31 | const { className } = props; 32 | 33 | return ( 34 |
35 | 36 |
37 | ); 38 | }; 39 | 40 | export default Save; 41 | -------------------------------------------------------------------------------- /plugin/assets/src/block-editor/blocks/data-table/example.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2020 Google LLC 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | /** 18 | * WordPress dependencies 19 | */ 20 | import { __ } from '@wordpress/i18n'; 21 | 22 | export const example = { 23 | attributes: { 24 | body: [ 25 | { 26 | cells: [ 27 | { 28 | content: __( 'Column One', 'material-design' ), 29 | tag: 'td', 30 | }, 31 | { 32 | content: __( 'Column Two', 'material-design' ), 33 | tag: 'td', 34 | }, 35 | ], 36 | }, 37 | { 38 | cells: [ 39 | { 40 | content: __( 'Column Three', 'material-design' ), 41 | tag: 'td', 42 | }, 43 | { 44 | content: __( 'Column Four', 'material-design' ), 45 | tag: 'td', 46 | }, 47 | ], 48 | }, 49 | ], 50 | }, 51 | }; 52 | -------------------------------------------------------------------------------- /plugin/assets/src/block-editor/blocks/data-table/styles.css: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2020 Google LLC 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | .is-selected > .mdc-data-table { 18 | overflow: hidden !important; 19 | } 20 | 21 | .mdc-data-table { 22 | width: 100%; 23 | 24 | tfoot { 25 | border: none; 26 | } 27 | } 28 | 29 | .mdc-data-table__caption { 30 | padding: 10px 0; 31 | } 32 | 33 | .mdc-data-table__header-cell, 34 | .mdc-data-table__cell { 35 | 36 | &.is-selected { 37 | border: 1px solid #00a0d2 !important; 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /plugin/assets/src/block-editor/blocks/hand-picked-posts/editor.css: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2020 Google LLC 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | .components-placeholder__label { 18 | 19 | svg { 20 | margin-right: 10px; 21 | } 22 | 23 | } 24 | 25 | .editor-styles-wrapper .editor-block-list__layout a.mdc-button { 26 | color: var(--mdc-theme-primary, #6200ee) !important; 27 | text-decoration: none !important; 28 | } 29 | 30 | .editor-styles-wrapper .single-post-card__secondary p { 31 | margin-top: 0; 32 | margin-bottom: 0; 33 | } 34 | -------------------------------------------------------------------------------- /plugin/assets/src/block-editor/blocks/image-list/transforms.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2020 Google LLC 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | /** 18 | * WordPress dependencies 19 | */ 20 | import { createBlock } from '@wordpress/blocks'; 21 | 22 | const transforms = { 23 | from: [ 24 | { 25 | type: 'block', 26 | blocks: [ 'core/gallery' ], 27 | transform: ( { images } ) => 28 | createBlock( 'material/image-list', { 29 | images, 30 | } ), 31 | }, 32 | ], 33 | }; 34 | 35 | export default transforms; 36 | -------------------------------------------------------------------------------- /plugin/assets/src/block-editor/blocks/list/example.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2020 Google LLC 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | /** 18 | * WordPress dependencies 19 | */ 20 | import { __ } from '@wordpress/i18n'; 21 | 22 | export const example = { 23 | attributes: { 24 | style: 'two-line', 25 | items: [ 26 | { 27 | icon: 'spa', 28 | primaryText: __( 'List item', 'material-design' ), 29 | }, 30 | { 31 | icon: 'spa', 32 | primaryText: __( 'List item', 'material-design' ), 33 | }, 34 | { 35 | icon: 'spa', 36 | primaryText: __( 'List item', 'material-design' ), 37 | }, 38 | { 39 | icon: 'spa', 40 | primaryText: __( 'List item', 'material-design' ), 41 | }, 42 | { 43 | icon: 'spa', 44 | primaryText: __( 'List item', 'material-design' ), 45 | }, 46 | ], 47 | preview: true, 48 | }, 49 | }; 50 | -------------------------------------------------------------------------------- /plugin/assets/src/block-editor/blocks/list/style.css: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2020 Google LLC 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | .list-item { 18 | 19 | &__text { 20 | outline: none; 21 | cursor: text; 22 | } 23 | } 24 | 25 | .mdc-list-item__text { 26 | width: calc(100% - 100px); 27 | display: block; 28 | } 29 | 30 | .mdc-list--two-line .mdc-list-item__text { 31 | margin-top: 11px; 32 | } 33 | 34 | .mdc-list-item__primary-text, 35 | .mdc-list-item__secondary-text { 36 | margin-bottom: 0 !important; 37 | 38 | &::before, 39 | &::after { 40 | display: none !important; 41 | } 42 | } 43 | 44 | .mdc-list-item { 45 | 46 | cursor: text !important; 47 | 48 | &::before, 49 | &::after { 50 | display: none !important; 51 | } 52 | } 53 | -------------------------------------------------------------------------------- /plugin/assets/src/block-editor/blocks/list/transforms.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2020 Google LLC 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | /** 18 | * WordPress dependencies 19 | */ 20 | import { createBlock } from '@wordpress/blocks'; 21 | 22 | const transforms = { 23 | from: [ 24 | { 25 | type: 'block', 26 | blocks: [ 'core/list' ], 27 | transform: ( { values } ) => { 28 | const itemValues = values.match( /(?<=\).*?(?=\<\/li\>)/gm ); 29 | const items = []; 30 | 31 | itemValues.forEach( value => { 32 | items.push( { 33 | icon: 'spa', 34 | primaryText: value, 35 | } ); 36 | } ); 37 | 38 | return createBlock( 'material/list', { 39 | items, 40 | } ); 41 | }, 42 | }, 43 | ], 44 | }; 45 | 46 | export default transforms; 47 | -------------------------------------------------------------------------------- /plugin/assets/src/block-editor/blocks/recent-posts/edit.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2020 Google LLC 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | /** 18 | * Internal dependencies 19 | */ 20 | import InspectorControls from './components/inspector-controls'; 21 | import EditWithSelect from '../common-posts-list/edit-with-select'; 22 | 23 | /** 24 | * Recent Posts Edit component. 25 | * 26 | * @param {Object} props - Component props. 27 | * @param {Object} props.attributes - Component attributes. 28 | * @param {string} props.name - Component name. 29 | * 30 | * @return {Function} Function returning the HTML markup for the component. 31 | */ 32 | const Edit = props => { 33 | return ( 34 | <> 35 | 36 | 37 | 38 | ); 39 | }; 40 | 41 | export default Edit; 42 | -------------------------------------------------------------------------------- /plugin/assets/src/block-editor/blocks/recent-posts/example.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2020 Google LLC 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | export const example = { 18 | attributes: { 19 | postsToShow: 2, 20 | columns: 2, 21 | }, 22 | }; 23 | -------------------------------------------------------------------------------- /plugin/assets/src/block-editor/blocks/tab-bar/block.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "material/tab-bar", 3 | "category": "material", 4 | "attributes": { 5 | "forceUpdate": { 6 | "type": "boolean", 7 | "default": true 8 | }, 9 | "iconPosition": { 10 | "type": "string", 11 | "default": "none" 12 | }, 13 | "tabs": { 14 | "type": "array", 15 | "default": [] 16 | }, 17 | "preview": { 18 | "type": "boolean", 19 | "default": false 20 | } 21 | }, 22 | "supports": { 23 | "align": [ 24 | "wide", 25 | "full" 26 | ] 27 | } 28 | } -------------------------------------------------------------------------------- /plugin/assets/src/block-editor/blocks/tab-bar/options.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2020 Google LLC 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | /** 18 | * WordPress dependencies 19 | */ 20 | import { __ } from '@wordpress/i18n'; 21 | 22 | export const ICON_POSITIONS = [ 23 | { 24 | label: __( 'None', 'material-design' ), 25 | value: 'none', 26 | }, 27 | { 28 | label: __( 'Leading', 'material-design' ), 29 | value: 'leading', 30 | }, 31 | { 32 | label: __( 'Above', 'material-design' ), 33 | value: 'above', 34 | }, 35 | ]; 36 | -------------------------------------------------------------------------------- /plugin/assets/src/block-editor/components/attribute-with-devices/style.css: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2020 Google LLC 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | .components-base-control__attr-device-label { 18 | display: inline-block; 19 | margin-left: 10px; 20 | 21 | & button { 22 | background-color: #eee; 23 | border: none; 24 | border-radius: 20px; 25 | padding: 0; 26 | margin-left: 6px; 27 | display: inline-block; 28 | cursor: pointer; 29 | width: 32px; 30 | height: 32px; 31 | 32 | &.is-selected, 33 | &:hover { 34 | background-color: #888; 35 | color: var(--var-text-color); 36 | } 37 | 38 | i { 39 | font-size: 14px; 40 | line-height: 24px; 41 | text-align: center; 42 | } 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /plugin/assets/src/block-editor/components/button-group/style.css: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2020 Google LLC 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | .btn-group { 18 | 19 | &__label { 20 | margin: 12px 0 4px; 21 | } 22 | 23 | &__list { 24 | display: inline-flex; 25 | margin: 5px 0; 26 | border: 1px solid #007eba; 27 | border-radius: 3px; 28 | 29 | &__list-item { 30 | margin: 0; 31 | 32 | &__button { 33 | display: block; 34 | color: #007eba; 35 | background: none; 36 | border: none; 37 | padding: 10px 7px; 38 | cursor: pointer; 39 | outline: none; 40 | 41 | &--active { 42 | background-color: #007eba; 43 | color: #fff; 44 | } 45 | } 46 | 47 | &:not(:first-child):not(:last-child) { 48 | border-left: 1px solid #007eba; 49 | border-right: 1px solid #007eba; 50 | } 51 | } 52 | } 53 | } 54 | -------------------------------------------------------------------------------- /plugin/assets/src/block-editor/components/card-styles-panel/style-icons/index.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2020 Google LLC 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | import GridIcon from './grid-icon'; 18 | import ListIcon from './list-icon'; 19 | import MasonryIcon from './masonry-icon'; 20 | 21 | export { GridIcon, ListIcon, MasonryIcon }; 22 | -------------------------------------------------------------------------------- /plugin/assets/src/block-editor/components/card-styles-panel/style.css: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2020 Google LLC 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | /* Card Styles Panel style */ 18 | .components-base-control__label-actions { 19 | display: inline-block; 20 | margin-left: 10px; 21 | 22 | & button { 23 | background-color: #eee; 24 | border: none; 25 | border-radius: 20px; 26 | padding: 0; 27 | margin-left: 6px; 28 | display: inline-block; 29 | cursor: pointer; 30 | 31 | &.is-selected, 32 | &:hover { 33 | background-color: #c4c4c4; 34 | color: var(--var-text-color); 35 | } 36 | 37 | i { 38 | font-size: 12px; 39 | line-height: 22px; 40 | text-align: center; 41 | width: 22px; 42 | } 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /plugin/assets/src/block-editor/components/error-message/editor.css: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2020 Google LLC 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | .material-design-block-error-message { 18 | margin-bottom: 16px; 19 | margin-top: 8px; 20 | } 21 | 22 | .material-design-block-api-error { 23 | 24 | .components-placeholder__fieldset { 25 | display: block; 26 | } 27 | 28 | .material-design-block-error-message { 29 | margin-top: 0; 30 | } 31 | 32 | .components-spinner { 33 | float: none; 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /plugin/assets/src/block-editor/components/error-message/error-icon.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2020 Google LLC 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | /** 18 | * Error Icon component. 19 | * 20 | * @return {Function} A functional component. 21 | */ 22 | const ErrorIcon = () => ( 23 | 29 | 30 | 31 | 32 | ); 33 | 34 | export default ErrorIcon; 35 | -------------------------------------------------------------------------------- /plugin/assets/src/block-editor/components/global-shape-size/style.css: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2020 Google LLC 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | .components-global-shape-size { 18 | 19 | & .components-base-control, 20 | & .components-base-control__field { 21 | margin-bottom: 0; 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /plugin/assets/src/block-editor/components/layout-controls/style.css: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2020 Google LLC 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | .components-base-control__layout-controls-label { 18 | display: block; 19 | font-size: 1.1em; 20 | margin-bottom: 1rem; 21 | } 22 | 23 | .components-base-control__layout-controls { 24 | display: inline-block; 25 | margin-left: 10px; 26 | 27 | & button { 28 | background-color: #eee; 29 | border: none; 30 | border-radius: 20px; 31 | padding: 0; 32 | margin-left: 6px; 33 | display: inline-block; 34 | cursor: pointer; 35 | width: 32px; 36 | height: 32px; 37 | 38 | &.is-selected, 39 | &:hover { 40 | background-color: #888; 41 | color: var(--var-text-color); 42 | } 43 | 44 | i { 45 | font-size: 14px; 46 | line-height: 24px; 47 | text-align: center; 48 | } 49 | } 50 | } 51 | -------------------------------------------------------------------------------- /plugin/assets/src/block-editor/components/polyfills/index.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2021 Google LLC 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | export { default as ToolbarGroup } from './toolbar-group'; 18 | -------------------------------------------------------------------------------- /plugin/assets/src/block-editor/components/polyfills/toolbar-group.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2021 Google LLC 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | /** 18 | * WordPress dependencies 19 | */ 20 | import { 21 | ToolbarGroup as MaybeToolbarGroup, 22 | Toolbar, 23 | } from '@wordpress/components'; 24 | 25 | export default MaybeToolbarGroup || Toolbar; 26 | -------------------------------------------------------------------------------- /plugin/assets/src/block-editor/constants.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2020 Google LLC 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | const NAMESPACE = '/wp/v2'; 18 | export const ENDPOINTS = { 19 | root: NAMESPACE, 20 | posts: `${ NAMESPACE }/posts`, 21 | }; 22 | 23 | export const DEVICES = [ 24 | { 25 | name: 'desktop', 26 | icon: 'computer', 27 | }, 28 | { 29 | name: 'tablet', 30 | icon: 'tablet', 31 | }, 32 | { 33 | name: 'mobile', 34 | icon: 'smartphone', 35 | }, 36 | ]; 37 | -------------------------------------------------------------------------------- /plugin/assets/src/block-editor/helpers/hooks.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2021 Google LLC 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | import { useEffect, useRef, useState } from '@wordpress/element'; 18 | 19 | export const useStateCallback = initialState => { 20 | const [ state, setState ] = useState( initialState ); 21 | const cbRef = useRef( null ); // mutable ref to store current callback 22 | 23 | const setStateCallback = ( newState, cb ) => { 24 | cbRef.current = cb; // store passed callback to ref 25 | setState( newState ); 26 | }; 27 | 28 | useEffect( () => { 29 | // cb.current is `null` on initial render, so we only execute cb on state *updates* 30 | if ( cbRef.current ) { 31 | cbRef.current( state ); 32 | cbRef.current = null; // reset callback after execution 33 | } 34 | }, [ state ] ); 35 | 36 | return [ state, setStateCallback ]; 37 | }; 38 | -------------------------------------------------------------------------------- /plugin/assets/src/block-editor/index.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2020 Google LLC 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | /* istanbul ignore file */ 18 | 19 | /** 20 | * WordPress dependencies 21 | */ 22 | import { updateCategory } from '@wordpress/blocks'; 23 | 24 | /** 25 | * Internal dependencies 26 | */ 27 | import { registerBlocks, MaterialLogo } from './helpers'; 28 | import './blocks/data-table/hooks'; 29 | 30 | /** 31 | * Register the blocks. 32 | */ 33 | registerBlocks( require.context( './blocks', true, /(? , 40 | } ); 41 | -------------------------------------------------------------------------------- /plugin/assets/src/block-editor/utils/find-icon.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2020 Google LLC 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | /** 18 | * External dependencies 19 | */ 20 | import { icons as rawIcons } from '../../../fonts/icons.json'; 21 | 22 | /** 23 | * Search and find a material icon by name. 24 | * 25 | * @param {string} iconName The icon to search for. 26 | */ 27 | export default iconName => { 28 | const icons = Object.keys( rawIcons ); 29 | 30 | const foundIcon = icons.find( 31 | icon => rawIcons[ icon ].name.toLowerCase() === iconName.toLowerCase() 32 | ); 33 | 34 | return foundIcon ? { name: iconName, hex: parseInt( foundIcon, 16 ) } : null; 35 | }; 36 | -------------------------------------------------------------------------------- /plugin/assets/src/block-editor/utils/generic-attributes-setter.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2020 Google LLC 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | export default setAttributes => ( 18 | attribute, 19 | callback = () => {}, 20 | allowUndefined = false 21 | ) => newValue => { 22 | const returnValue = callback( newValue ); 23 | 24 | if ( returnValue !== undefined || allowUndefined ) { 25 | newValue = returnValue; 26 | } 27 | 28 | setAttributes( { [ attribute ]: newValue } ); 29 | }; 30 | -------------------------------------------------------------------------------- /plugin/assets/src/block-editor/utils/get-config.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2020 Google LLC 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | /* istanbul ignore file */ 18 | 19 | /** 20 | * Get Material onboarding wizard config value. 21 | * 22 | * @param {string} name Name of the config value to retrieve. 23 | * @return {string|Object|undefined} Value of config. 24 | */ 25 | const getConfig = name => { 26 | const configData = window.materialDesign; 27 | 28 | if ( undefined === configData ) { 29 | return undefined; 30 | } 31 | 32 | return configData[ name ]; 33 | }; 34 | 35 | export default getConfig; 36 | -------------------------------------------------------------------------------- /plugin/assets/src/block-editor/utils/get-icon-name.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2021 Google LLC 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | /** 18 | * Search and find a material icon by name. 19 | * 20 | * @param {string} icon Icon name or object. 21 | */ 22 | export default icon => { 23 | if ( 'string' === typeof icon || ! icon || ! icon.hasOwnProperty( 'name' ) ) { 24 | return icon; 25 | } 26 | 27 | return icon.name; 28 | }; 29 | -------------------------------------------------------------------------------- /plugin/assets/src/block-editor/utils/index.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2021 Google LLC 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | export { default as findIcon } from './find-icon'; 18 | export { default as getConfig } from './get-config'; 19 | export { default as getIconName } from './get-icon-name'; 20 | -------------------------------------------------------------------------------- /plugin/assets/src/customizer/components/material-library/common/icon-button-link.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2020 Google LLC 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | /** 18 | * Icon Buton with a clickable link 19 | * 20 | * @param {Object} props - Component props. 21 | * @param {string} props.href - Link for button. 22 | * 23 | * @return {Function} A functional component. 24 | */ 25 | const IconButtonLink = ( { href } ) => ( 26 |
27 | 30 |
31 | ); 32 | 33 | export default IconButtonLink; 34 | -------------------------------------------------------------------------------- /plugin/assets/src/customizer/components/material-library/utils.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2020 Google LLC 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | export const inlineFontFamily = font => `'${ font }', sans-serif`; 18 | 19 | export const materialIconClass = style => 20 | 'material-icons' + ( style === 'filled' ? '' : '-' + style ); 21 | 22 | export const materialIconFontName = style => 23 | "'Material Icons" + 24 | ( style === 'filled' ? "'" : ' ' + style.replace( '-', ' ' ) + "'" ); 25 | -------------------------------------------------------------------------------- /plugin/assets/src/front-end/index.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2020 Google LLC 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | /* global addEventListener */ 18 | /* istanbul ignore file */ 19 | 20 | /** 21 | * External dependencies 22 | */ 23 | import { 24 | initButtons, 25 | initLists, 26 | initTabBar, 27 | initToolTips, 28 | } from '../common/mdc-components-init'; 29 | import { initContactForm } from './contact-form'; 30 | 31 | addEventListener( 'DOMContentLoaded', () => { 32 | initButtons(); 33 | initLists(); 34 | initTabBar(); 35 | initContactForm(); 36 | initToolTips(); 37 | } ); 38 | -------------------------------------------------------------------------------- /plugin/assets/src/getting-started/components/content/content.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2020 Google LLC 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | export * from './wizard'; 18 | export * from './overview'; 19 | export * from './customize'; 20 | export * from './updates'; 21 | -------------------------------------------------------------------------------- /plugin/assets/src/getting-started/components/index.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2020 Google LLC 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | /** 18 | * Internal dependencies 19 | */ 20 | import { TabProvider } from '../context'; 21 | import Navigation from './navigation'; 22 | import Content from './content'; 23 | 24 | const GettingStarted = () => { 25 | return ( 26 | 27 |
28 |
29 | 30 | 31 |
32 |
33 |
34 | ); 35 | }; 36 | 37 | export default GettingStarted; 38 | -------------------------------------------------------------------------------- /plugin/assets/src/getting-started/get-config.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2020 Google LLC 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | /* istanbul ignore file */ 18 | 19 | /** 20 | * Get Material Getting Started Module config value. 21 | * 22 | * @param {string} name Name of the config value to retrieve. 23 | * @return {string|Object|undefined} Value of config. 24 | */ 25 | const getConfig = name => { 26 | const configData = window.materialDesignGsm; 27 | 28 | if ( undefined === configData ) { 29 | return undefined; 30 | } 31 | 32 | return configData[ name ]; 33 | }; 34 | 35 | export default getConfig; 36 | -------------------------------------------------------------------------------- /plugin/assets/src/getting-started/index.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2020 Google LLC 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | /** 18 | * WordPress dependencies 19 | */ 20 | import { render } from '@wordpress/element'; 21 | 22 | /** 23 | * Internal dependencies 24 | */ 25 | import GettingStarted from './components'; 26 | 27 | render( , document.getElementById( 'material-gsm' ) ); 28 | -------------------------------------------------------------------------------- /plugin/assets/src/polyfills/index.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2021 Google LLC 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | import { useSelect } from '@wordpress/data'; 18 | import '@wordpress/escape-html'; 19 | import { __experimentalRichText } from '@wordpress/rich-text'; 20 | 21 | if ( 22 | window.wp && 23 | window.wp.richText && 24 | ! window.wp.richText.__experimentalRichText 25 | ) { 26 | window.wp.richText.__experimentalRichText = __experimentalRichText; 27 | } 28 | 29 | if ( window.wp && window.wp.data && ! window.wp.data.useSelect ) { 30 | window.wp.data.useSelect = useSelect; 31 | } 32 | -------------------------------------------------------------------------------- /plugin/assets/src/wizard/components/notice/index.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2020 Google LLC 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | /** 18 | * Prepare for notices 19 | * 20 | * @param {*} props Component props 21 | */ 22 | const Notice = props => { 23 | return ( 24 |
25 |

{ props.message }

26 |
27 | ); 28 | }; 29 | 30 | export default Notice; 31 | -------------------------------------------------------------------------------- /plugin/assets/src/wizard/components/progress-bar/index.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2020 Google LLC 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | /** 18 | * Internal dependencies 19 | */ 20 | import { STEPS } from '../../constants'; 21 | import Step from './step'; 22 | 23 | /** 24 | * Displays which step are we on 25 | */ 26 | const ProgressBar = () => { 27 | const steps = Object.keys( STEPS ); 28 | 29 | return ( 30 |
    31 | { steps.map( id => ( 32 | 33 | ) ) } 34 |
35 | ); 36 | }; 37 | 38 | export default ProgressBar; 39 | -------------------------------------------------------------------------------- /plugin/assets/src/wizard/components/svg/check.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2020 Google LLC 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | /* istanbul ignore file */ 18 | /** 19 | * _Completed_ SVG icon 20 | */ 21 | export const Check = () => { 22 | return ( 23 | 24 | 32 | 36 | 37 | 38 | 39 | 40 | 41 | ); 42 | }; 43 | -------------------------------------------------------------------------------- /plugin/assets/src/wizard/constants.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2020 Google LLC 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | /** 18 | * App statuses 19 | */ 20 | export const STATUS = { 21 | IDLE: 'IDLE', 22 | PENDING: 'PENDING', 23 | SUCCESS: 'SUCCESS', 24 | ERROR: 'ERROR', 25 | }; 26 | 27 | /** 28 | * Screens available inside the app 29 | */ 30 | export const STEPS = { 31 | WELCOME: 'WELCOME', 32 | ADDONS: 'ADDONS', 33 | WORK: 'WORK', 34 | }; 35 | 36 | /** 37 | * Available actions 38 | */ 39 | export const ACTIONS = { 40 | SUBMIT_WIZARD: 'SUBMIT_WIZARD', 41 | NEXT_STEP: 'NEXT_STEP', 42 | PREVIOUS_STEP: 'PREVIOUS_STEP', 43 | WIZARD_ERROR: 'WIZARD_ERROR', 44 | TOGGLE_ADDON: 'TOGGLE_ADDON', 45 | }; 46 | 47 | /** 48 | * Supported addons 49 | */ 50 | export const ADDONS = { 51 | THEME: 'THEME', 52 | DEMO: 'DEMO', 53 | }; 54 | -------------------------------------------------------------------------------- /plugin/assets/src/wizard/index.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2020 Google LLC 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | /** 18 | * WordPress dependencies 19 | */ 20 | import { render } from '@wordpress/element'; 21 | 22 | /** 23 | * Internal dependencies 24 | */ 25 | import Wizard from './components'; 26 | 27 | render( , document.getElementById( 'material-onboarding-wizard' ) ); 28 | -------------------------------------------------------------------------------- /plugin/instance.php: -------------------------------------------------------------------------------- 1 | plugin = $plugin; 48 | } 49 | 50 | /** 51 | * Initiate the class. 52 | * 53 | * @access public 54 | */ 55 | public function init() { 56 | $this->plugin->add_doc_hooks( $this ); 57 | } 58 | } 59 | -------------------------------------------------------------------------------- /plugin/php/templates/contact-form-email.php: -------------------------------------------------------------------------------- 1 | 31 |
32 |
33 | 34 |
35 |
36 | ', esc_html( $field['label'] ), esc_html( $field['value'] ) ); 39 | } 40 | ?> 41 |
42 | -------------------------------------------------------------------------------- /plugin/tests/e2e/utils/click-button-by-label.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2020 Google LLC 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | /* global page */ 18 | 19 | /** 20 | * Clicks a button based on the label on the button. 21 | * 22 | * @param {string} label Aria label. 23 | */ 24 | export async function clickButtonByLabel( label ) { 25 | const btnSelector = `button[aria-label="${ label }"]`; 26 | await page.waitForSelector( btnSelector ); 27 | await page.evaluate( selector => { 28 | document.querySelector( selector ).click(); 29 | }, btnSelector ); 30 | } 31 | -------------------------------------------------------------------------------- /plugin/tests/e2e/utils/click-button.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2020 Google LLC 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | /* global page */ 18 | 19 | /** 20 | * Clicks a button based on the text on the button. 21 | * 22 | * This is almost a copy of the upstream util, however, it uses page.evaluate for clicking since it seems to work more reliably. 23 | * 24 | * @param {string} buttonText The text that appears on the button to click. 25 | */ 26 | export async function clickButton( buttonText ) { 27 | const button = await page.waitForXPath( 28 | `//button[contains(text(), '${ buttonText }')]` 29 | ); 30 | await page.evaluate( btn => { 31 | btn.click(); 32 | }, button ); 33 | } 34 | -------------------------------------------------------------------------------- /plugin/tests/e2e/utils/index.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2020 Google LLC 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | export { activatePlugin } from './activate-plugin'; 18 | export { deactivatePlugin } from './deactivate-plugin'; 19 | export { clickButton } from './click-button'; 20 | export { clickButtonByLabel } from './click-button-by-label'; 21 | export { insertBlock, insertBlockByKeyword } from './insert-block'; 22 | export { selectBlockByName } from './select-block-by-name'; 23 | export { switchEditorModeTo } from './switch-editor-mode-to'; 24 | -------------------------------------------------------------------------------- /plugin/tests/e2e/utils/remove-blocks.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2020 Google LLC 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | /* global page */ 18 | 19 | /** 20 | * Remove all blocks from editor. 21 | */ 22 | export const removeAllBlocks = async () => { 23 | await page.evaluate( async () => { 24 | await wp.data 25 | .dispatch( 'core/block-editor' ) 26 | .removeBlocks( wp.data.select( 'core/block-editor' ).getBlockOrder() ); 27 | } ); 28 | }; 29 | -------------------------------------------------------------------------------- /plugin/tests/e2e/utils/search-for-block.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2020 Google LLC 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | /* global page */ 18 | 19 | /** 20 | * Internal dependencies 21 | */ 22 | import { openGlobalBlockInserter } from '@wordpress/e2e-test-utils'; 23 | 24 | /** 25 | * Search for block in the global inserter 26 | * 27 | * @param {string} searchTerm The text to search for. 28 | */ 29 | export async function searchForBlock( searchTerm ) { 30 | await openGlobalBlockInserter(); 31 | await page.keyboard.type( searchTerm ); 32 | } 33 | -------------------------------------------------------------------------------- /plugin/tests/e2e/utils/select-block-by-name.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2020 Google LLC 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | /** 18 | * Select a block by name. 19 | * 20 | * @param {string} name The block name to select. 21 | */ 22 | import { getAllBlocks, selectBlockByClientId } from '@wordpress/e2e-test-utils'; 23 | 24 | export const selectBlockByName = async name => { 25 | await selectBlockByClientId( 26 | ( await getAllBlocks() ).find( block => block.name === name ).clientId 27 | ); 28 | }; 29 | -------------------------------------------------------------------------------- /plugin/tests/e2e/utils/switch-editor-mode-to.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2021 Google LLC 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | /* global page */ 18 | 19 | /** 20 | * Switches editor mode. 21 | * 22 | * @param {string} mode String editor mode. 23 | */ 24 | export async function switchEditorModeTo( mode ) { 25 | if ( mode === 'Code' ) { 26 | await page.evaluate( () => { 27 | window.wp.data.dispatch( 'core/edit-post' ).switchEditorMode( 'text' ); 28 | } ); 29 | } else { 30 | await page.evaluate( () => { 31 | window.wp.data.dispatch( 'core/edit-post' ).switchEditorMode( 'visual' ); 32 | } ); 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /plugin/tests/js/block-editor/blocks/button/button.spec.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2020 Google LLC 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | /** 18 | * Internal dependencies 19 | */ 20 | import { name } from '../../../../../assets/src/block-editor/blocks/button'; 21 | 22 | describe( 'blocks: material/button', () => { 23 | describe( 'name', () => { 24 | it( 'should equal material/button', () => { 25 | expect( name ).toStrictEqual( 'material/button' ); 26 | } ); 27 | } ); 28 | } ); 29 | -------------------------------------------------------------------------------- /plugin/tests/js/block-editor/blocks/buttons/buttons.spec.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2020 Google LLC 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | /** 18 | * Internal dependencies 19 | */ 20 | import { name } from '../../../../../assets/src/block-editor/blocks/buttons'; 21 | 22 | describe( 'blocks: material/buttons', () => { 23 | describe( 'name', () => { 24 | it( 'should equal material/buttons', () => { 25 | expect( name ).toStrictEqual( 'material/buttons' ); 26 | } ); 27 | } ); 28 | } ); 29 | -------------------------------------------------------------------------------- /plugin/tests/js/block-editor/blocks/cards-collection/utils/get-column-span.test.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2020 Google LLC 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | import getColumnSpan from '../../../../../../assets/src/block-editor/blocks/cards-collection/utils/get-column-span'; 18 | 19 | describe( 'column span', () => { 20 | it( 'should equal to 12 when the style is not `grid`', () => { 21 | const columnSpan = getColumnSpan( 'list', 4 ); 22 | expect( columnSpan ).toStrictEqual( 12 ); 23 | } ); 24 | 25 | it( 'should equal to 3 when the style is `grid` and number of columns is 4', () => { 26 | const columnSpan = getColumnSpan( 'grid', 4 ); 27 | expect( columnSpan ).toStrictEqual( 3 ); 28 | } ); 29 | } ); 30 | -------------------------------------------------------------------------------- /plugin/tests/js/block-editor/blocks/contact-form/components/__snapshots__/inspector-controls.test.js.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`FormInspectorControls matches snapshot 1`] = ` 4 | 5 | 9 | 13 | 17 | 21 | 22 | 26 | 30 | 31 | 32 | 33 | `; 34 | -------------------------------------------------------------------------------- /plugin/tests/js/block-editor/blocks/contact-form/inner-blocks/common/__snapshots__/inspector-controls.test.js.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`InspectorControls matches snapshot 1`] = ` 4 | 5 | 9 | 14 | 19 | 20 | 21 | `; 22 | -------------------------------------------------------------------------------- /plugin/tests/js/block-editor/blocks/hand-picked-posts/components/__snapshots__/block-controls.test.js.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`HandPickedPostsBlockControls matches snapshot when the edit mode is false 1`] = ` 4 | 5 | 17 | 18 | `; 19 | 20 | exports[`HandPickedPostsBlockControls matches snapshot when the edit mode is true 1`] = ` 21 | 22 | 34 | 35 | `; 36 | -------------------------------------------------------------------------------- /plugin/tests/js/block-editor/components/error-message/error-icon.test.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2020 Google LLC 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | /** 18 | * External dependencies 19 | */ 20 | import '@testing-library/jest-dom/extend-expect'; 21 | import { render } from '@testing-library/react'; 22 | 23 | /** 24 | * Internal dependencies 25 | */ 26 | import ErrorIcon from '../../../../../assets/src/block-editor/components/error-message/error-icon'; 27 | 28 | describe( 'ErrorIcon', () => { 29 | it( 'matches snapshot', () => { 30 | const wrapper = render( ); 31 | expect( wrapper ).toMatchSnapshot(); 32 | } ); 33 | } ); 34 | -------------------------------------------------------------------------------- /plugin/tests/js/customizer/components/google-fonts-control/__snapshots__/item.test.js.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`GoogleFontsControl/Item matches snapshot 1`] = ` 4 |
7 | 10 | Test item 11 | 12 |
15 |
18 |
21 | 28 | 37 |
38 |
39 | 46 |
47 |
48 | `; 49 | -------------------------------------------------------------------------------- /plugin/tests/js/front-end/invalid-contact-form.html: -------------------------------------------------------------------------------- 1 | 16 | 17 |
18 |
19 |
20 |
21 |
22 |
23 | -------------------------------------------------------------------------------- /plugin/tests/js/getting-started/components/customize.test.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2020 Google LLC 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | /** 18 | * External dependencies 19 | */ 20 | import '@testing-library/jest-dom/extend-expect'; 21 | import { render } from '@testing-library/react'; 22 | 23 | /** 24 | * Internal dependencies 25 | */ 26 | import { Customize } from '../../../../assets/src/getting-started/components/content/customize'; 27 | import { TabProvider } from '../../../../assets/src/getting-started/context'; 28 | 29 | const setup = () => { 30 | return render( 31 | 32 | 33 | 34 | ); 35 | }; 36 | 37 | describe( 'GSM: Customize', () => { 38 | it( 'matches snapshot', () => { 39 | const wrapper = setup(); 40 | expect( wrapper ).toMatchSnapshot(); 41 | } ); 42 | } ); 43 | -------------------------------------------------------------------------------- /plugin/tests/js/getting-started/components/navigation/tab.test.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2020 Google LLC 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | /** 18 | * External dependencies 19 | */ 20 | import '@testing-library/jest-dom/extend-expect'; 21 | import { render } from '@testing-library/react'; 22 | 23 | /** 24 | * Internal dependencies 25 | */ 26 | import Tab from '../../../../../assets/src/getting-started/components/navigation/tab'; 27 | import { TabProvider } from '../../../../../assets/src/getting-started/context'; 28 | 29 | const setup = () => { 30 | return render( 31 | 32 | 33 | 34 | ); 35 | }; 36 | 37 | describe( 'GSM: Tab', () => { 38 | it( 'matches snapshot', () => { 39 | const wrapper = setup(); 40 | expect( wrapper ).toMatchSnapshot(); 41 | } ); 42 | } ); 43 | -------------------------------------------------------------------------------- /plugin/tests/js/wizard/components/content/__snapshots__/switch.test.js.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`Wizard: Switch matches snapshot 1`] = ` 4 |
5 |
8 |
11 |
14 |
17 | 24 |
25 |
26 | 32 |
33 | `; 34 | -------------------------------------------------------------------------------- /plugin/tests/js/wizard/components/navigation/loader.test.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2020 Google LLC 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | import '@testing-library/jest-dom/extend-expect'; 18 | import { render } from '@testing-library/react'; 19 | 20 | /** 21 | * Internal dependencies 22 | */ 23 | import { Loader } from '../../../../../assets/src/wizard/components/navigation/loader'; 24 | 25 | describe( 'Wizard: Loader', () => { 26 | it( 'matches snapshot', () => { 27 | const { container } = render( ); 28 | 29 | expect( container ).toMatchSnapshot(); 30 | } ); 31 | } ); 32 | -------------------------------------------------------------------------------- /plugin/tests/js/wizard/components/notice/__snapshots__/index.test.js.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`Notice matches snapshot 1`] = ` 4 | 8 |
11 |

12 | There was an error 13 |

14 |
15 |
16 | `; 17 | -------------------------------------------------------------------------------- /plugin/tests/js/wizard/components/progress-bar/index.test.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2020 Google LLC 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | /** 18 | * External dependencies 19 | */ 20 | import '@testing-library/jest-dom/extend-expect'; 21 | import { render, cleanup } from '@testing-library/react'; 22 | 23 | /** 24 | * Internal dependencies 25 | */ 26 | import ProgressBar from '../../../../../assets/src/wizard/components/progress-bar'; 27 | import { StepProvider } from '../../../../../assets/src/wizard/context'; 28 | 29 | describe( 'Wizard: ProgressBar', () => { 30 | afterEach( cleanup ); 31 | 32 | it( 'matches snapshot', () => { 33 | const wrapper = render( 34 | 35 | 36 | 37 | ); 38 | expect( wrapper ).toMatchSnapshot(); 39 | } ); 40 | } ); 41 | -------------------------------------------------------------------------------- /plugin/tests/js/wizard/components/svg/check.test.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2020 Google LLC 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | import { render } from '@testing-library/react'; 18 | 19 | /** 20 | * Internal dependencies 21 | */ 22 | import { Check } from '../../../../../assets/src/wizard/components/svg/check'; 23 | 24 | /** 25 | * Render the component 26 | * 27 | * @return {Function} A functional component. 28 | */ 29 | 30 | const setup = () => { 31 | return render( ); 32 | }; 33 | 34 | describe( 'Check', () => { 35 | it( 'should render svg', () => { 36 | const { container } = setup(); 37 | 38 | expect( container.querySelectorAll( 'svg' ) ).toHaveLength( 1 ); 39 | } ); 40 | } ); 41 | -------------------------------------------------------------------------------- /plugin/tests/js/wizard/components/svg/logo.test.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2020 Google LLC 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | import { render } from '@testing-library/react'; 18 | 19 | /** 20 | * Internal dependencies 21 | */ 22 | import { Logo } from '../../../../../assets/src/wizard/components/svg/logo'; 23 | 24 | /** 25 | * Render the component 26 | * 27 | * @param {Object} props - Component props 28 | * @return {Function} A functional component. 29 | */ 30 | 31 | const setup = () => { 32 | return render( ); 33 | }; 34 | 35 | describe( 'Logo', () => { 36 | it( 'should render svg', () => { 37 | const { container } = setup(); 38 | 39 | expect( container.querySelectorAll( 'svg' ) ).toHaveLength( 1 ); 40 | } ); 41 | } ); 42 | -------------------------------------------------------------------------------- /plugin/wp-assets/banner-1544x500.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xwp/material-design-wp-plugin/f0b4e69f0852a56dda99b4315f7386735c86c9be/plugin/wp-assets/banner-1544x500.png -------------------------------------------------------------------------------- /plugin/wp-assets/banner-772x250.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xwp/material-design-wp-plugin/f0b4e69f0852a56dda99b4315f7386735c86c9be/plugin/wp-assets/banner-772x250.png -------------------------------------------------------------------------------- /plugin/wp-assets/icon-128x128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xwp/material-design-wp-plugin/f0b4e69f0852a56dda99b4315f7386735c86c9be/plugin/wp-assets/icon-128x128.png -------------------------------------------------------------------------------- /plugin/wp-assets/icon-256x256.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xwp/material-design-wp-plugin/f0b4e69f0852a56dda99b4315f7386735c86c9be/plugin/wp-assets/icon-256x256.png -------------------------------------------------------------------------------- /plugin/wp-assets/screenshot-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xwp/material-design-wp-plugin/f0b4e69f0852a56dda99b4315f7386735c86c9be/plugin/wp-assets/screenshot-1.jpg -------------------------------------------------------------------------------- /plugin/wp-assets/screenshot-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xwp/material-design-wp-plugin/f0b4e69f0852a56dda99b4315f7386735c86c9be/plugin/wp-assets/screenshot-2.jpg -------------------------------------------------------------------------------- /plugin/wp-assets/screenshot-3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xwp/material-design-wp-plugin/f0b4e69f0852a56dda99b4315f7386735c86c9be/plugin/wp-assets/screenshot-3.jpg -------------------------------------------------------------------------------- /plugin/wp-assets/screenshot-4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xwp/material-design-wp-plugin/f0b4e69f0852a56dda99b4315f7386735c86c9be/plugin/wp-assets/screenshot-4.jpg -------------------------------------------------------------------------------- /plugin/wp-assets/screenshot-5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xwp/material-design-wp-plugin/f0b4e69f0852a56dda99b4315f7386735c86c9be/plugin/wp-assets/screenshot-5.jpg -------------------------------------------------------------------------------- /plugin/wp-assets/screenshot-6.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xwp/material-design-wp-plugin/f0b4e69f0852a56dda99b4315f7386735c86c9be/plugin/wp-assets/screenshot-6.jpg -------------------------------------------------------------------------------- /plugin/wp-assets/screenshot-7.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xwp/material-design-wp-plugin/f0b4e69f0852a56dda99b4315f7386735c86c9be/plugin/wp-assets/screenshot-7.jpg -------------------------------------------------------------------------------- /plugin/wp-assets/screenshot-8.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xwp/material-design-wp-plugin/f0b4e69f0852a56dda99b4315f7386735c86c9be/plugin/wp-assets/screenshot-8.jpg -------------------------------------------------------------------------------- /readme.md: -------------------------------------------------------------------------------- 1 | 2 | # Material Design for WordPress 3 | 4 | The official Material Design plugin for WordPress. Customize your site’s navigation, colors, typography, and shapes, use Material Components, and choose from over 1,000 Google Fonts and Material Design icons. From the team behind Google’s open-source design system. 5 | 6 | **Contributors:** [google](https://profiles.wordpress.org/google), [materialdesign](https://profiles.wordpress.org/materialdesign), [xwp](https://profiles.wordpress.org/xwp) 7 | 8 | [![Build Status](https://travis-ci.com/xwp/material-design-wp-plugin.svg?branch=develop)](https://travis-ci.com/xwp/material-design-wp-plugin) [![Coverage Status](https://coveralls.io/repos/xwp/material-design-wp-plugin/badge.svg?branch=develop)](https://coveralls.io/github/xwp/material-design-wp-plugin) [![Built with Grunt](https://gruntjs.com/cdn/builtwith.svg)](http://gruntjs.com) 9 | 10 | ## Description ## 11 | 12 | The official Material Design plugin for WordPress. Customize your site’s navigation, colors, typography, and shapes, use Material Components, and choose from over 1,000 Google Fonts and Material Design icons. From the team behind Google’s open-source design system. 13 | 14 | -------------------------------------------------------------------------------- /readme.txt: -------------------------------------------------------------------------------- 1 | === Material Design for WordPress === 2 | Contributors: google, materialdesign, xwp 3 | 4 | The official Material Design plugin for WordPress. Customize your site’s navigation, colors, typography, and shapes, use Material Components, and choose from over 1,000 Google Fonts and Material Design icons. From the team behind Google’s open-source design system. 5 | 6 | == Description == 7 | 8 | The official Material Design plugin for WordPress. Customize your site’s navigation, colors, typography, and shapes, use Material Components, and choose from over 1,000 Google Fonts and Material Design icons. From the team behind Google’s open-source design system. 9 | -------------------------------------------------------------------------------- /renovate.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": [ 3 | "config:base", 4 | ":preserveSemverRanges" 5 | ] 6 | } 7 | -------------------------------------------------------------------------------- /theme/assets/css/src/base/index.css: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2020 Google LLC 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | @import "./layout.css"; 18 | @import "./masonry-grid.css"; 19 | @import "./typography.css"; 20 | @import "./wordpress.css"; 21 | -------------------------------------------------------------------------------- /theme/assets/css/src/base/typography.css: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2020 Google LLC 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | /** 18 | * Material typography styles for html elements. 19 | * see https://github.com/material-components/material-components-web/blob/master/packages/mdc-typography/_variables.scss#L57 20 | **/ 21 | @mixin selector-typography h1, headline1, 6, 6, 300; 22 | @mixin selector-typography h2, headline2, 3.75, 3.75, 300; 23 | @mixin selector-typography h3, headline3, 3, 3.125, 400; 24 | @mixin selector-typography h4, headline4, 2.125, 2.5, 400; 25 | @mixin selector-typography h5, headline5, 1.5, 2, 400; 26 | @mixin selector-typography h6, headline6, 1.25, 2, 500; 27 | @mixin selector-typography p, body1, 1, 1.5, 400; 28 | @mixin selector-typography figcaption, subtitle1, 1, 1.75, 400; 29 | -------------------------------------------------------------------------------- /theme/assets/css/src/components/archive-image-list.css: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2020 Google LLC 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | .archive-image-list-wrap { 18 | margin-top: 3rem; 19 | } 20 | 21 | .archive-image-list { 22 | column-count: 1; 23 | column-gap: 1rem; 24 | 25 | @media (--medium-viewport) { 26 | column-count: 2; 27 | } 28 | 29 | & .mdc-image-list__item { 30 | margin-bottom: 1rem; 31 | margin-top: 0; 32 | } 33 | 34 | & .mdc-image-list__item a { 35 | display: block; 36 | 37 | &:focus { 38 | outline: 1px dotted; 39 | } 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /theme/assets/css/src/components/avatar.css: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2020 Google LLC 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | .avatar { 18 | border-radius: 50%; 19 | margin-right: 1rem; 20 | } 21 | -------------------------------------------------------------------------------- /theme/assets/css/src/components/byline.css: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2020 Google LLC 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | .byline, 18 | .byline .author { 19 | align-items: center; 20 | display: flex; 21 | } 22 | 23 | .byline .author a { 24 | 25 | &:hover, 26 | &:focus { 27 | text-decoration: underline; 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /theme/assets/css/src/components/entry-header.css: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2020 Google LLC 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | .entry-header { 18 | 19 | margin-left: auto; 20 | margin-right: auto; 21 | max-width: var(--mdc-theme-max-content-width); 22 | } 23 | -------------------------------------------------------------------------------- /theme/assets/css/src/components/entry-meta.css: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2020 Google LLC 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | .entry-meta { 18 | display: flex; 19 | 20 | & a { 21 | text-decoration: none; 22 | 23 | &:hover { 24 | text-decoration: underline; 25 | } 26 | } 27 | 28 | & .author { 29 | align-items: center; 30 | display: flex; 31 | margin-right: 1rem; 32 | 33 | & .material-icons { 34 | margin-right: 0.5rem; 35 | } 36 | } 37 | 38 | & .posted-on { 39 | align-items: center; 40 | display: flex; 41 | flex-shrink: 0; 42 | 43 | & .material-icons { 44 | margin-right: 0.5rem; 45 | } 46 | } 47 | 48 | & .separator { 49 | align-self: center; 50 | margin-left: 0.5rem; 51 | margin-right: 0.5rem; 52 | } 53 | } 54 | -------------------------------------------------------------------------------- /theme/assets/css/src/components/index.css: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2020 Google LLC 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | @import "./top-app-bar.css"; 18 | @import "./logo.css"; 19 | @import "./search.css"; 20 | @import "./drawer.css"; 21 | @import "./post-card.css"; 22 | @import "./load-more.css"; 23 | @import "./footer.css"; 24 | @import "./page-navigation.css"; 25 | @import "./post-navigation.css"; 26 | @import "./comments.css"; 27 | @import "./archive-image-list.css"; 28 | @import "./widgets.css"; 29 | @import "./tab-bar.css"; 30 | @import "./entry-header.css"; 31 | @import "./entry-content.css"; 32 | @import "./entry-meta.css"; 33 | @import "./entry-footer.css"; 34 | @import "./post-thumbnail.css"; 35 | @import "./avatar.css"; 36 | @import "./byline.css"; 37 | @import "./tables.css"; 38 | -------------------------------------------------------------------------------- /theme/assets/css/src/components/load-more.css: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2020 Google LLC 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | .load-more { 18 | text-align: center; 19 | } 20 | -------------------------------------------------------------------------------- /theme/assets/css/src/components/logo.css: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2020 Google LLC 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | .logo { 18 | align-items: center; 19 | display: flex; 20 | padding: 0.75rem; 21 | 22 | & img { 23 | display: block; 24 | } 25 | 26 | @nest .top-app-bar & img { 27 | max-height: 36px; 28 | width: auto; 29 | } 30 | 31 | @nest .mdc-drawer__header & img { 32 | height: auto; 33 | max-width: 200px; 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /theme/assets/css/src/components/page-navigation.css: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2020 Google LLC 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | .mdc-page-navigation { 18 | list-style: none; 19 | margin: 2.5em 0; 20 | padding: 0; 21 | text-align: center; 22 | 23 | & li { 24 | display: inline-block; 25 | margin: 0 1.5em; 26 | } 27 | 28 | & .material-icons { 29 | font-size: 1.75em; 30 | opacity: 0.5; 31 | } 32 | 33 | & a { 34 | display: inline-block; 35 | height: 1.75em; 36 | 37 | & .material-icons { 38 | opacity: 1; 39 | } 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /theme/assets/css/src/components/post-thumbnail.css: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2020 Google LLC 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | .featured-image { 18 | margin-bottom: 2rem; 19 | max-width: 62.5rem; 20 | 21 | @media (--medium-large-viewport) { 22 | margin-left: auto; 23 | margin-right: auto; 24 | } 25 | 26 | @media (--large-viewport) { 27 | max-width: 76.5625rem; 28 | margin-left: auto; 29 | margin-right: auto; 30 | } 31 | 32 | & .wp-post-image { 33 | display: block; 34 | margin-left: auto; 35 | margin-right: auto; 36 | max-width: 100%; 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /theme/assets/css/src/components/tables.css: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2020 Google LLC 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | table { 18 | border-collapse: collapse; 19 | border: 1px solid rgba(var(--mdc-theme-on-surface-rgb, 0, 0, 0), .12); 20 | } 21 | 22 | tr { 23 | border-top: 1px solid rgba(var(--mdc-theme-on-surface-rgb, 0, 0, 0), .12); 24 | } 25 | 26 | th, 27 | td { 28 | padding: 0.5em 1em; 29 | text-align: inherit; 30 | } 31 | -------------------------------------------------------------------------------- /theme/assets/css/src/conf/index.css: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2020 Google LLC 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | @import "./media.css"; 18 | @import "./mixins.css"; 19 | -------------------------------------------------------------------------------- /theme/assets/css/src/conf/media.css: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2020 Google LLC 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | @custom-media --small-viewport-max (max-width: 840px); 18 | @custom-media --medium-viewport (min-width: 840px); 19 | @custom-media --medium-large-viewport (min-width: 1024px); 20 | @custom-media --large-viewport (min-width: 1440px); 21 | -------------------------------------------------------------------------------- /theme/assets/css/src/customize-preview.css: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2020 Google LLC 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | /* 18 | * Put Customize Controls CSS here. 19 | */ 20 | -------------------------------------------------------------------------------- /theme/assets/css/src/editor.css: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2020 Google LLC 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | @import "./conf/variables.css"; 18 | @import "./base/typography.css"; 19 | @mixin selector-typography .wp-block div, body1; 20 | @mixin selector-typography p, body1; 21 | @mixin selector-typography .editor-post-title__input, headline2, 6, 6, 300; 22 | 23 | body { 24 | background: var(--mdc-theme-background, #fff); 25 | color: var(--mdc-theme-on-background, #000); 26 | } 27 | 28 | blockquote { 29 | border-left: 1px solid var(--mdc-theme-primary, #6200ee); 30 | 31 | & div { 32 | margin-bottom: 1.5rem; 33 | margin-top: 1rem; 34 | } 35 | 36 | & .wp-block-quote__citation { 37 | color: currentColor; 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /theme/assets/css/src/front-end.css: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2020 Google LLC 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | /* Variables */ 18 | @import "./conf/variables.css"; 19 | 20 | /* Vendor */ 21 | @import "./material-components.css"; 22 | 23 | /* Custom */ 24 | @import "./conf/index.css"; 25 | @import "./base/index.css"; 26 | @import "./templates/index.css"; 27 | @import "./components/index.css"; 28 | -------------------------------------------------------------------------------- /theme/assets/css/src/templates/archive.css: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2020 Google LLC 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | .archive, 18 | .blog { 19 | 20 | & .content-area { 21 | max-width: var(--mdc-theme-max-content-width); 22 | } 23 | 24 | & .page-title { 25 | font-size: 3rem; 26 | font-weight: 400; 27 | line-height: 1; 28 | text-align: center; 29 | } 30 | 31 | & .archive-description { 32 | text-align: center; 33 | } 34 | 35 | & .page-header { 36 | 37 | &::after { 38 | background-color: #adadad; 39 | content: ""; 40 | display: block; 41 | height: 0.25rem; 42 | margin-bottom: 0.5rem; 43 | margin-left: auto; 44 | margin-right: auto; 45 | width: 5rem; 46 | } 47 | } 48 | } 49 | -------------------------------------------------------------------------------- /theme/assets/css/src/templates/error404.css: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2020 Google LLC 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | .error404, 18 | .search-no-results { 19 | 20 | & .page-header { 21 | padding-left: 0; 22 | padding-right: 0; 23 | } 24 | 25 | & .page-title { 26 | margin-bottom: 2rem; 27 | } 28 | 29 | & .page-content { 30 | margin-left: auto; 31 | margin-right: auto; 32 | } 33 | 34 | & .content-area { 35 | max-width: var(--mdc-theme-max-content-width); 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /theme/assets/css/src/templates/index.css: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2020 Google LLC 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | @import "./archive.css"; 18 | @import "./error404.css"; 19 | @import "./search-results.css"; 20 | -------------------------------------------------------------------------------- /theme/assets/css/src/templates/search-results.css: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2020 Google LLC 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | .search-results { 18 | 19 | & .content-area { 20 | max-width: var(--mdc-theme-max-content-width); 21 | } 22 | 23 | & .page-title { 24 | margin-bottom: 2rem; 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /theme/assets/images/placeholder.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xwp/material-design-wp-plugin/f0b4e69f0852a56dda99b4315f7386735c86c9be/theme/assets/images/placeholder.png -------------------------------------------------------------------------------- /theme/assets/images/plugin-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xwp/material-design-wp-plugin/f0b4e69f0852a56dda99b4315f7386735c86c9be/theme/assets/images/plugin-logo.png -------------------------------------------------------------------------------- /theme/assets/src/front-end/components/floating-label.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2020 Google LLC 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | import { MDCFloatingLabel } from '@material/floating-label'; 18 | 19 | export const floatingLabelInit = () => { 20 | const floatingLabels = document.querySelectorAll( '.mdc-floating-label' ); 21 | 22 | if ( ! floatingLabels ) { 23 | return; 24 | } 25 | 26 | for ( const floatingLabel of floatingLabels ) { 27 | new MDCFloatingLabel( floatingLabel ); 28 | } 29 | }; 30 | -------------------------------------------------------------------------------- /theme/assets/src/front-end/components/ripple.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2020 Google LLC 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | import { MDCRipple } from '@material/ripple'; 18 | 19 | const init = () => { 20 | const surface = document.querySelectorAll( '.mdc-ripple-surface' ); 21 | if ( surface ) { 22 | [].forEach.call( surface, node => new MDCRipple( node ) ); 23 | } 24 | }; 25 | 26 | export default init; 27 | -------------------------------------------------------------------------------- /theme/assets/src/front-end/components/scroll.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2020 Google LLC 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | export const scrollInit = () => { 18 | const topTrigger = document.getElementById( 'back-to-top' ); 19 | 20 | if ( ! topTrigger ) { 21 | return; 22 | } 23 | 24 | topTrigger.addEventListener( 'click', scrollToTop ); 25 | }; 26 | 27 | const scrollToTop = () => { 28 | window.scroll( { 29 | top: 0, 30 | left: 0, 31 | behavior: 'smooth', 32 | } ); 33 | }; 34 | -------------------------------------------------------------------------------- /theme/assets/src/front-end/components/tab-bar.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2020 Google LLC 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | import { MDCTabBar } from '@material/tab-bar'; 18 | 19 | export const tabBarInit = () => { 20 | const tabBarElements = document.querySelectorAll( '.mdc-tab-bar' ); 21 | 22 | if ( ! tabBarElements ) { 23 | return; 24 | } 25 | 26 | for ( const tabBarElement of tabBarElements ) { 27 | const tabBar = new MDCTabBar( tabBarElement ); 28 | const activeTab = tabBarElement.querySelector( '.mdc-tab--active' ); 29 | 30 | if ( activeTab ) { 31 | tabBar.foundation_.scrollIntoView( 32 | tabBar.foundation_.adapter_.getIndexOfTabById( activeTab.id ) 33 | ); 34 | } 35 | } 36 | }; 37 | -------------------------------------------------------------------------------- /theme/footer.php: -------------------------------------------------------------------------------- 1 | 31 |
32 | 33 |
34 | 35 |
36 | 37 |
38 | 39 | 40 | 41 | 42 | 43 | -------------------------------------------------------------------------------- /theme/languages/readme.txt: -------------------------------------------------------------------------------- 1 | Place your theme language files in this directory. 2 | 3 | Please visit the following links to learn more about translating WordPress themes: 4 | 5 | https://make.wordpress.org/polyglots/teams/ 6 | https://developer.wordpress.org/themes/functionality/localization/ 7 | https://developer.wordpress.org/reference/functions/load_theme_textdomain/ 8 | -------------------------------------------------------------------------------- /theme/screenshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xwp/material-design-wp-plugin/f0b4e69f0852a56dda99b4315f7386735c86c9be/theme/screenshot.png -------------------------------------------------------------------------------- /theme/sidebar.php: -------------------------------------------------------------------------------- 1 | 32 | 33 | 44 | -------------------------------------------------------------------------------- /theme/template-parts/archive.php: -------------------------------------------------------------------------------- 1 | 32 | 33 |
34 | 38 |
39 | -------------------------------------------------------------------------------- /theme/template-parts/content-image-card.php: -------------------------------------------------------------------------------- 1 | 34 | 35 |
  • 36 | 37 | 38 |
    39 | 40 |
    41 |
    42 |
  • 43 | -------------------------------------------------------------------------------- /theme/template-parts/footer.php: -------------------------------------------------------------------------------- 1 | 10 | 11 | 23 | -------------------------------------------------------------------------------- /theme/template-parts/header-navigation.php: -------------------------------------------------------------------------------- 1 | 30 | 31 | 42 | -------------------------------------------------------------------------------- /theme/wp-assets/banner-1544x500.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xwp/material-design-wp-plugin/f0b4e69f0852a56dda99b4315f7386735c86c9be/theme/wp-assets/banner-1544x500.png -------------------------------------------------------------------------------- /theme/wp-assets/banner-772x250.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xwp/material-design-wp-plugin/f0b4e69f0852a56dda99b4315f7386735c86c9be/theme/wp-assets/banner-772x250.png -------------------------------------------------------------------------------- /theme/wp-assets/icon-128x128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xwp/material-design-wp-plugin/f0b4e69f0852a56dda99b4315f7386735c86c9be/theme/wp-assets/icon-128x128.png -------------------------------------------------------------------------------- /theme/wp-assets/icon-256x256.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xwp/material-design-wp-plugin/f0b4e69f0852a56dda99b4315f7386735c86c9be/theme/wp-assets/icon-256x256.png -------------------------------------------------------------------------------- /theme/wp-assets/screenshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xwp/material-design-wp-plugin/f0b4e69f0852a56dda99b4315f7386735c86c9be/theme/wp-assets/screenshot.png -------------------------------------------------------------------------------- /webpack/fix-line-endings-plugin.js: -------------------------------------------------------------------------------- 1 | const sources = require( 'webpack-sources' ); 2 | 3 | module.exports = class FixLineEndingsPlugin { 4 | constructor() { 5 | this.pluginOptions = { 6 | name: FixLineEndingsPlugin.name, 7 | }; 8 | } 9 | 10 | apply( compiler ) { 11 | compiler.hooks.compilation.tap( this.pluginOptions, compilation => { 12 | compilation.hooks.afterOptimizeAssets.tap( this.pluginOptions, assets => { 13 | Object.keys( assets ).forEach( fileName => { 14 | if ( ! fileName || '*' === fileName ) { 15 | return; 16 | } 17 | 18 | let content = assets[ fileName ].source(); 19 | content = content.replace( /\r/g, '' ); // Replace any CRLF to LF endings. 20 | assets[ fileName ] = new sources.RawSource( content ); 21 | } ); 22 | } ); 23 | } ); 24 | } 25 | }; 26 | --------------------------------------------------------------------------------