@lightspeed/crane 2.0.4 → 3.0.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 (131) hide show
  1. package/CHANGELOG.md +50 -0
  2. package/UPGRADE.md +96 -0
  3. package/dist/cli.mjs +44 -25
  4. package/package.json +6 -3
  5. package/template/blank/sections/blank-section/BlankSection.vue +9 -0
  6. package/template/blank/sections/blank-section/assets/blank_section_showcase_1_preview.jpg +0 -0
  7. package/template/blank/sections/blank-section/client.ts +6 -0
  8. package/template/blank/sections/blank-section/server.ts +6 -0
  9. package/template/blank/sections/blank-section/settings/content.ts +2 -0
  10. package/template/blank/sections/blank-section/settings/design.ts +2 -0
  11. package/template/blank/sections/blank-section/settings/layout.ts +2 -0
  12. package/template/blank/sections/blank-section/settings/translations.ts +8 -0
  13. package/template/blank/sections/blank-section/showcases/1.ts +15 -0
  14. package/template/blank/sections/blank-section/showcases/translations.ts +10 -0
  15. package/template/blank/sections/blank-section/type.ts +5 -0
  16. package/template/collections/assets/collection_cover_image.png +0 -0
  17. package/template/collections/example-collection/configuration.ts +21 -0
  18. package/template/crane.config.json +1 -1
  19. package/template/footers/example-footer/ExampleFooter.vue +4 -4
  20. package/template/footers/example-footer/component/LegalLinks.vue +1 -1
  21. package/template/footers/example-footer/component/MadeWith.vue +1 -1
  22. package/template/footers/example-footer/component/ReportAbuse.vue +1 -1
  23. package/template/footers/example-footer/settings/design.ts +5 -4
  24. package/template/footers/example-footer/settings/translations.ts +4 -3
  25. package/template/footers/example-footer/showcases/1.ts +4 -2
  26. package/template/footers/example-footer/showcases/translations.ts +4 -2
  27. package/template/headers/example-header/ExampleHeader.vue +1 -1
  28. package/template/headers/example-header/component/Account.vue +1 -1
  29. package/template/headers/example-header/component/CategoriesDropdown.vue +1 -1
  30. package/template/headers/example-header/component/Logo.vue +7 -7
  31. package/template/headers/example-header/component/NavigationMenu.vue +1 -1
  32. package/template/headers/example-header/settings/content.ts +8 -1
  33. package/template/headers/example-header/settings/design.ts +7 -1
  34. package/template/headers/example-header/settings/layout.ts +1 -1
  35. package/template/headers/example-header/settings/translations.ts +4 -2
  36. package/template/headers/example-header/showcases/1.ts +15 -11
  37. package/template/headers/example-header/showcases/2.ts +12 -8
  38. package/template/headers/example-header/showcases/translations.ts +4 -2
  39. package/template/layouts/catalog/example-catalog/components/Icon.vue +14 -14
  40. package/template/layouts/catalog/example-catalog/slots/custom-bottom-bar/CustomBottomBar.vue +1 -1
  41. package/template/package.json +1 -0
  42. package/template/page-templates/example-template/configuration.ts +8 -10
  43. package/template/page-templates/example-template/pages/catalog.ts +3 -6
  44. package/template/page-templates/example-template/pages/category.ts +3 -6
  45. package/template/page-templates/example-template/pages/home.ts +42 -57
  46. package/template/page-templates/example-template/pages/product.ts +3 -6
  47. package/template/preview/sections/preview.html +10 -6
  48. package/template/preview/shared/api-routes.ts +235 -102
  49. package/template/preview/shared/logger.ts +9 -0
  50. package/template/preview/shared/preview.ts +150 -69
  51. package/template/preview/shared/utils.ts +63 -43
  52. package/template/preview/ssr-server.ts +1 -1
  53. package/template/reference/sections/about-us/AboutUs.vue +20 -22
  54. package/template/reference/sections/about-us/component/Image.vue +18 -18
  55. package/template/reference/sections/about-us/component/Stats.vue +42 -42
  56. package/template/reference/sections/about-us/component/Title.vue +1 -1
  57. package/template/reference/sections/about-us/settings/content.ts +15 -19
  58. package/template/reference/sections/about-us/settings/design.ts +14 -18
  59. package/template/reference/sections/about-us/settings/layout.ts +7 -5
  60. package/template/reference/sections/about-us/settings/translations.ts +4 -2
  61. package/template/reference/sections/about-us/showcases/1.ts +48 -62
  62. package/template/reference/sections/about-us/showcases/2.ts +44 -56
  63. package/template/reference/sections/about-us/showcases/translations.ts +4 -2
  64. package/template/reference/sections/featured-products/FeaturedProducts.vue +12 -6
  65. package/template/reference/sections/featured-products/component/ProductItem.vue +18 -1
  66. package/template/reference/sections/featured-products/component/ProductPlaceholder.vue +42 -0
  67. package/template/reference/sections/featured-products/component/Title.vue +1 -1
  68. package/template/reference/sections/featured-products/settings/content.ts +8 -10
  69. package/template/reference/sections/featured-products/settings/design.ts +7 -7
  70. package/template/reference/sections/featured-products/settings/translations.ts +4 -2
  71. package/template/reference/sections/featured-products/showcases/1.ts +8 -12
  72. package/template/reference/sections/featured-products/showcases/translations.ts +4 -2
  73. package/template/reference/sections/intro-slider/IntroSlider.vue +6 -6
  74. package/template/reference/sections/intro-slider/component/Slider.vue +43 -44
  75. package/template/reference/sections/intro-slider/component/Title.vue +9 -9
  76. package/template/reference/sections/intro-slider/settings/content.ts +36 -22
  77. package/template/reference/sections/intro-slider/settings/design.ts +17 -22
  78. package/template/reference/sections/intro-slider/settings/layout.ts +6 -4
  79. package/template/reference/sections/intro-slider/settings/translations.ts +4 -2
  80. package/template/reference/sections/intro-slider/showcases/1.ts +52 -75
  81. package/template/reference/sections/intro-slider/showcases/2.ts +50 -72
  82. package/template/reference/sections/intro-slider/showcases/translations.ts +4 -2
  83. package/template/reference/sections/tag-lines/TagLines.vue +41 -47
  84. package/template/reference/sections/tag-lines/component/HighlightedText.vue +2 -2
  85. package/template/reference/sections/tag-lines/component/SectionImage.vue +18 -18
  86. package/template/reference/sections/tag-lines/component/Title.vue +2 -2
  87. package/template/reference/sections/tag-lines/settings/content.ts +53 -19
  88. package/template/reference/sections/tag-lines/settings/design.ts +15 -19
  89. package/template/reference/sections/tag-lines/settings/layout.ts +6 -4
  90. package/template/reference/sections/tag-lines/settings/translations.ts +4 -2
  91. package/template/reference/sections/tag-lines/showcases/1.ts +40 -50
  92. package/template/reference/sections/tag-lines/showcases/2.ts +40 -50
  93. package/template/reference/sections/tag-lines/showcases/translations.ts +4 -2
  94. package/template/reference/sections/trending-categories/TrendingCategories.vue +1 -1
  95. package/template/reference/sections/trending-categories/component/CategoryItem.vue +18 -1
  96. package/template/reference/sections/trending-categories/component/Title.vue +2 -2
  97. package/template/reference/sections/trending-categories/settings/content.ts +8 -10
  98. package/template/reference/sections/trending-categories/settings/design.ts +7 -7
  99. package/template/reference/sections/trending-categories/settings/translations.ts +4 -2
  100. package/template/reference/sections/trending-categories/showcases/1.ts +14 -15
  101. package/template/reference/sections/trending-categories/showcases/translations.ts +4 -2
  102. package/template/reference/shared/components/Button.vue +6 -6
  103. package/template/reference/shared/components/SectionWrapper.vue +5 -5
  104. package/template/reference/shared/components/Tagline.vue +12 -11
  105. package/template/reference/templates/reference-template-apparel/configuration.ts +8 -8
  106. package/template/reference/templates/reference-template-apparel/pages/catalog.ts +3 -6
  107. package/template/reference/templates/reference-template-apparel/pages/category.ts +3 -6
  108. package/template/reference/templates/reference-template-apparel/pages/home.ts +14 -18
  109. package/template/reference/templates/reference-template-apparel/pages/product.ts +3 -6
  110. package/template/reference/templates/reference-template-bike/configuration.ts +9 -9
  111. package/template/reference/templates/reference-template-bike/pages/catalog.ts +3 -6
  112. package/template/reference/templates/reference-template-bike/pages/category.ts +3 -6
  113. package/template/reference/templates/reference-template-bike/pages/home.ts +14 -18
  114. package/template/reference/templates/reference-template-bike/pages/product.ts +3 -6
  115. package/template/sections/example-section/ExampleSection.vue +3 -5
  116. package/template/sections/example-section/component/button/Button.vue +1 -1
  117. package/template/sections/example-section/component/image/Image.vue +43 -43
  118. package/template/sections/example-section/component/image/ImagesGrid.vue +21 -32
  119. package/template/sections/example-section/component/selectbox/Selectbox.vue +1 -1
  120. package/template/sections/example-section/component/title/Title.vue +1 -1
  121. package/template/sections/example-section/component/toggle/Toggle.vue +4 -4
  122. package/template/sections/example-section/settings/content.ts +25 -34
  123. package/template/sections/example-section/settings/design.ts +15 -19
  124. package/template/sections/example-section/settings/layout.ts +15 -14
  125. package/template/sections/example-section/settings/translations.ts +4 -2
  126. package/template/sections/example-section/showcases/1.ts +52 -79
  127. package/template/sections/example-section/showcases/2.ts +46 -62
  128. package/template/sections/example-section/showcases/3.ts +50 -76
  129. package/template/sections/example-section/showcases/translations.ts +4 -2
  130. package/template/shared/components/LanguageSelector.vue +1 -1
  131. package/template/shared/components/SectionWrapper.vue +5 -5
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lightspeed/crane",
3
- "version": "2.0.4",
3
+ "version": "3.0.0",
4
4
  "type": "module",
