@qwickapps/cms 0.2.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.
Files changed (259) hide show
  1. package/LICENSE +45 -0
  2. package/README.md +203 -0
  3. package/dist/admin/components/AccordionItemRowLabel.d.ts +20 -0
  4. package/dist/admin/components/AccordionItemRowLabel.d.ts.map +1 -0
  5. package/dist/admin/components/AccordionItemRowLabel.js +47 -0
  6. package/dist/admin/components/AccordionItemRowLabel.js.map +1 -0
  7. package/dist/admin/components/BlockRowLabel.d.ts +19 -0
  8. package/dist/admin/components/BlockRowLabel.d.ts.map +1 -0
  9. package/dist/admin/components/BlockRowLabel.js +52 -0
  10. package/dist/admin/components/BlockRowLabel.js.map +1 -0
  11. package/dist/admin/components/ButtonRowLabel.d.ts +23 -0
  12. package/dist/admin/components/ButtonRowLabel.d.ts.map +1 -0
  13. package/dist/admin/components/ButtonRowLabel.js +63 -0
  14. package/dist/admin/components/ButtonRowLabel.js.map +1 -0
  15. package/dist/admin/components/CardRowLabel.d.ts +23 -0
  16. package/dist/admin/components/CardRowLabel.d.ts.map +1 -0
  17. package/dist/admin/components/CardRowLabel.js +59 -0
  18. package/dist/admin/components/CardRowLabel.js.map +1 -0
  19. package/dist/admin/components/ContentPreview.d.ts +12 -0
  20. package/dist/admin/components/ContentPreview.d.ts.map +1 -0
  21. package/dist/admin/components/ContentPreview.js +95 -0
  22. package/dist/admin/components/ContentPreview.js.map +1 -0
  23. package/dist/admin/components/Dashboard.d.ts +13 -0
  24. package/dist/admin/components/Dashboard.d.ts.map +1 -0
  25. package/dist/admin/components/Dashboard.js +7 -0
  26. package/dist/admin/components/Dashboard.js.map +1 -0
  27. package/dist/admin/components/DashboardContent.d.ts +11 -0
  28. package/dist/admin/components/DashboardContent.d.ts.map +1 -0
  29. package/dist/admin/components/DashboardContent.js +129 -0
  30. package/dist/admin/components/DashboardContent.js.map +1 -0
  31. package/dist/admin/components/FormFieldRowLabel.d.ts +21 -0
  32. package/dist/admin/components/FormFieldRowLabel.d.ts.map +1 -0
  33. package/dist/admin/components/FormFieldRowLabel.js +47 -0
  34. package/dist/admin/components/FormFieldRowLabel.js.map +1 -0
  35. package/dist/admin/components/Icon.d.ts +10 -0
  36. package/dist/admin/components/Icon.d.ts.map +1 -0
  37. package/dist/admin/components/Icon.js +16 -0
  38. package/dist/admin/components/Icon.js.map +1 -0
  39. package/dist/admin/components/Logo.d.ts +10 -0
  40. package/dist/admin/components/Logo.d.ts.map +1 -0
  41. package/dist/admin/components/Logo.js +16 -0
  42. package/dist/admin/components/Logo.js.map +1 -0
  43. package/dist/admin/components/NavigationItemRowLabel.d.ts +21 -0
  44. package/dist/admin/components/NavigationItemRowLabel.d.ts.map +1 -0
  45. package/dist/admin/components/NavigationItemRowLabel.js +43 -0
  46. package/dist/admin/components/NavigationItemRowLabel.js.map +1 -0
  47. package/dist/admin/components/NavigationSubItemRowLabel.d.ts +19 -0
  48. package/dist/admin/components/NavigationSubItemRowLabel.d.ts.map +1 -0
  49. package/dist/admin/components/NavigationSubItemRowLabel.js +32 -0
  50. package/dist/admin/components/NavigationSubItemRowLabel.js.map +1 -0
  51. package/dist/admin/components/PagesListHeader.d.ts +13 -0
  52. package/dist/admin/components/PagesListHeader.d.ts.map +1 -0
  53. package/dist/admin/components/PagesListHeader.js +48 -0
  54. package/dist/admin/components/PagesListHeader.js.map +1 -0
  55. package/dist/admin/components/ProductsListHeader.d.ts +13 -0
  56. package/dist/admin/components/ProductsListHeader.d.ts.map +1 -0
  57. package/dist/admin/components/ProductsListHeader.js +55 -0
  58. package/dist/admin/components/ProductsListHeader.js.map +1 -0
  59. package/dist/admin/components/styles/CollectionListHeader.css +161 -0
  60. package/dist/admin/components/styles/ContentPreview.css +416 -0
  61. package/dist/admin/components/styles/Dashboard.css +338 -0
  62. package/dist/admin/fields/ColorInput.d.ts +13 -0
  63. package/dist/admin/fields/ColorInput.d.ts.map +1 -0
  64. package/dist/admin/fields/ColorInput.js +201 -0
  65. package/dist/admin/fields/ColorInput.js.map +1 -0
  66. package/dist/admin/fields/index.d.ts +9 -0
  67. package/dist/admin/fields/index.d.ts.map +1 -0
  68. package/dist/admin/fields/index.js +9 -0
  69. package/dist/admin/fields/index.js.map +1 -0
  70. package/dist/admin/index.d.ts +24 -0
  71. package/dist/admin/index.d.ts.map +1 -0
  72. package/dist/admin/index.js +30 -0
  73. package/dist/admin/index.js.map +1 -0
  74. package/dist/blocks/ContentBlocks.d.ts +75 -0
  75. package/dist/blocks/ContentBlocks.d.ts.map +1 -0
  76. package/dist/blocks/ContentBlocks.js +1241 -0
  77. package/dist/blocks/ContentBlocks.js.map +1 -0
  78. package/dist/blocks/index.d.ts +2 -0
  79. package/dist/blocks/index.d.ts.map +1 -0
  80. package/dist/blocks/index.js +3 -0
  81. package/dist/blocks/index.js.map +1 -0
  82. package/dist/client/PayloadAPIClient.d.ts +65 -0
  83. package/dist/client/PayloadAPIClient.d.ts.map +1 -0
  84. package/dist/client/PayloadAPIClient.js +167 -0
  85. package/dist/client/PayloadAPIClient.js.map +1 -0
  86. package/dist/collections/Automations.d.ts +12 -0
  87. package/dist/collections/Automations.d.ts.map +1 -0
  88. package/dist/collections/Automations.js +741 -0
  89. package/dist/collections/Automations.js.map +1 -0
  90. package/dist/collections/Features.d.ts +3 -0
  91. package/dist/collections/Features.d.ts.map +1 -0
  92. package/dist/collections/Features.js +69 -0
  93. package/dist/collections/Features.js.map +1 -0
  94. package/dist/collections/Footer.d.ts +11 -0
  95. package/dist/collections/Footer.d.ts.map +1 -0
  96. package/dist/collections/Footer.js +130 -0
  97. package/dist/collections/Footer.js.map +1 -0
  98. package/dist/collections/FormSubmissions.d.ts +3 -0
  99. package/dist/collections/FormSubmissions.d.ts.map +1 -0
  100. package/dist/collections/FormSubmissions.js +119 -0
  101. package/dist/collections/FormSubmissions.js.map +1 -0
  102. package/dist/collections/Forms.d.ts +16 -0
  103. package/dist/collections/Forms.d.ts.map +1 -0
  104. package/dist/collections/Forms.js +308 -0
  105. package/dist/collections/Forms.js.map +1 -0
  106. package/dist/collections/HeroBlocks.d.ts +3 -0
  107. package/dist/collections/HeroBlocks.d.ts.map +1 -0
  108. package/dist/collections/HeroBlocks.js +115 -0
  109. package/dist/collections/HeroBlocks.js.map +1 -0
  110. package/dist/collections/Media.d.ts +3 -0
  111. package/dist/collections/Media.d.ts.map +1 -0
  112. package/dist/collections/Media.js +26 -0
  113. package/dist/collections/Media.js.map +1 -0
  114. package/dist/collections/Navigation.d.ts +3 -0
  115. package/dist/collections/Navigation.d.ts.map +1 -0
  116. package/dist/collections/Navigation.js +106 -0
  117. package/dist/collections/Navigation.js.map +1 -0
  118. package/dist/collections/Pages.d.ts +3 -0
  119. package/dist/collections/Pages.d.ts.map +1 -0
  120. package/dist/collections/Pages.js +94 -0
  121. package/dist/collections/Pages.js.map +1 -0
  122. package/dist/collections/Posts.d.ts +3 -0
  123. package/dist/collections/Posts.d.ts.map +1 -0
  124. package/dist/collections/Posts.js +134 -0
  125. package/dist/collections/Posts.js.map +1 -0
  126. package/dist/collections/Products.d.ts +3 -0
  127. package/dist/collections/Products.d.ts.map +1 -0
  128. package/dist/collections/Products.js +264 -0
  129. package/dist/collections/Products.js.map +1 -0
  130. package/dist/collections/Users.d.ts +3 -0
  131. package/dist/collections/Users.d.ts.map +1 -0
  132. package/dist/collections/Users.js +53 -0
  133. package/dist/collections/Users.js.map +1 -0
  134. package/dist/collections/hooks/index.d.ts +9 -0
  135. package/dist/collections/hooks/index.d.ts.map +1 -0
  136. package/dist/collections/hooks/index.js +9 -0
  137. package/dist/collections/hooks/index.js.map +1 -0
  138. package/dist/collections/hooks/loggingHooks.d.ts +45 -0
  139. package/dist/collections/hooks/loggingHooks.d.ts.map +1 -0
  140. package/dist/collections/hooks/loggingHooks.js +109 -0
  141. package/dist/collections/hooks/loggingHooks.js.map +1 -0
  142. package/dist/collections/index.d.ts +14 -0
  143. package/dist/collections/index.d.ts.map +1 -0
  144. package/dist/collections/index.js +16 -0
  145. package/dist/collections/index.js.map +1 -0
  146. package/dist/components/index.d.ts +2 -0
  147. package/dist/components/index.d.ts.map +1 -0
  148. package/dist/components/index.js +4 -0
  149. package/dist/components/index.js.map +1 -0
  150. package/dist/globals/AdvancedSettings.d.ts +8 -0
  151. package/dist/globals/AdvancedSettings.d.ts.map +1 -0
  152. package/dist/globals/AdvancedSettings.js +157 -0
  153. package/dist/globals/AdvancedSettings.js.map +1 -0
  154. package/dist/globals/Integrations.d.ts +8 -0
  155. package/dist/globals/Integrations.d.ts.map +1 -0
  156. package/dist/globals/Integrations.js +270 -0
  157. package/dist/globals/Integrations.js.map +1 -0
  158. package/dist/globals/SiteSettings.d.ts +8 -0
  159. package/dist/globals/SiteSettings.d.ts.map +1 -0
  160. package/dist/globals/SiteSettings.js +258 -0
  161. package/dist/globals/SiteSettings.js.map +1 -0
  162. package/dist/globals/ThemeSettings.d.ts +11 -0
  163. package/dist/globals/ThemeSettings.d.ts.map +1 -0
  164. package/dist/globals/ThemeSettings.js +92 -0
  165. package/dist/globals/ThemeSettings.js.map +1 -0
  166. package/dist/globals/index.d.ts +5 -0
  167. package/dist/globals/index.d.ts.map +1 -0
  168. package/dist/globals/index.js +6 -0
  169. package/dist/globals/index.js.map +1 -0
  170. package/dist/index.d.ts +9 -0
  171. package/dist/index.d.ts.map +1 -0
  172. package/dist/index.js +14 -0
  173. package/dist/index.js.map +1 -0
  174. package/dist/logging/index.d.ts +73 -0
  175. package/dist/logging/index.d.ts.map +1 -0
  176. package/dist/logging/index.js +190 -0
  177. package/dist/logging/index.js.map +1 -0
  178. package/dist/nextjs/BlockRenderer.d.ts +227 -0
  179. package/dist/nextjs/BlockRenderer.d.ts.map +1 -0
  180. package/dist/nextjs/BlockRenderer.js +358 -0
  181. package/dist/nextjs/BlockRenderer.js.map +1 -0
  182. package/dist/nextjs/ClientHomePage.d.ts +6 -0
  183. package/dist/nextjs/ClientHomePage.d.ts.map +1 -0
  184. package/dist/nextjs/ClientHomePage.js +17 -0
  185. package/dist/nextjs/ClientHomePage.js.map +1 -0
  186. package/dist/nextjs/ClientSideQwickApp.d.ts +23 -0
  187. package/dist/nextjs/ClientSideQwickApp.d.ts.map +1 -0
  188. package/dist/nextjs/ClientSideQwickApp.js +50 -0
  189. package/dist/nextjs/ClientSideQwickApp.js.map +1 -0
  190. package/dist/nextjs/DynamicQwickApp.d.ts +9 -0
  191. package/dist/nextjs/DynamicQwickApp.d.ts.map +1 -0
  192. package/dist/nextjs/DynamicQwickApp.js +19 -0
  193. package/dist/nextjs/DynamicQwickApp.js.map +1 -0
  194. package/dist/nextjs/FooterFromSettings.d.ts +6 -0
  195. package/dist/nextjs/FooterFromSettings.d.ts.map +1 -0
  196. package/dist/nextjs/FooterFromSettings.js +72 -0
  197. package/dist/nextjs/FooterFromSettings.js.map +1 -0
  198. package/dist/nextjs/FormBlockComponent.d.ts +25 -0
  199. package/dist/nextjs/FormBlockComponent.d.ts.map +1 -0
  200. package/dist/nextjs/FormBlockComponent.js +110 -0
  201. package/dist/nextjs/FormBlockComponent.js.map +1 -0
  202. package/dist/nextjs/HomePageContent.d.ts +6 -0
  203. package/dist/nextjs/HomePageContent.d.ts.map +1 -0
  204. package/dist/nextjs/HomePageContent.js +50 -0
  205. package/dist/nextjs/HomePageContent.js.map +1 -0
  206. package/dist/nextjs/LivePreviewClient.d.ts +40 -0
  207. package/dist/nextjs/LivePreviewClient.d.ts.map +1 -0
  208. package/dist/nextjs/LivePreviewClient.js +35 -0
  209. package/dist/nextjs/LivePreviewClient.js.map +1 -0
  210. package/dist/nextjs/RefreshRouteOnSave.d.ts +31 -0
  211. package/dist/nextjs/RefreshRouteOnSave.d.ts.map +1 -0
  212. package/dist/nextjs/RefreshRouteOnSave.js +59 -0
  213. package/dist/nextjs/RefreshRouteOnSave.js.map +1 -0
  214. package/dist/nextjs/ScriptsInjector.d.ts +2 -0
  215. package/dist/nextjs/ScriptsInjector.d.ts.map +1 -0
  216. package/dist/nextjs/ScriptsInjector.js +73 -0
  217. package/dist/nextjs/ScriptsInjector.js.map +1 -0
  218. package/dist/nextjs/ServerQwickApp.d.ts +13 -0
  219. package/dist/nextjs/ServerQwickApp.d.ts.map +1 -0
  220. package/dist/nextjs/ServerQwickApp.js +159 -0
  221. package/dist/nextjs/ServerQwickApp.js.map +1 -0
  222. package/dist/nextjs/SettingsProvider.d.ts +110 -0
  223. package/dist/nextjs/SettingsProvider.d.ts.map +1 -0
  224. package/dist/nextjs/SettingsProvider.js +107 -0
  225. package/dist/nextjs/SettingsProvider.js.map +1 -0
  226. package/dist/nextjs/SiteLogo.d.ts +35 -0
  227. package/dist/nextjs/SiteLogo.d.ts.map +1 -0
  228. package/dist/nextjs/SiteLogo.js +105 -0
  229. package/dist/nextjs/SiteLogo.js.map +1 -0
  230. package/dist/nextjs/framework.d.ts +19 -0
  231. package/dist/nextjs/framework.d.ts.map +1 -0
  232. package/dist/nextjs/framework.js +35 -0
  233. package/dist/nextjs/framework.js.map +1 -0
  234. package/dist/nextjs/index.d.ts +38 -0
  235. package/dist/nextjs/index.d.ts.map +1 -0
  236. package/dist/nextjs/index.js +47 -0
  237. package/dist/nextjs/index.js.map +1 -0
  238. package/dist/nextjs/metadata.d.ts +20 -0
  239. package/dist/nextjs/metadata.d.ts.map +1 -0
  240. package/dist/nextjs/metadata.js +107 -0
  241. package/dist/nextjs/metadata.js.map +1 -0
  242. package/dist/plugins/index.d.ts +2 -0
  243. package/dist/plugins/index.d.ts.map +1 -0
  244. package/dist/plugins/index.js +3 -0
  245. package/dist/plugins/index.js.map +1 -0
  246. package/dist/plugins/qwickapps-plugin.d.ts +78 -0
  247. package/dist/plugins/qwickapps-plugin.d.ts.map +1 -0
  248. package/dist/plugins/qwickapps-plugin.js +154 -0
  249. package/dist/plugins/qwickapps-plugin.js.map +1 -0
  250. package/dist/providers/PayloadDataProvider.d.ts +72 -0
  251. package/dist/providers/PayloadDataProvider.d.ts.map +1 -0
  252. package/dist/providers/PayloadDataProvider.js +222 -0
  253. package/dist/providers/PayloadDataProvider.js.map +1 -0
  254. package/dist/providers/index.d.ts +2 -0
  255. package/dist/providers/index.d.ts.map +1 -0
  256. package/dist/providers/index.js +3 -0
  257. package/dist/providers/index.js.map +1 -0
  258. package/dist/styles/admin-theme.css +352 -0
  259. package/package.json +104 -0
