@agility/create-next-app 1.0.0-beta.2

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 (213) hide show
  1. package/.claude/settings.json +7 -0
  2. package/.claude/settings.local.json +24 -0
  3. package/FEATURE_ROADMAP.md +343 -0
  4. package/README.md +205 -0
  5. package/TESTING.md +131 -0
  6. package/bin/create-agility-app.js +48 -0
  7. package/dist/agility/api-keys/generateApiKeys.d.ts +9 -0
  8. package/dist/agility/api-keys/generateApiKeys.d.ts.map +1 -0
  9. package/dist/agility/api-keys/generateApiKeys.js +99 -0
  10. package/dist/agility/api-keys/generateApiKeys.js.map +1 -0
  11. package/dist/agility/api-keys/getApiKeys.d.ts +9 -0
  12. package/dist/agility/api-keys/getApiKeys.d.ts.map +1 -0
  13. package/dist/agility/api-keys/getApiKeys.js +14 -0
  14. package/dist/agility/api-keys/getApiKeys.js.map +1 -0
  15. package/dist/agility/index.d.ts +3 -0
  16. package/dist/agility/index.d.ts.map +1 -0
  17. package/dist/agility/index.js +8 -0
  18. package/dist/agility/index.js.map +1 -0
  19. package/dist/agility/instance/createNewInstance.d.ts +8 -0
  20. package/dist/agility/instance/createNewInstance.d.ts.map +1 -0
  21. package/dist/agility/instance/createNewInstance.js +65 -0
  22. package/dist/agility/instance/createNewInstance.js.map +1 -0
  23. package/dist/agility/instance/getAvailableInstances.d.ts +8 -0
  24. package/dist/agility/instance/getAvailableInstances.d.ts.map +1 -0
  25. package/dist/agility/instance/getAvailableInstances.js +43 -0
  26. package/dist/agility/instance/getAvailableInstances.js.map +1 -0
  27. package/dist/agility/instance/manageInstance.d.ts +9 -0
  28. package/dist/agility/instance/manageInstance.d.ts.map +1 -0
  29. package/dist/agility/instance/manageInstance.js +82 -0
  30. package/dist/agility/instance/manageInstance.js.map +1 -0
  31. package/dist/agility/utils/getMgmtAPIUrl.d.ts +20 -0
  32. package/dist/agility/utils/getMgmtAPIUrl.d.ts.map +1 -0
  33. package/dist/agility/utils/getMgmtAPIUrl.js +61 -0
  34. package/dist/agility/utils/getMgmtAPIUrl.js.map +1 -0
  35. package/dist/auth/api-key/authenticateWithApiKey.d.ts +6 -0
  36. package/dist/auth/api-key/authenticateWithApiKey.d.ts.map +1 -0
  37. package/dist/auth/api-key/authenticateWithApiKey.js +28 -0
  38. package/dist/auth/api-key/authenticateWithApiKey.js.map +1 -0
  39. package/dist/auth/index.d.ts +3 -0
  40. package/dist/auth/index.d.ts.map +1 -0
  41. package/dist/auth/index.js +8 -0
  42. package/dist/auth/index.js.map +1 -0
  43. package/dist/auth/oauth/authenticate.d.ts +6 -0
  44. package/dist/auth/oauth/authenticate.d.ts.map +1 -0
  45. package/dist/auth/oauth/authenticate.js +162 -0
  46. package/dist/auth/oauth/authenticate.js.map +1 -0
  47. package/dist/auth/oauth/constants.d.ts +5 -0
  48. package/dist/auth/oauth/constants.d.ts.map +1 -0
  49. package/dist/auth/oauth/constants.js +9 -0
  50. package/dist/auth/oauth/constants.js.map +1 -0
  51. package/dist/auth/oauth/exchangeCodeForToken.d.ts +7 -0
  52. package/dist/auth/oauth/exchangeCodeForToken.d.ts.map +1 -0
  53. package/dist/auth/oauth/exchangeCodeForToken.js +39 -0
  54. package/dist/auth/oauth/exchangeCodeForToken.js.map +1 -0
  55. package/dist/cli/index.d.ts +3 -0
  56. package/dist/cli/index.d.ts.map +1 -0
  57. package/dist/cli/index.js +290 -0
  58. package/dist/cli/index.js.map +1 -0
  59. package/dist/cli/promptForMissingOptions.d.ts +8 -0
  60. package/dist/cli/promptForMissingOptions.d.ts.map +1 -0
  61. package/dist/cli/promptForMissingOptions.js +92 -0
  62. package/dist/cli/promptForMissingOptions.js.map +1 -0
  63. package/dist/config/env/createEnvFile.d.ts +6 -0
  64. package/dist/config/env/createEnvFile.d.ts.map +1 -0
  65. package/dist/config/env/createEnvFile.js +31 -0
  66. package/dist/config/env/createEnvFile.js.map +1 -0
  67. package/dist/config/index.d.ts +2 -0
  68. package/dist/config/index.d.ts.map +1 -0
  69. package/dist/config/index.js +6 -0
  70. package/dist/config/index.js.map +1 -0
  71. package/dist/config/mcp/createMcpConfig.d.ts +5 -0
  72. package/dist/config/mcp/createMcpConfig.d.ts.map +1 -0
  73. package/dist/config/mcp/createMcpConfig.js +32 -0
  74. package/dist/config/mcp/createMcpConfig.js.map +1 -0
  75. package/dist/config/packages/installAgilityPackages.d.ts +6 -0
  76. package/dist/config/packages/installAgilityPackages.d.ts.map +1 -0
  77. package/dist/config/packages/installAgilityPackages.js +61 -0
  78. package/dist/config/packages/installAgilityPackages.js.map +1 -0
  79. package/dist/config/setupProject.d.ts +8 -0
  80. package/dist/config/setupProject.d.ts.map +1 -0
  81. package/dist/config/setupProject.js +32 -0
  82. package/dist/config/setupProject.js.map +1 -0
  83. package/dist/create-next-app/createNextApp.d.ts +9 -0
  84. package/dist/create-next-app/createNextApp.d.ts.map +1 -0
  85. package/dist/create-next-app/createNextApp.js +83 -0
  86. package/dist/create-next-app/createNextApp.js.map +1 -0
  87. package/dist/create-next-app/index.d.ts +3 -0
  88. package/dist/create-next-app/index.d.ts.map +1 -0
  89. package/dist/create-next-app/index.js +8 -0
  90. package/dist/create-next-app/index.js.map +1 -0
  91. package/dist/scaffold/components/createPageComponents.d.ts +6 -0
  92. package/dist/scaffold/components/createPageComponents.d.ts.map +1 -0
  93. package/dist/scaffold/components/createPageComponents.js +62 -0
  94. package/dist/scaffold/components/createPageComponents.js.map +1 -0
  95. package/dist/scaffold/containers/createContainers.d.ts +6 -0
  96. package/dist/scaffold/containers/createContainers.d.ts.map +1 -0
  97. package/dist/scaffold/containers/createContainers.js +48 -0
  98. package/dist/scaffold/containers/createContainers.js.map +1 -0
  99. package/dist/scaffold/index.d.ts +2 -0
  100. package/dist/scaffold/index.d.ts.map +1 -0
  101. package/dist/scaffold/index.js +6 -0
  102. package/dist/scaffold/index.js.map +1 -0
  103. package/dist/scaffold/instance/createBlankInstance.d.ts +8 -0
  104. package/dist/scaffold/instance/createBlankInstance.d.ts.map +1 -0
  105. package/dist/scaffold/instance/createBlankInstance.js +51 -0
  106. package/dist/scaffold/instance/createBlankInstance.js.map +1 -0
  107. package/dist/scaffold/models/createContentModels.d.ts +6 -0
  108. package/dist/scaffold/models/createContentModels.d.ts.map +1 -0
  109. package/dist/scaffold/models/createContentModels.js +70 -0
  110. package/dist/scaffold/models/createContentModels.js.map +1 -0
  111. package/dist/templates/copyDirectory.d.ts +5 -0
  112. package/dist/templates/copyDirectory.d.ts.map +1 -0
  113. package/dist/templates/copyDirectory.js +28 -0
  114. package/dist/templates/copyDirectory.js.map +1 -0
  115. package/dist/templates/copyTemplates.d.ts +8 -0
  116. package/dist/templates/copyTemplates.d.ts.map +1 -0
  117. package/dist/templates/copyTemplates.js +58 -0
  118. package/dist/templates/copyTemplates.js.map +1 -0
  119. package/dist/templates/index.d.ts +2 -0
  120. package/dist/templates/index.d.ts.map +1 -0
  121. package/dist/templates/index.js +6 -0
  122. package/dist/templates/index.js.map +1 -0
  123. package/dist/types/index.d.ts +50 -0
  124. package/dist/types/index.d.ts.map +1 -0
  125. package/dist/types/index.js +3 -0
  126. package/dist/types/index.js.map +1 -0
  127. package/dist/utils/git.d.ts +9 -0
  128. package/dist/utils/git.d.ts.map +1 -0
  129. package/dist/utils/git.js +71 -0
  130. package/dist/utils/git.js.map +1 -0
  131. package/dist/utils/validation.d.ts +45 -0
  132. package/dist/utils/validation.d.ts.map +1 -0
  133. package/dist/utils/validation.js +180 -0
  134. package/dist/utils/validation.js.map +1 -0
  135. package/package.json +45 -0
  136. package/src/agility/api-keys/generateApiKeys.ts +100 -0
  137. package/src/agility/api-keys/getApiKeys.ts +13 -0
  138. package/src/agility/index.ts +3 -0
  139. package/src/agility/instance/createNewInstance.ts +67 -0
  140. package/src/agility/instance/getAvailableInstances.ts +49 -0
  141. package/src/agility/instance/manageInstance.ts +90 -0
  142. package/src/agility/utils/getMgmtAPIUrl.ts +68 -0
  143. package/src/auth/api-key/authenticateWithApiKey.ts +24 -0
  144. package/src/auth/index.ts +3 -0
  145. package/src/auth/oauth/authenticate.ts +165 -0
  146. package/src/auth/oauth/constants.ts +6 -0
  147. package/src/auth/oauth/exchangeCodeForToken.ts +43 -0
  148. package/src/cli/index.ts +281 -0
  149. package/src/cli/promptForMissingOptions.ts +104 -0
  150. package/src/config/env/createEnvFile.ts +30 -0
  151. package/src/config/index.ts +2 -0
  152. package/src/config/mcp/createMcpConfig.ts +30 -0
  153. package/src/config/packages/installAgilityPackages.ts +63 -0
  154. package/src/config/setupProject.ts +31 -0
  155. package/src/create-next-app/createNextApp.ts +75 -0
  156. package/src/create-next-app/index.ts +3 -0
  157. package/src/scaffold/components/createPageComponents.ts +74 -0
  158. package/src/scaffold/containers/createContainers.ts +55 -0
  159. package/src/scaffold/index.ts +2 -0
  160. package/src/scaffold/instance/createBlankInstance.ts +55 -0
  161. package/src/scaffold/models/createContentModels.ts +83 -0
  162. package/src/templates/copyDirectory.ts +24 -0
  163. package/src/templates/copyTemplates.ts +57 -0
  164. package/src/templates/index.ts +2 -0
  165. package/src/types/index.ts +55 -0
  166. package/src/utils/git.ts +74 -0
  167. package/src/utils/validation.ts +184 -0
  168. package/templates/.claude/QUICK-START.md +230 -0
  169. package/templates/.claude/README.md +32 -0
  170. package/templates/.claude/settings.json +8 -0
  171. package/templates/BLANK-INSTANCE-SETUP.md +375 -0
  172. package/templates/DEVELOPMENT.md +160 -0
  173. package/templates/EXAMPLE-PROMPTS.md +643 -0
  174. package/templates/PROMPTS.md +410 -0
  175. package/templates/README.md +281 -0
  176. package/templates/agents.md +429 -0
  177. package/templates/app/[locale]/[...slug]/error.tsx +17 -0
  178. package/templates/app/[locale]/[...slug]/not-found.tsx +9 -0
  179. package/templates/app/[locale]/[...slug]/page.tsx +102 -0
  180. package/templates/app/[locale]/layout.tsx +22 -0
  181. package/templates/app/[locale]/page.tsx +12 -0
  182. package/templates/app/api/dynamic-redirect/route.ts +24 -0
  183. package/templates/app/api/preview/exit/route.ts +34 -0
  184. package/templates/app/api/preview/route.ts +63 -0
  185. package/templates/app/api/revalidate/route.ts +118 -0
  186. package/templates/components/agility-components/RichTextArea.tsx +66 -0
  187. package/templates/components/agility-components/index.ts +30 -0
  188. package/templates/components/agility-pages/MainTemplate.tsx +36 -0
  189. package/templates/components/agility-pages/index.ts +11 -0
  190. package/templates/docs/01-agility-cms-overview.md +139 -0
  191. package/templates/docs/02-page-routing.md +251 -0
  192. package/templates/docs/03-creating-components.md +462 -0
  193. package/templates/docs/04-data-fetching.md +484 -0
  194. package/templates/docs/05-containers-and-lists.md +596 -0
  195. package/templates/docs/06-localization.md +561 -0
  196. package/templates/docs/07-caching-strategies.md +410 -0
  197. package/templates/docs/08-common-components.md +756 -0
  198. package/templates/docs/09-whats-included.md +279 -0
  199. package/templates/docs/10-mcp-server-setup.md +153 -0
  200. package/templates/docs/11-linked-nested-content.md +611 -0
  201. package/templates/docs/README.md +164 -0
  202. package/templates/lib/cms/getAgilityContext.ts +28 -0
  203. package/templates/lib/cms/getAgilityPage.ts +51 -0
  204. package/templates/lib/cms/getAgilitySDK.ts +22 -0
  205. package/templates/lib/cms/getContentItem.ts +20 -0
  206. package/templates/lib/cms/getContentList.ts +19 -0
  207. package/templates/lib/cms/getRedirections.ts +85 -0
  208. package/templates/lib/cms/getSitemapFlat.ts +19 -0
  209. package/templates/lib/cms/getSitemapNested.ts +19 -0
  210. package/templates/lib/env.ts +99 -0
  211. package/templates/lib/i18n/config.ts +28 -0
  212. package/templates/proxy.ts +101 -0
  213. package/tsconfig.json +21 -0
