@woodylab/payload 0.0.86 → 0.0.89

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 (155) hide show
  1. package/dist/acl/hasRoles.js +17 -0
  2. package/dist/acl/index.js +1 -0
  3. package/dist/config/blocks/blockCarousel.d.ts +1 -1
  4. package/dist/config/blocks/blockCarousel.js +102 -0
  5. package/dist/config/blocks/blockDisclosureList.d.ts +1 -1
  6. package/dist/config/blocks/blockDisclosureList.js +58 -0
  7. package/dist/config/blocks/blockGrid.d.ts +1 -1
  8. package/dist/config/blocks/blockGrid.js +161 -0
  9. package/dist/config/blocks/blockGridContent.d.ts +1 -1
  10. package/dist/config/blocks/blockGridContent.js +195 -0
  11. package/dist/config/blocks/blockHtmlElement.d.ts +5 -2
  12. package/dist/config/blocks/blockHtmlElement.js +13 -0
  13. package/dist/config/blocks/blockImage.d.ts +1 -1
  14. package/dist/config/blocks/blockImage.js +15 -0
  15. package/dist/config/blocks/blockParallax.d.ts +1 -1
  16. package/dist/config/blocks/blockParallax.js +76 -0
  17. package/dist/config/blocks/blockTabs.d.ts +1 -1
  18. package/dist/config/blocks/blockTabs.js +24 -0
  19. package/dist/config/blocks/blockView.d.ts +2 -0
  20. package/dist/config/blocks/blockView.js +234 -0
  21. package/dist/config/collections/collectionMenus.js +41 -0
  22. package/dist/config/globals/configFooter.d.ts +1 -1
  23. package/dist/config/globals/configFooter.js +46 -0
  24. package/dist/config/globals/configHeader.d.ts +1 -1
  25. package/dist/config/globals/configHeader.js +50 -0
  26. package/dist/config/globals/configSettings.d.ts +1 -1
  27. package/dist/config/globals/configSettings.js +144 -0
  28. package/dist/config/index.cjs.js +1 -1
  29. package/dist/config/index.esm.js +1 -1
  30. package/dist/config/index.js +15 -0
  31. package/dist/enums/index.js +1 -0
  32. package/dist/enums/userRoles.js +8 -0
  33. package/dist/fields/fieldArray.js +9 -0
  34. package/dist/fields/fieldBlocks.js +9 -0
  35. package/dist/fields/fieldCheckbox.js +11 -0
  36. package/dist/fields/fieldCode.js +8 -0
  37. package/dist/fields/fieldDate.js +15 -0
  38. package/dist/fields/fieldEmail.js +8 -0
  39. package/dist/fields/fieldJoin.js +9 -0
  40. package/dist/fields/fieldNumber.js +8 -0
  41. package/dist/fields/fieldPoint.js +8 -0
  42. package/dist/fields/fieldRadioGroup.js +18 -0
  43. package/dist/fields/fieldRelationship.js +9 -0
  44. package/dist/fields/fieldRichText.js +12 -0
  45. package/dist/fields/fieldSelect.js +9 -0
  46. package/dist/fields/fieldText.js +8 -0
  47. package/dist/fields/fieldTextArea.js +8 -0
  48. package/dist/fields/fieldUpload.js +9 -0
  49. package/dist/fields/index.cjs.js +1 -1
  50. package/dist/fields/index.esm.js +1 -1
  51. package/dist/fields/index.js +37 -0
  52. package/dist/fields/layout/fieldContainerProps.js +74 -0
  53. package/dist/fields/section/fieldAction.js +236 -0
  54. package/dist/fields/section/fieldConfigProps.js +11 -0
  55. package/dist/fields/section/fieldContentProps.js +11 -0
  56. package/dist/fields/section/fieldSectionProps.js +15 -0
  57. package/dist/fields/section/fieldSectionTabs.js +40 -0
  58. package/dist/fields/style/fieldColor.js +21 -0
  59. package/dist/fields/style/fieldContainerWidths.js +17 -0
  60. package/dist/fields/style/fieldCss.js +68 -0
  61. package/dist/fields/style/fieldFontSizes.js +14 -0
  62. package/dist/fields/style/fieldHeights.js +23 -0
  63. package/dist/fields/style/fieldMargins.js +138 -0
  64. package/dist/fields/style/fieldPaddings.js +114 -0
  65. package/dist/fields/style/fieldViewportHeights.js +22 -0
  66. package/dist/fields/utils/fieldRoles.js +26 -0
  67. package/dist/generateCssVars.js +71 -0
  68. package/dist/generatePreviewPath.d.ts +1 -1
  69. package/dist/generatePreviewPath.js +14 -0
  70. package/dist/getButtonClasses.js +135 -0
  71. package/dist/getClassName.js +28 -0
  72. package/dist/getInlineStyles.d.ts +2 -2
  73. package/dist/getInlineStyles.js +17 -0
  74. package/dist/googleFonts.js +1343 -0
  75. package/dist/hexToRgb.js +21 -0
  76. package/dist/hooks/fields/getNumberValueFromClassNameString.js +16 -0
  77. package/dist/hooks/fields/populateSiblingClassName.js +23 -0
  78. package/dist/hooks/fields/populateSiblingClassNameAfterChange.js +6 -0
  79. package/dist/hooks/fields/updateClassNameAfterRead.js +16 -0
  80. package/dist/hooks/index.js +4 -0
  81. package/dist/iconsList.js +112 -0
  82. package/dist/index-BGUjS-bf.js +2 -0
  83. package/dist/index-BGUjS-bf.js.map +1 -0
  84. package/dist/index-CnRkn2jp.js +2 -0
  85. package/dist/index-CnRkn2jp.js.map +1 -0
  86. package/dist/index-CxARqipL.js +2 -0
  87. package/dist/index-CxARqipL.js.map +1 -0
  88. package/dist/index-ycNCyTFS.js +2 -0
  89. package/dist/index-ycNCyTFS.js.map +1 -0
  90. package/dist/index.cjs.js +1 -1
  91. package/dist/index.cjs.js.map +1 -1
  92. package/dist/index.d.ts +0 -8
  93. package/dist/index.esm.js +1 -1
  94. package/dist/index.esm.js.map +1 -1
  95. package/dist/index.js +26 -0
  96. package/dist/tailwind/index.d.ts +5 -3
  97. package/dist/tailwind/index.js +2692 -0
  98. package/dist/types/fieldOverride.js +1 -0
  99. package/dist/userRoles-TiGLeC8C.js +2 -0
  100. package/dist/userRoles-TiGLeC8C.js.map +1 -0
  101. package/dist/userRoles-bv_yG2UK.js +2 -0
  102. package/dist/userRoles-bv_yG2UK.js.map +1 -0
  103. package/package.json +16 -33
  104. package/dist/acl/index.cjs.js +0 -2
  105. package/dist/acl/index.cjs.js.map +0 -1
  106. package/dist/acl/index.esm.js +0 -2
  107. package/dist/acl/index.esm.js.map +0 -1
  108. package/dist/enums/index.cjs.js +0 -2
  109. package/dist/enums/index.cjs.js.map +0 -1
  110. package/dist/enums/index.esm.js +0 -2
  111. package/dist/enums/index.esm.js.map +0 -1
  112. package/dist/fieldViewportHeights-BDcXwnNa.js +0 -2
  113. package/dist/fieldViewportHeights-BDcXwnNa.js.map +0 -1
  114. package/dist/fieldViewportHeights-BiejOiGj.js +0 -2
  115. package/dist/fieldViewportHeights-BiejOiGj.js.map +0 -1
  116. package/dist/getNumberValueFromClassNameString-Dm5eOjBJ.js +0 -2
  117. package/dist/getNumberValueFromClassNameString-Dm5eOjBJ.js.map +0 -1
  118. package/dist/getNumberValueFromClassNameString-pKKt97eg.js +0 -2
  119. package/dist/getNumberValueFromClassNameString-pKKt97eg.js.map +0 -1
  120. package/dist/hooks/index.cjs.js +0 -2
  121. package/dist/hooks/index.cjs.js.map +0 -1
  122. package/dist/hooks/index.esm.js +0 -2
  123. package/dist/hooks/index.esm.js.map +0 -1
  124. package/dist/index-B2AFDGT1.js +0 -2
  125. package/dist/index-B2AFDGT1.js.map +0 -1
  126. package/dist/index-C4uc5BOd.js +0 -2
  127. package/dist/index-C4uc5BOd.js.map +0 -1
  128. package/dist/index-C6SROxLn.js +0 -2
  129. package/dist/index-C6SROxLn.js.map +0 -1
  130. package/dist/index-CPtPsRwp.js +0 -2
  131. package/dist/index-CPtPsRwp.js.map +0 -1
  132. package/dist/index-CbPSDPpZ.js +0 -2
  133. package/dist/index-CbPSDPpZ.js.map +0 -1
  134. package/dist/index-D7075_q9.js +0 -2
  135. package/dist/index-D7075_q9.js.map +0 -1
  136. package/dist/index-DArGZfob.js +0 -2
  137. package/dist/index-DArGZfob.js.map +0 -1
  138. package/dist/index-DfvZ1mDE.js +0 -2
  139. package/dist/index-DfvZ1mDE.js.map +0 -1
  140. package/dist/index-FnRjWfU7.js +0 -2
  141. package/dist/index-FnRjWfU7.js.map +0 -1
  142. package/dist/index-GDdL2MgQ.js +0 -2
  143. package/dist/index-GDdL2MgQ.js.map +0 -1
  144. package/dist/index-gxytNJWT.js +0 -2
  145. package/dist/index-gxytNJWT.js.map +0 -1
  146. package/dist/index-yjSq7G2Z.js +0 -2
  147. package/dist/index-yjSq7G2Z.js.map +0 -1
  148. package/dist/tailwind/index.cjs.js +0 -2
  149. package/dist/tailwind/index.cjs.js.map +0 -1
  150. package/dist/tailwind/index.esm.js +0 -2
  151. package/dist/tailwind/index.esm.js.map +0 -1
  152. package/dist/userRoles-BIrmWoCJ.js +0 -2
  153. package/dist/userRoles-BIrmWoCJ.js.map +0 -1
  154. package/dist/userRoles-Dd_gfx51.js +0 -2
  155. package/dist/userRoles-Dd_gfx51.js.map +0 -1
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Verifica se l'utente ha uno o più ruoli specifici.
3
+ * @param roles - Array di ruoli da controllare.
4
+ * @returns Funzione Access che verifica i ruoli.
5
+ */
6
+ const hasRoles = (roles) => {
7
+ return ({ req: { user } }) => {
8
+ if (!user || typeof user !== 'object') {
9
+ return false; // Accesso negato se l'utente non è autenticato
10
+ }
11
+ if (!('roles' in user) || !Array.isArray(user.roles)) {
12
+ return false; // Accesso negato se `roles` non esiste o non è un array
13
+ }
14
+ return user.roles.some((role) => roles.includes(role)) || false;
15
+ };
16
+ };
17
+ export default hasRoles;
@@ -0,0 +1 @@
1
+ export { default as hasRoles } from './hasRoles';
@@ -1,3 +1,3 @@
1
- import { Block } from 'payload';
1
+ import type { Block } from 'payload';
2
2
  declare const blockCarousel: Block;