5
5
  "bin": "bin/crane.js",
6
6
  "main": "./dist/app.mjs",
@@ -39,6 +39,7 @@
39
39
  "license": "MIT",
40
40
  "devDependencies": {
41
41
  "@jest/globals": "^30.0.4",
42
+ "@lightspeed/crane-internal": "workspace:*",
42
43
  "@lightspeed/eslint-config": "workspace:*",
43
44
  "@types/adm-zip": "^0.5.7",
44
45
  "@types/axios-concurrency": "^1.0.0",
@@ -64,10 +65,11 @@
64
65
  },
65
66
  "dependencies": {
66
67
  "@jridgewell/sourcemap-codec": "^1.5.4",
67
- "@lightspeed/crane-api": "1.1.0",
68
+ "@lightspeed/crane-api": "2.0.0",
68
69
  "@lightspeed/eslint-config-crane": "1.1.3",
69
70
  "@types/micromatch": "^4.0.8",
70
71
  "@types/prompts": "^2.4.2",
72
+ "@types/ws": "^8.5.3",
71
73
  "@vitejs/plugin-vue": "^6.0.1",
72
74
  "adm-zip": "^0.5.16",
73
75
  "ajv": "^8.17.1",
@@ -92,7 +94,8 @@
92
94
  "vite-plugin-externals": "^0.6.2",
93
95
  "vite-tsconfig-paths": "^5.1.4",
94
96
  "vue": "^3.5.21",
95
- "vue-tsc": "^3.0.6"
97
+ "vue-tsc": "^3.0.6",
98
+ "ws": "^8.19.0"
96
99
  },