@@ -0,0 +1,643 @@
1
+ # Example Prompts Library
2
+
3
+ Copy and customize these prompts to quickly build common website features with AI assistance.
4
+
5
+ ## 🏠 Homepage Components
6
+
7
+ ### Hero Section
8
+ ```
9
+ Create a Hero component for the homepage with the following:
10
+
11
+ Fields from Agility CMS (module reference name: "Hero"):
12
+ - heading (string)
13
+ - subheading (string)
14
+ - backgroundImage (ImageField)
15
+ - primaryCTA (object with text and href)
16
+ - secondaryCTA (object with text and href)
17
+
18
+ Layout:
19
+ - Full-width background image using AgilityPic
20
+ - Centered content with max-width container
21
+ - Heading: text-6xl font-bold
22
+ - Subheading: text-xl
23
+ - Buttons side by side on desktop, stacked on mobile
24
+ - Dark overlay (40% opacity) on background image
25
+ - Min-height: 600px desktop, 400px mobile
26
+
27
+ Styling:
28
+ - Primary CTA: blue background, white text, hover effect
29
+ - Secondary CTA: transparent with white border, hover effect
30
+ - Responsive: padding adjusts for mobile
31
+ ```
32
+
33
+ ### Features Grid
34
+ ```
35
+ Create a Features Grid component that displays key features:
36
+
37
+ Fields (module reference name: "FeaturesGrid"):
38
+ - heading (string)
39
+ - features (content list, referenceName from field)
40
+
41
+ Each feature item has:
42
+ - icon (ImageField)
43
+ - title (string)
44
+ - description (string)
45
+
46
+ Layout:
47
+ - 3-column grid on desktop, 2 on tablet, 1 on mobile
48
+ - Centered content
49
+ - Icon above title
50
+ - Card-style design with padding and border
51
+
52
+ Styling:
53
+ - Icons: 64x64px, centered
54
+ - Cards: light background, rounded corners, hover shadow effect
55
+ - Gap between cards: 2rem
56
+ ```
57
+
58
+ ### Testimonials Carousel
59
+ ```
60
+ Create a Testimonials Carousel component:
61
+
62
+ Fields (module reference name: "TestimonialsCarousel"):
63
+ - heading (string)
64
+ - testimonials (content list reference)
65
+
66
+ Each testimonial has:
67
+ - quote (string)
68
+ - author (string)
69
+ - title (string)
70
+ - company (string)
71
+ - photo (ImageField)
72
+
73
+ Layout:
74
+ - Display 1 testimonial at a time
75
+ - Auto-advance every 5 seconds
76
+ - Navigation: dots and arrow buttons
77
+ - Author photo: circular, 80px diameter
78
+ - Quote in large text with quotation marks styling
79
+
80
+ Use a client component for the carousel interaction.
81
+ ```
82
+
83
+ ## 📝 Blog Features
84
+
85
+ ### Blog Listing Page
86
+ ```
87
+ Create a Blog Listing component:
88
+
89
+ Data source: 'blogPosts' content list
90
+ Fields per post:
91
+ - title (string)
92
+ - slug (string)
93
+ - excerpt (string)
94
+ - featuredImage (ImageField)
95
+ - date (Date)
96
+ - author (object with name and photo)
97
+ - categories (array of objects with title and slug)
98
+
99
+ Layout:
100
+ - 3-column grid on desktop, 2 on tablet, 1 on mobile
101
+ - Show 9 posts per page
102
+ - Pagination with numbered buttons (show 5 pages max)
103
+ - Each card: featured image (16:9 ratio), title, excerpt (120 chars max), date, author name, category badges
104
+
105
+ Sorting: date descending (newest first)
106
+
107
+ Styling:
108
+ - Cards: white background, shadow, rounded corners, hover lift effect
109
+ - Images: cover the full card top, AgilityPic component
110
+ - Date: gray text, small
111
+ - Category badges: colored pills
112
+ ```
113
+
114
+ ### Blog Post Detail Page
115
+ ```
116
+ Create a Blog Post Detail component:
117
+
118
+ Data source: Fetch single post from 'blogPosts' by slug
119
+ Fields:
120
+ - title (string)
121
+ - content (HTML string)
122
+ - featuredImage (ImageField)
123
+ - date (Date)
124
+ - author (object with name, photo, bio)
125
+ - categories (array)
126
+
127
+ Layout:
128
+ - Hero section: featured image full-width
129
+ - Content container: max-width 768px, centered
130
+ - Title: h1, large font
131
+ - Author card: photo, name, bio, date below title
132
+ - Content: prose styling (good typography)
133
+ - Categories: badges above content
134
+ - Related posts section at bottom (3 posts, same category)
135
+
136
+ Styling:
137
+ - Prose: proper spacing, line-height, font sizes
138
+ - Author photo: circular, 48px
139
+ - Related posts: 3-column grid with smaller cards
140
+ ```
141
+
142
+ ### Category Filter
143
+ ```
144
+ Add category filtering to the Blog Listing component:
145
+
146
+ Requirements:
147
+ - Fetch all categories from 'categories' content list
148
+ - Display as filter buttons above the blog grid
149
+ - "All" button to show all posts
150
+ - Active category button highlighted
151
+ - Filter posts client-side or by refetching with category filter
152
+ - Show post count for each category
153
+
154
+ Layout:
155
+ - Horizontal button group, wraps on mobile
156
+ - Buttons: pill-shaped, hover and active states
157
+ - Position above the blog grid
158
+
159
+ Use client component for filtering interaction.
160
+ ```
161
+
162
+ ## 👥 Team & About
163
+
164
+ ### Team Members Grid
165
+ ```
166
+ Create a Team Members Grid component:
167
+
168
+ Data source: 'teamMembers' content list
169
+ Fields:
170
+ - name (string)
171
+ - title (string)
172
+ - bio (string)
173
+ - photo (ImageField)
174
+ - email (string)
175
+ - linkedIn (string)
176
+ - twitter (string)
177
+
178
+ Layout:
179
+ - 4-column grid on desktop, 2 on tablet, 1 on mobile
180
+ - Show all team members (no pagination)
181
+ - Photo above name/title
182
+ - Bio hidden by default, shows on hover (desktop) or below (mobile)
183
+ - Social icons link to profiles
184
+
185
+ Styling:
186
+ - Photos: circular, 160px diameter, grayscale on default, color on hover
187
+ - Cards: centered text, padding
188
+ - Bio: fade in on hover with overlay
189
+ - Social icons: small, horizontal row below bio
190
+ ```
191
+
192
+ ### Company Stats Section
193
+ ```
194
+ Create a Company Stats component:
195
+
196
+ Fields (module reference name: "CompanyStats"):
197
+ - stats (array of 4 stats objects)
198
+ Each stat has:
199
+ - number (string, e.g., "500+")
200
+ - label (string, e.g., "Happy Clients")
201
+ - icon (ImageField, optional)
202
+
203
+ Layout:
204
+ - 4 columns on desktop, 2 on tablet, 1 on mobile
205
+ - Numbers: very large, bold
206
+ - Labels: smaller, below numbers
207
+ - Optional icons above numbers
208
+ - Centered alignment
209
+
210
+ Styling:
211
+ - Numbers: 4xl font, gradient text
212
+ - Icons: 48px, accent color
213
+ - Background: light gray or gradient
214
+ - Padding: generous for visual impact
215
+ ```
216
+
217
+ ## 📧 Forms & Contact
218
+
219
+ ### Contact Form
220
+ ```
221
+ Create a Contact Form component:
222
+
223
+ Fields (module reference name: "ContactForm"):
224
+ - heading (string)
225
+ - submitButtonText (string)
226
+ - successMessage (string)
227
+
228
+ Form fields:
229
+ - Name (required, text)
230
+ - Email (required, email validation)
231
+ - Phone (optional, text)
232
+ - Subject (required, text)
233
+ - Message (required, textarea, min 10 chars)
234
+
235
+ Behavior:
236
+ - Client-side validation
237
+ - Display errors inline below each field
238
+ - On submit: call /api/contact endpoint
239
+ - Show success message or error message
240
+ - Clear form on success
241
+ - Disable submit button while submitting
242
+
243
+ Styling:
244
+ - Full-width inputs with borders
245
+ - Labels above inputs
246
+ - Error messages: red text
247
+ - Success message: green banner
248
+ - Submit button: primary color, hover effect
249
+ ```
250
+
251
+ ### Newsletter Signup
252
+ ```
253
+ Create a Newsletter Signup component:
254
+
255
+ Fields (module reference name: "Newsletter"):
256
+ - heading (string)
257
+ - description (string)
258
+ - buttonText (string)
259
+
260
+ Form:
261
+ - Email input (required, email validation)
262
+ - Subscribe button
263
+
264
+ Behavior:
265
+ - Client component for form handling
266
+ - Submit to newsletter service or API
267
+ - Show success message inline
268
+ - Error handling for invalid email or API errors
269
+
270
+ Layout:
271
+ - Horizontal layout: email input + button side by side
272
+ - Mobile: stacked layout
273
+ - Can be used in footer or as standalone section
274
+
275
+ Styling:
276
+ - Input and button same height
277
+ - Button attached to input (no gap)
278
+ - Primary color scheme
279
+ ```
280
+
281
+ ## 🎨 Content Sections
282
+
283
+ ### Image-Text Block
284
+ ```
285
+ Create an ImageTextBlock component:
286
+
287
+ Fields (module reference name: "ImageTextBlock"):
288
+ - heading (string)
289
+ - content (HTML string)
290
+ - image (ImageField)
291
+ - imagePosition (string: "left" or "right")
292
+ - ctaText (string, optional)
293
+ - ctaLink (string, optional)
294
+
295
+ Layout:
296
+ - 2-column grid: image and text side by side
297
+ - Image takes 40% width, text 60%
298
+ - Image position: left or right based on field
299
+ - Text: heading, content, optional CTA button
300
+ - Mobile: stacked, image always on top
301
+
302
+ Styling:
303
+ - Image: cover aspect ratio, rounded corners, use AgilityPic
304
+ - Text: proper spacing, readable typography
305
+ - CTA: button style, matches site theme
306
+ ```
307
+
308
+ ### FAQ Accordion
309
+ ```
310
+ Create an FAQ Accordion component:
311
+
312
+ Fields (module reference name: "FAQ"):
313
+ - heading (string)
314
+ - faqs (content list reference)
315
+
316
+ Each FAQ item has:
317
+ - question (string)
318
+ - answer (HTML string)
319
+
320
+ Behavior:
321
+ - Client component for accordion interaction
322
+ - Click question to expand/collapse answer
323
+ - One item open at a time (close others when opening)
324
+ - Smooth animation for expand/collapse
325
+ - Icon rotates when open (chevron or plus/minus)
326
+
327
+ Layout:
328
+ - Single column, full width
329
+ - Each item: border, padding
330
+ - Question: bold, pointer cursor
331
+ - Answer: normal text, proper spacing
332
+
333
+ Styling:
334
+ - Border between items
335
+ - Hover state on questions
336
+ - Active item highlighted
337
+ - Icon positioned on right
338
+ ```
339
+
340
+ ### Call to Action Banner
341
+ ```
342
+ Create a CTA Banner component:
343
+
344
+ Fields (module reference name: "CTABanner"):
345
+ - heading (string)
346
+ - description (string)
347
+ - buttonText (string)
348
+ - buttonLink (string)
349
+ - backgroundImage (ImageField, optional)
350
+ - backgroundColor (string, optional)
351
+
352
+ Layout:
353
+ - Full-width section
354
+ - Centered content with max-width container
355
+ - Heading and description stacked
356
+ - Button centered below text
357
+ - Optional background image with overlay
358
+
359
+ Styling:
360
+ - Large heading (3xl)
361
+ - Generous padding (120px vertical on desktop)
362
+ - Button: large, prominent
363
+ - Background: gradient or image with dark overlay for text contrast
364
+ ```
365
+
366
+ ## 🖼️ Media Components
367
+
368
+ ### Image Gallery Grid
369
+ ```
370
+ Create an Image Gallery Grid component:
371
+
372
+ Fields (module reference name: "ImageGallery"):
373
+ - heading (string)
374
+ - images (content list reference)
375
+
376
+ Each image has:
377
+ - image (ImageField)
378
+ - caption (string, optional)
379
+ - alt (string)
380
+
381
+ Layout:
382
+ - Masonry-style grid or equal-height grid
383
+ - 3 columns desktop, 2 tablet, 1 mobile
384
+ - Images clickable to open lightbox
385
+ - Caption appears on hover overlay
386
+
387
+ Behavior:
388
+ - Client component for lightbox
389
+ - Click image to view full size
390
+ - Next/prev navigation in lightbox
391
+ - Close button and ESC key to close
392
+ - Keyboard navigation (arrows)
393
+
394
+ Styling:
395
+ - Images: cover, rounded corners slightly
396
+ - Hover: zoom effect or brightness overlay
397
+ - Lightbox: dark background, centered image
398
+ ```
399
+
400
+ ### Video Embed Section
401
+ ```
402
+ Create a Video Embed component:
403
+
404
+ Fields (module reference name: "VideoEmbed"):
405
+ - heading (string)
406
+ - videoUrl (string - YouTube or Vimeo URL)
407
+ - thumbnail (ImageField, optional)
408
+ - description (string, optional)
409
+
410
+ Layout:
411
+ - Centered container, max-width
412
+ - Heading above video
413
+ - 16:9 aspect ratio video embed
414
+ - Optional description below
415
+
416
+ Behavior:
417
+ - Auto-detect YouTube/Vimeo and generate embed code
418
+ - Optional: custom thumbnail that plays video on click
419
+ - Responsive: full-width on mobile
420
+
421
+ Styling:
422
+ - Rounded corners on video
423
+ - Shadow for depth
424
+ - Play button overlay on thumbnail (if used)
425
+ ```
426
+
427
+ ## 🗺️ Navigation
428
+
429
+ ### Main Header/Navigation
430
+ ```
431
+ Create a Header component with navigation:
432
+
433
+ Data source: Agility sitemap for menu items
434
+
435
+ Features:
436
+ - Logo on left (from site settings or hard-coded)
437
+ - Horizontal menu center or right
438
+ - Mobile: hamburger menu
439
+ - Sticky header on scroll with background
440
+ - Active page highlighted
441
+ - Dropdown for submenus (if any)
442
+
443
+ Layout:
444
+ - Desktop: horizontal nav, logo left, menu right
445
+ - Mobile: hamburger icon, slide-out drawer menu
446
+
447
+ Behavior:
448
+ - Client component for mobile menu toggle
449
+ - Smooth scroll to top when clicking logo
450
+ - Close mobile menu on navigation
451
+ - Highlight current page based on URL
452
+
453
+ Styling:
454
+ - Clean, minimal design
455
+ - Logo: 48px height
456
+ - Menu items: hover underline effect
457
+ - Mobile menu: slide in from right, full height
458
+ - Backdrop overlay when mobile menu open
459
+ ```
460
+
461
+ ### Footer
462
+ ```
463
+ Create a Footer component:
464
+
465
+ Fields (module reference name: "Footer" or hard-coded):
466
+ - companyName (string)
467
+ - description (string)
468
+ - socialLinks (array of objects with platform and url)
469
+ - footerLinks (grouped by column)
470
+
471
+ Layout:
472
+ - 4-column grid: About, Quick Links, Resources, Contact
473
+ - Bottom row: copyright and legal links
474
+ - Social icons in About column
475
+
476
+ Content:
477
+ - Column 1: Logo, description, social icons
478
+ - Column 2-3: Links from sitemap or custom lists
479
+ - Column 4: Contact info or newsletter signup
480
+
481
+ Styling:
482
+ - Dark background (gray or brand color)
483
+ - Light text
484
+ - Generous padding
485
+ - Mobile: stack columns
486
+ - Subtle separator line above copyright
487
+ ```
488
+
489
+ ## 🛍️ E-commerce (Basic)
490
+
491
+ ### Product Grid
492
+ ```
493
+ Create a Product Grid component:
494
+
495
+ Data source: 'products' content list
496
+ Fields per product:
497
+ - name (string)
498
+ - slug (string)
499
+ - price (number)
500
+ - image (ImageField)
501
+ - category (object)
502
+ - inStock (boolean)
503
+
504
+ Layout:
505
+ - 4-column grid desktop, 3 tablet, 2 mobile
506
+ - Show 12 products per page
507
+ - Pagination
508
+ - Each card: image, name, price, "View Details" button
509
+ - "Out of Stock" badge if not inStock
510
+
511
+ Features:
512
+ - Filter by category (dropdown or buttons)
513
+ - Sort by: newest, price low-to-high, price high-to-low
514
+ - Price formatting (currency)
515
+
516
+ Styling:
517
+ - Cards: white, shadow, hover lift
518
+ - Images: 1:1 aspect ratio, AgilityPic
519
+ - Price: bold, accent color
520
+ - Out of stock: gray overlay on image
521
+ ```
522
+
523
+ ### Product Detail
524
+ ```
525
+ Create a Product Detail component:
526
+
527
+ Data source: Single product from 'products' by slug
528
+ Fields:
529
+ - name (string)
530
+ - description (HTML)
531
+ - price (number)
532
+ - images (array of ImageField)
533
+ - specifications (array of key-value pairs)
534
+ - inStock (boolean)
535
+ - category (object)
536
+ - relatedProducts (array)
537
+
538
+ Layout:
539
+ - 2-column: image gallery left (60%), details right (40%)
540
+ - Image gallery: main image + thumbnails below
541
+ - Details: name, price, description, specs, add to cart button
542
+ - Related products section below
543
+
544
+ Features:
545
+ - Image gallery: click thumbnails to change main image
546
+ - Add to cart button (or "Notify when in stock" if out of stock)
547
+ - Specifications in table format
548
+ - Related products: 4-card grid
549
+
550
+ Mobile: Stack image above details
551
+ ```
552
+
553
+ ## 📊 Data Display
554
+
555
+ ### Statistics Dashboard
556
+ ```
557
+ Create a Statistics Dashboard component:
558
+
559
+ Data source: 'stats' content list or module fields
560
+ Each stat:
561
+ - label (string)
562
+ - value (number or string)
563
+ - change (number, percentage)
564
+ - icon (ImageField, optional)
565
+
566
+ Layout:
567
+ - 4 stat cards in a row
568
+ - Each card: icon, value (large), label, change indicator
569
+ - Change: green up arrow if positive, red down if negative
570
+
571
+ Styling:
572
+ - Cards: white background, border, padding
573
+ - Large numbers: 3xl font
574
+ - Icons: 32px, colored
575
+ - Change indicator: small, colored (green/red)
576
+
577
+ Responsive: 2 cards per row on tablet, 1 on mobile
578
+ ```
579
+
580
+ ### Data Table
581
+ ```
582
+ Create a Data Table component:
583
+
584
+ Data source: Content list (referenceName from module field)
585
+ Configurable columns from content model fields
586
+
587
+ Features:
588
+ - Table headers from field labels
589
+ - Sortable columns (click header to sort)
590
+ - Pagination (10, 25, 50 rows per page)
591
+ - Search filter (searches all fields)
592
+ - Responsive: horizontal scroll on mobile
593
+
594
+ Layout:
595
+ - Full-width table
596
+ - Alternating row colors
597
+ - Header: bold, sticky on scroll
598
+
599
+ Behavior:
600
+ - Client component for sorting, pagination, search
601
+ - Maintain URL params for sharing filtered views
602
+
603
+ Styling:
604
+ - Clean, minimal design
605
+ - Borders between rows
606
+ - Hover highlight on rows
607
+ - Primary color for headers
608
+ ```
609
+
610
+ ## 🎯 Usage Tips
611
+
612
+ ### How to Use These Prompts:
613
+
614
+ 1. **Copy the prompt** for the component you need
615
+ 2. **Customize** the field names and requirements to match your Agility CMS setup
616
+ 3. **Paste** into your AI assistant
617
+ 4. **Wait** for the AI to generate the code
618
+ 5. **Create** the corresponding module in Agility CMS if you haven't already
619
+ 6. **Test** the component in your local environment
620
+ 7. **Iterate** by asking for refinements
621
+
622
+ ### Combining Prompts:
623
+
624
+ You can combine multiple components:
625
+
626
+ ```
627
+ "Create both the Blog Listing component and the Blog Post Detail component. Use the specifications from [paste both prompts]. Make sure they work together with consistent styling."
628
+ ```
629
+
630
+ ### Quick Modifications:
631
+
632
+ After creating a component, refine it:
633
+
634
+ ```
635
+ "Update the [Component Name] to:
636
+ - Change the grid from 3 columns to 4
637
+ - Add a filter dropdown above the grid
638
+ - Use a different hover effect"
639
+ ```
640
+
641
+ ---
642
+
643
+ **Pro Tip**: Save your customized prompts! Build a personal library of prompts that work well for your specific use cases and Agility CMS setup.