@lightspeed/crane 1.2.1 → 1.2.3

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 (38) hide show
  1. package/CHANGELOG.md +29 -0
  2. package/README.md +11 -0
  3. package/UPGRADE.md +30 -0
  4. package/dist/app.d.mts +32 -3
  5. package/dist/app.d.ts +32 -3
  6. package/dist/app.mjs +1 -1
  7. package/dist/cli.mjs +8 -8
  8. package/package.json +7 -8
  9. package/template/eslint.config.cjs +1 -0
  10. package/template/footers/example-footer/component/MadeWith.vue +1 -1
  11. package/template/headers/example-header/ExampleHeader.vue +2 -11
  12. package/template/headers/example-header/component/CategoriesDropdown.vue +165 -0
  13. package/template/headers/example-header/component/NavigationMenu.vue +83 -10
  14. package/template/package.json +3 -5
  15. package/template/page-templates/assets/template_cover_image.png +0 -0
  16. package/template/page-templates/example-template/configuration.ts +22 -0
  17. package/template/page-templates/example-template/pages/catalog.ts +8 -0
  18. package/template/page-templates/example-template/pages/category.ts +8 -0
  19. package/template/page-templates/example-template/pages/home.ts +178 -0
  20. package/template/page-templates/example-template/pages/product.ts +8 -0
  21. package/template/reference/sections/about-us/settings/content.ts +4 -7
  22. package/template/reference/sections/about-us/showcases/1.ts +0 -3
  23. package/template/reference/sections/about-us/showcases/2.ts +0 -3
  24. package/template/reference/sections/intro-slider/assets/category_4.jpg +0 -0
  25. package/template/reference/sections/intro-slider/assets/category_4@2x.jpg +0 -0
  26. package/template/reference/sections/intro-slider/settings/content.ts +1 -0
  27. package/template/reference/sections/intro-slider/showcases/1.ts +0 -18
  28. package/template/reference/sections/intro-slider/showcases/2.ts +0 -18
  29. package/template/reference/sections/tag-lines/settings/content.ts +1 -0
  30. package/template/reference/sections/tag-lines/showcases/1.ts +0 -12
  31. package/template/reference/sections/tag-lines/showcases/2.ts +0 -12
  32. package/template/sections/example-section/settings/content.ts +0 -3
  33. package/template/sections/example-section/showcases/1.ts +0 -12
  34. package/template/sections/example-section/showcases/2.ts +0 -12
  35. package/template/sections/example-section/showcases/3.ts +0 -12
  36. package/template/templates/template.ts +0 -12
  37. package/types.d.ts +71 -45
  38. package/template/.eslintrc.cjs +0 -3
