@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.
Files changed (158) hide show
  1. package/build/blocks/column/column-item/constants.d.ts +13 -0
  2. package/build/blocks/column/column-item/constants.d.ts.map +1 -1
  3. package/build/blocks/column/column-item/constants.js +19 -0
  4. package/build/blocks/column/column-item/edit.d.ts.map +1 -1
  5. package/build/blocks/column/column-item/edit.js +6 -6
  6. package/build/blocks/column/column-item/factory.d.ts.map +1 -1
  7. package/build/blocks/column/column-item/factory.js +5 -0
  8. package/build/blocks/column/column-item/index.d.ts.map +1 -1
  9. package/build/blocks/column/column-item/index.js +11 -1
  10. package/build/blocks/column/column-item/types.d.ts +1 -0
  11. package/build/blocks/column/column-item/types.d.ts.map +1 -1
  12. package/build/blocks/contact/contact-item/factory.d.ts +7 -2
  13. package/build/blocks/contact/contact-item/factory.d.ts.map +1 -1
  14. package/build/blocks/contact/contact-item/factory.js +2 -2
  15. package/build/blocks/core/basic-button/edit.d.ts.map +1 -1
  16. package/build/blocks/core/basic-button/edit.js +12 -5
  17. package/build/blocks/core/basic-button/factory.d.ts.map +1 -1
  18. package/build/blocks/core/basic-button/factory.js +4 -0
  19. package/build/blocks/core/basic-button/index.d.ts.map +1 -1
  20. package/build/blocks/core/basic-button/index.js +2 -0
  21. package/build/blocks/core/basic-button/types.d.ts +12 -1
  22. package/build/blocks/core/basic-button/types.d.ts.map +1 -1
  23. package/build/blocks/gallery/gallery-group/constants.d.ts +21 -0
  24. package/build/blocks/gallery/gallery-group/constants.d.ts.map +1 -0
  25. package/build/blocks/gallery/gallery-group/constants.js +9 -0
  26. package/build/blocks/gallery/gallery-group/edit.d.ts +7 -0
  27. package/build/blocks/gallery/gallery-group/edit.d.ts.map +1 -0
  28. package/build/blocks/gallery/gallery-group/edit.js +46 -0
  29. package/build/blocks/gallery/gallery-group/factory.d.ts +5 -0
  30. package/build/blocks/gallery/gallery-group/factory.d.ts.map +1 -0
  31. package/build/blocks/gallery/gallery-group/factory.js +33 -0
  32. package/build/blocks/gallery/gallery-group/index.d.ts +5 -0
  33. package/build/blocks/gallery/gallery-group/index.d.ts.map +1 -0
  34. package/build/blocks/gallery/gallery-group/index.js +7 -0
  35. package/build/blocks/gallery/gallery-group/types.d.ts +15 -0
  36. package/build/blocks/gallery/gallery-group/types.d.ts.map +1 -0
  37. package/build/blocks/gallery/gallery-group/types.js +1 -0
  38. package/build/blocks/gallery/gallery-item/edit.d.ts +6 -0
  39. package/build/blocks/gallery/gallery-item/edit.d.ts.map +1 -0
  40. package/build/blocks/gallery/gallery-item/edit.js +13 -0
  41. package/build/blocks/gallery/gallery-item/factory.d.ts +5 -0
  42. package/build/blocks/gallery/gallery-item/factory.d.ts.map +1 -0
  43. package/build/blocks/gallery/gallery-item/factory.js +22 -0
  44. package/build/blocks/gallery/gallery-item/index.d.ts +5 -0
  45. package/build/blocks/gallery/gallery-item/index.d.ts.map +1 -0
  46. package/build/blocks/gallery/gallery-item/index.js +6 -0
  47. package/build/blocks/gallery/gallery-item/types.d.ts +7 -0
  48. package/build/blocks/gallery/gallery-item/types.d.ts.map +1 -0
  49. package/build/blocks/gallery/gallery-item/types.js +1 -0
  50. package/build/blocks/link/link-item/edit.d.ts.map +1 -1
  51. package/build/blocks/link/link-item/edit.js +2 -2
  52. package/build/blocks/link/link-item/factory.d.ts.map +1 -1
  53. package/build/blocks/link/link-item/factory.js +1 -0
  54. package/build/blocks/link/link-item/types.d.ts +1 -0
  55. package/build/blocks/link/link-item/types.d.ts.map +1 -1
  56. package/build/blocks/map/map-group/constants.js +1 -1
  57. package/build/blocks/map/map-group/edit.d.ts.map +1 -1
  58. package/build/blocks/map/map-group/edit.js +4 -4
  59. package/build/blocks/map/map-group/factory.d.ts +2 -2
  60. package/build/blocks/map/map-group/factory.d.ts.map +1 -1
  61. package/build/blocks/map/map-group/factory.js +3 -3
  62. package/build/blocks/map/map-group/index.js +1 -1
  63. package/build/blocks/map/map-group/types.d.ts +1 -1
  64. package/build/blocks/map/map-group/types.d.ts.map +1 -1
  65. package/build/blocks/person/person-group/constants.d.ts +3 -0
  66. package/build/blocks/person/person-group/constants.d.ts.map +1 -0
  67. package/build/blocks/person/person-group/constants.js +2 -0
  68. package/build/blocks/person/person-group/edit.d.ts +6 -0
  69. package/build/blocks/person/person-group/edit.d.ts.map +1 -0
  70. package/build/blocks/person/person-group/edit.js +23 -0
  71. package/build/blocks/person/person-group/factory.d.ts +5 -0
  72. package/build/blocks/person/person-group/factory.d.ts.map +1 -0
  73. package/build/blocks/person/person-group/factory.js +32 -0
  74. package/build/blocks/person/person-group/icon.d.ts +2 -0
  75. package/build/blocks/person/person-group/icon.d.ts.map +1 -0
  76. package/build/blocks/person/person-group/icon.js +2 -0
  77. package/build/blocks/person/person-group/index.d.ts +5 -0
  78. package/build/blocks/person/person-group/index.d.ts.map +1 -0
  79. package/build/blocks/person/person-group/index.js +11 -0
  80. package/build/blocks/person/person-group/types.d.ts +8 -0
  81. package/build/blocks/person/person-group/types.d.ts.map +1 -0
  82. package/build/blocks/person/person-group/types.js +1 -0
  83. package/build/blocks/person/person-item/constants.d.ts +2 -0
  84. package/build/blocks/person/person-item/constants.d.ts.map +1 -0
  85. package/build/blocks/person/person-item/constants.js +1 -0
  86. package/build/blocks/person/person-item/edit.d.ts +6 -0
  87. package/build/blocks/person/person-item/edit.d.ts.map +1 -0
  88. package/build/blocks/person/person-item/edit.js +23 -0
  89. package/build/blocks/person/person-item/factory.d.ts +5 -0
  90. package/build/blocks/person/person-item/factory.d.ts.map +1 -0
  91. package/build/blocks/person/person-item/factory.js +26 -0
  92. package/build/blocks/person/person-item/icon.d.ts +2 -0
  93. package/build/blocks/person/person-item/icon.d.ts.map +1 -0
  94. package/build/blocks/person/person-item/icon.js +3 -0
  95. package/build/blocks/person/person-item/index.d.ts +5 -0
  96. package/build/blocks/person/person-item/index.d.ts.map +1 -0
  97. package/build/blocks/person/person-item/index.js +6 -0
  98. package/build/blocks/person/person-item/types.d.ts +12 -0
  99. package/build/blocks/person/person-item/types.d.ts.map +1 -0
  100. package/build/blocks/person/person-item/types.js +1 -0
  101. package/build/components/ImagePicker/ImagePicker.d.ts +5 -0
  102. package/build/components/ImagePicker/ImagePicker.d.ts.map +1 -1
  103. package/build/components/ImagePicker/ImagePicker.js +18 -11
  104. package/build/index.d.ts +10 -0
  105. package/build/index.d.ts.map +1 -1
  106. package/build/index.js +5 -0
  107. package/build/types.d.ts +2 -0
  108. package/build/types.d.ts.map +1 -1
  109. package/package.json +1 -1
  110. package/src/blocks/column/column-item/constants.ts +20 -0
  111. package/src/blocks/column/column-item/edit.tsx +20 -4
  112. package/src/blocks/column/column-item/factory.tsx +5 -0
  113. package/src/blocks/column/column-item/index.ts +11 -1
  114. package/src/blocks/column/column-item/types.ts +1 -0
  115. package/src/blocks/contact/contact-item/editor.scss +4 -0
  116. package/src/blocks/contact/contact-item/factory.tsx +13 -5
  117. package/src/blocks/core/basic-button/edit.tsx +50 -1
  118. package/src/blocks/core/basic-button/factory.tsx +4 -0
  119. package/src/blocks/core/basic-button/index.ts +2 -0
  120. package/src/blocks/core/basic-button/types.ts +13 -1
  121. package/src/blocks/gallery/gallery-group/constants.ts +10 -0
  122. package/src/blocks/gallery/gallery-group/edit.tsx +117 -0
  123. package/src/blocks/gallery/gallery-group/editor.scss +18 -0
  124. package/src/blocks/gallery/gallery-group/factory.tsx +36 -0
  125. package/src/blocks/gallery/gallery-group/index.ts +11 -0
  126. package/src/blocks/gallery/gallery-group/types.ts +21 -0
  127. package/src/blocks/gallery/gallery-item/edit.tsx +46 -0
  128. package/src/blocks/gallery/gallery-item/editor.scss +8 -0
  129. package/src/blocks/gallery/gallery-item/factory.tsx +26 -0
  130. package/src/blocks/gallery/gallery-item/index.ts +10 -0
  131. package/src/blocks/gallery/gallery-item/types.ts +7 -0
  132. package/src/blocks/link/link-item/edit.tsx +9 -1
  133. package/src/blocks/link/link-item/factory.tsx +1 -0
  134. package/src/blocks/link/link-item/types.ts +1 -0
  135. package/src/blocks/map/map-group/constants.ts +1 -1
  136. package/src/blocks/map/map-group/edit.tsx +14 -10
  137. package/src/blocks/map/map-group/factory.tsx +5 -5
  138. package/src/blocks/map/map-group/index.ts +1 -1
  139. package/src/blocks/map/map-group/types.ts +2 -4
  140. package/src/blocks/person/person-group/constants.ts +2 -0
  141. package/src/blocks/person/person-group/edit.tsx +65 -0
  142. package/src/blocks/person/person-group/editor.scss +0 -0
  143. package/src/blocks/person/person-group/factory.tsx +35 -0
  144. package/src/blocks/person/person-group/icon.tsx +14 -0
  145. package/src/blocks/person/person-group/index.ts +15 -0
  146. package/src/blocks/person/person-group/types.ts +8 -0
  147. package/src/blocks/person/person-item/constants.ts +4 -0
  148. package/src/blocks/person/person-item/edit.tsx +103 -0
  149. package/src/blocks/person/person-item/editor.scss +35 -0
  150. package/src/blocks/person/person-item/factory.tsx +29 -0
  151. package/src/blocks/person/person-item/icon.tsx +7 -0
  152. package/src/blocks/person/person-item/index.ts +10 -0
  153. package/src/blocks/person/person-item/types.ts +12 -0
  154. package/src/components/ImagePicker/ImagePicker.tsx +22 -10
  155. package/src/components/ImagePicker/editor.scss +2 -2
  156. package/src/editor.scss +4 -0
  157. package/src/index.ts +10 -0
  158. 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 useMediaUrl(id: number): string | undefined {
28
+ export function useMediaData(id: number): {url?: string; mimeType?: string} {
28
29
  return useSelect(
29
30
  (select) => {
30
- if (!id) return undefined
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 media?.source_url as string | undefined
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 = useMediaUrl(value.id)
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}) => onChange({id: media.id, alt: media.alt ?? ''})
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">{mediaUrl && <img src={mediaUrl} alt={value.alt} />}</div>
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">
@@ -64,8 +64,8 @@
64
64
 
65
65
  img {
66
66
  width: 100%;
67
- height: 100%;
68
- object-fit: cover;
67
+ max-height: 100%;
68
+ object-fit: contain;
69
69
  display: block;
70
70
  }
71
71
  }
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