@deneb-ui/create-template 2.0.125 → 2.0.126

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@deneb-ui/create-template",
3
- "version": "2.0.125",
3
+ "version": "2.0.126",
4
4
  "description": "Scaffold production-ready DENEB UI storefront templates for Next.js in seconds.",
5
5
  "bin": {
6
6
  "create-deneb-template": "bin/index.js",
@@ -202,6 +202,16 @@ When your template design is ready:
202
202
 
203
203
  ---
204
204
 
205
+ ## Contact label editing
206
+
207
+ The existing Contact page reuses `EditableText` for
208
+ `contact.directInformationTitle`, `contact.nameLabel`, `contact.emailLabel`,
209
+ and `contact.messageLabel`. Values live under `content.contact` and are
210
+ declared as text fields in the template editor schema. Empty values retain
211
+ editable placeholders. These fields change merchant labels, not visitor input
212
+ values or submission field names. In Local Lab, open Contact, edit the four
213
+ labels, then save and reload to verify persistence.
214
+
205
215
  ## License
206
216
 
207
217
  MIT © [Fivora](https://fivora.com)
@@ -5,11 +5,10 @@
5
5
  "contractVersion": 1,
6
6
  "mode": "strict",
7
7
  "controlOnlyPaths": [
8
+ "common.newsletterDescription",
8
9
  "products[*].id",
9
- "products[*].isAvailable",
10
10
  "services[*].id",
11
11
  "products[*].currency",
12
- "about.collageImages[*].id",
13
12
  "contact.whatsapp"
14
13
  ]
15
14
  },
@@ -105,6 +104,49 @@
105
104
  "type": "text",
106
105
  "label": "Footer heading"
107
106
  },
107
+ {
108
+ "key": "newsletterSubscribeLabel",
109
+ "type": "text",
110
+ "label": "Newsletter subscribe button label"
111
+ },
112
+ {
113
+ "key": "newsletterEmailPlaceholder",
114
+ "type": "text",
115
+ "label": "Newsletter email placeholder"
116
+ },
117
+ {
118
+ "key": "newsletterDescription",
119
+ "type": "textarea",
120
+ "label": "Newsletter description"
121
+ },
122
+ {
123
+ "key": "footerExploreHeading",
124
+ "type": "text",
125
+ "label": "Footer navigation heading"
126
+ },
127
+ {
128
+ "key": "footerContactHeading",
129
+ "type": "text",
130
+ "label": "Footer contact heading"
131
+ },
132
+ {
133
+ "key": "footerEmailIcon",
134
+ "type": "text",
135
+ "control": "icon-picker",
136
+ "label": "Footer email icon"
137
+ },
138
+ {
139
+ "key": "footerPhoneIcon",
140
+ "type": "text",
141
+ "control": "icon-picker",
142
+ "label": "Footer phone icon"
143
+ },
144
+ {
145
+ "key": "footerLocationIcon",
146
+ "type": "text",
147
+ "control": "icon-picker",
148
+ "label": "Footer location icon"
149
+ },
108
150
  {
109
151
  "key": "copyright",
110
152
  "type": "text",
@@ -407,6 +449,26 @@
407
449
  "type": "url",
408
450
  "label": "Directions Url"
409
451
  },
452
+ {
453
+ "key": "directInformationTitle",
454
+ "type": "text",
455
+ "label": "Direct information heading"
456
+ },
457
+ {
458
+ "key": "nameLabel",
459
+ "type": "text",
460
+ "label": "Name field label"
461
+ },
462
+ {
463
+ "key": "emailLabel",
464
+ "type": "text",
465
+ "label": "Email field label"
466
+ },
467
+ {
468
+ "key": "messageLabel",
469
+ "type": "text",
470
+ "label": "Message field label"
471
+ },
410
472
  {
411
473
  "key": "formTitle",
412
474
  "type": "text",
@@ -18,7 +18,7 @@
18
18
  "next": "15.5.23",
19
19
  "react": "19.2.8",
20
20
  "react-dom": "19.2.8",
21
- "@deneb-ui/ui": "^2.0.125"
21
+ "@deneb-ui/ui": "^2.0.126"
22
22
  },
