diff --git a/.gitignore b/.gitignore
index 428b4642..0c47b944 100755
--- a/.gitignore
+++ b/.gitignore
@@ -21,6 +21,7 @@ tmtags
*.un~
Session.vim
*.swp
+.vscode
# Mac OSX
.DS_Store
diff --git a/themes/10up-theme/.editorconfig b/themes/10up-theme/.editorconfig
new file mode 100755
index 00000000..18afa188
--- /dev/null
+++ b/themes/10up-theme/.editorconfig
@@ -0,0 +1,15 @@
+root = true
+
+[*]
+charset = utf-8
+end_of_line = lf
+insert_final_newline = true
+trim_trailing_whitespace = true
+indent_style = tab
+
+[{*.json,*.yml,.babelrc,.bowerrc,.browserslistrc,.postcssrc}]
+indent_style = space
+indent_size = 2
+
+[*.txt,wp-config-sample.php]
+end_of_line = crlf
diff --git a/themes/10up-theme/.eslintignore b/themes/10up-theme/.eslintignore
new file mode 100644
index 00000000..72133dee
--- /dev/null
+++ b/themes/10up-theme/.eslintignore
@@ -0,0 +1,6 @@
+assets/js/vendor
+assets/js/admin/vendor
+assets/js/frontend/vendor
+assets/js/shared/vendor
+webpack.config.babel.js
+tests
diff --git a/themes/10up-theme/.eslintrc.json b/themes/10up-theme/.eslintrc.json
new file mode 100644
index 00000000..52f8a366
--- /dev/null
+++ b/themes/10up-theme/.eslintrc.json
@@ -0,0 +1,8 @@
+{
+ "extends": "@10up/eslint-config/wordpress",
+ "rules": {},
+ "globals": {
+ "module": true,
+ "process": true
+ }
+}
diff --git a/themes/10up-theme/functions.php b/themes/10up-theme/functions.php
index 9415738f..0711497d 100755
--- a/themes/10up-theme/functions.php
+++ b/themes/10up-theme/functions.php
@@ -10,12 +10,13 @@
define( 'TENUP_THEME_TEMPLATE_URL', get_template_directory_uri() );
define( 'TENUP_THEME_PATH', get_template_directory() . '/' );
define( 'TENUP_THEME_INC', TENUP_THEME_PATH . 'includes/' );
+define( 'TENUP_THEME_BLOCK_DIR', TENUP_THEME_INC . 'blocks/' );
require_once TENUP_THEME_INC . 'core.php';
require_once TENUP_THEME_INC . 'overrides.php';
require_once TENUP_THEME_INC . 'template-tags.php';
require_once TENUP_THEME_INC . 'utility.php';
-require_once TENUP_THEME_INC . 'blocks/blocks.php';
+require_once TENUP_THEME_INC . 'blocks.php';
// Run the setup functions.
TenUpTheme\Core\setup();
diff --git a/themes/10up-theme/includes/blocks.php b/themes/10up-theme/includes/blocks.php
new file mode 100644
index 00000000..64cac73c
--- /dev/null
+++ b/themes/10up-theme/includes/blocks.php
@@ -0,0 +1,130 @@
+ TENUP_THEME_BLOCK_DIR,
+ ];
+ return $blocks;
+ } );
+ */
+
+
+ // Uncomment to register custom blocks via the theme.
+
+ /*
+ add_action(
+ 'init',
+ function() {
+ // Filter the plugins URL to allow us to have blocks in themes with linked assets. i.e editorScripts
+ add_filter( 'plugins_url', __NAMESPACE__ . '\filter_plugins_url', 10, 2 );
+
+
+ // Require custom blocks.
+ require_once TENUP_THEME_BLOCK_DIR . '/example-block/register.php';
+
+ // Call block register functions for each block.
+ Example\register();
+
+ // Remove the filter after we register the blocks
+ remove_filter( 'plugins_url', __NAMESPACE__ . '\filter_plugins_url', 10, 2 );
+ }
+ );
+ */
+
+}
+
+/**
+ * Filter the plugins_url to allow us to use assets from theme.
+ *
+ * @param string $url The plugins url
+ * @param string $path The path to the asset.
+ *
+ * @return string The overridden url to the block asset.
+ */
+function filter_plugins_url( $url, $path ) {
+ $file = preg_replace( '/\.\.\//', '', $path );
+ return trailingslashit( get_stylesheet_directory_uri() ) . $file;
+}
+
+/**
+ * Enqueue shared frontend and editor JavaScript for blocks.
+ *
+ * @return void
+ */
+function blocks_scripts() {
+
+ wp_enqueue_script(
+ 'blocks',
+ TENUP_THEME_TEMPLATE_URL . '/dist/blocks.js',
+ [],
+ TENUP_THEME_VERSION,
+ true
+ );
+}
+
+
+/**
+ * Enqueue editor-only JavaScript/CSS for blocks.
+ *
+ * @return void
+ */
+function blocks_editor_styles() {
+ wp_enqueue_style(
+ 'editor-style',
+ TENUP_THEME_TEMPLATE_URL . '/dist/editor-style.css',
+ [],
+ TENUP_THEME_VERSION
+ );
+
+}
+
+/**
+ * Filters the registered block categories.
+ *
+ * @param array $categories Registered categories.
+ * @param object $post The post object.
+ *
+ * @return array Filtered categories.
+ */
+function blocks_categories( $categories, $post ) {
+ if ( ! in_array( $post->post_type, array( 'post', 'page' ), true ) ) {
+ return $categories;
+ }
+
+ return array_merge(
+ $categories,
+ array(
+ array(
+ 'slug' => 'tenup-scaffold-blocks',
+ 'title' => __( 'Custom Blocks', 'tenup-theme' ),
+ ),
+ )
+ );
+}
diff --git a/themes/10up-theme/includes/blocks/blocks.js b/themes/10up-theme/includes/blocks/blocks.js
deleted file mode 100644
index 56746791..00000000
--- a/themes/10up-theme/includes/blocks/blocks.js
+++ /dev/null
@@ -1,5 +0,0 @@
-/**
- * Register all blocks
- */
-
-import './example-block';
diff --git a/themes/10up-theme/includes/blocks/blocks.php b/themes/10up-theme/includes/blocks/blocks.php
deleted file mode 100644
index 8c3a6de6..00000000
--- a/themes/10up-theme/includes/blocks/blocks.php
+++ /dev/null
@@ -1,86 +0,0 @@
-post_type, array( 'post', 'page' ), true ) ) {
- return $categories;
- }
-
- return array_merge(
- $categories,
- array(
- array(
- 'slug' => 'tenup-theme-blocks',
- 'title' => __( 'Custom Blocks', 'tenup-theme' ),
- ),
- )
- );
-}
diff --git a/themes/10up-theme/includes/blocks/example-block/block.json b/themes/10up-theme/includes/blocks/example-block/block.json
new file mode 100644
index 00000000..a8876a58
--- /dev/null
+++ b/themes/10up-theme/includes/blocks/example-block/block.json
@@ -0,0 +1,18 @@
+{
+ "title": "Example Block",
+ "description": "An Example Block",
+ "text-domain": "tenup-scaffold",
+ "name": "tenup/example",
+ "icon": "feedback",
+ "attributes":{
+ "customTitle": {
+ "type" : "string"
+ }
+ },
+ "example": {
+ "attributes":{
+ "customTitle": "Example Block"
+ }
+ },
+ "editorScript": "file:../../../dist/example-block.js"
+}
diff --git a/themes/10up-theme/includes/blocks/example-block/edit.js b/themes/10up-theme/includes/blocks/example-block/edit.js
new file mode 100644
index 00000000..22e869f2
--- /dev/null
+++ b/themes/10up-theme/includes/blocks/example-block/edit.js
@@ -0,0 +1,42 @@
+/**
+ * WordPress dependencies
+ */
+import { __ } from '@wordpress/i18n';
+import { RichText } from '@wordpress/block-editor';
+
+/**
+ * Internal dependencies
+ */
+import { editPropsShape } from './props-shape';
+
+/**
+ * Edit component.
+ * See https://wordpress.org/gutenberg/handbook/designers-developers/developers/block-api/block-edit-save/#edit
+ *
+ * @param {Object} props The block props.
+ * @param {Object} props.attributes Block attributes.
+ * @param {string} props.attributes.customTitle Custom title to be displayed.
+ * @param {string} props.className Class name for the block.
+ * @param {Function} props.setAttributes Sets the value for block attributes.
+ * @return {Function} Render the edit screen
+ */
+const ExampleBockEdit = ({
+ attributes: { customTitle: currentTitle },
+ className,
+ setAttributes,
+}) => {
+ return (
+
+ setAttributes({ customTitle })}
+ />
+
+ );
+};
+// Set the propTypes
+ExampleBockEdit.propTypes = editPropsShape;
+export default ExampleBockEdit;
diff --git a/themes/10up-theme/includes/blocks/example-block/index.css b/themes/10up-theme/includes/blocks/example-block/index.css
new file mode 100644
index 00000000..2a77f355
--- /dev/null
+++ b/themes/10up-theme/includes/blocks/example-block/index.css
@@ -0,0 +1,9 @@
+/**
+ * Example Block
+ * This file is for CSS admin overrides only.
+ * Use theme files for standard CSS work.
+ */
+.wp-block-example-block__title {
+ border: 3px dashed #ccc;
+ padding: 1em;
+}
diff --git a/themes/10up-theme/includes/blocks/example-block/index.js b/themes/10up-theme/includes/blocks/example-block/index.js
index 70e32986..0a91c7d6 100644
--- a/themes/10up-theme/includes/blocks/example-block/index.js
+++ b/themes/10up-theme/includes/blocks/example-block/index.js
@@ -1,22 +1,30 @@
/**
- * Example block
+ * Example-block
+ * Custom title block -- feel free to delete
*/
-/* eslint-disable react/prop-types */
+/**
+ * WordPress dependencies
+ */
+import { __ } from '@wordpress/i18n';
+import { registerBlockType } from '@wordpress/blocks';
-const { __ } = wp.i18n;
-const { registerBlockType } = wp.blocks;
+/**
+ * Internal dependencies
+ */
+import edit from './edit';
+import save from './save';
+import { name } from './block.json';
-registerBlockType('tenup/example-block', {
- title: __('Example Block', 'tenup-theme'),
- category: 'tenup-theme-blocks',
- icon: 'smiley',
- edit: ({ className }) => {
- return (
-
-
Example Block Editor
-
- );
- },
- save: () => null,
+/* Uncomment for CSS overrides in the admin */
+// import './index.css';
+
+/**
+ * Register block
+ */
+registerBlockType(name, {
+ title: __('Example Block'),
+ description: __('An Example Block'),
+ edit,
+ save,
});
diff --git a/themes/10up-theme/includes/blocks/example-block/index.php b/themes/10up-theme/includes/blocks/example-block/index.php
deleted file mode 100644
index bba2eac4..00000000
--- a/themes/10up-theme/includes/blocks/example-block/index.php
+++ /dev/null
@@ -1,31 +0,0 @@
- __NAMESPACE__ . '\render',
- ]
- );
-}
-
-/**
- * Render example block
- *
- * @return string
- */
-function render() {
- return 'Example block front end
';
-}
diff --git a/themes/10up-theme/includes/blocks/example-block/markup.php b/themes/10up-theme/includes/blocks/example-block/markup.php
new file mode 100644
index 00000000..f308c845
--- /dev/null
+++ b/themes/10up-theme/includes/blocks/example-block/markup.php
@@ -0,0 +1,32 @@
+ [
+ 'customTitle' => __( 'Custom title default', 'tenup' ),
+ ],
+ 'class_name' => 'wp-block-tenup-example',
+ ]
+);
+
+?>
+
+
+
+
+
diff --git a/themes/10up-theme/includes/blocks/example-block/props-shape.js b/themes/10up-theme/includes/blocks/example-block/props-shape.js
new file mode 100644
index 00000000..44111496
--- /dev/null
+++ b/themes/10up-theme/includes/blocks/example-block/props-shape.js
@@ -0,0 +1,15 @@
+import PropTypes from 'prop-types';
+
+export const propsShape = {
+ attributes: PropTypes.shape({
+ customTitle: PropTypes.string,
+ }).isRequired,
+ className: PropTypes.string,
+};
+
+export const editPropsShape = {
+ ...propsShape,
+ clientId: PropTypes.string,
+ isSelected: PropTypes.bool,
+ setAttributes: PropTypes.func.isRequired,
+};
diff --git a/themes/10up-theme/includes/blocks/example-block/register.php b/themes/10up-theme/includes/blocks/example-block/register.php
new file mode 100644
index 00000000..ec02715e
--- /dev/null
+++ b/themes/10up-theme/includes/blocks/example-block/register.php
@@ -0,0 +1,49 @@
+ $n( 'render_block_callback' ),
+ ]
+ );
+}
+
+/**
+ * Render callback method for the block
+ *
+ * @param array $attributes The blocks attributes
+ * @param string $content Data returned from InnerBlocks.Content
+ * @param array $block Block information such as context.
+ *
+ * @return string The rendered block markup.
+ */
+function render_block_callback( $attributes, $content, $block ) {
+ ob_start();
+ get_template_part(
+ 'includes/blocks/example-block/markup',
+ null,
+ [
+ 'class_name' => 'wp-block-tenup-example',
+ 'attributes' => $attributes,
+ 'content' => $content,
+ 'block' => $block,
+ ]
+ );
+
+ return ob_get_clean();
+}
diff --git a/themes/10up-theme/includes/blocks/example-block/save.js b/themes/10up-theme/includes/blocks/example-block/save.js
new file mode 100644
index 00000000..739dc6d2
--- /dev/null
+++ b/themes/10up-theme/includes/blocks/example-block/save.js
@@ -0,0 +1,8 @@
+/**
+ * See https://wordpress.org/gutenberg/handbook/designers-developers/developers/block-api/block-edit-save/#save
+ *
+ * @return {null} Dynamic blocks do not save the HTML.
+ */
+const ExampleBlockSave = () => null;
+
+export default ExampleBlockSave;
diff --git a/themes/10up-theme/package-lock.json b/themes/10up-theme/package-lock.json
index 55051043..7e5e99bc 100644
--- a/themes/10up-theme/package-lock.json
+++ b/themes/10up-theme/package-lock.json
@@ -3254,6 +3254,12 @@
"resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz",
"integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==",
"dev": true
+ },
+ "prettier": {
+ "version": "npm:wp-prettier@2.0.5",
+ "resolved": "https://registry.npmjs.org/wp-prettier/-/wp-prettier-2.0.5.tgz",
+ "integrity": "sha512-5GCgdeevIXwR3cW4Qj5XWC5MO1iSCz8+IPn0mMw6awAt/PBiey8yyO7MhePRsaMqghJAhg6Q3QLYWSnUHWkG6A==",
+ "dev": true
}
}
},
@@ -5364,6 +5370,335 @@
"integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=",
"dev": true
},
+ "copy-webpack-plugin": {
+ "version": "6.3.2",
+ "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-6.3.2.tgz",
+ "integrity": "sha512-MgJ1uouLIbDg4ST1GzqrGQyKoXY5iPqi6fghFqarijam7FQcBa/r6Rg0VkoIuzx75Xq8iAMghyOueMkWUQ5OaA==",
+ "dev": true,
+ "requires": {
+ "cacache": "^15.0.5",
+ "fast-glob": "^3.2.4",
+ "find-cache-dir": "^3.3.1",
+ "glob-parent": "^5.1.1",
+ "globby": "^11.0.1",
+ "loader-utils": "^2.0.0",
+ "normalize-path": "^3.0.0",
+ "p-limit": "^3.0.2",
+ "schema-utils": "^3.0.0",
+ "serialize-javascript": "^5.0.1",
+ "webpack-sources": "^1.4.3"
+ },
+ "dependencies": {
+ "@nodelib/fs.stat": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.3.tgz",
+ "integrity": "sha512-bQBFruR2TAwoevBEd/NWMoAAtNGzTRgdrqnYCc7dhzfoNvqPzLyqlEQnzZ3kVnNrSp25iyxE00/3h2fqGAGArA==",
+ "dev": true
+ },
+ "array-union": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz",
+ "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==",
+ "dev": true
+ },
+ "braces": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
+ "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
+ "dev": true,
+ "requires": {
+ "fill-range": "^7.0.1"
+ }
+ },
+ "cacache": {
+ "version": "15.0.5",
+ "resolved": "https://registry.npmjs.org/cacache/-/cacache-15.0.5.tgz",
+ "integrity": "sha512-lloiL22n7sOjEEXdL8NAjTgv9a1u43xICE9/203qonkZUCj5X1UEWIdf2/Y0d6QcCtMzbKQyhrcDbdvlZTs/+A==",
+ "dev": true,
+ "requires": {
+ "@npmcli/move-file": "^1.0.1",
+ "chownr": "^2.0.0",
+ "fs-minipass": "^2.0.0",
+ "glob": "^7.1.4",
+ "infer-owner": "^1.0.4",
+ "lru-cache": "^6.0.0",
+ "minipass": "^3.1.1",
+ "minipass-collect": "^1.0.2",
+ "minipass-flush": "^1.0.5",
+ "minipass-pipeline": "^1.2.2",
+ "mkdirp": "^1.0.3",
+ "p-map": "^4.0.0",
+ "promise-inflight": "^1.0.1",
+ "rimraf": "^3.0.2",
+ "ssri": "^8.0.0",
+ "tar": "^6.0.2",
+ "unique-filename": "^1.1.1"
+ }
+ },
+ "chownr": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz",
+ "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==",
+ "dev": true
+ },
+ "fast-glob": {
+ "version": "3.2.4",
+ "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.4.tgz",
+ "integrity": "sha512-kr/Oo6PX51265qeuCYsyGypiO5uJFgBS0jksyG7FUeCyQzNwYnzrNIMR1NXfkZXsMYXYLRAHgISHBz8gQcxKHQ==",
+ "dev": true,
+ "requires": {
+ "@nodelib/fs.stat": "^2.0.2",
+ "@nodelib/fs.walk": "^1.2.3",
+ "glob-parent": "^5.1.0",
+ "merge2": "^1.3.0",
+ "micromatch": "^4.0.2",
+ "picomatch": "^2.2.1"
+ }
+ },
+ "fill-range": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
+ "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
+ "dev": true,
+ "requires": {
+ "to-regex-range": "^5.0.1"
+ }
+ },
+ "find-cache-dir": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.1.tgz",
+ "integrity": "sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ==",
+ "dev": true,
+ "requires": {
+ "commondir": "^1.0.1",
+ "make-dir": "^3.0.2",
+ "pkg-dir": "^4.1.0"
+ }
+ },
+ "find-up": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
+ "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
+ "dev": true,
+ "requires": {
+ "locate-path": "^5.0.0",
+ "path-exists": "^4.0.0"
+ }
+ },
+ "glob-parent": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz",
+ "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==",
+ "dev": true,
+ "requires": {
+ "is-glob": "^4.0.1"
+ }
+ },
+ "globby": {
+ "version": "11.0.1",
+ "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.1.tgz",
+ "integrity": "sha512-iH9RmgwCmUJHi2z5o2l3eTtGBtXek1OYlHrbcxOYugyHLmAsZrPj43OtHThd62Buh/Vv6VyCBD2bdyWcGNQqoQ==",
+ "dev": true,
+ "requires": {
+ "array-union": "^2.1.0",
+ "dir-glob": "^3.0.1",
+ "fast-glob": "^3.1.1",
+ "ignore": "^5.1.4",
+ "merge2": "^1.3.0",
+ "slash": "^3.0.0"
+ }
+ },
+ "is-number": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
+ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
+ "dev": true
+ },
+ "locate-path": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
+ "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
+ "dev": true,
+ "requires": {
+ "p-locate": "^4.1.0"
+ }
+ },
+ "lru-cache": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
+ "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
+ "dev": true,
+ "requires": {
+ "yallist": "^4.0.0"
+ }
+ },
+ "make-dir": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz",
+ "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==",
+ "dev": true,
+ "requires": {
+ "semver": "^6.0.0"
+ }
+ },
+ "micromatch": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz",
+ "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==",
+ "dev": true,
+ "requires": {
+ "braces": "^3.0.1",
+ "picomatch": "^2.0.5"
+ }
+ },
+ "mkdirp": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz",
+ "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==",
+ "dev": true
+ },
+ "p-limit": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.0.2.tgz",
+ "integrity": "sha512-iwqZSOoWIW+Ew4kAGUlN16J4M7OB3ysMLSZtnhmqx7njIHFPlxWBX8xo3lVTyFVq6mI/lL9qt2IsN1sHwaxJkg==",
+ "dev": true,
+ "requires": {
+ "p-try": "^2.0.0"
+ }
+ },
+ "p-locate": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz",
+ "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
+ "dev": true,
+ "requires": {
+ "p-limit": "^2.2.0"
+ },
+ "dependencies": {
+ "p-limit": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
+ "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
+ "dev": true,
+ "requires": {
+ "p-try": "^2.0.0"
+ }
+ }
+ }
+ },
+ "p-map": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz",
+ "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==",
+ "dev": true,
+ "requires": {
+ "aggregate-error": "^3.0.0"
+ }
+ },
+ "p-try": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
+ "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
+ "dev": true
+ },
+ "path-exists": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
+ "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
+ "dev": true
+ },
+ "pkg-dir": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz",
+ "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==",
+ "dev": true,
+ "requires": {
+ "find-up": "^4.0.0"
+ }
+ },
+ "rimraf": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
+ "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
+ "dev": true,
+ "requires": {
+ "glob": "^7.1.3"
+ }
+ },
+ "schema-utils": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.0.0.tgz",
+ "integrity": "sha512-6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA==",
+ "dev": true,
+ "requires": {
+ "@types/json-schema": "^7.0.6",
+ "ajv": "^6.12.5",
+ "ajv-keywords": "^3.5.2"
+ }
+ },
+ "semver": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
+ "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
+ "dev": true
+ },
+ "serialize-javascript": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-5.0.1.tgz",
+ "integrity": "sha512-SaaNal9imEO737H2c05Og0/8LUXG7EnsZyMa8MzkmuHoELfT6txuj0cMqRj6zfPKnmQ1yasR4PCJc8x+M4JSPA==",
+ "dev": true,
+ "requires": {
+ "randombytes": "^2.1.0"
+ }
+ },
+ "slash": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
+ "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
+ "dev": true
+ },
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "dev": true
+ },
+ "ssri": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.0.tgz",
+ "integrity": "sha512-aq/pz989nxVYwn16Tsbj1TqFpD5LLrQxHf5zaHuieFV+R0Bbr4y8qUsOA45hXT/N4/9UNXTarBjnjVmjSOVaAA==",
+ "dev": true,
+ "requires": {
+ "minipass": "^3.1.1"
+ }
+ },
+ "to-regex-range": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
+ "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
+ "dev": true,
+ "requires": {
+ "is-number": "^7.0.0"
+ }
+ },
+ "webpack-sources": {
+ "version": "1.4.3",
+ "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz",
+ "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==",
+ "dev": true,
+ "requires": {
+ "source-list-map": "^2.0.0",
+ "source-map": "~0.6.1"
+ }
+ },
+ "yallist": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
+ "dev": true
+ }
+ }
+ },
"core-js": {
"version": "3.7.0",
"resolved": "https://registry.npmjs.org/core-js/-/core-js-3.7.0.tgz",
@@ -11074,8 +11409,7 @@
"js-tokens": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
- "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
- "dev": true
+ "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ=="
},
"js-yaml": {
"version": "3.14.0",
@@ -11563,7 +11897,6 @@
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz",
"integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==",
- "dev": true,
"requires": {
"js-tokens": "^3.0.0 || ^4.0.0"
}
@@ -12344,8 +12677,7 @@
"object-assign": {
"version": "4.1.1",
"resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
- "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
- "dev": true
+ "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM="
},
"object-component": {
"version": "0.0.3",
@@ -14127,7 +14459,6 @@
"version": "15.7.2",
"resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz",
"integrity": "sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==",
- "dev": true,
"requires": {
"loose-envify": "^1.4.0",
"object-assign": "^4.1.1",
@@ -14362,8 +14693,7 @@
"react-is": {
"version": "16.13.1",
"resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
- "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==",
- "dev": true
+ "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ=="
},
"react-test-renderer": {
"version": "16.14.0",
diff --git a/themes/10up-theme/package.json b/themes/10up-theme/package.json
index fb7c242f..3c879a52 100644
--- a/themes/10up-theme/package.json
+++ b/themes/10up-theme/package.json
@@ -16,7 +16,8 @@
"@10up/scripts": "^1.0.6"
},
"dependencies": {
- "normalize.css": "^8.0.1"
+ "normalize.css": "^8.0.1",
+ "prop-types": "^15.7.2"
},
"build": {
"admin": "./assets/js/admin/admin.js",
@@ -28,6 +29,7 @@
"editor-style": "./assets/css/frontend/editor-style.css",
"shared-style": "./assets/css/shared/shared-style.css",
"style": "./assets/css/frontend/style.css",
- "styleguide-style": "./assets/css/styleguide/styleguide.css"
+ "styleguide-style": "./assets/css/styleguide/styleguide.css",
+ "example-block": "./includes/blocks/example-block/"
}
}