@@ -36,9 +36,6 @@ export default {
36
36
  type: 'IMAGE',
37
37
  imageData: {
38
38
  set: {
39
- LOW_RES: {
40
- url: 'bike_1.jpg',
41
- },
42
39
  MOBILE_WEBP_LOW_RES: {
43
40
  url: 'bike_1.jpg',
44
41
  },
@@ -67,9 +64,6 @@ export default {
67
64
  type: 'IMAGE',
68
65
  imageData: {
69
66
  set: {
70
- LOW_RES: {
71
- url: 'bike_2.jpg',
72
- },
73
67
  MOBILE_WEBP_LOW_RES: {
74
68
  url: 'bike_2.jpg',
75
69
  },
@@ -98,9 +92,6 @@ export default {
98
92
  type: 'IMAGE',
99
93
  imageData: {
100
94
  set: {
101
- LOW_RES: {
102
- url: 'bike_3.jpg',
103
- },
104
95
  MOBILE_WEBP_LOW_RES: {
105
96
  url: 'bike_3.jpg',
106
97
  },
@@ -129,9 +120,6 @@ export default {
129
120
  type: 'IMAGE',
130
121
  imageData: {
131
122
  set: {
132
- LOW_RES: {
133
- url: 'bike_4.jpg',
134
- },
135
123
  MOBILE_WEBP_LOW_RES: {
136
124
  url: 'bike_4.jpg',
137
125
  },
@@ -161,9 +149,6 @@ export default {
161
149
  type: 'IMAGE',
162
150
  imageData: {
163
151
  set: {
164
- LOW_RES: {
165
- url: 'bike_5.jpg',
166
- },
167
152
  MOBILE_WEBP_LOW_RES: {
168
153
  url: 'bike_5.jpg',
169
154
  },
@@ -192,9 +177,6 @@ export default {
192
177
  type: 'IMAGE',
193
178
  imageData: {
194
179
  set: {
195
- LOW_RES: {
196
- url: 'bike_6.jpg',
197
- },
198
180
  MOBILE_WEBP_LOW_RES: {
199
181
  url: 'bike_6.jpg',
200
182
  },
@@ -21,6 +21,7 @@ export default {
21
21
  text: {
22
22
  type: 'INPUTBOX',
23
23
  label: '$label.content.deck.highlighted_text.label',
24
+ placeholder: '$label.content.deck.highlighted_text.label',
24
25
  },
25
26
  image_content: {
26
27
  type: 'IMAGE',
@@ -31,9 +31,6 @@ export default {
31
31
  type: 'IMAGE',
32
32
  imageData: {
33
33
  set: {
34
- LOW_RES: {
35
- url: 'sweater_weather.jpg',
36
- },
37
34
  MOBILE_WEBP_LOW_RES: {
38
35
  url: 'sweater_weather.jpg',
39
36
  },
@@ -62,9 +59,6 @@ export default {
62
59
  type: 'IMAGE',
63
60
  imageData: {
64
61
  set: {
65
- LOW_RES: {
66
- url: 'shop_chelsea_boots.jpg',
67
- },
68
62
  MOBILE_WEBP_LOW_RES: {
69
63
  url: 'shop_chelsea_boots.jpg',
70
64
  },
@@ -93,9 +87,6 @@ export default {
93
87
  type: 'IMAGE',
94
88
  imageData: {
95
89
  set: {
96
- LOW_RES: {
97
- url: 'explore_our_holiday_gift_guide.jpg',
98
- },
99
90
  MOBILE_WEBP_LOW_RES: {
100
91
  url: 'explore_our_holiday_gift_guide.jpg',
101
92
  },
@@ -120,9 +111,6 @@ export default {
120
111
  type: 'IMAGE',
121
112
  imageData: {
122
113
  set: {
123
- LOW_RES: {
124
- url: 'fall_is_here.jpg',
125
- },
126
114
  MOBILE_WEBP_LOW_RES: {
127
115
  url: 'fall_is_here.jpg',
128
116
  },
@@ -31,9 +31,6 @@ export default {
31
31
  type: 'IMAGE',
32
32
  imageData: {
33
33
  set: {
34
- LOW_RES: {
35
- url: 'mountain_and_road_bikes.jpg',
36
- },
37
34
  MOBILE_WEBP_LOW_RES: {
38
35
  url: 'mountain_and_road_bikes.jpg',
39
36
  },
@@ -62,9 +59,6 @@ export default {
62
59
  type: 'IMAGE',
63
60
  imageData: {
64
61
  set: {
65
- LOW_RES: {
66
- url: 'hybrid_bikes.jpg',
67
- },
68
62
  MOBILE_WEBP_LOW_RES: {
69
63
  url: 'hybrid_bikes.jpg',
70
64
  },
@@ -93,9 +87,6 @@ export default {
93
87
  type: 'IMAGE',
94
88
  imageData: {
95
89
  set: {
96
- LOW_RES: {
97
- url: 'folding_bikes.jpg',
98
- },
99
90
  MOBILE_WEBP_LOW_RES: {
100
91
  url: 'folding_bikes.jpg',
101
92
  },
@@ -120,9 +111,6 @@ export default {
120
111
  type: 'IMAGE',
121
112
  imageData: {
122
113
  set: {
123
- LOW_RES: {
124
- url: 'what_we_sell.jpg',
125
- },
126
114
  MOBILE_WEBP_LOW_RES: {
127
115
  url: 'what_we_sell.jpg',
128
116
  },
@@ -27,9 +27,6 @@ export default {
27
27
  label: '$label.image_content_1.label',
28
28
  defaults: {
29
29
  set: {
30
- LOW_RES: {
31
- url: 'new_arrivals_mobile_low.jpeg',
32
- },
33
30
  MOBILE_WEBP_LOW_RES: {
34
31
  url: 'new_arrivals_mobile_low.jpeg',
35
32
  },
@@ -33,9 +33,6 @@ export default {
33
33
  type: 'IMAGE',
34
34
  imageData: {
35
35
  set: {
36
- LOW_RES: {
37
- url: 'new_arrivals_mobile_low.jpeg',
38
- },
39
36
  MOBILE_WEBP_LOW_RES: {
40
37
  url: 'new_arrivals_mobile_low.jpeg',
41
38
  },
@@ -71,9 +68,6 @@ export default {
71
68
  type: 'IMAGE',
72
69
  imageData: {
73
70
  set: {
74
- LOW_RES: {
75
- url: 'sport_look_mobile_low.jpeg',
76
- },
77
71
  MOBILE_WEBP_LOW_RES: {
78
72
  url: 'sport_look_mobile_low.jpeg',
79
73
  },
@@ -109,9 +103,6 @@ export default {
109
103
  type: 'IMAGE',
110
104
  imageData: {
111
105
  set: {
112
- LOW_RES: {
113
- url: 'summer_accessories_mobile_low.jpeg',
114
- },
115
106
  MOBILE_WEBP_LOW_RES: {
116
107
  url: 'summer_accessories_mobile_low.jpeg',
117
108
  },
@@ -147,9 +138,6 @@ export default {
147
138
  type: 'IMAGE',
148
139
  imageData: {
149
140
  set: {
150
- LOW_RES: {
151
- url: 'trending_footwear_mobile_low.jpeg',
152
- },
153
141
  MOBILE_WEBP_LOW_RES: {
154
142
  url: 'trending_footwear_mobile_low.jpeg',
155
143
  },
@@ -27,9 +27,6 @@ export default {
27
27
  type: 'IMAGE',
28
28
  imageData: {
29
29
  set: {
30
- LOW_RES: {
31
- url: 'new_tshirts_collection_mobile_low.jpeg',
32
- },
33
30
  MOBILE_WEBP_LOW_RES: {
34
31
  url: 'new_tshirts_collection_mobile_low.jpeg',
35
32
  },
@@ -62,9 +59,6 @@ export default {
62
59
  type: 'IMAGE',
63
60
  imageData: {
64
61
  set: {
65
- LOW_RES: {
66
- url: 'autumn_looks_mobile_low.jpeg',
67
- },
68
62
  MOBILE_WEBP_LOW_RES: {
69
63
  url: 'autumn_looks_mobile_low.jpeg',
70
64
  },
@@ -94,9 +88,6 @@ export default {
94
88
  type: 'IMAGE',
95
89
  imageData: {
96
90
  set: {
97
- LOW_RES: {
98
- url: 'bianka_wardrobe_mobile_low.jpeg',
99
- },
100
91
  MOBILE_WEBP_LOW_RES: {
101
92
  url: 'bianka_wardrobe_mobile_low.jpeg',
102
93
  },
@@ -126,9 +117,6 @@ export default {
126
117
  type: 'IMAGE',
127
118
  imageData: {
128
119
  set: {
129
- LOW_RES: {
130
- url: 'story_of_jane_mobile_low.jpeg',
131
- },
132
120
  MOBILE_WEBP_LOW_RES: {
133
121
  url: 'story_of_jane_mobile_low.jpeg',
134
122
  },
@@ -29,9 +29,6 @@ export default {
29
29
  type: 'IMAGE',
30
30
  imageData: {
31
31
  set: {
32
- LOW_RES: {
33
- url: 'bike_new_arrivals_low.jpg',
34
- },
35
32
  MOBILE_WEBP_LOW_RES: {
36
33
  url: 'bike_new_arrivals_low.jpg',
37
34
  },
@@ -67,9 +64,6 @@ export default {
67
64
  type: 'IMAGE',
68
65
  imageData: {
69
66
  set: {
70
- LOW_RES: {
71
- url: 'fixed_gears_low.jpg',
72
- },
73
67
  MOBILE_WEBP_LOW_RES: {
74
68
  url: 'fixed_gears_low.jpg',
75
69
  },
@@ -105,9 +99,6 @@ export default {
105
99
  type: 'IMAGE',
106
100
  imageData: {
107
101
  set: {
108
- LOW_RES: {
109
- url: 'repair_service_low.jpg',
110
- },
111
102
  MOBILE_WEBP_LOW_RES: {
112
103
  url: 'repair_service_low.jpg',
113
104
  },
@@ -143,9 +134,6 @@ export default {
143
134
  type: 'IMAGE',
144
135
  imageData: {
145
136
  set: {
146
- LOW_RES: {
147
- url: 'bike_accessories_low.jpg',
148
- },
149
137
  MOBILE_WEBP_LOW_RES: {
150
138
  url: 'bike_accessories_low.jpg',
151
139
  },
@@ -49,9 +49,6 @@ export default {
49
49
  type: 'IMAGE',
50
50
  imageData: {
51
51
  set: {
52
- LOW_RES: {
53
- url: 'new_tshirts_collection_mobile_low.jpeg',
54
- },
55
52
  MOBILE_WEBP_LOW_RES: {
56
53
  url: 'new_tshirts_collection_mobile_low.jpeg',
57
54
  },
@@ -84,9 +81,6 @@ export default {
84
81
  type: 'IMAGE',
85
82
  imageData: {
86
83
  set: {
87
- LOW_RES: {
88
- url: 'autumn_looks_mobile_low.jpeg',
89
- },
90
84
  MOBILE_WEBP_LOW_RES: {
91
85
  url: 'autumn_looks_mobile_low.jpeg',
92
86
  },
@@ -116,9 +110,6 @@ export default {
116
110
  type: 'IMAGE',
117
111
  imageData: {
118
112
  set: {
119
- LOW_RES: {
120
- url: 'bianka_wardrobe_mobile_low.jpeg',
121
- },
122
113
  MOBILE_WEBP_LOW_RES: {
123
114
  url: 'bianka_wardrobe_mobile_low.jpeg',
124
115
  },
@@ -148,9 +139,6 @@ export default {
148
139
  type: 'IMAGE',
149
140
  imageData: {
150
141
  set: {
151
- LOW_RES: {
152
- url: 'story_of_jane_mobile_low.jpeg',
153
- },
154
142
  MOBILE_WEBP_LOW_RES: {
155
143
  url: 'story_of_jane_mobile_low.jpeg',
156
144
  },
package/types.d.ts CHANGED
@@ -8,13 +8,14 @@ declare module '*.vue' {
8
8
  }
9
9
 
10
10
  type ActionLinkType
11
- = 'SCROLL_TO_TILE'
12
- | 'HYPER_LINK'
13
- | 'MAIL_LINK'
14
- | 'TEL_LINK'
15
- | 'GO_TO_STORE'
16
- | 'GO_TO_STORE_LINK'
17
- | 'GO_TO_PAGE';
11
+ = 'SCROLL_TO_TILE'
12
+ | 'HYPER_LINK'
13
+ | 'MAIL_LINK'
14
+ | 'TEL_LINK'
15
+ | 'GO_TO_STORE'
16
+ | 'GO_TO_STORE_LINK'
17
+ | 'GO_TO_PAGE'
18
+ | 'GO_TO_CATEGORY';
18
19
 
19
20
  interface ButtonContentData {
20
21
  readonly title: string;
@@ -56,7 +57,7 @@ interface ToggleContentData {
56
57
  interface ActionLink {
57
58
  id: string;
58
59
  title?: string;
59
- type?: string;
60
+ type?: ActionLinkType;
60
61
  link?: string;
61
62
  email?: string;
62
63
  phone?: string;
@@ -81,20 +82,20 @@ interface LogoContentData {
81
82
  }
82
83
 
83
84
  type GlobalColorsString =
84
- 'global.color.title' |
85
- 'global.color.body' |
86
- 'global.color.button' |
87
- 'global.color.link' |
88
- 'global.color.background';
85
+ 'global.color.title' |
86
+ 'global.color.body' |
87
+ 'global.color.button' |
88
+ 'global.color.link' |
89
+ 'global.color.background';
89
90
 
90
91
  type GlobalFontsString =
91
- 'global.fontFamily.title' |
92
- 'global.fontFamily.body';
92
+ 'global.fontFamily.title' |
93
+ 'global.fontFamily.body';
93
94
 
94
95
  type GlobalTextSizeString =
95
- 'global.textSize.title' |
96
- 'global.textSize.subtitle' |
97
- 'global.textSize.body';
96
+ 'global.textSize.title' |
97
+ 'global.textSize.subtitle' |
98
+ 'global.textSize.body';
98
99
 
99
100
  interface HSLColor {
100
101
  h: number;
@@ -140,9 +141,9 @@ interface TextareaDesignData extends TextDesignData {
140
141
  }
141
142
 
142
143
  type CapitalizationType =
143
- 'none'
144
- | 'all'
145
- | 'small';
144
+ 'none'
145
+ | 'all'
146
+ | 'small';
146
147
 
147
148
  interface Frame {
148
149
  visible: boolean;
@@ -163,19 +164,19 @@ interface LogoDesignData {
163
164
  }
164
165
 
165
166
  type ButtonAppearance =
166
- 'solid-button'
167
- | 'outline-button'
168
- | 'text-link';
167
+ 'solid-button'
168
+ | 'outline-button'
169
+ | 'text-link';
169
170
 
170
171
  type ButtonSize =
171
- 'small'
172
- | 'medium'
173
- | 'large';
172
+ 'small'
173
+ | 'medium'
174
+ | 'large';
174
175
 
175
176
  type ButtonStyle =
176
- 'round-corner'
177
- | 'rectangle'
178
- | 'pill';
177
+ 'round-corner'
178
+ | 'rectangle'
179
+ | 'pill';
179
180
 
180
181
  interface ButtonDesignData {
181
182
  appearance: ButtonAppearance | undefined;
@@ -187,9 +188,9 @@ interface ButtonDesignData {
187
188
  }
188
189
 
189
190
  type OverlayType =
190
- 'solid'
191
- | 'gradient'
192
- | 'none';
191
+ 'solid'
192
+ | 'gradient'
193
+ | 'none';
193
194
 
194
195
  interface Overlay {
195
196
  type: OverlayType | undefined;
@@ -211,8 +212,8 @@ interface ToggleDesignData {
211
212
  }
212
213
 
213
214
  type BackgroundType =
214
- 'solid'
215
- | 'gradient';
215
+ 'solid'
216
+ | 'gradient';
216
217
 
217
218
  interface Background {
218
219
  type: BackgroundType | undefined;
@@ -295,8 +296,33 @@ interface SiteContent {
295
296
  readonly legalPages?: LegalPage[];
296
297
  }
297
298
 
299
+ interface CategoryListComponentItem {
300
+ readonly id: number;
301
+ readonly name: string;
302
+ readonly url: string;
303
+ readonly imageUrl?: string;
304
+ readonly thumbnailImageUrl?: string;
305
+ readonly imageBorderInfo?: ImageBorderInfo;
306
+ readonly alt?: string;
307
+ }
308
+
309
+ interface CategoryTree {
310
+ readonly id: number;
311
+ readonly name: string;
312
+ readonly nameTranslated: Record<string, string>;
313
+ readonly urlPath: string;
314
+ readonly enabled: boolean;
315
+ readonly children: CategoryTree[];
316
+ }
317
+
318
+ interface Category {
319
+ readonly categories?: CategoryListComponentItem[];
320
+ readonly categoryTree?: CategoryTree[];
321
+ }
322
+
298
323
  interface ExternalContentData {
299
- readonly site?: SiteContent;
324
+ readonly site?: SiteContent;
325
+ readonly category?: Category;
300
326
  }
301
327
 
302
328
  interface ButtonContentEditor {
@@ -344,15 +370,15 @@ interface LogoContentEditor {
344
370
  }
345
371
 
346
372
  type ContentEditor =
347
- TextContentEditor
348
- | MultilineTextContentEditor
349
- | ButtonContentEditor
350
- | ImageContentEditor
351
- | ToggleContentEditor
352
- | SelectboxContentEditor
353
- | MenuContentEditor
354
- | NavigationMenuContentEditor
355
- | LogoContentEditor;
373
+ TextContentEditor
374
+ | MultilineTextContentEditor
375
+ | ButtonContentEditor
376
+ | ImageContentEditor
377
+ | ToggleContentEditor
378
+ | SelectboxContentEditor
379
+ | MenuContentEditor
380
+ | NavigationMenuContentEditor
381
+ | LogoContentEditor;
356
382
 
357
383
  type InferContentType<T extends Record<string, ContentEditor>> = {
358
384
  readonly [P in keyof T]: MapEditorContentTypes[T[P]['type']]
@@ -1,3 +0,0 @@
1
- module.exports = {
2
- extends: '@lightspeed/eslint-config-crane',
3
- };