3
3
  export default blockCarousel;
@@ -0,0 +1,102 @@
1
+ import { fieldAction, fieldArray, fieldCheckbox, fieldNumber, fieldRichText, fieldSectionTabs, fieldSelect, fieldUpload, } from '../../fields';
2
+ const blockCarousel = {
3
+ slug: 'carousel',
4
+ labels: {
5
+ singular: 'Carousel',
6
+ plural: 'Carousels',
7
+ },
8
+ fields: [
9
+ fieldSectionTabs({
10
+ configFields: [
11
+ {
12
+ type: 'row',
13
+ fields: [
14
+ fieldCheckbox({
15
+ name: 'hasPagination',
16
+ label: 'Paginazione',
17
+ defaultValue: true,
18
+ admin: {
19
+ width: '20%',
20
+ },
21
+ }),
22
+ fieldCheckbox({
23
+ name: 'hasNavigation',
24
+ label: 'Navigazione',
25
+ defaultValue: true,
26
+ admin: {
27
+ width: '20%',
28
+ },
29
+ }),
30
+ fieldCheckbox({
31
+ name: 'hasOverlay',
32
+ label: "Overlay sull'immagine",
33
+ defaultValue: true,
34
+ admin: {
35
+ width: '20%',
36
+ },
37
+ }),
38
+ fieldCheckbox({
39
+ name: 'hasInfiniteLoop',
40
+ label: 'Loop infinito',
41
+ defaultValue: true,
42
+ admin: {
43
+ width: '20%',
44
+ },
45
+ }),
46
+ fieldCheckbox({
47
+ name: 'hasAutoPlay',
48
+ label: 'Auto play',
49
+ defaultValue: true,
50
+ admin: {
51
+ width: '20%',
52
+ },
53
+ }),
54
+ fieldCheckbox({
55
+ name: 'hasThumbnails',
56
+ label: 'Mostra miniature',
57
+ defaultValue: false,
58
+ admin: {
59
+ width: '20%',
60
+ },
61
+ }),
62
+ fieldNumber({
63
+ name: 'slidePerView',
64
+ label: 'numero slide',
65
+ defaultValue: 1,
66
+ admin: {
67
+ width: '20%',
68
+ },
69
+ }),
70
+ fieldSelect({
71
+ name: 'transition',
72
+ label: 'Tipo transizione',
73
+ defaultValue: 'slide',
74
+ admin: {
75
+ width: '50%',
76
+ },
77
+ options: [
78
+ { label: 'Slide', value: 'slide' },
79
+ { label: 'Fade', value: 'fade' },
80
+ { label: 'Cube', value: 'cube' },
81
+ { label: 'Coverflow', value: 'coverflow' },
82
+ { label: 'Flip', value: 'flip' },
83
+ ],
84
+ }),
85
+ ],
86
+ },
87
+ ],
88
+ contentFields: [
89
+ fieldArray({
90
+ name: 'slides',
91
+ label: 'Slides',
92
+ fields: [
93
+ fieldUpload('media', { name: 'image', label: 'Immagine' }),
94
+ fieldRichText({ name: 'body', label: 'Body' }),
95
+ fieldAction(),
96
+ ],
97
+ }),
98
+ ],
99
+ }),
100
+ ],
101
+ };
102
+ export default blockCarousel;
@@ -1,3 +1,3 @@
1
- import { Block } from 'payload';
1
+ import type { Block } from 'payload';
2
2
  declare const blockDisclosureList: Block;