@@ -0,0 +1,308 @@
1
+ /**
2
+ * Forms Collection
3
+ *
4
+ * Central repository for reusable form definitions.
5
+ * Forms can be referenced from Form blocks across multiple pages.
6
+ *
7
+ * AI-First Design:
8
+ * - REST API: /api/forms (GET, POST, PUT, DELETE)
9
+ * - Form submission: /api/forms/:id/submit
10
+ * - Analytics: /api/forms/:id/submissions
11
+ *
12
+ * Copyright (c) 2025 QwickApps.com. All rights reserved.
13
+ */
14
+ export const Forms = {
15
+ slug: 'forms',
16
+ admin: {
17
+ useAsTitle: 'formName',
18
+ defaultColumns: ['formName', 'description', 'createdAt', 'updatedAt'],
19
+ group: 'Forms',
20
+ description: 'Create and manage reusable forms that can be used across your site',
21
+ listSearchableFields: ['formName', 'title', 'description'],
22
+ },
23
+ labels: {
24
+ singular: 'Form',
25
+ plural: 'Forms',
26
+ },
27
+ access: {
28
+ read: () => true, // Public forms can be read by anyone
29
+ create: ({ req: { user } }) => !!user,
30
+ update: ({ req: { user } }) => !!user,
31
+ delete: ({ req: { user } }) => !!user,
32
+ },
33
+ fields: [
34
+ {
35
+ name: 'formName',
36
+ type: 'text',
37
+ required: true,
38
+ unique: true,
39
+ admin: {
40
+ description: 'Unique identifier for this form (e.g., "contact-form", "newsletter-signup")',
41
+ },
42
+ },
43
+ {
44
+ name: 'title',
45
+ type: 'text',
46
+ required: true,
47
+ admin: {
48
+ description: 'Display title for the form',
49
+ },
50
+ },
51
+ {
52
+ name: 'description',
53
+ type: 'textarea',
54
+ admin: {
55
+ description: 'Optional description shown above the form',
56
+ },
57
+ },
58
+ {
59
+ name: 'fields',
60
+ type: 'array',
61
+ label: 'Form Fields',
62
+ minRows: 1,
63
+ required: true,
64
+ admin: {
65
+ description: 'Define the fields for this form',
66
+ components: {
67
+ RowLabel: {
68
+ path: '/src/admin/components/FormFieldRowLabel#FormFieldRowLabel',
69
+ clientProps: {},
70
+ },
71
+ },
72
+ },
73
+ fields: [
74
+ {
75
+ name: 'fieldName',
76
+ type: 'text',
77
+ required: true,
78
+ admin: {
79
+ description: 'Internal field name (e.g., "email", "firstName") - must be unique within form',
80
+ },
81
+ },
82
+ {
83
+ name: 'label',
84
+ type: 'text',
85
+ required: true,
86
+ admin: {
87
+ description: 'Label displayed to users',
88
+ },
89
+ },
90
+ {
91
+ name: 'inputType',
92
+ type: 'select',
93
+ required: true,
94
+ defaultValue: 'text',
95
+ options: [
96
+ { label: 'Text', value: 'text' },
97
+ { label: 'Email', value: 'email' },
98
+ { label: 'Phone', value: 'tel' },
99
+ { label: 'Number', value: 'number' },
100
+ { label: 'Multiline Text', value: 'textarea' },
101
+ { label: 'Select Dropdown', value: 'select' },
102
+ { label: 'Checkbox', value: 'checkbox' },
103
+ ],
104
+ },
105
+ {
106
+ name: 'required',
107
+ type: 'checkbox',
108
+ defaultValue: false,
109
+ admin: {
110
+ description: 'Make this field required',
111
+ },
112
+ },
113
+ {
114
+ name: 'placeholder',
115
+ type: 'text',
116
+ admin: {
117
+ description: 'Placeholder text shown in the input',
118
+ },
119
+ },
120
+ {
121
+ name: 'options',
122
+ type: 'array',
123
+ label: 'Options (for select fields)',
124
+ admin: {
125
+ description: 'Options for select dropdown fields',
126
+ condition: (data, siblingData) => siblingData?.inputType === 'select',
127
+ },
128
+ fields: [
129
+ {
130
+ name: 'label',
131
+ type: 'text',
132
+ required: true,
133
+ },
134
+ {
135
+ name: 'value',
136
+ type: 'text',
137
+ required: true,
138
+ },
139
+ ],
140
+ },
141
+ {
142
+ name: 'validation',
143
+ type: 'group',
144
+ label: 'Validation Rules',
145
+ admin: {
146
+ description: 'Additional validation rules for this field',
147
+ },
148
+ fields: [
149
+ {
150
+ name: 'minLength',
151
+ type: 'number',
152
+ admin: {
153
+ description: 'Minimum character length',
154
+ condition: (data, siblingData) => ['text', 'email', 'tel', 'textarea'].includes(siblingData?.inputType),
155
+ },
156
+ },
157
+ {
158
+ name: 'maxLength',
159
+ type: 'number',
160
+ admin: {
161
+ description: 'Maximum character length',
162
+ condition: (data, siblingData) => ['text', 'email', 'tel', 'textarea'].includes(siblingData?.inputType),
163
+ },
164
+ },
165
+ {
166
+ name: 'min',
167
+ type: 'number',
168
+ admin: {
169
+ description: 'Minimum value',
170
+ condition: (data, siblingData) => siblingData?.inputType === 'number',
171
+ },
172
+ },
173
+ {
174
+ name: 'max',
175
+ type: 'number',
176
+ admin: {
177
+ description: 'Maximum value',
178
+ condition: (data, siblingData) => siblingData?.inputType === 'number',
179
+ },
180
+ },
181
+ {
182
+ name: 'pattern',
183
+ type: 'text',
184
+ admin: {
185
+ description: 'Regular expression pattern for validation (e.g., [0-9]{3}-[0-9]{4} for phone)',
186
+ condition: (data, siblingData) => ['text', 'email', 'tel'].includes(siblingData?.inputType),
187
+ },
188
+ },
189
+ {
190
+ name: 'errorMessage',
191
+ type: 'text',
192
+ admin: {
193
+ description: 'Custom error message shown when validation fails',
194
+ },
195
+ },
196
+ ],
197
+ },
198
+ ],
199
+ },
200
+ {
201
+ name: 'submitButtonText',
202
+ type: 'text',
203
+ defaultValue: 'Submit',
204
+ admin: {
205
+ description: 'Text displayed on the submit button',
206
+ },
207
+ },
208
+ {
209
+ name: 'successMessage',
210
+ type: 'text',
211
+ defaultValue: 'Thank you for your submission!',
212
+ admin: {
213
+ description: 'Message shown after successful submission',
214
+ },
215
+ },
216
+ {
217
+ name: 'redirectUrl',
218
+ type: 'text',
219
+ admin: {
220
+ description: 'Optional URL to redirect to after successful submission (leave empty to show success message)',
221
+ },
222
+ },
223
+ {
224
+ name: 'notifications',
225
+ type: 'group',
226
+ label: 'Email Notifications',
227
+ admin: {
228
+ description: 'Configure email notifications for form submissions',
229
+ },
230
+ fields: [
231
+ {
232
+ name: 'enabled',
233
+ type: 'checkbox',
234
+ defaultValue: false,
235
+ label: 'Enable Email Notifications',
236
+ },
237
+ {
238
+ name: 'recipients',
239
+ type: 'text',
240
+ admin: {
241
+ description: 'Comma-separated list of email addresses to notify',
242
+ condition: (data, siblingData) => siblingData?.enabled === true,
243
+ },
244
+ },
245
+ {
246
+ name: 'subject',
247
+ type: 'text',
248
+ defaultValue: 'New Form Submission',
249
+ admin: {
250
+ condition: (data, siblingData) => siblingData?.enabled === true,
251
+ },
252
+ },
253
+ {
254
+ name: 'replyTo',
255
+ type: 'text',
256
+ admin: {
257
+ description: 'Field name to use for reply-to email (e.g., "email")',
258
+ condition: (data, siblingData) => siblingData?.enabled === true,
259
+ },
260
+ },
261
+ ],
262
+ },
263
+ {
264
+ name: 'settings',
265
+ type: 'group',
266
+ label: 'Form Settings',
267
+ fields: [
268
+ {
269
+ name: 'allowMultipleSubmissions',
270
+ type: 'checkbox',
271
+ defaultValue: true,
272
+ admin: {
273
+ description: 'Allow users to submit this form multiple times',
274
+ },
275
+ },
276
+ {
277
+ name: 'requireAuth',
278
+ type: 'checkbox',
279
+ defaultValue: false,
280
+ admin: {
281
+ description: 'Require users to be logged in to submit',
282
+ },
283
+ },
284
+ {
285
+ name: 'enableCaptcha',
286
+ type: 'checkbox',
287
+ defaultValue: false,
288
+ admin: {
289
+ description: 'Enable CAPTCHA protection (requires configuration)',
290
+ },
291
+ },
292
+ {
293
+ name: 'storeSubmissions',
294
+ type: 'checkbox',
295
+ defaultValue: true,
296
+ admin: {
297
+ description: 'Store submissions in the database',
298
+ },
299
+ },
300
+ ],
301
+ },
302
+ ],
303
+ timestamps: true,
304
+ versions: {
305
+ drafts: true,
306
+ },
307
+ };
308
+ //# sourceMappingURL=Forms.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Forms.js","sourceRoot":"","sources":["../../src/collections/Forms.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { CollectionConfig } from 'payload';
2
+ export declare const HeroBlocks: CollectionConfig;
3
+ //# sourceMappingURL=HeroBlocks.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HeroBlocks.d.ts","sourceRoot":"","sources":["../../src/collections/HeroBlocks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAEhD,eAAO,MAAM,UAAU,EAAE,gBAiHxB,CAAC"}
@@ -0,0 +1,115 @@
1
+ export const HeroBlocks = {
2
+ slug: 'hero-blocks',
3
+ admin: {
4
+ useAsTitle: 'title',
5
+ defaultColumns: ['title', 'subtitle', 'height'],
6
+ group: 'Content',
7
+ },
8
+ access: {
9
+ read: () => true,
10
+ create: () => true, // Temporarily allow public create for POC
11
+ update: () => true,
12
+ delete: () => true,
13
+ },
14
+ fields: [
15
+ {
16
+ name: 'title',
17
+ type: 'text',
18
+ required: true,
19
+ admin: {
20
+ description: 'Main hero title text',
21
+ },
22
+ },
23
+ {
24
+ name: 'subtitle',
25
+ type: 'textarea',
26
+ admin: {
27
+ description: 'Hero subtitle or description',
28
+ },
29
+ },
30
+ {
31
+ name: 'height',
32
+ type: 'select',
33
+ defaultValue: 'medium',
34
+ options: [
35
+ {
36
+ label: 'Small',
37
+ value: 'small',
38
+ },
39
+ {
40
+ label: 'Medium',
41
+ value: 'medium',
42
+ },
43
+ {
44
+ label: 'Large',
45
+ value: 'large',
46
+ },
47
+ {
48
+ label: 'Full',
49
+ value: 'full',
50
+ },
51
+ ],
52
+ },
53
+ {
54
+ name: 'backgroundGradient',
55
+ type: 'text',
56
+ admin: {
57
+ description: 'CSS gradient string for background (e.g., linear-gradient(135deg, #667eea 0%, #764ba2 100%))',
58
+ },
59
+ },
60
+ {
61
+ name: 'backgroundImage',
62
+ type: 'upload',
63
+ relationTo: 'media',
64
+ admin: {
65
+ description: 'Optional background image (overrides gradient)',
66
+ },
67
+ },
68
+ {
69
+ name: 'textAlign',
70
+ type: 'select',
71
+ defaultValue: 'center',
72
+ options: [
73
+ { label: 'Left', value: 'left' },
74
+ { label: 'Center', value: 'center' },
75
+ { label: 'Right', value: 'right' },
76
+ ],
77
+ },
78
+ {
79
+ name: 'ctaButtons',
80
+ type: 'array',
81
+ fields: [
82
+ {
83
+ name: 'text',
84
+ type: 'text',
85
+ required: true,
86
+ },
87
+ {
88
+ name: 'link',
89
+ type: 'text',
90
+ required: true,
91
+ },
92
+ {
93
+ name: 'variant',
94
+ type: 'select',
95
+ defaultValue: 'contained',
96
+ options: [
97
+ { label: 'Contained', value: 'contained' },
98
+ { label: 'Outlined', value: 'outlined' },
99
+ { label: 'Text', value: 'text' },
100
+ ],
101
+ },
102
+ {
103
+ name: 'color',
104
+ type: 'select',
105
+ defaultValue: 'primary',
106
+ options: [
107
+ { label: 'Primary', value: 'primary' },
108
+ { label: 'Secondary', value: 'secondary' },
109
+ ],
110
+ },
111
+ ],
112
+ },
113
+ ],
114
+ };
115
+ //# sourceMappingURL=HeroBlocks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HeroBlocks.js","sourceRoot":"","sources":["../../src/collections/HeroBlocks.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,UAAU,GAAqB;IAC1C,IAAI,EAAE,aAAa;IACnB,KAAK,EAAE;QACL,UAAU,EAAE,OAAO;QACnB,cAAc,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,QAAQ,CAAC;QAC/C,KAAK,EAAE,SAAS;KACjB;IACD,MAAM,EAAE;QACN,IAAI,EAAE,GAAG,EAAE,CAAC,IAAI;QAChB,MAAM,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,0CAA0C;QAC9D,MAAM,EAAE,GAAG,EAAE,CAAC,IAAI;QAClB,MAAM,EAAE,GAAG,EAAE,CAAC,IAAI;KACnB;IACD,MAAM,EAAE;QACN;YACE,IAAI,EAAE,OAAO;YACb,IAAI,EAAE,MAAM;YACZ,QAAQ,EAAE,IAAI;YACd,KAAK,EAAE;gBACL,WAAW,EAAE,sBAAsB;aACpC;SACF;QACD;YACE,IAAI,EAAE,UAAU;YAChB,IAAI,EAAE,UAAU;YAChB,KAAK,EAAE;gBACL,WAAW,EAAE,8BAA8B;aAC5C;SACF;QACD;YACE,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,QAAQ;YACd,YAAY,EAAE,QAAQ;YACtB,OAAO,EAAE;gBACP;oBACE,KAAK,EAAE,OAAO;oBACd,KAAK,EAAE,OAAO;iBACf;gBACD;oBACE,KAAK,EAAE,QAAQ;oBACf,KAAK,EAAE,QAAQ;iBAChB;gBACD;oBACE,KAAK,EAAE,OAAO;oBACd,KAAK,EAAE,OAAO;iBACf;gBACD;oBACE,KAAK,EAAE,MAAM;oBACb,KAAK,EAAE,MAAM;iBACd;aACF;SACF;QACD;YACE,IAAI,EAAE,oBAAoB;YAC1B,IAAI,EAAE,MAAM;YACZ,KAAK,EAAE;gBACL,WAAW,EAAE,8FAA8F;aAC5G;SACF;QACD;YACE,IAAI,EAAE,iBAAiB;YACvB,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE,OAAO;YACnB,KAAK,EAAE;gBACL,WAAW,EAAE,gDAAgD;aAC9D;SACF;QACD;YACE,IAAI,EAAE,WAAW;YACjB,IAAI,EAAE,QAAQ;YACd,YAAY,EAAE,QAAQ;YACtB,OAAO,EAAE;gBACP,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE;gBAChC,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE;gBACpC,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE;aACnC;SACF;QACD;YACE,IAAI,EAAE,YAAY;YAClB,IAAI,EAAE,OAAO;YACb,MAAM,EAAE;gBACN;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,MAAM;oBACZ,QAAQ,EAAE,IAAI;iBACf;gBACD;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,MAAM;oBACZ,QAAQ,EAAE,IAAI;iBACf;gBACD;oBACE,IAAI,EAAE,SAAS;oBACf,IAAI,EAAE,QAAQ;oBACd,YAAY,EAAE,WAAW;oBACzB,OAAO,EAAE;wBACP,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,WAAW,EAAE;wBAC1C,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE;wBACxC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE;qBACjC;iBACF;gBACD;oBACE,IAAI,EAAE,OAAO;oBACb,IAAI,EAAE,QAAQ;oBACd,YAAY,EAAE,SAAS;oBACvB,OAAO,EAAE;wBACP,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE;wBACtC,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,WAAW,EAAE;qBAC3C;iBACF;aACF;SACF;KACF;CACF,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { CollectionConfig } from 'payload';
2
+ export declare const Media: CollectionConfig;
3
+ //# sourceMappingURL=Media.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Media.d.ts","sourceRoot":"","sources":["../../src/collections/Media.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAEhD,eAAO,MAAM,KAAK,EAAE,gBAwBnB,CAAC"}
@@ -0,0 +1,26 @@
1
+ export const Media = {
2
+ slug: 'media',
3
+ upload: {
4
+ staticDir: 'media',
5
+ mimeTypes: ['image/*', 'video/*', 'application/pdf'],
6
+ },
7
+ admin: {
8
+ useAsTitle: 'filename',
9
+ group: 'Media',
10
+ },
11
+ access: {
12
+ read: () => true,
13
+ },
14
+ fields: [
15
+ {
16
+ name: 'alt',
17
+ type: 'text',
18
+ required: true,
19
+ },
20
+ {
21
+ name: 'caption',
22
+ type: 'textarea',
23
+ },
24
+ ],
25
+ };
26
+ //# sourceMappingURL=Media.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Media.js","sourceRoot":"","sources":["../../src/collections/Media.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,KAAK,GAAqB;IACrC,IAAI,EAAE,OAAO;IACb,MAAM,EAAE;QACN,SAAS,EAAE,OAAO;QAClB,SAAS,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,iBAAiB,CAAC;KACrD;IACD,KAAK,EAAE;QACL,UAAU,EAAE,UAAU;QACtB,KAAK,EAAE,OAAO;KACf;IACD,MAAM,EAAE;QACN,IAAI,EAAE,GAAG,EAAE,CAAC,IAAI;KACjB;IACD,MAAM,EAAE;QACN;YACE,IAAI,EAAE,KAAK;YACX,IAAI,EAAE,MAAM;YACZ,QAAQ,EAAE,IAAI;SACf;QACD;YACE,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,UAAU;SACjB;KACF;CACF,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { CollectionConfig } from 'payload';
2
+ export declare const Navigation: CollectionConfig;
3
+ //# sourceMappingURL=Navigation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Navigation.d.ts","sourceRoot":"","sources":["../../src/collections/Navigation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAEhD,eAAO,MAAM,UAAU,EAAE,gBAwGxB,CAAC"}
@@ -0,0 +1,106 @@
1
+ export const Navigation = {
2
+ slug: 'navigation',
3
+ admin: {
4
+ useAsTitle: 'name',
5
+ defaultColumns: ['name', 'position', 'updatedAt'],
6
+ group: 'Content',
7
+ },
8
+ access: {
9
+ read: () => true,
10
+ create: () => true,
11
+ update: () => true,
12
+ delete: () => true,
13
+ },
14
+ fields: [
15
+ {
16
+ name: 'name',
17
+ type: 'text',
18
+ required: true,
19
+ admin: {
20
+ description: 'Internal name for this navigation menu (e.g., "Main Menu", "Footer Menu")',
21
+ },
22
+ },
23
+ {
24
+ name: 'position',
25
+ type: 'select',
26
+ required: true,
27
+ defaultValue: 'main',
28
+ options: [
29
+ {
30
+ label: 'Main Navigation',
31
+ value: 'main',
32
+ },
33
+ {
34
+ label: 'Footer Navigation',
35
+ value: 'footer',
36
+ },
37
+ {
38
+ label: 'Mobile Menu',
39
+ value: 'mobile',
40
+ },
41
+ ],
42
+ },
43
+ {
44
+ name: 'items',
45
+ type: 'array',
46
+ label: 'Navigation Items',
47
+ required: true,
48
+ admin: {
49
+ components: {
50
+ RowLabel: {
51
+ path: '/src/admin/components/NavigationItemRowLabel#NavigationItemRowLabel',
52
+ clientProps: {},
53
+ },
54
+ },
55
+ },
56
+ fields: [
57
+ {
58
+ name: 'label',
59
+ type: 'text',
60
+ required: true,
61
+ },
62
+ {
63
+ name: 'route',
64
+ type: 'text',
65
+ required: true,
66
+ admin: {
67
+ description: 'URL path (e.g., "/" or "/pages/about")',
68
+ },
69
+ },
70
+ {
71
+ name: 'icon',
72
+ type: 'text',
73
+ admin: {
74
+ description: 'Icon name (optional)',
75
+ },
76
+ },
77
+ {
78
+ name: 'children',
79
+ type: 'array',
80
+ label: 'Sub-menu Items',
81
+ admin: {
82
+ components: {
83
+ RowLabel: {
84
+ path: '/src/admin/components/NavigationSubItemRowLabel#NavigationSubItemRowLabel',
85
+ clientProps: {},
86
+ },
87
+ },
88
+ },
89
+ fields: [
90
+ {
91
+ name: 'label',
92
+ type: 'text',
93
+ required: true,
94
+ },
95
+ {
96
+ name: 'route',
97
+ type: 'text',
98
+ required: true,
99
+ },
100
+ ],
101
+ },
102
+ ],
103
+ },
104
+ ],
105
+ };
106
+ //# sourceMappingURL=Navigation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Navigation.js","sourceRoot":"","sources":["../../src/collections/Navigation.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,UAAU,GAAqB;IAC1C,IAAI,EAAE,YAAY;IAClB,KAAK,EAAE;QACL,UAAU,EAAE,MAAM;QAClB,cAAc,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,WAAW,CAAC;QACjD,KAAK,EAAE,SAAS;KACjB;IACD,MAAM,EAAE;QACN,IAAI,EAAE,GAAG,EAAE,CAAC,IAAI;QAChB,MAAM,EAAE,GAAG,EAAE,CAAC,IAAI;QAClB,MAAM,EAAE,GAAG,EAAE,CAAC,IAAI;QAClB,MAAM,EAAE,GAAG,EAAE,CAAC,IAAI;KACnB;IACD,MAAM,EAAE;QACN;YACE,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,MAAM;YACZ,QAAQ,EAAE,IAAI;YACd,KAAK,EAAE;gBACL,WAAW,EAAE,2EAA2E;aACzF;SACF;QACD;YACE,IAAI,EAAE,UAAU;YAChB,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,IAAI;YACd,YAAY,EAAE,MAAM;YACpB,OAAO,EAAE;gBACP;oBACE,KAAK,EAAE,iBAAiB;oBACxB,KAAK,EAAE,MAAM;iBACd;gBACD;oBACE,KAAK,EAAE,mBAAmB;oBAC1B,KAAK,EAAE,QAAQ;iBAChB;gBACD;oBACE,KAAK,EAAE,aAAa;oBACpB,KAAK,EAAE,QAAQ;iBAChB;aACF;SACF;QACD;YACE,IAAI,EAAE,OAAO;YACb,IAAI,EAAE,OAAO;YACb,KAAK,EAAE,kBAAkB;YACzB,QAAQ,EAAE,IAAI;YACd,KAAK,EAAE;gBACL,UAAU,EAAE;oBACV,QAAQ,EAAE;wBACR,IAAI,EAAE,qEAAqE;wBAC3E,WAAW,EAAE,EAAE;qBAChB;iBACF;aACF;YACD,MAAM,EAAE;gBACN;oBACE,IAAI,EAAE,OAAO;oBACb,IAAI,EAAE,MAAM;oBACZ,QAAQ,EAAE,IAAI;iBACf;gBACD;oBACE,IAAI,EAAE,OAAO;oBACb,IAAI,EAAE,MAAM;oBACZ,QAAQ,EAAE,IAAI;oBACd,KAAK,EAAE;wBACL,WAAW,EAAE,wCAAwC;qBACtD;iBACF;gBACD;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,MAAM;oBACZ,KAAK,EAAE;wBACL,WAAW,EAAE,sBAAsB;qBACpC;iBACF;gBACD;oBACE,IAAI,EAAE,UAAU;oBAChB,IAAI,EAAE,OAAO;oBACb,KAAK,EAAE,gBAAgB;oBACvB,KAAK,EAAE;wBACL,UAAU,EAAE;4BACV,QAAQ,EAAE;gCACR,IAAI,EAAE,2EAA2E;gCACjF,WAAW,EAAE,EAAE;6BAChB;yBACF;qBACF;oBACD,MAAM,EAAE;wBACN;4BACE,IAAI,EAAE,OAAO;4BACb,IAAI,EAAE,MAAM;4BACZ,QAAQ,EAAE,IAAI;yBACf;wBACD;4BACE,IAAI,EAAE,OAAO;4BACb,IAAI,EAAE,MAAM;4BACZ,QAAQ,EAAE,IAAI;yBACf;qBACF;iBACF;aACF;SACF;KACF;CACF,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { CollectionConfig } from 'payload';
2
+ export declare const Pages: CollectionConfig;
3
+ //# sourceMappingURL=Pages.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Pages.d.ts","sourceRoot":"","sources":["../../src/collections/Pages.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAGhD,eAAO,MAAM,KAAK,EAAE,gBA2FnB,CAAC"}