@brilo/base-blocks 0.1.11 → 0.1.12

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.
@@ -1,6 +1,4 @@
1
+ import type { BlockEditProps } from '@wordpress/blocks';
1
2
  import type { HeroGroupAttributes, HeroGroupOptions } from './types';
2
- export declare function createHeroGroupEdit(options: HeroGroupOptions): ({ attributes, setAttributes, }: {
3
- attributes: HeroGroupAttributes;
4
- setAttributes: (a: Partial<HeroGroupAttributes>) => void;
5
- }) => import("react").JSX.Element;
3
+ export declare function createHeroGroupEdit(options: HeroGroupOptions): (props: BlockEditProps<HeroGroupAttributes>) => import("react").JSX.Element;
6
4
  //# sourceMappingURL=edit.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"edit.d.ts","sourceRoot":"","sources":["../../../../src/blocks/hero/hero-group/edit.tsx"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAS,mBAAmB,EAAE,gBAAgB,EAAU,MAAM,SAAS,CAAA;AAEnF,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,gBAAgB,IAItC,gCAGlB;IACD,UAAU,EAAE,mBAAmB,CAAA;IAC/B,aAAa,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,mBAAmB,CAAC,KAAK,IAAI,CAAA;CACzD,iCA2DF"}
1
+ {"version":3,"file":"edit.d.ts","sourceRoot":"","sources":["../../../../src/blocks/hero/hero-group/edit.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,mBAAmB,CAAA;AAarD,OAAO,KAAK,EAAS,mBAAmB,EAAE,gBAAgB,EAAU,MAAM,SAAS,CAAA;AAEnF,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,gBAAgB,IAItC,OAAO,cAAc,CAAC,mBAAmB,CAAC,iCA6DhE"}
@@ -9,8 +9,9 @@ export function createHeroGroupEdit(options) {
9
9
  var _a, _b;
10
10
  const VARIANTS_OPTIONS = (_a = options.variants) !== null && _a !== void 0 ? _a : VARIANTS;
11
11
  const EFFECTS_OPTIONS = (_b = options.effects) !== null && _b !== void 0 ? _b : EFFECTS;
12
- return function Edit({ attributes, setAttributes, }) {
13
- var _a, _b;
12
+ return function Edit(props) {
13
+ var _a, _b, _c;
14
+ const { attributes, setAttributes } = props;
14
15
  const { variant, effect, autoplay, autoplaySpeed, pauseOnHover } = attributes;
15
16
  const { blockProps, innerBlocksProps } = useGroupBlock({
16
17
  blockClassName: clsx((_a = options.blockClassName) !== null && _a !== void 0 ? _a : 'g-hero wp-block-section', `--variant-${variant}`, `--effect-${effect}`),
@@ -20,6 +21,6 @@ export function createHeroGroupEdit(options) {
20
21
  template: options.template,
21
22
  layout: { type: 'default' },
22
23
  });
23
- return (_jsxs(_Fragment, { children: [_jsxs(InspectorControls, { children: [_jsxs(PanelBody, { title: __('Rozložení a efekty', 'brilo-blocks'), children: [_jsx(ToggleGroupControl, { isBlock: true, label: __('Varianta', 'brilo-blocks'), value: variant, onChange: (v) => setAttributes({ variant: v }), children: VARIANTS_OPTIONS.map((v) => (_jsx(ToggleGroupControlOption, { value: v.value, label: v.label }, v.value))) }), _jsx(SelectControl, { label: __('Efekt přechodu', 'brilo-blocks'), value: effect, options: EFFECTS_OPTIONS, onChange: (v) => setAttributes({ effect: v }) })] }), _jsxs(PanelBody, { title: __('Nastavení slideru', 'brilo-blocks'), children: [_jsx(ToggleControl, { label: __('Automatické přehrávání', 'brilo-blocks'), checked: autoplay, onChange: (v) => setAttributes({ autoplay: v }) }), autoplay && (_jsx(NumberControl, { label: __('Rychlost přehrávání (ms)', 'brilo-blocks'), value: autoplaySpeed, onChange: (v) => setAttributes({ autoplaySpeed: parseInt(v !== null && v !== void 0 ? v : '3000') }) })), _jsx(ToggleControl, { label: __('Pozastavit při najetí myší', 'brilo-blocks'), checked: pauseOnHover, onChange: (v) => setAttributes({ pauseOnHover: v }) })] })] }), _jsx("div", { ...blockProps, children: _jsx("div", { ...innerBlocksProps }) })] }));
24
+ return (_jsxs(_Fragment, { children: [_jsxs(InspectorControls, { children: [_jsxs(PanelBody, { title: __('Rozložení a efekty', 'brilo-blocks'), children: [_jsx(ToggleGroupControl, { isBlock: true, label: __('Varianta', 'brilo-blocks'), value: variant, onChange: (v) => setAttributes({ variant: v }), children: VARIANTS_OPTIONS.map((v) => (_jsx(ToggleGroupControlOption, { value: v.value, label: v.label }, v.value))) }), _jsx(SelectControl, { label: __('Efekt přechodu', 'brilo-blocks'), value: effect, options: EFFECTS_OPTIONS, onChange: (v) => setAttributes({ effect: v }) })] }), _jsxs(PanelBody, { title: __('Nastavení slideru', 'brilo-blocks'), children: [_jsx(ToggleControl, { label: __('Automatické přehrávání', 'brilo-blocks'), checked: autoplay, onChange: (v) => setAttributes({ autoplay: v }) }), autoplay && (_jsx(NumberControl, { label: __('Rychlost přehrávání (ms)', 'brilo-blocks'), value: autoplaySpeed, onChange: (v) => setAttributes({ autoplaySpeed: parseInt(v !== null && v !== void 0 ? v : '3000') }) })), _jsx(ToggleControl, { label: __('Pozastavit při najetí myší', 'brilo-blocks'), checked: pauseOnHover, onChange: (v) => setAttributes({ pauseOnHover: v }) })] }), (_c = options.extraControls) === null || _c === void 0 ? void 0 : _c.call(options, props)] }), _jsx("div", { ...blockProps, children: _jsx("div", { ...innerBlocksProps }) })] }));
24
25
  };
25
26
  }
@@ -3,5 +3,5 @@ import type { OptionArray } from '../../../types';
3
3
  import { EFFECTS, VARIANTS } from './constants';
4
4
  import type { HeroGroupAttributes, HeroGroupOptions } from './types';
5
5
  export type { HeroGroupAttributes, HeroGroupOptions };
6
- export declare function createHeroGroupBlock<TVariants extends OptionArray = typeof VARIANTS, TEffects extends OptionArray = typeof EFFECTS>(options: HeroGroupOptions<TVariants, TEffects>): BlockConfiguration<HeroGroupAttributes<TVariants[number]['value'], TEffects[number]['value']>>;
6
+ export declare function createHeroGroupBlock<TVariants extends OptionArray = typeof VARIANTS, TEffects extends OptionArray = typeof EFFECTS, TExtra extends Record<string, unknown> = Record<string, never>>(options: HeroGroupOptions<TVariants, TEffects, TExtra>): BlockConfiguration<HeroGroupAttributes<TVariants[number]['value'], TEffects[number]['value']> & TExtra>;
7
7
  //# sourceMappingURL=factory.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../../../src/blocks/hero/hero-group/factory.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,kBAAkB,EAAC,MAAM,mBAAmB,CAAA;AAEzD,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,SAAS,CAAA;AACxC,OAAO,EAAC,OAAO,EAAE,QAAQ,EAAC,MAAM,aAAa,CAAA;AAE7C,OAAO,KAAK,EAAC,mBAAmB,EAAE,gBAAgB,EAAC,MAAM,SAAS,CAAA;AAGlE,YAAY,EAAC,mBAAmB,EAAE,gBAAgB,EAAC,CAAA;AAEnD,wBAAgB,oBAAoB,CAAC,SAAS,SAAS,WAAW,GAAG,OAAO,QAAQ,EAAE,QAAQ,SAAS,WAAW,GAAG,OAAO,OAAO,EACjI,OAAO,EAAE,gBAAgB,CAAC,SAAS,EAAE,QAAQ,CAAC,GAC7C,kBAAkB,CAAC,mBAAmB,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CA+BhG"}
1
+ {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../../../src/blocks/hero/hero-group/factory.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,kBAAkB,EAAC,MAAM,mBAAmB,CAAA;AAEzD,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,SAAS,CAAA;AACxC,OAAO,EAAC,OAAO,EAAE,QAAQ,EAAC,MAAM,aAAa,CAAA;AAE7C,OAAO,KAAK,EAAC,mBAAmB,EAAE,gBAAgB,EAAC,MAAM,SAAS,CAAA;AAGlE,YAAY,EAAC,mBAAmB,EAAE,gBAAgB,EAAC,CAAA;AAEnD,wBAAgB,oBAAoB,CAClC,SAAS,SAAS,WAAW,GAAG,OAAO,QAAQ,EAC/C,QAAQ,SAAS,WAAW,GAAG,OAAO,OAAO,EAC7C,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,EAE9D,OAAO,EAAE,gBAAgB,CAAC,SAAS,EAAE,QAAQ,EAAE,MAAM,CAAC,GACrD,kBAAkB,CAAC,mBAAmB,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,MAAM,CAAC,CAgCzG"}
@@ -31,6 +31,7 @@ export function createHeroGroupBlock(options) {
31
31
  default: effects[0].value,
32
32
  enum: effects.map((e) => e.value),
33
33
  },
34
+ ...options.extraAttributes,
34
35
  },
35
36
  edit: createHeroGroupEdit(options),
36
37
  save: () => _jsx(InnerBlocks.Content, {}),
@@ -1,3 +1,5 @@
1
+ import type { BlockEditProps } from '@wordpress/blocks';
2
+ import type { ReactNode } from 'react';
1
3
  import type { BriloBlockType, OptionArray } from '../../../types';
2
4
  import type { HeroSliderItem } from '../hero-item/types';
3
5
  import type { EFFECTS, VARIANTS } from './constants';
@@ -11,9 +13,16 @@ export interface HeroGroupAttributes<TVariant extends string = Variant, TEffect
11
13
  pauseOnHover: boolean;
12
14
  effect: TEffect;
13
15
  }
14
- export interface HeroGroupOptions<TVariants extends OptionArray = typeof VARIANTS, TEffects extends OptionArray = typeof EFFECTS> extends BriloBlockType {
16
+ export interface HeroGroupOptions<TVariants extends OptionArray = typeof VARIANTS, TEffects extends OptionArray = typeof EFFECTS, TExtra extends Record<string, unknown> = Record<string, never>> extends BriloBlockType {
15
17
  allowedBlocks: string[];
16
18
  variants?: TVariants;
17
19
  effects?: TEffects;
20
+ extraAttributes?: {
21
+ [K in keyof TExtra]: {
22
+ type: string;
23
+ default: TExtra[K];
24
+ };
25
+ };
26
+ extraControls?: (props: BlockEditProps<HeroGroupAttributes<TVariants[number]['value'], TEffects[number]['value']> & TExtra>) => ReactNode;
18
27
  }
19
28
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/blocks/hero/hero-group/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,cAAc,EAAE,WAAW,EAAC,MAAM,SAAS,CAAA;AACxD,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,oBAAoB,CAAA;AACtD,OAAO,KAAK,EAAC,OAAO,EAAE,QAAQ,EAAC,MAAM,aAAa,CAAA;AAElD,MAAM,MAAM,OAAO,GAAG,CAAC,OAAO,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAA;AACxD,MAAM,MAAM,MAAM,GAAG,CAAC,OAAO,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAA;AAEtD,MAAM,WAAW,mBAAmB,CAAC,QAAQ,SAAS,MAAM,GAAG,OAAO,EAAE,OAAO,SAAS,MAAM,GAAG,MAAM,CAAE,SAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IACtI,KAAK,EAAE,cAAc,EAAE,CAAA;IACvB,OAAO,EAAE,QAAQ,CAAA;IACjB,QAAQ,EAAE,OAAO,CAAA;IACjB,aAAa,EAAE,MAAM,CAAA;IACrB,YAAY,EAAE,OAAO,CAAA;IACrB,MAAM,EAAE,OAAO,CAAA;CAChB;AAED,MAAM,WAAW,gBAAgB,CAAC,SAAS,SAAS,WAAW,GAAG,OAAO,QAAQ,EAAE,QAAQ,SAAS,WAAW,GAAG,OAAO,OAAO,CAC9H,SAAQ,cAAc;IACtB,aAAa,EAAE,MAAM,EAAE,CAAA;IACvB,QAAQ,CAAC,EAAE,SAAS,CAAA;IACpB,OAAO,CAAC,EAAE,QAAQ,CAAA;CACnB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/blocks/hero/hero-group/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,mBAAmB,CAAA;AACrD,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,OAAO,CAAA;AACpC,OAAO,KAAK,EAAC,cAAc,EAAE,WAAW,EAAC,MAAM,SAAS,CAAA;AACxD,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,oBAAoB,CAAA;AACtD,OAAO,KAAK,EAAC,OAAO,EAAE,QAAQ,EAAC,MAAM,aAAa,CAAA;AAElD,MAAM,MAAM,OAAO,GAAG,CAAC,OAAO,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAA;AACxD,MAAM,MAAM,MAAM,GAAG,CAAC,OAAO,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAA;AAEtD,MAAM,WAAW,mBAAmB,CAAC,QAAQ,SAAS,MAAM,GAAG,OAAO,EAAE,OAAO,SAAS,MAAM,GAAG,MAAM,CAAE,SAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IACtI,KAAK,EAAE,cAAc,EAAE,CAAA;IACvB,OAAO,EAAE,QAAQ,CAAA;IACjB,QAAQ,EAAE,OAAO,CAAA;IACjB,aAAa,EAAE,MAAM,CAAA;IACrB,YAAY,EAAE,OAAO,CAAA;IACrB,MAAM,EAAE,OAAO,CAAA;CAChB;AAED,MAAM,WAAW,gBAAgB,CAC/B,SAAS,SAAS,WAAW,GAAG,OAAO,QAAQ,EAC/C,QAAQ,SAAS,WAAW,GAAG,OAAO,OAAO,EAC7C,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAC9D,SAAQ,cAAc;IACtB,aAAa,EAAE,MAAM,EAAE,CAAA;IACvB,QAAQ,CAAC,EAAE,SAAS,CAAA;IACpB,OAAO,CAAC,EAAE,QAAQ,CAAA;IAClB,eAAe,CAAC,EAAE;SACf,CAAC,IAAI,MAAM,MAAM,GAAG;YACnB,IAAI,EAAE,MAAM,CAAA;YACZ,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,CAAA;SACnB;KACF,CAAA;IACD,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,cAAc,CAAC,mBAAmB,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,MAAM,CAAC,KAAK,SAAS,CAAA;CAC1I"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@brilo/base-blocks",
3
- "version": "0.1.11",
3
+ "version": "0.1.12",
4
4
  "author": "Brilo",
5
5
  "main": "./build/index.js",
6
6
  "types": "./build/index.d.ts",
@@ -1,4 +1,5 @@
1
1
  import {InspectorControls} from '@wordpress/block-editor'
2
+ import type {BlockEditProps} from '@wordpress/blocks'
2
3
  import {
3
4
  PanelBody,
4
5
  SelectControl,
@@ -17,13 +18,8 @@ export function createHeroGroupEdit(options: HeroGroupOptions) {
17
18
  const VARIANTS_OPTIONS = options.variants ?? VARIANTS
18
19
  const EFFECTS_OPTIONS = options.effects ?? EFFECTS
19
20
 
20
- return function Edit({
21
- attributes,
22
- setAttributes,
23
- }: {
24
- attributes: HeroGroupAttributes
25
- setAttributes: (a: Partial<HeroGroupAttributes>) => void
26
- }) {
21
+ return function Edit(props: BlockEditProps<HeroGroupAttributes>) {
22
+ const {attributes, setAttributes} = props
27
23
  const {variant, effect, autoplay, autoplaySpeed, pauseOnHover} = attributes
28
24
 
29
25
  const {blockProps, innerBlocksProps} = useGroupBlock({
@@ -75,6 +71,7 @@ export function createHeroGroupEdit(options: HeroGroupOptions) {
75
71
  onChange={(v) => setAttributes({pauseOnHover: v})}
76
72
  />
77
73
  </PanelBody>
74
+ {options.extraControls?.(props as unknown as Parameters<NonNullable<typeof options.extraControls>>[0])}
78
75
  </InspectorControls>
79
76
  <div {...blockProps}>
80
77
  <div {...innerBlocksProps} />
@@ -9,9 +9,13 @@ import {icon} from './icon'
9
9
 
10
10
  export type {HeroGroupAttributes, HeroGroupOptions}
11
11
 
12
- export function createHeroGroupBlock<TVariants extends OptionArray = typeof VARIANTS, TEffects extends OptionArray = typeof EFFECTS>(
13
- options: HeroGroupOptions<TVariants, TEffects>,
14
- ): BlockConfiguration<HeroGroupAttributes<TVariants[number]['value'], TEffects[number]['value']>> {
12
+ export function createHeroGroupBlock<
13
+ TVariants extends OptionArray = typeof VARIANTS,
14
+ TEffects extends OptionArray = typeof EFFECTS,
15
+ TExtra extends Record<string, unknown> = Record<string, never>,
16
+ >(
17
+ options: HeroGroupOptions<TVariants, TEffects, TExtra>,
18
+ ): BlockConfiguration<HeroGroupAttributes<TVariants[number]['value'], TEffects[number]['value']> & TExtra> {
15
19
  const variants = options.variants ?? VARIANTS
16
20
  const effects = options.effects ?? EFFECTS
17
21
 
@@ -38,8 +42,9 @@ export function createHeroGroupBlock<TVariants extends OptionArray = typeof VARI
38
42
  default: effects[0].value,
39
43
  enum: effects.map((e) => e.value),
40
44
  },
45
+ ...options.extraAttributes,
41
46
  },
42
47
  edit: createHeroGroupEdit(options as unknown as HeroGroupOptions),
43
48
  save: () => <InnerBlocks.Content />,
44
- } as unknown as BlockConfiguration<HeroGroupAttributes<TVariants[number]['value'], TEffects[number]['value']>>
49
+ } as unknown as BlockConfiguration<HeroGroupAttributes<TVariants[number]['value'], TEffects[number]['value']> & TExtra>
45
50
  }
@@ -1,3 +1,5 @@
1
+ import type {BlockEditProps} from '@wordpress/blocks'
2
+ import type {ReactNode} from 'react'
1
3
  import type {BriloBlockType, OptionArray} from '~/types'
2
4
  import type {HeroSliderItem} from '../hero-item/types'
3
5
  import type {EFFECTS, VARIANTS} from './constants'
@@ -14,9 +16,19 @@ export interface HeroGroupAttributes<TVariant extends string = Variant, TEffect
14
16
  effect: TEffect
15
17
  }
16
18
 
17
- export interface HeroGroupOptions<TVariants extends OptionArray = typeof VARIANTS, TEffects extends OptionArray = typeof EFFECTS>
18
- extends BriloBlockType {
19
+ export interface HeroGroupOptions<
20
+ TVariants extends OptionArray = typeof VARIANTS,
21
+ TEffects extends OptionArray = typeof EFFECTS,
22
+ TExtra extends Record<string, unknown> = Record<string, never>,
23
+ > extends BriloBlockType {
19
24
  allowedBlocks: string[]
20
25
  variants?: TVariants
21
26
  effects?: TEffects
27
+ extraAttributes?: {
28
+ [K in keyof TExtra]: {
29
+ type: string
30
+ default: TExtra[K]
31
+ }
32
+ }
33
+ extraControls?: (props: BlockEditProps<HeroGroupAttributes<TVariants[number]['value'], TEffects[number]['value']> & TExtra>) => ReactNode
22
34
  }