@brilo/base-blocks 0.1.8 → 0.1.10
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/column/column-item/constants.d.ts +13 -0
- package/build/blocks/column/column-item/constants.d.ts.map +1 -1
- package/build/blocks/column/column-item/constants.js +19 -0
- package/build/blocks/column/column-item/edit.d.ts.map +1 -1
- package/build/blocks/column/column-item/edit.js +6 -6
- package/build/blocks/column/column-item/factory.d.ts.map +1 -1
- package/build/blocks/column/column-item/factory.js +5 -0
- package/build/blocks/column/column-item/index.d.ts.map +1 -1
- package/build/blocks/column/column-item/index.js +11 -1
- package/build/blocks/column/column-item/types.d.ts +1 -0
- package/build/blocks/column/column-item/types.d.ts.map +1 -1
- package/build/blocks/contact/contact-item/factory.d.ts +7 -2
- package/build/blocks/contact/contact-item/factory.d.ts.map +1 -1
- package/build/blocks/contact/contact-item/factory.js +2 -2
- package/build/blocks/core/basic-button/edit.d.ts.map +1 -1
- package/build/blocks/core/basic-button/edit.js +12 -5
- package/build/blocks/core/basic-button/factory.d.ts.map +1 -1
- package/build/blocks/core/basic-button/factory.js +4 -0
- package/build/blocks/core/basic-button/index.d.ts.map +1 -1
- package/build/blocks/core/basic-button/index.js +2 -0
- package/build/blocks/core/basic-button/types.d.ts +12 -1
- package/build/blocks/core/basic-button/types.d.ts.map +1 -1
- package/build/blocks/gallery/gallery-group/constants.d.ts +21 -0
- package/build/blocks/gallery/gallery-group/constants.d.ts.map +1 -0
- package/build/blocks/gallery/gallery-group/constants.js +9 -0
- package/build/blocks/gallery/gallery-group/edit.d.ts +7 -0
- package/build/blocks/gallery/gallery-group/edit.d.ts.map +1 -0
- package/build/blocks/gallery/gallery-group/edit.js +46 -0
- package/build/blocks/gallery/gallery-group/factory.d.ts +5 -0
- package/build/blocks/gallery/gallery-group/factory.d.ts.map +1 -0
- package/build/blocks/gallery/gallery-group/factory.js +33 -0
- package/build/blocks/gallery/gallery-group/index.d.ts +5 -0
- package/build/blocks/gallery/gallery-group/index.d.ts.map +1 -0
- package/build/blocks/gallery/gallery-group/index.js +7 -0
- package/build/blocks/gallery/gallery-group/types.d.ts +15 -0
- package/build/blocks/gallery/gallery-group/types.d.ts.map +1 -0
- package/build/blocks/gallery/gallery-group/types.js +1 -0
- package/build/blocks/gallery/gallery-item/edit.d.ts +6 -0
- package/build/blocks/gallery/gallery-item/edit.d.ts.map +1 -0
- package/build/blocks/gallery/gallery-item/edit.js +13 -0
- package/build/blocks/gallery/gallery-item/factory.d.ts +5 -0
- package/build/blocks/gallery/gallery-item/factory.d.ts.map +1 -0
- package/build/blocks/gallery/gallery-item/factory.js +22 -0
- package/build/blocks/gallery/gallery-item/index.d.ts +5 -0
- package/build/blocks/gallery/gallery-item/index.d.ts.map +1 -0
- package/build/blocks/gallery/gallery-item/index.js +6 -0
- package/build/blocks/gallery/gallery-item/types.d.ts +7 -0
- package/build/blocks/gallery/gallery-item/types.d.ts.map +1 -0
- package/build/blocks/gallery/gallery-item/types.js +1 -0
- package/build/blocks/link/link-item/edit.d.ts.map +1 -1
- package/build/blocks/link/link-item/edit.js +2 -2
- package/build/blocks/link/link-item/factory.d.ts.map +1 -1
- package/build/blocks/link/link-item/factory.js +1 -0
- package/build/blocks/link/link-item/types.d.ts +1 -0
- package/build/blocks/link/link-item/types.d.ts.map +1 -1
- package/build/blocks/map/map-group/constants.js +1 -1
- package/build/blocks/map/map-group/edit.d.ts.map +1 -1
- package/build/blocks/map/map-group/edit.js +4 -4
- package/build/blocks/map/map-group/factory.d.ts +2 -2
- package/build/blocks/map/map-group/factory.d.ts.map +1 -1
- package/build/blocks/map/map-group/factory.js +3 -3
- package/build/blocks/map/map-group/index.js +1 -1
- package/build/blocks/map/map-group/types.d.ts +1 -1
- package/build/blocks/map/map-group/types.d.ts.map +1 -1
- package/build/blocks/person/person-group/constants.d.ts +3 -0
- package/build/blocks/person/person-group/constants.d.ts.map +1 -0
- package/build/blocks/person/person-group/constants.js +2 -0
- package/build/blocks/person/person-group/edit.d.ts +6 -0
- package/build/blocks/person/person-group/edit.d.ts.map +1 -0
- package/build/blocks/person/person-group/edit.js +23 -0
- package/build/blocks/person/person-group/factory.d.ts +5 -0
- package/build/blocks/person/person-group/factory.d.ts.map +1 -0
- package/build/blocks/person/person-group/factory.js +32 -0
- package/build/blocks/person/person-group/icon.d.ts +2 -0
- package/build/blocks/person/person-group/icon.d.ts.map +1 -0
- package/build/blocks/person/person-group/icon.js +2 -0
- package/build/blocks/person/person-group/index.d.ts +5 -0
- package/build/blocks/person/person-group/index.d.ts.map +1 -0
- package/build/blocks/person/person-group/index.js +11 -0
- package/build/blocks/person/person-group/types.d.ts +8 -0
- package/build/blocks/person/person-group/types.d.ts.map +1 -0
- package/build/blocks/person/person-group/types.js +1 -0
- package/build/blocks/person/person-item/constants.d.ts +2 -0
- package/build/blocks/person/person-item/constants.d.ts.map +1 -0
- package/build/blocks/person/person-item/constants.js +1 -0
- package/build/blocks/person/person-item/edit.d.ts +6 -0
- package/build/blocks/person/person-item/edit.d.ts.map +1 -0
- package/build/blocks/person/person-item/edit.js +23 -0
- package/build/blocks/person/person-item/factory.d.ts +5 -0
- package/build/blocks/person/person-item/factory.d.ts.map +1 -0
- package/build/blocks/person/person-item/factory.js +26 -0
- package/build/blocks/person/person-item/icon.d.ts +2 -0
- package/build/blocks/person/person-item/icon.d.ts.map +1 -0
- package/build/blocks/person/person-item/icon.js +3 -0
- package/build/blocks/person/person-item/index.d.ts +5 -0
- package/build/blocks/person/person-item/index.d.ts.map +1 -0
- package/build/blocks/person/person-item/index.js +6 -0
- package/build/blocks/person/person-item/types.d.ts +12 -0
- package/build/blocks/person/person-item/types.d.ts.map +1 -0
- package/build/blocks/person/person-item/types.js +1 -0
- package/build/components/ImagePicker/ImagePicker.d.ts +5 -0
- package/build/components/ImagePicker/ImagePicker.d.ts.map +1 -1
- package/build/components/ImagePicker/ImagePicker.js +18 -11
- package/build/index.d.ts +10 -0
- package/build/index.d.ts.map +1 -1
- package/build/index.js +5 -0
- package/build/types.d.ts +2 -0
- package/build/types.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/blocks/column/column-item/constants.ts +20 -0
- package/src/blocks/column/column-item/edit.tsx +20 -4
- package/src/blocks/column/column-item/factory.tsx +5 -0
- package/src/blocks/column/column-item/index.ts +11 -1
- package/src/blocks/column/column-item/types.ts +1 -0
- package/src/blocks/contact/contact-item/editor.scss +4 -0
- package/src/blocks/contact/contact-item/factory.tsx +13 -5
- package/src/blocks/core/basic-button/edit.tsx +50 -1
- package/src/blocks/core/basic-button/factory.tsx +4 -0
- package/src/blocks/core/basic-button/index.ts +2 -0
- package/src/blocks/core/basic-button/types.ts +13 -1
- package/src/blocks/gallery/gallery-group/constants.ts +10 -0
- package/src/blocks/gallery/gallery-group/edit.tsx +117 -0
- package/src/blocks/gallery/gallery-group/editor.scss +18 -0
- package/src/blocks/gallery/gallery-group/factory.tsx +36 -0
- package/src/blocks/gallery/gallery-group/index.ts +11 -0
- package/src/blocks/gallery/gallery-group/types.ts +21 -0
- package/src/blocks/gallery/gallery-item/edit.tsx +46 -0
- package/src/blocks/gallery/gallery-item/editor.scss +8 -0
- package/src/blocks/gallery/gallery-item/factory.tsx +26 -0
- package/src/blocks/gallery/gallery-item/index.ts +10 -0
- package/src/blocks/gallery/gallery-item/types.ts +7 -0
- package/src/blocks/link/link-item/edit.tsx +9 -1
- package/src/blocks/link/link-item/factory.tsx +1 -0
- package/src/blocks/link/link-item/types.ts +1 -0
- package/src/blocks/map/map-group/constants.ts +1 -1
- package/src/blocks/map/map-group/edit.tsx +14 -10
- package/src/blocks/map/map-group/factory.tsx +5 -5
- package/src/blocks/map/map-group/index.ts +1 -1
- package/src/blocks/map/map-group/types.ts +2 -4
- package/src/blocks/person/person-group/constants.ts +2 -0
- package/src/blocks/person/person-group/edit.tsx +65 -0
- package/src/blocks/person/person-group/editor.scss +0 -0
- package/src/blocks/person/person-group/factory.tsx +35 -0
- package/src/blocks/person/person-group/icon.tsx +14 -0
- package/src/blocks/person/person-group/index.ts +15 -0
- package/src/blocks/person/person-group/types.ts +8 -0
- package/src/blocks/person/person-item/constants.ts +4 -0
- package/src/blocks/person/person-item/edit.tsx +103 -0
- package/src/blocks/person/person-item/editor.scss +35 -0
- package/src/blocks/person/person-item/factory.tsx +29 -0
- package/src/blocks/person/person-item/icon.tsx +7 -0
- package/src/blocks/person/person-item/index.ts +10 -0
- package/src/blocks/person/person-item/types.ts +12 -0
- package/src/components/ImagePicker/ImagePicker.tsx +22 -10
- package/src/components/ImagePicker/editor.scss +2 -2
- package/src/editor.scss +4 -0
- package/src/index.ts +10 -0
- package/src/types.ts +3 -0
|
@@ -7,6 +7,7 @@ import {CSSProperties} from 'react'
|
|
|
7
7
|
export interface ImageValue {
|
|
8
8
|
id: number
|
|
9
9
|
alt: string
|
|
10
|
+
mimeType?: string
|
|
10
11
|
}
|
|
11
12
|
|
|
12
13
|
export interface ImageLabels {
|
|
@@ -24,30 +25,38 @@ interface ImagePickerProps {
|
|
|
24
25
|
size?: [number, number]
|
|
25
26
|
}
|
|
26
27
|
|
|
27
|
-
export function
|
|
28
|
+
export function useMediaData(id: number): {url?: string; mimeType?: string} {
|
|
28
29
|
return useSelect(
|
|
29
30
|
(select) => {
|
|
30
|
-
if (!id) return
|
|
31
|
+
if (!id) return {}
|
|
31
32
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
32
33
|
const media = (select('core') as any).getMedia(id)
|
|
33
|
-
return
|
|
34
|
+
return {
|
|
35
|
+
url: media?.source_url as string | undefined,
|
|
36
|
+
mimeType: media?.mime_type as string | undefined,
|
|
37
|
+
}
|
|
34
38
|
},
|
|
35
39
|
[id],
|
|
36
40
|
)
|
|
37
41
|
}
|
|
38
42
|
|
|
43
|
+
export function useMediaUrl(id: number): string | undefined {
|
|
44
|
+
return useMediaData(id).url
|
|
45
|
+
}
|
|
46
|
+
|
|
39
47
|
function useImagePicker(value: ImageValue, onChange: (v: ImageValue) => void, labels?: ImageLabels) {
|
|
40
|
-
const mediaUrl =
|
|
48
|
+
const {url: mediaUrl, mimeType} = useMediaData(value.id)
|
|
41
49
|
const selectLabel = labels?.select ?? __('Vybrat obrázek', 'brilo-blocks')
|
|
42
50
|
const changeLabel = labels?.change ?? __('Změnit', 'brilo-blocks')
|
|
43
51
|
const removeLabel = labels?.remove ?? __('Odebrat', 'brilo-blocks')
|
|
44
|
-
const handleSelect = (media: {id: number; alt: string
|
|
52
|
+
const handleSelect = (media: {id: number; alt: string; mime?: string; type?: string}) =>
|
|
53
|
+
onChange({id: media.id, alt: media.alt ?? '', mimeType: media.mime ?? (media.type === 'video' ? 'video' : undefined)})
|
|
45
54
|
const handleRemove = () => onChange({id: 0, alt: ''})
|
|
46
|
-
return {mediaUrl, selectLabel, changeLabel, removeLabel, handleSelect, handleRemove}
|
|
55
|
+
return {mediaUrl, mimeType: value.mimeType ?? mimeType, selectLabel, changeLabel, removeLabel, handleSelect, handleRemove}
|
|
47
56
|
}
|
|
48
57
|
|
|
49
58
|
export function ImagePickerBody({value, onChange, allowedTypes = ['image'], placeholder, labels}: ImagePickerProps) {
|
|
50
|
-
const {mediaUrl, selectLabel, changeLabel, removeLabel, handleSelect, handleRemove} = useImagePicker(value, onChange, labels)
|
|
59
|
+
const {mediaUrl, mimeType, selectLabel, changeLabel, removeLabel, handleSelect, handleRemove} = useImagePicker(value, onChange, labels)
|
|
51
60
|
|
|
52
61
|
return (
|
|
53
62
|
<MediaUploadCheck>
|
|
@@ -58,7 +67,10 @@ export function ImagePickerBody({value, onChange, allowedTypes = ['image'], plac
|
|
|
58
67
|
render={({open}: {open: () => void}) =>
|
|
59
68
|
value.id ? (
|
|
60
69
|
<div className="c-image-picker-body">
|
|
61
|
-
<div className="c-image-picker-body__preview">
|
|
70
|
+
<div className="c-image-picker-body__preview">
|
|
71
|
+
{mediaUrl &&
|
|
72
|
+
(mimeType?.startsWith('video') ? <video src={mediaUrl} autoPlay muted loop /> : <img src={mediaUrl} alt={value.alt} />)}
|
|
73
|
+
</div>
|
|
62
74
|
<div className="c-image-picker-body__actions">
|
|
63
75
|
<Button onClick={open} variant="secondary">
|
|
64
76
|
{changeLabel}
|
|
@@ -80,7 +92,7 @@ export function ImagePickerBody({value, onChange, allowedTypes = ['image'], plac
|
|
|
80
92
|
}
|
|
81
93
|
|
|
82
94
|
export function ImagePickerControl({value, onChange, allowedTypes = ['image'], placeholder, labels, size = [48, 48]}: ImagePickerProps) {
|
|
83
|
-
const {mediaUrl, selectLabel, changeLabel, removeLabel, handleSelect, handleRemove} = useImagePicker(value, onChange, labels)
|
|
95
|
+
const {mediaUrl, mimeType, selectLabel, changeLabel, removeLabel, handleSelect, handleRemove} = useImagePicker(value, onChange, labels)
|
|
84
96
|
|
|
85
97
|
return (
|
|
86
98
|
<div
|
|
@@ -101,7 +113,7 @@ export function ImagePickerControl({value, onChange, allowedTypes = ['image'], p
|
|
|
101
113
|
<div className="c-image-picker-control__row">
|
|
102
114
|
{!!value.id && !!mediaUrl && (
|
|
103
115
|
<div className="c-image-picker-control__thumb">
|
|
104
|
-
<img src={mediaUrl} alt={value.alt} />
|
|
116
|
+
{mimeType?.startsWith('video') ? <video src={mediaUrl} autoPlay muted loop /> : <img src={mediaUrl} alt={value.alt} />}
|
|
105
117
|
</div>
|
|
106
118
|
)}
|
|
107
119
|
<div className="c-image-picker-control__btns">
|
package/src/editor.scss
CHANGED
|
@@ -13,6 +13,8 @@
|
|
|
13
13
|
@forward "./blocks/faq/faq-item/editor";
|
|
14
14
|
@forward "./blocks/form/form-field/editor";
|
|
15
15
|
@forward "./blocks/form/form-group/editor";
|
|
16
|
+
@forward "./blocks/gallery/gallery-group/editor";
|
|
17
|
+
@forward "./blocks/gallery/gallery-item/editor";
|
|
16
18
|
@forward "./blocks/groups/banner-group/editor";
|
|
17
19
|
@forward "./blocks/groups/basic-header-group/editor";
|
|
18
20
|
@forward "./blocks/groups/button-group/editor";
|
|
@@ -30,6 +32,8 @@
|
|
|
30
32
|
@forward "./blocks/text-and-form/text-and-form-text-column/editor";
|
|
31
33
|
@forward "./blocks/usp/usp-group/editor";
|
|
32
34
|
@forward "./blocks/usp/usp-item/editor";
|
|
35
|
+
@forward "./blocks/person/person-group/editor";
|
|
36
|
+
@forward "./blocks/person/person-item/editor";
|
|
33
37
|
@forward "./blocks/responsive-grid/responsive-grid-item/editor";
|
|
34
38
|
@forward "./components/IconControl/editor";
|
|
35
39
|
@forward "./components/ImagePicker/editor";
|
package/src/index.ts
CHANGED
|
@@ -56,6 +56,14 @@ export type {UspGroupAttributes, UspGroupOptions} from './blocks/usp/usp-group'
|
|
|
56
56
|
export {createUspGroupBlock, uspGroupDefaults} from './blocks/usp/usp-group'
|
|
57
57
|
export type {UspItemAttributes, UspItemOptions} from './blocks/usp/usp-item'
|
|
58
58
|
export {createUspItemBlock, uspItemDefaults} from './blocks/usp/usp-item'
|
|
59
|
+
export type {GalleryGroupAttributes, GalleryGroupOptions} from './blocks/gallery/gallery-group'
|
|
60
|
+
export {createGalleryGroupBlock, galleryGroupDefaults} from './blocks/gallery/gallery-group'
|
|
61
|
+
export type {GalleryItemAttributes, GalleryItemOptions} from './blocks/gallery/gallery-item'
|
|
62
|
+
export {createGalleryItemBlock, galleryItemDefaults} from './blocks/gallery/gallery-item'
|
|
63
|
+
export type {PersonGroupAttributes, PersonGroupOptions} from './blocks/person/person-group'
|
|
64
|
+
export {createPersonGroupBlock, personGroupDefaults} from './blocks/person/person-group'
|
|
65
|
+
export type {PersonItemAttributes, PersonItemOptions} from './blocks/person/person-item'
|
|
66
|
+
export {createPersonItemBlock, personItemDefaults} from './blocks/person/person-item'
|
|
59
67
|
export type {TestimonialGroupAttributes} from './blocks/testimonial/testimonial-group'
|
|
60
68
|
export {createTestimonialGroupBlock, testimonialGroupDefaults} from './blocks/testimonial/testimonial-group'
|
|
61
69
|
export type {TestimonialItemAttributes} from './blocks/testimonial/testimonial-item'
|
|
@@ -91,8 +99,10 @@ export {
|
|
|
91
99
|
} from './blocks/sections/base-section'
|
|
92
100
|
export type {IconType} from './components/IconControl'
|
|
93
101
|
export {IconControl} from './components/IconControl'
|
|
102
|
+
export * from './components/ItemIconControl'
|
|
94
103
|
export type {ImageLabels, ImageValue} from './components/ImagePicker'
|
|
95
104
|
export {ImagePickerBody, ImagePickerControl, useMediaUrl} from './components/ImagePicker'
|
|
105
|
+
export type {Icon, Media} from './types'
|
|
96
106
|
export type {GroupBlockConfig} from './hooks/useGroupBlock'
|
|
97
107
|
export {useGroupBlock} from './hooks/useGroupBlock'
|
|
98
108
|
export type {TypedEditComponent} from './utils/createEditAdapter'
|
package/src/types.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import {BlockTypeIconDescriptor} from '@wordpress/blocks'
|
|
2
|
+
|
|
2
3
|
export interface SelectOption {
|
|
3
4
|
value: string
|
|
4
5
|
label: string
|
|
@@ -7,6 +8,7 @@ export interface SelectOption {
|
|
|
7
8
|
export interface Media {
|
|
8
9
|
id: number
|
|
9
10
|
alt: string
|
|
11
|
+
mimeType?: string
|
|
10
12
|
}
|
|
11
13
|
|
|
12
14
|
export interface Icon {
|
|
@@ -26,6 +28,7 @@ export interface BriloBlockType {
|
|
|
26
28
|
category?: string
|
|
27
29
|
allowedBlocks?: string[]
|
|
28
30
|
template?: [string, Record<string, unknown>][]
|
|
31
|
+
attributes?: Record<string, unknown>
|
|
29
32
|
blockClassName?: string
|
|
30
33
|
containerClassName?: string
|
|
31
34
|
icon?: BlockTypeIconDescriptor
|