├── .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 |
--------------------------------------------------------------------------------
/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 |
4 |
--------------------------------------------------------------------------------
/plugin/assets/images/icon-collections/outlined.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/plugin/assets/images/icon-collections/rounded.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/plugin/assets/images/icon-collections/sharp.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/plugin/assets/images/icon-collections/two-tone.svg:
--------------------------------------------------------------------------------
1 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 | [](https://travis-ci.com/xwp/material-design-wp-plugin) [](https://coveralls.io/github/xwp/material-design-wp-plugin) [](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 |
36 |
37 |
38 |
39 |
40 |
41 |