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/" } }