3
3
  export default blockDisclosureList;
@@ -0,0 +1,58 @@
1
+ // config/blockCarousel.ts
2
+ import { fieldArray, fieldRichText, fieldSectionTabs, fieldSelect, fieldText } from '../../fields';
3
+ const blockDisclosureList = {
4
+ slug: 'disclosureList',
5
+ labels: {
6
+ singular: 'Disclosure List',
7
+ plural: 'Disclosure List',
8
+ },
9
+ fields: [
10
+ fieldSectionTabs({
11
+ configFields: [
12
+ {
13
+ type: 'row',
14
+ fields: [
15
+ fieldSelect({
16
+ name: 'initialStatus',
17
+ label: 'Stato iniziale',
18
+ defaultValue: 'firstOpen',
19
+ options: [
20
+ { label: 'First open', value: 'firstOpen' },
21
+ { label: 'All open', value: 'allOpen' },
22
+ { label: 'All close', value: 'allClose' },
23
+ ],
24
+ admin: { width: '20%' },
25
+ }),
26
+ fieldSelect({
27
+ name: 'disclosureType',
28
+ label: 'Tipo disclosure',
29
+ defaultValue: 'default',
30
+ options: [
31
+ { label: 'default', value: 'default' },
32
+ { label: 'Itinerario', value: 'itinerary' },
33
+ ],
34
+ admin: { width: '20%' },
35
+ }),
36
+ ],
37
+ },
38
+ ],
39
+ contentFields: [
40
+ fieldArray({
41
+ name: 'Disclosure',
42
+ label: 'Disclosure',
43
+ fields: [
44
+ fieldText({ name: 'title', label: 'Titolo', required: false }),
45
+ fieldText({
46
+ name: 'text',
47
+ label: 'Testo',
48
+ admin: { description: 'Testo affianco al titolo nel bottone di apertura' },
49
+ required: false,
50
+ }),
51
+ fieldRichText({ name: 'body', label: 'Body' }),
52
+ ],
53
+ }),
54
+ ],
55
+ }),
56
+ ],
57
+ };
58
+ export default blockDisclosureList;
@@ -1,4 +1,4 @@
1
- import { Block, CollectionSlug } from 'payload';
1
+ import type { Block, CollectionSlug } from 'payload';
2
2
  type BlockGridConfig = {
3
3
  relationToOptions?: CollectionSlug | CollectionSlug[];
4
4
  };
