@plaudit/gutenberg-api-extensions 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/blocks/index.d.ts +1 -0
- package/build/blocks/index.js +1 -0
- package/build/blocks/simple-block.d.ts +13 -0
- package/build/blocks/simple-block.js +26 -0
- package/build/controls/InspectorPanel.d.ts +3 -0
- package/build/controls/InspectorPanel.js +7 -0
- package/build/controls/PickOne.d.ts +6 -0
- package/build/controls/PickOne.js +25 -0
- package/build/controls/SimpleToggle.d.ts +3 -0
- package/build/controls/SimpleToggle.js +5 -0
- package/build/controls/index.d.ts +3 -0
- package/build/controls/index.js +3 -0
- package/build/controls/types.d.ts +11 -0
- package/build/controls/types.js +1 -0
- package/build/index.d.ts +3 -0
- package/build/index.js +3 -0
- package/build/lib/plaudit-icons.d.ts +9 -0
- package/build/lib/plaudit-icons.js +87 -0
- package/package.json +34 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./simple-block";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./simple-block";
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { type Block, type BlockConfiguration, type BlockSaveProps } from "@wordpress/blocks";
|
|
2
|
+
import { InnerBlocks } from "@wordpress/block-editor";
|
|
3
|
+
import type { UseBlockProps } from "@wordpress/block-editor/components/use-block-props";
|
|
4
|
+
import React, { type ReactNode } from "react";
|
|
5
|
+
export type SimpleBlockTypeConfig<TAttributes extends Record<string, any>> = {
|
|
6
|
+
icon?: BlockConfiguration<TAttributes>['icon'] | undefined;
|
|
7
|
+
defaults: Required<TAttributes>;
|
|
8
|
+
controls: NonNullable<Block<TAttributes>['edit']>;
|
|
9
|
+
renderer: (attributes: BlockSaveProps<TAttributes>, wrapperProps: UseBlockProps | UseBlockProps['save'], innerBlocks: () => React.ReactElement) => ReactNode;
|
|
10
|
+
innerBlocksProps?: InnerBlocks.Props;
|
|
11
|
+
settings?: Partial<BlockConfiguration<TAttributes>>;
|
|
12
|
+
};
|
|
13
|
+
export declare function registerSimpleBlockType<TAttributes extends Record<string, any> = {}>(metadata: BlockConfiguration<TAttributes>, config: SimpleBlockTypeConfig<TAttributes>): Block<TAttributes> | undefined;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { registerBlockType } from "@wordpress/blocks";
|
|
2
|
+
import { InnerBlocks, useBlockProps } from "@wordpress/block-editor";
|
|
3
|
+
import { plauditIcon } from "../lib/plaudit-icons";
|
|
4
|
+
import React from "react";
|
|
5
|
+
export function registerSimpleBlockType(metadata, config) {
|
|
6
|
+
var _a;
|
|
7
|
+
function applyDefaults(props) {
|
|
8
|
+
const mutableProps = Object.assign(Object.assign({}, props), { attributes: Object.assign({}, props.attributes) });
|
|
9
|
+
for (const [k, v] of Object.entries(config.defaults)) {
|
|
10
|
+
if (mutableProps.attributes[k] === undefined) {
|
|
11
|
+
mutableProps.attributes[k] = v;
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
return mutableProps;
|
|
15
|
+
}
|
|
16
|
+
return registerBlockType(metadata, Object.assign(Object.assign({}, config.settings), { icon: (_a = config.icon) !== null && _a !== void 0 ? _a : plauditIcon, edit(props) {
|
|
17
|
+
const populatedProps = applyDefaults(props);
|
|
18
|
+
const rendered = config.renderer(populatedProps, useBlockProps, () => React.createElement(InnerBlocks, Object.assign({}, config.innerBlocksProps)));
|
|
19
|
+
return React.createElement(React.Fragment, null,
|
|
20
|
+
React.createElement(config.controls, Object.assign({}, populatedProps)),
|
|
21
|
+
rendered);
|
|
22
|
+
},
|
|
23
|
+
save(props) {
|
|
24
|
+
return config.renderer(applyDefaults(props), useBlockProps.save, () => React.createElement(InnerBlocks.Content, null));
|
|
25
|
+
} }));
|
|
26
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { InspectorControls } from "@wordpress/block-editor";
|
|
2
|
+
import { PanelBody } from "@wordpress/components";
|
|
3
|
+
import React from "react";
|
|
4
|
+
export function InspectorPanel(props) {
|
|
5
|
+
return React.createElement(InspectorControls, null,
|
|
6
|
+
React.createElement(PanelBody, Object.assign({}, props, { children: props.children })));
|
|
7
|
+
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { PickableOptions, SimpleBlockControlProps } from "./types";
|
|
2
|
+
import React from "react";
|
|
3
|
+
export declare function PickOne<T extends string>(props: SimpleBlockControlProps<T, string> & {
|
|
4
|
+
options: PickableOptions;
|
|
5
|
+
layout: 'toggle-group' | 'dropdown' | 'radio';
|
|
6
|
+
}): React.JSX.Element;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { __experimentalToggleGroupControl as ToggleGroupControl, __experimentalToggleGroupControlOption as ToggleGroupControlOption, __experimentalToggleGroupControlOptionIcon as ToggleGroupControlOptionIcon, RadioControl, SelectControl } from "@wordpress/components";
|
|
2
|
+
import React from "react";
|
|
3
|
+
function makeSharedRadioAndSelectProps(props) {
|
|
4
|
+
return {
|
|
5
|
+
label: props.label,
|
|
6
|
+
onChange: (value) => props.setAttributes({ [props.attribute]: value }),
|
|
7
|
+
options: Object.entries(props.options).map(([value, label]) => ({
|
|
8
|
+
value, label: typeof label === 'string' ? label : label.text
|
|
9
|
+
}))
|
|
10
|
+
};
|
|
11
|
+
}
|
|
12
|
+
export function PickOne(props) {
|
|
13
|
+
switch (props.layout) {
|
|
14
|
+
case 'toggle-group':
|
|
15
|
+
return React.createElement(ToggleGroupControl, { label: props.label, value: props.attributes[props.attribute], onChange: value => props.setAttributes({ [props.attribute]: value }), children: Object.entries(props.options).map(([value, label]) => typeof label === 'string'
|
|
16
|
+
? React.createElement(ToggleGroupControlOption, { key: value, value: value, label: label })
|
|
17
|
+
: React.createElement(ToggleGroupControlOptionIcon, { key: value, value: value, label: label.text, icon: label.icon })) });
|
|
18
|
+
case 'dropdown':
|
|
19
|
+
return React.createElement(SelectControl, Object.assign({}, makeSharedRadioAndSelectProps(props), { value: props.attributes[props.attribute] }));
|
|
20
|
+
case 'radio':
|
|
21
|
+
return React.createElement(RadioControl, Object.assign({}, makeSharedRadioAndSelectProps(props), { selected: props.attributes[props.attribute] }));
|
|
22
|
+
default:
|
|
23
|
+
throw new Error(`Unsupported layout: ${props.layout}`);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { ToggleControl } from "@wordpress/components";
|
|
2
|
+
import React from "react";
|
|
3
|
+
export function SimpleToggle(props) {
|
|
4
|
+
return React.createElement(ToggleControl, { checked: props.attributes[props.attribute], label: props.label, onChange: checked => props.setAttributes({ [props.attribute]: checked }) });
|
|
5
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { BlockEditProps, BlockIcon } from "@wordpress/blocks";
|
|
2
|
+
export type SimpleBlockControlProps<T extends string, V> = {
|
|
3
|
+
label: string;
|
|
4
|
+
attribute: T;
|
|
5
|
+
attributes: BlockEditProps<Record<T, V> & Record<string, unknown>>['attributes'];
|
|
6
|
+
setAttributes: BlockEditProps<any>['setAttributes'];
|
|
7
|
+
};
|
|
8
|
+
export type PickableOptions = Record<string, string | {
|
|
9
|
+
text: string;
|
|
10
|
+
icon: BlockIcon;
|
|
11
|
+
}>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
package/build/index.d.ts
ADDED
package/build/index.js
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
export declare const plauditIcon: React.JSX.Element;
|
|
3
|
+
export declare const iconColumn1: React.JSX.Element;
|
|
4
|
+
export declare const iconColumn2: React.JSX.Element;
|
|
5
|
+
export declare const iconColumn3: React.JSX.Element;
|
|
6
|
+
export declare const iconAlignLeft: React.JSX.Element;
|
|
7
|
+
export declare const iconAlignCenter: React.JSX.Element;
|
|
8
|
+
export declare const iconAlignRight: React.JSX.Element;
|
|
9
|
+
export declare const iconCloud: React.JSX.Element;
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
// =============================================
|
|
2
|
+
// Allows sharing of assets in block configurations
|
|
3
|
+
// =============================================
|
|
4
|
+
import React from "react";
|
|
5
|
+
export const plauditIcon = React.createElement("svg", { width: 24, height: 24, viewBox: "0 0 139 157.6" },
|
|
6
|
+
React.createElement("path", { fill: "#d20000", d: "M83.3 39.1L101.6 9c2-3.2.9-7.1-2.4-8.5s-6.9.4-7.9 4l-9.7 33.9c-1.1 3.6-.3 4 1.7.7zm-43.9 19L9 40.5c-3.3-1.9-7.1-.7-8.5 2.6s.5 6.8 4.2 7.8l34.1 8.9c3.7 1 4 .2.6-1.7zm16.3-19c2 3.2 2.7 2.9 1.7-.7L47.6 4.5C46.5.8 43-1 39.7.5S35.3 5.8 37.3 9l18.4 30.1zm82.8 4c-1.4-3.3-5.2-4.5-8.5-2.6L99.5 58.1c-3.3 1.9-3 2.7.7 1.7l34.1-8.9c3.7-1 5.6-4.5 4.2-7.8zM88.8 57.7c-10.6-18.3-28-18.3-38.7 0l-38.7 66.6c-10.6 18.3-1.9 33.3 19.3 33.3h77.4c21.3 0 30-15 19.3-33.3L88.8 57.7zm-19.3 1c7.1 0 12.8 5.8 12.7 12.9s-5.8 12.8-12.9 12.7c-7 0-12.7-5.8-12.8-12.8.1-7.1 5.8-12.9 13-12.8zm32 91.2h-64c-17.6 0-24.8-8.1-16-18l32-35.9c8.8-9.9 23.2-9.9 32 0l32 35.9c8.8 9.9 1.6 17.9-16 18z" }));
|
|
7
|
+
export const iconColumn1 = React.createElement("svg", { width: 34, height: 24, viewBox: "0 0 34 24" },
|
|
8
|
+
React.createElement("path", { d: "M32 2H2v20h30V2zM2 0C.9 0 0 .9 0 2v20c0 1.1.9 2 2 2h30c1.1 0 2-.9 2-2V2c0-1.1-.9-2-2-2H2z", fillRule: "evenodd", clipRule: "evenodd" }));
|
|
9
|
+
export const iconColumn2 = React.createElement("svg", { width: 34, height: 24, viewBox: "0 0 34 24" },
|
|
10
|
+
React.createElement("path", { d: "M32 0c1.1 0 2 .9 2 2v20c0 1.1-.9 2-2 2H2c-1.1 0-2-.9-2-2V2C0 .9.9 0 2 0h30zm0 22V2H18v20h14zm-16 0H2V2h14v20z", fillRule: "evenodd", clipRule: "evenodd" }));
|
|
11
|
+
export const iconColumn3 = React.createElement("svg", { width: 34, height: 24, viewBox: "0 0 34 24" },
|
|
12
|
+
React.createElement("path", { d: "M34 2c0-1.1-.9-2-2-2H2C.9 0 0 .9 0 2v20c0 1.1.9 2 2 2h30c1.1 0 2-.9 2-2V2zM21.5 22h-9V2h9v20zm2 0V2H32v20h-8.5zm-13 0H2V2h8.5v20z", fillRule: "evenodd", clipRule: "evenodd" }));
|
|
13
|
+
export const iconAlignLeft = React.createElement("svg", { width: 24, height: 24, viewBox: "0 0 24 24" },
|
|
14
|
+
React.createElement("path", { d: "M4 19.8h8.9v-1.5H4v1.5zm8.9-15.6H4v1.5h8.9V4.2zm-8.9 7v1.5h16v-1.5H4z" }));
|
|
15
|
+
export const iconAlignCenter = React.createElement("svg", { width: 24, height: 24, viewBox: "0 0 24 24" },
|
|
16
|
+
React.createElement("path", { d: "M16.4 4.2H7.6v1.5h8.9V4.2zM4 11.2v1.5h16v-1.5H4zm3.6 8.6h8.9v-1.5H7.6v1.5z" }));
|
|
17
|
+
export const iconAlignRight = React.createElement("svg", { width: 24, height: 24, viewBox: "0 0 24 24" },
|
|
18
|
+
React.createElement("path", { d: "M11.1 19.8H20v-1.5h-8.9v1.5zm0-15.6v1.5H20V4.2h-8.9zM4 12.8h16v-1.5H4v1.5z" }));
|
|
19
|
+
export const iconCloud = React.createElement("svg", { width: 26, height: 24, viewBox: "0 0 30 28" },
|
|
20
|
+
React.createElement("path", { d: "M30 18c0 3.313-2.688 6-6 6h-17c-3.859 0-7-3.141-7-7 0-2.797 1.656-5.219 4.031-6.328-0.016-0.219-0.031-0.453-0.031-0.672 0-4.422 3.578-8 8-8 3.344 0 6.203 2.047 7.406 4.969 0.688-0.609 1.594-0.969 2.594-0.969 2.203 0 4 1.797 4 4 0 0.797-0.234 1.531-0.641 2.156 2.656 0.625 4.641 3 4.641 5.844z" }));
|
|
21
|
+
/*
|
|
22
|
+
fill: none;
|
|
23
|
+
stroke: currentColor;
|
|
24
|
+
transform: translate(3px, -1px);
|
|
25
|
+
transform-origin: 100% 100%;
|
|
26
|
+
<symbol id="icon-cloud" viewBox="0 0 30 28">
|
|
27
|
+
<path d="M30 18c0 3.313-2.688 6-6 6h-17c-3.859 0-7-3.141-7-7 0-2.797 1.656-5.219 4.031-6.328-0.016-0.219-0.031-0.453-0.031-0.672 0-4.422 3.578-8 8-8 3.344 0 6.203 2.047 7.406 4.969 0.688-0.609 1.594-0.969 2.594-0.969 2.203 0 4 1.797 4 4 0 0.797-0.234 1.531-0.641 2.156 2.656 0.625 4.641 3 4.641 5.844z"></path>
|
|
28
|
+
</symbol>
|
|
29
|
+
|
|
30
|
+
Column 1
|
|
31
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 34 24" width="34" height="24">
|
|
32
|
+
<path fill-rule="evenodd" clip-rule="evenodd" d="M32 2H2v20h30V2zM2 0C.9 0 0 .9 0 2v20c0 1.1.9 2 2 2h30c1.1 0 2-.9 2-2V2c0-1.1-.9-2-2-2H2z"/>
|
|
33
|
+
</svg>
|
|
34
|
+
|
|
35
|
+
Column 2
|
|
36
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 34 24" width="34" height="24">
|
|
37
|
+
<path fill-rule="evenodd" clip-rule="evenodd" d="M32 0c1.1 0 2 .9 2 2v20c0 1.1-.9 2-2 2H2c-1.1 0-2-.9-2-2V2C0 .9.9 0 2 0h30zm0 22V2H18v20h14zm-16 0H2V2h14v20z"/>
|
|
38
|
+
</svg>
|
|
39
|
+
|
|
40
|
+
Column 3
|
|
41
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 34 24" width="34" height="24">
|
|
42
|
+
<path fill-rule="evenodd" clip-rule="evenodd" d="M34 2c0-1.1-.9-2-2-2H2C.9 0 0 .9 0 2v20c0 1.1.9 2 2 2h30c1.1 0 2-.9 2-2V2zM21.5 22h-9V2h9v20zm2 0V2H32v20h-8.5zm-13 0H2V2h8.5v20z"/>
|
|
43
|
+
</svg>
|
|
44
|
+
|
|
45
|
+
Align Left
|
|
46
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32" width="32" height="32">
|
|
47
|
+
<path d="M0 2h32v4h-32zM0 8h20v4h-20zM0 20h20v4h-20zM0 14h32v4h-32zM0 26h32v4h-32z"></path>
|
|
48
|
+
</svg>
|
|
49
|
+
<svg width="24" height="24" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
|
|
50
|
+
<path d="M4 19.8h8.9v-1.5H4v1.5zm8.9-15.6H4v1.5h8.9V4.2zm-8.9 7v1.5h16v-1.5H4z"></path>
|
|
51
|
+
</svg>
|
|
52
|
+
|
|
53
|
+
Align Center
|
|
54
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32" width="32" height="32">
|
|
55
|
+
<path d="M0 2h32v4h-32zM6 8h20v4h-20zM6 20h20v4h-20zM0 14h32v4h-32zM0 26h32v4h-32z"></path>
|
|
56
|
+
</svg>
|
|
57
|
+
<svg width="24" height="24" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
|
|
58
|
+
<path d="M16.4 4.2H7.6v1.5h8.9V4.2zM4 11.2v1.5h16v-1.5H4zm3.6 8.6h8.9v-1.5H7.6v1.5z"></path>
|
|
59
|
+
</svg>
|
|
60
|
+
|
|
61
|
+
Align Right
|
|
62
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32" width="32" height="32">
|
|
63
|
+
<path d="M0 2h32v4h-32zM12 8h20v4h-20zM12 20h20v4h-20zM0 14h32v4h-32zM0 26h32v4h-32z"></path>
|
|
64
|
+
</svg>
|
|
65
|
+
<svg width="24" height="24" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
|
|
66
|
+
<path d="M11.1 19.8H20v-1.5h-8.9v1.5zm0-15.6v1.5H20V4.2h-8.9zM4 12.8h16v-1.5H4v1.5z"></path>
|
|
67
|
+
</svg>
|
|
68
|
+
|
|
69
|
+
|
|
70
|
+
Justify Left
|
|
71
|
+
<svg width="24" height="24" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" role="img" aria-hidden="true" focusable="false"><path d="M9 9v6h11V9H9zM4 20h1.5V4H4v16z"></path></svg>
|
|
72
|
+
|
|
73
|
+
Justify Center
|
|
74
|
+
<svg width="24" height="24" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" role="img" aria-hidden="true" focusable="false"><path d="M20 9h-7.2V4h-1.6v5H4v6h7.2v5h1.6v-5H20z"></path></svg>
|
|
75
|
+
|
|
76
|
+
Justify Right
|
|
77
|
+
<svg width="24" height="24" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" role="img" aria-hidden="true" focusable="false"><path d="M4 15h11V9H4v6zM18.5 4v16H20V4h-1.5z"></path></svg>
|
|
78
|
+
|
|
79
|
+
Space Between
|
|
80
|
+
<svg width="24" height="24" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" role="img" aria-hidden="true" focusable="false"><path d="M9 15h6V9H9v6zm-5 5h1.5V4H4v16zM18.5 4v16H20V4h-1.5z"></path></svg>
|
|
81
|
+
|
|
82
|
+
|
|
83
|
+
<fieldset class="block-editor-hooks__flex-layout-justification-controls"><legend>Justification</legend><div><button type="button" aria-pressed="true" class="components-button is-pressed has-icon" aria-label="Justify items left"><svg width="24" height="24" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" role="img" aria-hidden="true" focusable="false"><path d="M9 9v6h11V9H9zM4 20h1.5V4H4v16z"></path></svg></button><button type="button" aria-pressed="false" class="components-button has-icon" aria-label="Justify items center"><svg width="24" height="24" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" role="img" aria-hidden="true" focusable="false"><path d="M20 9h-7.2V4h-1.6v5H4v6h7.2v5h1.6v-5H20z"></path></svg></button><button type="button" aria-pressed="false" class="components-button has-icon" aria-label="Justify items right"><svg width="24" height="24" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" role="img" aria-hidden="true" focusable="false"><path d="M4 15h11V9H4v6zM18.5 4v16H20V4h-1.5z"></path></svg></button><button type="button" aria-pressed="false" class="components-button has-icon" aria-label="Space between items"><svg width="24" height="24" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" role="img" aria-hidden="true" focusable="false"><path d="M9 15h6V9H9v6zm-5 5h1.5V4H4v16zM18.5 4v16H20V4h-1.5z"></path></svg></button></div></fieldset>
|
|
84
|
+
|
|
85
|
+
<fieldset class="block-editor-hooks__flex-layout-orientation-controls"><legend>Orientation</legend><button type="button" aria-pressed="true" class="components-button is-pressed has-icon" aria-label="horizontal"><svg width="24" height="24" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" role="img" aria-hidden="true" focusable="false"><path d="M14.3 6.7l-1.1 1.1 4 4H4v1.5h13.3l-4.1 4.4 1.1 1.1 5.8-6.3z"></path></svg></button><button type="button" aria-pressed="false" class="components-button has-icon" aria-label="vertical"><svg width="24" height="24" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" role="img" aria-hidden="true" focusable="false"><path d="M16.2 13.2l-4 4V4h-1.5v13.3l-4.5-4.1-1 1.1 6.2 5.8 5.8-5.8-1-1.1z"></path></svg></button></fieldset>
|
|
86
|
+
|
|
87
|
+
*/
|
package/package.json
ADDED
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@plaudit/gutenberg-api-extensions",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"scripts": {
|
|
5
|
+
"prepublishOnly": "rm -rf build && mkdir build && tsc",
|
|
6
|
+
"build": "tsc",
|
|
7
|
+
"watch": "tsc -w"
|
|
8
|
+
},
|
|
9
|
+
"files": ["./build"],
|
|
10
|
+
"exports": {
|
|
11
|
+
"./lib/plaudit-icons": "./build/lib/plaudit-icons.js",
|
|
12
|
+
"./blocks": "./build/blocks.js",
|
|
13
|
+
"./controls": "./build/controls.js"
|
|
14
|
+
},
|
|
15
|
+
"dependencies": {
|
|
16
|
+
"@wordpress/block-editor": "^12.3.0",
|
|
17
|
+
"@wordpress/blocks": "^12.12.0",
|
|
18
|
+
"@wordpress/components": "^25.1.0",
|
|
19
|
+
"@wordpress/compose": "^6.12.0",
|
|
20
|
+
"@wordpress/core-data": "^6.12.0",
|
|
21
|
+
"@wordpress/data": "^9.5.0",
|
|
22
|
+
"@wordpress/element": "^5.12.0",
|
|
23
|
+
"@wordpress/hooks": "^3.35.0",
|
|
24
|
+
"@wordpress/i18n": "^4.35.0",
|
|
25
|
+
"react": "^18.2.0",
|
|
26
|
+
"react-dom": "^18.2.0"
|
|
27
|
+
},
|
|
28
|
+
"devDependencies": {
|
|
29
|
+
"@types/react": "^18.2.11",
|
|
30
|
+
"@types/wordpress__block-editor": "^11.5.1",
|
|
31
|
+
"@types/wordpress__blocks": "^12.5.0",
|
|
32
|
+
"typescript": "^5.1.3"
|
|
33
|
+
}
|
|
34
|
+
}
|