All Projects → junaidbhura → gumponents

junaidbhura / gumponents

Licence: MIT license
Essential Gutenberg components for WordPress.

Programming Languages

javascript
184084 projects - #8 most used programming language
PHP
23972 projects - #3 most used programming language
SCSS
7915 projects
shell
77523 projects

Projects that are alternatives of or similar to gumponents

create-cloud-block
A boilerplate generator for building Gutenberg Cloud blocks.
Stars: ✭ 49 (+68.97%)
Mutual labels:  gutenberg
gutenberg-forms
The Next Generation WordPress Form Builder.
Stars: ✭ 98 (+237.93%)
Mutual labels:  gutenberg
benenson
A Gutenberg WordPress theme
Stars: ✭ 70 (+141.38%)
Mutual labels:  gutenberg
PhraseAnalysis
数据仓库与数据挖掘 大作业 -- 频繁模式挖掘
Stars: ✭ 20 (-31.03%)
Mutual labels:  gutenberg
block-unit-test
Preparing WordPress themes for Gutenberg with the Block Unit Test WordPress Plugin
Stars: ✭ 60 (+106.9%)
Mutual labels:  gutenberg
character-extraction
Extracts character names from a text file and performs analysis of text sentences containing the names.
Stars: ✭ 40 (+37.93%)
Mutual labels:  gutenberg
Guty-Blocks-2
A minimal, fast development environment for WordPress Gutenberg blocks
Stars: ✭ 52 (+79.31%)
Mutual labels:  gutenberg
disable-drop-cap
Plugin to disable drop cap in Gutenberg editor paragraph block.
Stars: ✭ 11 (-62.07%)
Mutual labels:  gutenberg
eightshift-forms
WordPress plugin project for Gutenberg forms
Stars: ✭ 23 (-20.69%)
Mutual labels:  gutenberg
browser-shots
A WordPress plugin for taking screenshots of websites using the block editor.
Stars: ✭ 17 (-41.38%)
Mutual labels:  gutenberg
aino-blocks
Aino blocks are a collection of Gutenberg editor blocks for page building in WordPress.
Stars: ✭ 57 (+96.55%)
Mutual labels:  gutenberg
poet
Configuration-based post type, taxonomy, block category, and block registration for Sage 10.
Stars: ✭ 124 (+327.59%)
Mutual labels:  gutenberg
gutenberg-workshop
⚒️ A Gutenberg Workshop 🅱️
Stars: ✭ 21 (-27.59%)
Mutual labels:  gutenberg
acf-editor-palette
A Gutenberg-like editor palette color picker field for Advanced Custom Fields.
Stars: ✭ 70 (+141.38%)
Mutual labels:  gutenberg
gutenberg
Scraper for downloading the entire ebooks repository of project Gutenberg
Stars: ✭ 100 (+244.83%)
Mutual labels:  gutenberg
tiny-blocks
WordPress block editor framework
Stars: ✭ 31 (+6.9%)
Mutual labels:  gutenberg
gutendex
Web API for Project Gutenberg ebook metadata
Stars: ✭ 91 (+213.79%)
Mutual labels:  gutenberg
noptin
Noptin is the best email newsletter plugin for WordPress.
Stars: ✭ 13 (-55.17%)
Mutual labels:  gutenberg
slotfill-and-filter-demos
This repo can be used as reference or can be installed as a plugin in any WordPress install to make code changes as needed. Each SlotFill or filter is explained with examples. This is meant to be a working document and will change as Gutenberg does.
Stars: ✭ 93 (+220.69%)
Mutual labels:  gutenberg
aino-theme
A Gutenberg-ready WordPress theme.
Stars: ✭ 107 (+268.97%)
Mutual labels:  gutenberg

GitHub Actions

Gumponents!

Essential Gutenberg components for WordPress.

Gumponents offer some crucial missing Gutenberg components, essential to create advanced blocks. 🚀

Individual Gumponents aim to be deprecated over time, when components similar or better land in WordPress core.

They are not blocks, but rather, what you would use to build advanced blocks.

Quick Links

Documentation | Roadmap

Components

PostRelationshipControl

post-relationship-control

Example