@@ -0,0 +1,161 @@
1
+ import { fieldCheckbox, fieldNumber, fieldSectionTabs, fieldSelect } from '../../fields';
2
+ import blockGridContent from './blockGridContent';
3
+ const blockGrid = (config = {}) => {
4
+ const { relationToOptions = ['pages'] } = config;
5
+ return {
6
+ slug: 'grid',
7
+ labels: {
8
+ singular: 'Griglia',
9
+ plural: 'Griglie',
10
+ },
11
+ fields: [
12
+ fieldSectionTabs({
13
+ configFields: [
14
+ {
15
+ type: 'row',
16
+ fields: [
17
+ fieldNumber({
18
+ name: 'desktopColumns',
19
+ label: 'Colonne Desktop',
20
+ defaultValue: 4,
21
+ min: 1,
22
+ max: 12,
23
+ admin: {
24
+ width: '33%',
25
+ description: '≥ 1024px (lg)',
26
+ },
27
+ }),
28
+ fieldNumber({
29
+ name: 'tabletColumns',
30
+ label: 'Colonne Tablet',
31
+ defaultValue: 2,
32
+ min: 1,
33
+ max: 6,
34
+ admin: {
35
+ width: '33%',
36
+ description: '≥ 768px (md)',
37
+ },
38
+ }),
39
+ fieldNumber({
40
+ name: 'mobileColumns',
41
+ label: 'Colonne Mobile',
42
+ defaultValue: 1,
43
+ min: 1,
44
+ max: 2,
45
+ admin: {
46
+ width: '33%',
47
+ description: '< 768px',
48
+ },
49
+ }),
50
+ ],
51
+ },
52
+ {
53
+ type: 'row',
54
+ fields: [
55
+ fieldSelect({
56
+ name: 'gap',
57
+ label: 'Spazio tra colonne',
58
+ defaultValue: 'gap-6',
59
+ options: [
60
+ { label: 'Nessuno', value: 'gap-0' },
61
+ { label: 'Minimo', value: 'gap-2' },
62
+ { label: 'Piccolo', value: 'gap-4' },
63
+ { label: 'Medio', value: 'gap-6' },
64
+ { label: 'Grande', value: 'gap-8' },
65
+ { label: 'Extra Large', value: 'gap-12' },
66
+ ],
67
+ admin: {
68
+ width: '50%',
69
+ },
70
+ }),
71
+ fieldSelect({
72
+ name: 'verticalGap',
73
+ label: 'Spazio tra righe',
74
+ defaultValue: 'gap-y-6',
75
+ options: [
76
+ { label: 'Nessuno', value: 'gap-y-0' },
77
+ { label: 'Minimo', value: 'gap-y-2' },
78
+ { label: 'Piccolo', value: 'gap-y-4' },
79
+ { label: 'Medio', value: 'gap-y-6' },
80
+ { label: 'Grande', value: 'gap-y-8' },
81
+ { label: 'Extra Large', value: 'gap-y-12' },
82
+ ],
83
+ admin: {
84
+ width: '50%',
85
+ },
86
+ }),
87
+ ],
88
+ },
89
+ {
90
+ type: 'row',
91
+ fields: [
92
+ fieldCheckbox({
93
+ name: 'equalHeight',
94
+ label: 'Elementi di altezza uguale',
95
+ defaultValue: false,
96
+ admin: {
97
+ width: '50%',
98
+ description: 'Imposta tutti gli elementi della griglia alla stessa altezza',
99
+ },
100
+ }),
101
+ fieldSelect({
102
+ name: 'alignment',
103
+ label: 'Allineamento elementi',
104
+ defaultValue: 'start',
105
+ options: [
106
+ { label: 'In alto', value: 'start' },
107
+ { label: 'Centrato', value: 'center' },
108
+ { label: 'In basso', value: 'end' },
109
+ { label: 'Allungato', value: 'stretch' },
110
+ ],
111
+ admin: {
112
+ width: '50%',
113
+ description: 'Allineamento verticale degli elementi nella griglia',
114
+ },
115
+ }),
116
+ ],
117
+ },
118
+ ],
119
+ contentFields: [
120
+ {
121
+ type: 'group',
122
+ name: 'img',
123
+ label: 'Immagine',
124
+ fields: [
125
+ {
126
+ type: 'row',
127
+ fields: [
128
+ fieldCheckbox({
129
+ name: 'hasOverlay',
130
+ label: 'Overlay',
131
+ defaultValue: true,
132
+ admin: {
133
+ description: "Aggiunge un overlay sull'immagine",
134
+ width: '25%',
135
+ },
136
+ }),
137
+ fieldCheckbox({
138
+ name: 'useAsBg',
139
+ label: 'Usa come sfondo',
140
+ defaultValue: true,
141
+ admin: {
142
+ description: "Usa l'immagine come sfondo del contenuto",
143
+ width: '25%',
144
+ },
145
+ }),
146
+ ],
147
+ },
148
+ ],
149
+ },
150
+ {
151
+ name: 'cols',
152
+ label: 'Colonne',
153
+ type: 'blocks',
154
+ blocks: [blockGridContent({ relationToOptions })],
155
+ },
156
+ ],
157
+ }),
158
+ ],
159
+ };
160
+ };
161
+ export default blockGrid;
@@ -1,4 +1,4 @@
1
- import { Block, CollectionSlug } from 'payload';
1
+ import type { Block, CollectionSlug } from 'payload';
2
2
  type BlockGridContentConfig = {
3
3
  relationToOptions?: CollectionSlug | CollectionSlug[];
4
4
  };