97
100
  "peerDependencies": {
98
101
  "vue": "^3.5.21"
@@ -0,0 +1,9 @@
1
+ <template>
2
+ <h1>{{ t('$label.shared.title') }}</h1>
3
+ </template>
4
+
5
+ <script setup lang="ts">
6
+ import { useTranslation, } from '@lightspeed/crane-api';
7
+
8
+ const { t } = useTranslation();
9
+ </script>
@@ -0,0 +1,6 @@
1
+ import { createVueClientApp } from '@lightspeed/crane-api';
2
+
3
+ import BlankSection from './BlankSection.vue';
4
+ import { Content, Design } from './type.ts';
5
+
6
+ export default createVueClientApp<Content, Design>(BlankSection);
@@ -0,0 +1,6 @@
1
+ import { createVueServerApp } from '@lightspeed/crane-api';
2
+
3
+ import BlankSection from './BlankSection.vue';
4
+ import { Content, Design } from './type.ts';
5
+
6
+ export default createVueServerApp<Content, Design>(BlankSection);
@@ -0,0 +1,2 @@
1
+ export default {
2
+ } as const;
@@ -0,0 +1,2 @@
1
+ export default {
2
+ } as const;
@@ -0,0 +1,2 @@
1
+ export default [
2
+ ] as const;
@@ -0,0 +1,8 @@
1
+ export default {
2
+ en: {
3
+ },
4
+ nl: {
5
+ },
6
+ fr: {
7
+ },
8
+ } as const;
@@ -0,0 +1,15 @@
1
+ import { showcase } from '@lightspeed/crane-api';
2
+
3
+ export default showcase.init({
4
+ showcaseId: '1',
5
+ previewImage: {
6
+ set: {
7
+ ORIGINAL: {
8
+ url: 'blank_section_showcase_1_preview.jpg',
9
+ },
10
+ },
11
+ },
12
+ blockName: '$label.showcase_1.blockName',
13
+ content: {},
14
+ design: {},
15
+ });
@@ -0,0 +1,10 @@
1
+ export default {
2
+ en: {
3
+ },
4
+
5
+ nl: {
6
+ },
7
+
8
+ fr: {
9
+ },
10
+ } as const;
@@ -0,0 +1,5 @@
1
+ import ContentSettings from './settings/content.ts';
2
+ import DesignSettings from './settings/design.ts';
3
+
4
+ export type Content = InferContentType<typeof ContentSettings>;
5
+ export type Design = InferDesignType<typeof DesignSettings>;
@@ -0,0 +1,21 @@
1
+ export default {
2
+ metadata: {
3
+ name: 'Example Collection',
4
+ description: 'Example Collection with custom sections, headers, and footers',
5
+ cover_image: {
6
+ set: {
7
+ ORIGINAL: {
8
+ url: 'collection_cover_image.png',
9
+ },
10
+ },
11
+ },
12
+ },
13
+ sections: [
14
+ {
15
+ type: 'custom',
16
+ id: 'example-section',
17
+ showcase_id: '1',
18
+ category: 'COLLECTIONS',
19
+ },
20
+ ],
21
+ };
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "app_client_id": "test",
3
3
  "app_secret_key": "secret"
4
- }
4
+ }
@@ -42,7 +42,7 @@ const backgroundStyle = computed(() => {
42
42
  });
