@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.
- package/.claude/settings.json +7 -0
- package/.claude/settings.local.json +24 -0
- package/FEATURE_ROADMAP.md +343 -0
- package/README.md +205 -0
- package/TESTING.md +131 -0
- package/bin/create-agility-app.js +48 -0
- package/dist/agility/api-keys/generateApiKeys.d.ts +9 -0
- package/dist/agility/api-keys/generateApiKeys.d.ts.map +1 -0
- package/dist/agility/api-keys/generateApiKeys.js +99 -0
- package/dist/agility/api-keys/generateApiKeys.js.map +1 -0
- package/dist/agility/api-keys/getApiKeys.d.ts +9 -0
- package/dist/agility/api-keys/getApiKeys.d.ts.map +1 -0
- package/dist/agility/api-keys/getApiKeys.js +14 -0
- package/dist/agility/api-keys/getApiKeys.js.map +1 -0
- package/dist/agility/index.d.ts +3 -0
- package/dist/agility/index.d.ts.map +1 -0
- package/dist/agility/index.js +8 -0
- package/dist/agility/index.js.map +1 -0
- package/dist/agility/instance/createNewInstance.d.ts +8 -0
- package/dist/agility/instance/createNewInstance.d.ts.map +1 -0
- package/dist/agility/instance/createNewInstance.js +65 -0
- package/dist/agility/instance/createNewInstance.js.map +1 -0
- package/dist/agility/instance/getAvailableInstances.d.ts +8 -0
- package/dist/agility/instance/getAvailableInstances.d.ts.map +1 -0
- package/dist/agility/instance/getAvailableInstances.js +43 -0
- package/dist/agility/instance/getAvailableInstances.js.map +1 -0
- package/dist/agility/instance/manageInstance.d.ts +9 -0
- package/dist/agility/instance/manageInstance.d.ts.map +1 -0
- package/dist/agility/instance/manageInstance.js +82 -0
- package/dist/agility/instance/manageInstance.js.map +1 -0
- package/dist/agility/utils/getMgmtAPIUrl.d.ts +20 -0
- package/dist/agility/utils/getMgmtAPIUrl.d.ts.map +1 -0
- package/dist/agility/utils/getMgmtAPIUrl.js +61 -0
- package/dist/agility/utils/getMgmtAPIUrl.js.map +1 -0
- package/dist/auth/api-key/authenticateWithApiKey.d.ts +6 -0
- package/dist/auth/api-key/authenticateWithApiKey.d.ts.map +1 -0
- package/dist/auth/api-key/authenticateWithApiKey.js +28 -0
- package/dist/auth/api-key/authenticateWithApiKey.js.map +1 -0
- package/dist/auth/index.d.ts +3 -0
- package/dist/auth/index.d.ts.map +1 -0
- package/dist/auth/index.js +8 -0
- package/dist/auth/index.js.map +1 -0
- package/dist/auth/oauth/authenticate.d.ts +6 -0
- package/dist/auth/oauth/authenticate.d.ts.map +1 -0
- package/dist/auth/oauth/authenticate.js +162 -0
- package/dist/auth/oauth/authenticate.js.map +1 -0
- package/dist/auth/oauth/constants.d.ts +5 -0
- package/dist/auth/oauth/constants.d.ts.map +1 -0
- package/dist/auth/oauth/constants.js +9 -0
- package/dist/auth/oauth/constants.js.map +1 -0
- package/dist/auth/oauth/exchangeCodeForToken.d.ts +7 -0
- package/dist/auth/oauth/exchangeCodeForToken.d.ts.map +1 -0
- package/dist/auth/oauth/exchangeCodeForToken.js +39 -0
- package/dist/auth/oauth/exchangeCodeForToken.js.map +1 -0
- package/dist/cli/index.d.ts +3 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +290 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/promptForMissingOptions.d.ts +8 -0
- package/dist/cli/promptForMissingOptions.d.ts.map +1 -0
- package/dist/cli/promptForMissingOptions.js +92 -0
- package/dist/cli/promptForMissingOptions.js.map +1 -0
- package/dist/config/env/createEnvFile.d.ts +6 -0
- package/dist/config/env/createEnvFile.d.ts.map +1 -0
- package/dist/config/env/createEnvFile.js +31 -0
- package/dist/config/env/createEnvFile.js.map +1 -0
- package/dist/config/index.d.ts +2 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +6 -0
- package/dist/config/index.js.map +1 -0
- package/dist/config/mcp/createMcpConfig.d.ts +5 -0
- package/dist/config/mcp/createMcpConfig.d.ts.map +1 -0
- package/dist/config/mcp/createMcpConfig.js +32 -0
- package/dist/config/mcp/createMcpConfig.js.map +1 -0
- package/dist/config/packages/installAgilityPackages.d.ts +6 -0
- package/dist/config/packages/installAgilityPackages.d.ts.map +1 -0
- package/dist/config/packages/installAgilityPackages.js +61 -0
- package/dist/config/packages/installAgilityPackages.js.map +1 -0
- package/dist/config/setupProject.d.ts +8 -0
- package/dist/config/setupProject.d.ts.map +1 -0
- package/dist/config/setupProject.js +32 -0
- package/dist/config/setupProject.js.map +1 -0
- package/dist/create-next-app/createNextApp.d.ts +9 -0
- package/dist/create-next-app/createNextApp.d.ts.map +1 -0
- package/dist/create-next-app/createNextApp.js +83 -0
- package/dist/create-next-app/createNextApp.js.map +1 -0
- package/dist/create-next-app/index.d.ts +3 -0
- package/dist/create-next-app/index.d.ts.map +1 -0
- package/dist/create-next-app/index.js +8 -0
- package/dist/create-next-app/index.js.map +1 -0
- package/dist/scaffold/components/createPageComponents.d.ts +6 -0
- package/dist/scaffold/components/createPageComponents.d.ts.map +1 -0
- package/dist/scaffold/components/createPageComponents.js +62 -0
- package/dist/scaffold/components/createPageComponents.js.map +1 -0
- package/dist/scaffold/containers/createContainers.d.ts +6 -0
- package/dist/scaffold/containers/createContainers.d.ts.map +1 -0
- package/dist/scaffold/containers/createContainers.js +48 -0
- package/dist/scaffold/containers/createContainers.js.map +1 -0
- package/dist/scaffold/index.d.ts +2 -0
- package/dist/scaffold/index.d.ts.map +1 -0
- package/dist/scaffold/index.js +6 -0
- package/dist/scaffold/index.js.map +1 -0
- package/dist/scaffold/instance/createBlankInstance.d.ts +8 -0
- package/dist/scaffold/instance/createBlankInstance.d.ts.map +1 -0
- package/dist/scaffold/instance/createBlankInstance.js +51 -0
- package/dist/scaffold/instance/createBlankInstance.js.map +1 -0
- package/dist/scaffold/models/createContentModels.d.ts +6 -0
- package/dist/scaffold/models/createContentModels.d.ts.map +1 -0
- package/dist/scaffold/models/createContentModels.js +70 -0
- package/dist/scaffold/models/createContentModels.js.map +1 -0
- package/dist/templates/copyDirectory.d.ts +5 -0
- package/dist/templates/copyDirectory.d.ts.map +1 -0
- package/dist/templates/copyDirectory.js +28 -0
- package/dist/templates/copyDirectory.js.map +1 -0
- package/dist/templates/copyTemplates.d.ts +8 -0
- package/dist/templates/copyTemplates.d.ts.map +1 -0
- package/dist/templates/copyTemplates.js +58 -0
- package/dist/templates/copyTemplates.js.map +1 -0
- package/dist/templates/index.d.ts +2 -0
- package/dist/templates/index.d.ts.map +1 -0
- package/dist/templates/index.js +6 -0
- package/dist/templates/index.js.map +1 -0
- package/dist/types/index.d.ts +50 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +3 -0
- package/dist/types/index.js.map +1 -0
- package/dist/utils/git.d.ts +9 -0
- package/dist/utils/git.d.ts.map +1 -0
- package/dist/utils/git.js +71 -0
- package/dist/utils/git.js.map +1 -0
- package/dist/utils/validation.d.ts +45 -0
- package/dist/utils/validation.d.ts.map +1 -0
- package/dist/utils/validation.js +180 -0
- package/dist/utils/validation.js.map +1 -0
- package/package.json +45 -0
- package/src/agility/api-keys/generateApiKeys.ts +100 -0
- package/src/agility/api-keys/getApiKeys.ts +13 -0
- package/src/agility/index.ts +3 -0
- package/src/agility/instance/createNewInstance.ts +67 -0
- package/src/agility/instance/getAvailableInstances.ts +49 -0
- package/src/agility/instance/manageInstance.ts +90 -0
- package/src/agility/utils/getMgmtAPIUrl.ts +68 -0
- package/src/auth/api-key/authenticateWithApiKey.ts +24 -0
- package/src/auth/index.ts +3 -0
- package/src/auth/oauth/authenticate.ts +165 -0
- package/src/auth/oauth/constants.ts +6 -0
- package/src/auth/oauth/exchangeCodeForToken.ts +43 -0
- package/src/cli/index.ts +281 -0
- package/src/cli/promptForMissingOptions.ts +104 -0
- package/src/config/env/createEnvFile.ts +30 -0
- package/src/config/index.ts +2 -0
- package/src/config/mcp/createMcpConfig.ts +30 -0
- package/src/config/packages/installAgilityPackages.ts +63 -0
- package/src/config/setupProject.ts +31 -0
- package/src/create-next-app/createNextApp.ts +75 -0
- package/src/create-next-app/index.ts +3 -0
- package/src/scaffold/components/createPageComponents.ts +74 -0
- package/src/scaffold/containers/createContainers.ts +55 -0
- package/src/scaffold/index.ts +2 -0
- package/src/scaffold/instance/createBlankInstance.ts +55 -0
- package/src/scaffold/models/createContentModels.ts +83 -0
- package/src/templates/copyDirectory.ts +24 -0
- package/src/templates/copyTemplates.ts +57 -0
- package/src/templates/index.ts +2 -0
- package/src/types/index.ts +55 -0
- package/src/utils/git.ts +74 -0
- package/src/utils/validation.ts +184 -0
- package/templates/.claude/QUICK-START.md +230 -0
- package/templates/.claude/README.md +32 -0
- package/templates/.claude/settings.json +8 -0
- package/templates/BLANK-INSTANCE-SETUP.md +375 -0
- package/templates/DEVELOPMENT.md +160 -0
- package/templates/EXAMPLE-PROMPTS.md +643 -0
- package/templates/PROMPTS.md +410 -0
- package/templates/README.md +281 -0
- package/templates/agents.md +429 -0
- package/templates/app/[locale]/[...slug]/error.tsx +17 -0
- package/templates/app/[locale]/[...slug]/not-found.tsx +9 -0
- package/templates/app/[locale]/[...slug]/page.tsx +102 -0
- package/templates/app/[locale]/layout.tsx +22 -0
- package/templates/app/[locale]/page.tsx +12 -0
- package/templates/app/api/dynamic-redirect/route.ts +24 -0
- package/templates/app/api/preview/exit/route.ts +34 -0
- package/templates/app/api/preview/route.ts +63 -0
- package/templates/app/api/revalidate/route.ts +118 -0
- package/templates/components/agility-components/RichTextArea.tsx +66 -0
- package/templates/components/agility-components/index.ts +30 -0
- package/templates/components/agility-pages/MainTemplate.tsx +36 -0
- package/templates/components/agility-pages/index.ts +11 -0
- package/templates/docs/01-agility-cms-overview.md +139 -0
- package/templates/docs/02-page-routing.md +251 -0
- package/templates/docs/03-creating-components.md +462 -0
- package/templates/docs/04-data-fetching.md +484 -0
- package/templates/docs/05-containers-and-lists.md +596 -0
- package/templates/docs/06-localization.md +561 -0
- package/templates/docs/07-caching-strategies.md +410 -0
- package/templates/docs/08-common-components.md +756 -0
- package/templates/docs/09-whats-included.md +279 -0
- package/templates/docs/10-mcp-server-setup.md +153 -0
- package/templates/docs/11-linked-nested-content.md +611 -0
- package/templates/docs/README.md +164 -0
- package/templates/lib/cms/getAgilityContext.ts +28 -0
- package/templates/lib/cms/getAgilityPage.ts +51 -0
- package/templates/lib/cms/getAgilitySDK.ts +22 -0
- package/templates/lib/cms/getContentItem.ts +20 -0
- package/templates/lib/cms/getContentList.ts +19 -0
- package/templates/lib/cms/getRedirections.ts +85 -0
- package/templates/lib/cms/getSitemapFlat.ts +19 -0
- package/templates/lib/cms/getSitemapNested.ts +19 -0
- package/templates/lib/env.ts +99 -0
- package/templates/lib/i18n/config.ts +28 -0
- package/templates/proxy.ts +101 -0
- 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.
|