@@ -0,0 +1,195 @@
1
+ import { fieldAction, fieldColor, fieldPaddings, fieldRichText, fieldSelect, fieldUpload, } from '../../fields';
2
+ import iconsList from '../../iconsList';
3
+ const blockGridContent = (config = {}) => {
4
+ const { relationToOptions = ['pages'] } = config;
5
+ return {
6
+ slug: 'gridContent',
7
+ labels: {
8
+ singular: 'Colonna',
9
+ plural: 'Colonne',
10
+ },
11
+ fields: [
12
+ {
13
+ type: 'tabs',
14
+ tabs: [
15
+ {
16
+ label: 'Configurazioni',
17
+ fields: [
18
+ {
19
+ type: 'group',
20
+ name: 'config',
21
+ label: 'Configurazione contenuto',
22
+ fields: [
23
+ {
24
+ type: 'row',
25
+ fields: [
26
+ fieldColor({
27
+ name: 'bgc',
28
+ label: 'Colore sfondo colonna',
29
+ required: false,
30
+ admin: {
31
+ width: '100%',
32
+ },
33
+ }),
34
+ fieldSelect({
35
+ name: 'borderRadius',
36
+ label: 'Angoli arrotondati',
37
+ defaultValue: 'rounded-none', // Default: nessun arrotondamento
38
+ options: [
39
+ { label: 'Nessuno', value: 'rounded-none' },
40
+ { label: 'Piccolo', value: 'rounded-sm' },
41
+ { label: 'Medio', value: 'rounded-md' },
42
+ { label: 'Grande', value: 'rounded-lg' },
43
+ { label: 'Extra Grande', value: 'rounded-xl' },
44
+ { label: 'Massimo', value: 'rounded-full' },
45
+ ],
46
+ admin: {
47
+ width: '50%',
48
+ description: 'Imposta lo stile degli angoli arrotondati del contenitore.',
49
+ },
50
+ }),
51
+ fieldSelect({
52
+ name: 'boxShadow',
53
+ label: 'Ombra contenitore',
54
+ defaultValue: 'shadow-none', // Default: nessuna ombra
55
+ options: [
56
+ { label: 'Nessuna', value: 'shadow-none' },
57
+ { label: 'Piccola', value: 'shadow-sm' },
58
+ { label: 'Normale', value: 'shadow' },
59
+ { label: 'Media', value: 'shadow-md' },
60
+ { label: 'Grande', value: 'shadow-lg' },
61
+ { label: 'Extra Grande', value: 'shadow-xl' },
62
+ { label: 'Massima', value: 'shadow-2xl' },
63
+ ],
64
+ admin: {
65
+ width: '50%',
66
+ description: "Imposta lo stile dell'ombra per il contenitore.",
67
+ },
68
+ }),
69
+ fieldSelect({
70
+ name: 'desktopWidth',
71
+ label: 'Larghezza Desktop',
72
+ defaultValue: '',
73
+ options: [
74
+ { label: 'Default', value: '' },
75
+ { label: '1 colonna', value: 'lg:col-span-1' },
76
+ { label: '2 colonne', value: 'lg:col-span-2' },
77
+ { label: '3 colonne', value: 'lg:col-span-3' },
78
+ { label: '4 colonne', value: 'lg:col-span-4' },
79
+ { label: '6 colonne', value: 'lg:col-span-6' },
80
+ { label: '8 colonne', value: 'lg:col-span-8' },
81
+ { label: 'Intera larghezza', value: 'lg:col-span-full' },
82
+ ],
83
+ admin: {
84
+ width: '33%',
85
+ description: '≥ 1024px (lg)',
86
+ },
87
+ }),
88
+ fieldSelect({
89
+ name: 'tabletWidth',
90
+ label: 'Larghezza Tablet',
91
+ defaultValue: '',
92
+ options: [
93
+ { label: 'Default', value: '' },
94
+ { label: '1 colonna', value: 'md:col-span-1' },
95
+ { label: '2 colonne', value: 'md:col-span-2' },
96
+ { label: '3 colonne', value: 'md:col-span-3' },
97
+ { label: '4 colonne', value: 'md:col-span-4' },
98
+ { label: 'Intera larghezza', value: 'md:col-span-full' },
99
+ ],
100
+ admin: {
101
+ width: '33%',
102
+ description: '≥ 768px (md)',
103
+ },
104
+ }),
105
+ fieldSelect({
106
+ name: 'mobileWidth',
107
+ label: 'Larghezza Mobile',
108
+ defaultValue: '',
109
+ options: [
110
+ { label: 'Default', value: '' },
111
+ { label: '1 colonna', value: 'col-span-1' },
112
+ { label: 'Intera larghezza', value: 'col-span-full' },
113
+ ],
114
+ admin: {
115
+ width: '33%',
116
+ description: '< 768px',
117
+ },
118
+ }),
119
+ fieldSelect({
120
+ name: 'verticalAlign',
121
+ label: 'Allineamento verticale',
122
+ defaultValue: '',
123
+ options: [
124
+ { label: 'Default', value: '' },
125
+ { label: 'In alto (start)', value: 'items-start' },
126
+ { label: 'Al centro (center)', value: 'items-center' },
127
+ { label: 'In basso (end)', value: 'items-end' },
128
+ {
129
+ label: 'Distribuito tra gli elementi (baseline)',
130
+ value: 'items-baseline',
131
+ },
132
+ {
133
+ label: 'Inizio verticale con stretching (stretch)',
134
+ value: 'items-stretch',
135
+ },
136
+ ],
137
+ admin: {
138
+ width: '25%',
139
+ },
140
+ }),
141
+ ],
142
+ },
143
+ fieldPaddings(),
144
+ ],
145
+ },
146
+ ],
147
+ },
148
+ {
149
+ label: 'Contenuto',
150
+ fields: [
151
+ {
152
+ type: 'group',
153
+ name: 'cntP',
154
+ label: 'Contenuto',
155
+ fields: [
156
+ fieldUpload('media', {
157
+ name: 'image',
158
+ label: 'Immagine',
159
+ }),
160
+ {
161
+ name: 'iconName',
162
+ type: 'select',
163
+ label: 'Icona',
164
+ options: [...iconsList],
165
+ admin: {
166
+ width: '50%',
167
+ },
168
+ },
169
+ fieldSelect({
170
+ name: 'iconSize',
171
+ label: 'Dimensione bottone',
172
+ defaultValue: '24',
173
+ admin: {
174
+ width: '50%',
175
+ },
176
+ options: [
177
+ { label: 'Small', value: '16' },
178
+ { label: 'Default', value: '24' },
179
+ { label: 'Medium', value: '32' },
180
+ { label: 'Large', value: '48' },
181
+ { label: 'Extra Large', value: '64' },
182
+ ],
183
+ }),
184
+ fieldRichText({ name: 'body', label: 'Body' }),
185
+ fieldAction({ relationToOptions }),
186
+ ],
187
+ },
188
+ ],
189
+ },
190
+ ],
191
+ },
192
+ ],
193
+ };
194
+ };
195
+ export default blockGridContent;
@@ -1,3 +1,6 @@
1
- import { Block } from 'payload';
2
- declare const blockHtmlElement: () => Block;
1
+ import type { Block, CollectionSlug } from 'payload';
2
+ type BlockHtmlConfig = {
3
+ relationToOptions?: CollectionSlug | CollectionSlug[];
4
+ };
5
+ declare const blockHtmlElement: (config?: BlockHtmlConfig) => Block;
3
6
  export default blockHtmlElement;