const { PostRelationshipControl } = gumponents.components;

<PostRelationshipControl
	label="Select people"
	help="Select people"
	postTypes="people"
	taxonomies={ [ { people_roles: [ 'ceo', 'management' ] } ] }
	value={ people.map( person => person.ID ) }
	onSelect={ people => setAttributes( { people } ) }
	buttonLabel="Select People"
	filter="people_meta"
	max="1"
/>

TaxonomyRelationshipControl

taxonomy-relationship-control

Example

const { TaxonomyRelationshipControl } = gumponents.components;

<TaxonomyRelationshipControl
	label="Select people roles"
	taxonomies="people_roles"
	value={ taxonomy.map( tax => tax.term_id ) }
	onSelect={ taxonomy => setAttributes( { taxonomy } ) }
	buttonLabel="Select People Roles"
	filter="people_meta"
	max="1"
/>

ColorPaletteControl

color-palette-control

Example

const { ColorPaletteControl } = gumponents.components;

...

attributes: {
	color: {
		type: 'object',
	},
},
...

<ColorPaletteControl
	label="Choose a color"
	value={ color ? color.color : null }
	onChange={ color => setAttributes( { color } ) }
/>

MultiSelectControl

multi-select-control

Example

const { MultiSelectControl } = gumponents.components;

...

attributes: {
	simpsons: {
		type: 'array',
		default: [],
	},
},

...

const options = [
	{ value: 'bart', label: 'Bart' },
	{ value: 'homer', label: 'Homer' },
	{ value: 'marge', label: 'Marge' },
];

<MultiSelectControl
	label="Choose Simpsons"
	help="Choose your favorite characters."
	options={ options }
	value={ attributes.simpsons }
	onChange={ ( simpsons ) => setAttributes( { simpsons } ) }
	placeholder="D'oh"
/>

LinkControl

link-control

Example

const { LinkControl } = gumponents.components;

...

attributes: {
	link: {
		type: 'object',
		default: {},
	},
},

...

<LinkControl
	label="Select URL"
	value={ attributes.link }
	onChange={ ( link ) => setAttributes( { link } ) }
	help="Enter a URL."
/>

FileControl

file-control

Example

const { FileControl } = gumponents.components;

...

attributes: {
	file: {
		type: 'object',
		default: null,
	},
},

...

<FileControl
	label="Choose file"
	selectLabel="Choose video"
	removeLabel="Remove this video"
	onChange={ file => setAttributes( { file: file ? { id: file.id, name: file.filename } : null } ) }
	value={ file ? file.id : null }
/>

ImageControl

image-control

Example

const { ImageControl } = gumponents.components;

...

attributes: {
	image: {
		type: 'object',
		default: null,
	},
},

...

<ImageControl
	label="Choose image"
	selectLabel="Choose image"
	removeLabel="Remove this image"
	size="thumbnail"
	value={ image }
	onChange={ ( image, media ) => setAttributes( { image } ) }
/>

GalleryControl

gallery-control

Example

const { GalleryControl } = gumponents.components;

...

attributes: {
	gallery: {
		type: 'array',
		default: [],
	},
},

...

<GalleryControl
	size="medium"
	onSelect={ ( gallery, media ) => {
		setAttributes( { gallery: null } ); // The block editor doesn't update arrays correctly? 🤷‍♂️
		setAttributes( { gallery } );
	} }
	value={ attributes.gallery }
/>

LinkButton

link-button

Example

const { LinkButton } = gumponents.components;

...

attributes: {
	link: {
		type: 'object',
	},
},

...

<LinkButton
	className="btn btn--primary"
	placeholder="Select Link"
	value={ attributes.link }
	onChange={ ( link ) => setAttributes( { link } ) }
/>

SelectImage

select-image

Example

const { SelectImage } = gumponents.components;

...

attributes: {
	image: {
		type: 'object',
		default: null,
	},
},

...

<SelectImage
	image={ image }
	placeholder="Choose an image"
	size="full"
	onChange={ ( image, media ) => {
		setAttributes( { image: null } ); // The block editor doesn't update objects correctly? 🤷‍♂️
		setAttributes( { image } );
	} }
	showCaption={ false }
/>
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].