23
23
  "devDependencies": {
24
24
  "@eslint/eslintrc": "3.3.6",
@@ -28,7 +28,7 @@
28
28
  "eslint": "9.39.5",
29
29
  "eslint-config-next": "15.5.23",
30
30
  "typescript": "5.8.3",
31
- "@deneb-ui/cli": "^2.0.125",
31
+ "@deneb-ui/cli": "^2.0.126",
32
32
  "tailwindcss": "^3.4.17",
33
33
  "postcss": "8.5.26",
34
34
  "autoprefixer": "^10.4.20"
@@ -70,14 +70,15 @@ export default function ContactPage() {
70
70
  </section>
71
71
 
72
72
  <section className="page-section contact-grid" data-design-section="contact-details">
73
- <EditableBox className="card contact-details" balance radius="xl">
73
+ <EditableBox stylePath="contact.informationCard" className="card contact-details" balance radius="xl">
74
74
  <EditableText
75
75
  variant="h3"
76
76
  size="xl"
77
77
  weight="bold"
78
78
  color="heading"
79
- data-preview-static="contact-heading"
80
- defaultValue="Direct Information"
79
+ fieldPath="contact.directInformationTitle"
80
+ defaultValue={contentText(contact.directInformationTitle ?? 'Direct Information')}
81
+ placeholder="Add an information heading"
81
82
  />
82
83
  <div style={{ display: 'flex', flexDirection: 'column', gap: '0.75rem', marginTop: '0.5rem' }}>
83
84
  <a href={phone ? `tel:${phone}` : ''} data-preview-field-path="contact.phone">
@@ -137,7 +138,7 @@ export default function ContactPage() {
137
138
  </div>
138
139
  </EditableBox>
139
140
 
140
- <EditableBox className="card" balance radius="xl">
141
+ <EditableBox stylePath="contact.formCard" className="card" balance radius="xl">
141
142
  <form
142
143
  className="contact-form"
143
144
  onSubmit={handleSubmit}
@@ -151,16 +152,31 @@ export default function ContactPage() {
151
152
  data-preview-field-path="contact.formTitle"
152
153
  defaultValue={contentText(contact.formTitle)}
153
154
  />
154
- <label data-preview-static>
155
- Name
155
+ <label>
156
+ <EditableText
157
+ as="span"
158
+ fieldPath="contact.nameLabel"
159
+ defaultValue={contentText(contact.nameLabel ?? 'Name')}
160
+ placeholder="Name"
161
+ />
156
162
  <input type="text" name="name" autoComplete="name" required />
157
163
  </label>
158
- <label data-preview-static>
159
- Email
164
+ <label>
165
+ <EditableText
166
+ as="span"
167
+ fieldPath="contact.emailLabel"
168
+ defaultValue={contentText(contact.emailLabel ?? 'Email')}
169
+ placeholder="Email"
170
+ />
160
171
  <input type="email" name="email" autoComplete="email" required />
161
172
  </label>
162
- <label data-preview-static>
163
- Message
173
+ <label>
174
+ <EditableText
175
+ as="span"
176
+ fieldPath="contact.messageLabel"
177
+ defaultValue={contentText(contact.messageLabel ?? 'Message')}
178
+ placeholder="Message"
179
+ />
164
180
  <textarea name="message" rows={4} required />
165
181
  </label>
166
182
  <button type="submit" className="button-primary" style={{ marginTop: '0.5rem' }}>
@@ -66,6 +66,14 @@
66
66
  "contact": "Contact"
67
67
  },
68
68
  "footerHeading": "Build something extraordinary with DENEB-UI & FIVORA.",
69
+ "newsletterDescription": "Join our exclusive community for releases, updates, and special perks.",
70
+ "newsletterSubscribeLabel": "Subscribe",
71
+ "newsletterEmailPlaceholder": "Enter your email",
72
+ "footerExploreHeading": "Explore",
73
+ "footerContactHeading": "Contact & Support",
74
+ "footerEmailIcon": "mail",
75
+ "footerPhoneIcon": "phone",
76
+ "footerLocationIcon": "map-pin",
69
77
  "copyright": "DENEB-UI. All rights reserved. Collaborate with FIVORA.",
70
78
  "socialMedia": {
71
79
  "twitter": "https://twitter.com/denebui",
@@ -185,6 +193,10 @@
185
193
  "directionsLabel": "Get Directions",
186
194
  "directionsUrl": "https://maps.app.goo.gl/example",
187
195
  "formTitle": "Send an Inquiry",
196
+ "directInformationTitle": "Direct Information",
197
+ "nameLabel": "Name",
198
+ "emailLabel": "Email",
199
+ "messageLabel": "Message",
188
200
  "submitLabel": "Send Message",
189
201
  "directMessageText": "Send us a direct message",
190
202
  "whatsapp": "+94 77 123 4567"