@@ -0,0 +1,13 @@
1
+ import { fieldSectionTabs } from '../../fields';
2
+ const blockHtmlElement = (config = {}) => {
3
+ const { relationToOptions = ['pages'] } = config;
4
+ return {
5
+ slug: 'htmlElements',
6
+ labels: {
7
+ singular: 'Elemento html',
8
+ plural: 'Elementi html',
9
+ },
10
+ fields: [fieldSectionTabs()],
11
+ };
12
+ };
13
+ export default blockHtmlElement;
@@ -1,3 +1,3 @@
1
- import { Block } from 'payload';
1
+ import type { Block } from 'payload';
2
2
  declare const blockImage: Block;
3
3
  export default blockImage;
@@ -0,0 +1,15 @@
1
+ // config/blockCarousel.ts
2
+ import { fieldSectionTabs, fieldUpload } from '../../fields';
3
+ const blockImage = {
4
+ slug: 'image',
5
+ labels: {
6
+ singular: 'immagine',
7
+ plural: 'immagini',
8
+ },
9
+ fields: [
10
+ fieldSectionTabs({
11
+ contentFields: [fieldUpload('media', { name: 'image', label: 'immagine', required: true })],
12
+ }),
13
+ ],
14
+ };
15
+ export default blockImage;
@@ -1,3 +1,3 @@
1
- import { Block } from 'payload';
1
+ import type { Block } from 'payload';
2
2
  declare const blockParallax: Block;
3
3
  export default blockParallax;