43
43
  </script>
44
44
 
45
- <style scoped lang="scss">
45
+ <style scoped>
46
46
  .custom-footer {
47
47
  padding: 50px;
48
48
 
@@ -53,9 +53,9 @@ const backgroundStyle = computed(() => {
53
53
  @media screen and (min-width: 1200px) {
54
54
  padding: 100px;
55
55
  }
56
+ }
56
57
 
57
- &__blank_space {
58
- height: 40px;
59
- }
58
+ .custom-footer__blank_space {
59
+ height: 40px;
60
60
  }
61
61
  </style>
@@ -16,5 +16,5 @@ const siteContent: SiteContent = baseProps.site?.value satisfies SiteContent;
16
16
  const legalLinks = siteContent.legalPages ?? [];
17
17
  </script>
18
18
 
19
- <style lang="scss" scoped>
19
+ <style scoped>
20
20
  </style>
@@ -19,5 +19,5 @@ const siteContent: SiteContent = baseProps.site?.value satisfies SiteContent;
19
19
  const madeWith = siteContent.madeWith;
20
20
  </script>
21
21
 
22
- <style lang="scss" scoped>
22
+ <style scoped>
23
23
  </style>
@@ -15,5 +15,5 @@ const siteContent: SiteContent = baseProps.site.value satisfies SiteContent;
15
15
  const reportAbuse = siteContent.reportAbuse;
16
16
  </script>
17
17
 
18
- <style lang="scss" scoped>
18
+ <style scoped>
19
19
  </style>
@@ -1,11 +1,12 @@
1
+ import { design } from '@lightspeed/crane-api';
2
+
1
3
  export default {
2
- background: {
3
- type: 'BACKGROUND',
4
+ background: design.background({
4
5
  label: '$label.background.label',
5
6
  colors: ['#FFFFFF66', '#0000004D', '#00000099', '#64C7FF66', '#F9947266', '#C794CD66', '#FFD17466'],
6
7
  defaults: {
7
8
  style: 'COLOR',
8
9
  color: 'global.color.background',
9
10
  },
10
- },
11
- } as const;
11
+ }),
12
+ };
@@ -1,4 +1,6 @@
1
- export default {
1
+ import { translation } from '@lightspeed/crane-api';
2
+
3
+ export default translation.init({
2
4
  en: {
3
5
  '$label.reportAbuse.label': 'Custom Footer',
4
6
  '$label.background.label': 'Background',
@@ -7,6 +9,5 @@ export default {
7
9
  nl: {
8
10
  '$label.reportAbuse.label': 'aangepaste voettekst',
9
11
  '$label.background.label': 'Achtergrond',
10
-
11
12
  },
12
- } as const;
13
+ });
@@ -1,4 +1,6 @@
1
- export default {
1
+ import { showcase } from '@lightspeed/crane-api';
2
+
3
+ export default showcase.init({
2
4
  showcaseId: '1',
3
5
  previewImage: {
4
6
  set: {
@@ -10,4 +12,4 @@ export default {
10
12
  blockName: '$label.showcase_1.blockName',
11
13
  content: {},
12
14
  design: {},
13
- } as const;
15
+ });
@@ -1,4 +1,6 @@
1
- export default {
1
+ import { translation } from '@lightspeed/crane-api';
2
+
3
+ export default translation.init({
2
4
  en: {
3
5
  '$label.showcase_1.blockName': 'Custom footer',
4
6
  },
@@ -6,4 +8,4 @@ export default {
6
8
  nl: {
7
9
  '$label.showcase_1.blockName': 'aangepaste voettekst',
8
10
  },
9
- } as const;
11
+ });
@@ -22,7 +22,7 @@ import SearchForm from './component/SearchForm.vue';
22
22
  import Account from './component/Account.vue';
23
23
  </script>
24
24
 
25
- <style scoped lang="scss">
25
+ <style scoped>
26
26
  .custom-header {
27
27
  display: flex;
28
28
  justify-content: space-between;
@@ -16,5 +16,5 @@ const siteContent: SiteContent = baseProps.site.value satisfies SiteContent;
16
16
  const account = siteContent.account;
17
17
  </script>
18
18
 
19
- <style lang="scss" scoped>
19
+ <style scoped>
20
20
  </style>
@@ -97,7 +97,7 @@ const getCategoryLink = (urlPath: string) => {
97
97
  };
98
98
  </script>
99
99
 
100
- <style scoped lang="scss">
100
+ <style scoped>
101
101
  .categories-dropdown {
102
102
  position: absolute;
103
103
  top: 48px;
@@ -69,7 +69,7 @@ const logoFrameStyle = computed(() => ({
69
69
  }));
70
70
  </script>
71
71
 
72
- <style lang="scss" scoped>
72
+ <style scoped>
73
73
  .logo-section {
74
74
  height: 100%;
75
75
  width: 300px;
@@ -84,12 +84,12 @@ const logoFrameStyle = computed(() => ({
84
84
  .logo-section-image {
85
85
  height: 100%;
86
86
  width: 100%;
87
- display:block;
87
+ display: block;
88
+ }
88
89
 
89
- &__content {
90
- height: 100%;
91
- width: 100%;
92
- object-fit: contain;
93
- }
90
+ .logo-section-image__content {
91
+ height: 100%;
92
+ width: 100%;
93
+ object-fit: contain;
94
94
  }
95
95
  </style>
@@ -87,7 +87,7 @@ function hideDropdown() {
87
87
  }
88
88
  </script>
89
89
 
90
- <style scoped lang="scss">
90
+ <style scoped>
91
91
  .navigation-menu {
92
92
  display: flex;
93
93
  gap: 16px;
@@ -1 +1,8 @@
1
- export default {} as const;
1
+ import { content } from '@lightspeed/crane-api';
2
+
3
+ export default {
4
+ logo: content.logo({
5
+ label: '$label.logo.label',
6
+ }),
7
+ menu: content.navigationMenu({}),
8
+ };
@@ -1 +1,7 @@
1
- export default {} as const;
1
+ import { design } from '@lightspeed/crane-api';
2
+
3
+ export default {
4
+ logo: design.logo({
5
+ label: '$label.logo.label',
6
+ }),
7
+ };
@@ -1 +1 @@
1
- export default [] as const;
1
+ export default [];
@@ -1,4 +1,6 @@
1
- export default {
1
+ import { translation } from '@lightspeed/crane-api';
2
+
3
+ export default translation.init({
2
4
  en: {
3
5
  '$label.logo.label': 'Logo',
4
6
  },
@@ -6,4 +8,4 @@ export default {
6
8
  nl: {
7
9
  '$label.logo.label': 'Logo',
8
10
  },
9
- } as const;
11
+ });
@@ -1,4 +1,10 @@
1
- export default {
1
+ import {
2
+ content,
3
+ design,
4
+ showcase,
5
+ } from '@lightspeed/crane-api';
6
+
7
+ export default showcase.init({
2
8
  showcaseId: '1',
3
9
  previewImage: {
4
10
  set: {
@@ -9,18 +15,16 @@ export default {
9
15
  },
10
16
  blockName: '$label.showcase_1.blockName',
11
17
  content: {
12
- logo: {
13
- type: 'LOGO',
18
+ logo: content.default.logo({
14
19
  logoType: 'TEXT',
15
20
  text: '$label.showcase_1.logo.text',
16
- },
17
- menu: {
18
- type: 'NAVIGATION_MENU',
19
- },
21
+ }),
22
+ menu: content.default.navigationMenu({
23
+ items: [],
24
+ }),
20
25
  },
21
26
  design: {
22
- logo: {
23
- type: 'LOGO',
27
+ logo: design.default.logo({
24
28
  font: 'global.fontFamily.body',
25
29
  size: 20,
26
30
  bold: true,
@@ -34,6 +38,6 @@ export default {
34
38
  width: 3,
35
39
  color: '#313131',
36
40
  },
37
- },
41
+ }),
38
42
  },
39
- } as const;
43
+ });
@@ -1,4 +1,9 @@
1
- export default {
1
+ import {
2
+ content,
3
+ showcase,
4
+ } from '@lightspeed/crane-api';
5
+
6
+ export default showcase.init({
2
7
  showcaseId: '2',
3
8
  previewImage: {
4
9
  set: {
@@ -9,11 +14,10 @@ export default {
9
14
  },
10
15
  blockName: '$label.showcase_2.blockName',
11
16
  content: {
12
- menu: {
13
- type: 'NAVIGATION_MENU',
14
- },
15
- logo: {
16
- type: 'LOGO',
17
+ menu: content.default.navigationMenu({
18
+ items: [],
19
+ }),
20
+ logo: content.default.logo({
17
21
  logoType: 'IMAGE',
18
22
  imageData: {
19
23
  set: {
@@ -32,7 +36,7 @@ export default {
32
36
  },
33
37
  borderInfo: {},
34
38
  },
35
- },
39
+ }),
36
40
  },
37
41
  design: {},
38
- } as const;
42
+ });
@@ -1,4 +1,6 @@
1
- export default {
1
+ import { translation } from '@lightspeed/crane-api';
2
+
3
+ export default translation.init({
2
4
  en: {
3
5
  '$label.showcase_1.blockName': 'Custom Header',
4
6
  '$label.showcase_1.menu.text': 'Navigation Menu',
@@ -14,4 +16,4 @@ export default {
14
16
  '$label.showcase_2.menu.text': 'Navigatie Menu',
15
17
  '$label.showcase_1.logo.text': 'Voorbeeld Tekst Logo',
16
18
  },
17
- } as const;
19
+ });
@@ -23,30 +23,30 @@ const iconClass = computed(() => ({
23
23
  }));
24
24
  </script>
25
25
 
26
- <style lang="scss" scoped>
26
+ <style scoped>
27
27
  .icon {
28
28
  display: inline-flex;
29
29
  align-items: center;
30
30
  justify-content: center;
31
31
 
32
- svg {
32
+ & svg {
33
33
  fill: v-bind(color);
34
34
  transition: all 0.3s ease;
35
35
  }
36
+ }
36
37
 
37
- &--small svg {
38
- width: 16px;
39
- height: 16px;
40
- }
38
+ .icon--small svg {
39
+ width: 16px;
40
+ height: 16px;
41
+ }
41
42
 
42
- &--medium svg {
43
- width: 24px;
44
- height: 24px;
45
- }
43
+ .icon--medium svg {
44
+ width: 24px;
45
+ height: 24px;
46
+ }
46
47
 
47
- &--large svg {
48
- width: 32px;
49
- height: 32px;
50
- }
48
+ .icon--large svg {
49
+ width: 32px;
50
+ height: 32px;
51
51
  }
52
52
  </style>
@@ -20,7 +20,7 @@ const goToAccount = () => {
20
20
  };
21
21
  </script>
22
22
 
23
- <style lang="scss" scoped>
23
+ <style scoped>
24
24
  .custom-bottom-bar {
25
25
  position: fixed;
26
26
  bottom: 0;
@@ -1,6 +1,7 @@
1
1
  {
2
2
  "name": "__placeholder__",
3
3
  "private": true,
4
+ "openSource": false,
4
5
  "version": "0.0.1",
5
6
  "type": "module",
6
7
  "scripts": {
@@ -1,10 +1,10 @@
1
- import { TemplateCategoriesList } from '@lightspeed/crane-api';
1
+ import { template, section } from '@lightspeed/crane-api';
2
2
 
3
- export default {
3
+ export default template.configuration({
4
4
  metadata: {
5
5
  name: 'Example Template :: Standard Preset',
6
6
  description: 'Standard Preset for the Example template',
7
- categories: [TemplateCategoriesList.apparel_footwear],
7
+ categories: ['apparel_footwear'],
8
8
  preview_url: 'https://template_preview.company.site',
9
9
  cover_image: {
10
10
  set: {
@@ -14,12 +14,10 @@ export default {
14
14
  },
15
15
  },
16
16
  },
17
- header: {
18
- type: 'default',
17
+ header: section.default({
19
18
  id: 'header',
20
- },
21
- footer: {
22
- type: 'default',
19
+ }),
20
+ footer: section.default({
23
21
  id: 'footer',
24
- },
25
- };
22
+ }),
23
+ });
@@ -1,10 +1,7 @@
1
- import { StorePageConfiguration } from '@lightspeed/crane-api';
1
+ import { section } from '@lightspeed/crane-api';
2
2
 
3
3
  export default {
4
4
  sections: [
5
- {
6
- type: 'store',
7
- id: undefined,
8
- },
5
+ section.store({}),
9
6
  ],
10
- } satisfies StorePageConfiguration;
7
+ };
@@ -1,10 +1,7 @@
1
- import { StorePageConfiguration } from '@lightspeed/crane-api';
1
+ import { section } from '@lightspeed/crane-api';
2
2
 
3
3
  export default {
4
4
  sections: [
5
- {
6
- type: 'store',
7
- id: undefined,
8
- },
5
+ section.store({}),
9
6
  ],
10
- } satisfies StorePageConfiguration;
7
+ };