cloudcommerce 0.24.0 → 0.25.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 (66) hide show
  1. package/CHANGELOG.md +30 -0
  2. package/ecomplus-stores/barra-doce/functions/many/package.json +3 -3
  3. package/ecomplus-stores/barra-doce/functions/ssr/package.json +7 -7
  4. package/ecomplus-stores/barra-doce/functions/ssr/src/components/ShopHeader.vue +31 -5
  5. package/ecomplus-stores/barra-doce/functions/ssr/src/main/Home.astro +6 -6
  6. package/ecomplus-stores/barra-doce/functions/with-apps/package.json +3 -3
  7. package/ecomplus-stores/barra-doce/package.json +2 -2
  8. package/ecomplus-stores/iluminim/.ecomplus.cd.json +3 -3
  9. package/ecomplus-stores/iluminim/functions/many/package.json +3 -3
  10. package/ecomplus-stores/iluminim/functions/ssr/package.json +7 -7
  11. package/ecomplus-stores/iluminim/functions/ssr/src/components/ShopHeader.vue +31 -5
  12. package/ecomplus-stores/iluminim/functions/with-apps/package.json +3 -3
  13. package/ecomplus-stores/iluminim/package.json +2 -2
  14. package/ecomplus-stores/monocard/functions/ssr/package.json +1 -1
  15. package/package.json +4 -4
  16. package/packages/api/package.json +1 -1
  17. package/packages/apps/affilate-program/package.json +1 -1
  18. package/packages/apps/correios/package.json +1 -1
  19. package/packages/apps/custom-payment/package.json +1 -1
  20. package/packages/apps/custom-shipping/package.json +1 -1
  21. package/packages/apps/datafrete/package.json +1 -1
  22. package/packages/apps/discounts/package.json +1 -1
  23. package/packages/apps/emails/package.json +1 -1
  24. package/packages/apps/fb-conversions/package.json +2 -2
  25. package/packages/apps/flash-courier/package.json +1 -1
  26. package/packages/apps/frenet/package.json +1 -1
  27. package/packages/apps/galaxpay/package.json +1 -1
  28. package/packages/apps/google-analytics/package.json +1 -1
  29. package/packages/apps/jadlog/package.json +1 -1
  30. package/packages/apps/loyalty-points/package.json +1 -1
  31. package/packages/apps/melhor-envio/package.json +1 -1
  32. package/packages/apps/mercadopago/package.json +1 -1
  33. package/packages/apps/pagarme/package.json +1 -1
  34. package/packages/apps/paghiper/package.json +1 -1
  35. package/packages/apps/pix/package.json +1 -1
  36. package/packages/apps/tiny-erp/package.json +1 -1
  37. package/packages/apps/webhooks/package.json +1 -1
  38. package/packages/cli/lib/cli.js +5 -1
  39. package/packages/cli/package.json +1 -1
  40. package/packages/cli/src/cli.ts +5 -1
  41. package/packages/config/package.json +1 -1
  42. package/packages/emails/package.json +1 -1
  43. package/packages/eslint/package.json +4 -4
  44. package/packages/eslint/storefront.eslintrc.cjs +1 -0
  45. package/packages/events/package.json +1 -1
  46. package/packages/feeds/package.json +1 -1
  47. package/packages/firebase/package.json +2 -2
  48. package/packages/i18n/package.json +1 -1
  49. package/packages/modules/package.json +1 -1
  50. package/packages/passport/package.json +1 -1
  51. package/packages/ssr/lib/firebase/serve-storefront.js +25 -21
  52. package/packages/ssr/lib/firebase/serve-storefront.js.map +1 -1
  53. package/packages/ssr/package.json +5 -5
  54. package/packages/ssr/src/firebase/serve-storefront.ts +27 -22
  55. package/packages/storefront/config/storefront.config.mjs +8 -2
  56. package/packages/storefront/config/storefront.unocss.cjs +1 -1
  57. package/packages/storefront/package.json +7 -7
  58. package/packages/storefront/src/helpers/server-data.ts +14 -17
  59. package/packages/storefront/src/images/use-ssr-picture.ts +18 -3
  60. package/packages/storefront/src/lib/components/BannerPictures.astro +4 -4
  61. package/packages/storefront/src/lib/components/PaymentMethodFlag.vue +2 -2
  62. package/packages/storefront/src/lib/components/globals/Skeleton.vue +29 -0
  63. package/packages/storefront/src/lib/pages/_vue.ts +2 -0
  64. package/packages/storefront/src/lib/ssr-context.ts +1 -1
  65. package/packages/storefront/src/vue-globals.d.ts +1 -0
  66. package/packages/types/package.json +1 -1
@@ -147,7 +147,11 @@ Finish by saving the following secrets to your GitHub repository:
147
147
  }
148
148
  if (argv._.includes('dev') || !argv._.length) {
149
149
  await prepareCodebases(true);
150
- return $`npm --prefix "${path.join(pwd, 'functions/ssr')}" run dev`;
150
+ const prefix = path.join(pwd, 'functions/ssr');
151
+ // https://docs.astro.build/en/reference/cli-reference/#astro-dev
152
+ const host = typeof argv.host === 'string' ? argv.host : '';
153
+ const port = typeof argv.port === 'string' || typeof argv.port === 'number' ? argv.port : '';
154
+ return $`npm --prefix "${prefix}" run dev -- --host ${host} --port ${port}`;
151
155
  }
152
156
  return $`echo 'Hello from @cloudcommerce/cli'`;
153
157
  };
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@cloudcommerce/cli",
3
3
  "type": "module",
4
- "version": "0.24.0",
4
+ "version": "0.25.0",
5
5
  "description": "E-Com Plus Cloud Commerce CLI tools",
6
6
  "bin": {
7
7
  "cloudcommerce": "./bin/run.mjs"
@@ -180,7 +180,11 @@ Finish by saving the following secrets to your GitHub repository:
180
180
 
181
181
  if (argv._.includes('dev') || !argv._.length) {
182
182
  await prepareCodebases(true);
183
- return $`npm --prefix "${path.join(pwd, 'functions/ssr')}" run dev`;
183
+ const prefix = path.join(pwd, 'functions/ssr');
184
+ // https://docs.astro.build/en/reference/cli-reference/#astro-dev
185
+ const host = typeof argv.host === 'string' ? argv.host : '';
186
+ const port = typeof argv.port === 'string' || typeof argv.port === 'number' ? argv.port : '';
187
+ return $`npm --prefix "${prefix}" run dev -- --host ${host} --port ${port}`;
184
188
  }
185
189
  return $`echo 'Hello from @cloudcommerce/cli'`;
186
190
  };
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@cloudcommerce/config",
3
3
  "type": "module",
4
- "version": "0.24.0",
4
+ "version": "0.25.0",
5
5
  "description": "E-Com Plus Cloud Commerce base config",
6
6
  "main": "lib/config.js",
7
7
  "exports": {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@cloudcommerce/emails",
3
3
  "type": "module",
4
- "version": "0.24.0",
4
+ "version": "0.25.0",
5
5
  "description": "E-Com Plus Cloud Commerce email sender",
6
6
  "main": "lib/index.js",
7
7
  "types": "lib/index.d.ts",
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@cloudcommerce/eslint",
3
3
  "type": "module",
4
- "version": "0.24.0",
4
+ "version": "0.25.0",
5
5
  "description": "E-Com Plus Cloud Commerce ESLint config",
6
6
  "main": "lib/index.js",
7
7
  "repository": {
@@ -19,11 +19,11 @@
19
19
  "build": "echo '@ecomplus/eslint'"
20
20
  },
21
21
  "dependencies": {
22
- "@typescript-eslint/eslint-plugin": "^6.3.0",
23
- "@typescript-eslint/parser": "^6.3.0",
22
+ "@typescript-eslint/eslint-plugin": "^6.4.0",
23
+ "@typescript-eslint/parser": "^6.4.0",
24
24
  "eslint": "^8.47.0",
25
25
  "eslint-config-airbnb-base": "^15.0.0",
26
- "eslint-plugin-import": "^2.28.0",
26
+ "eslint-plugin-import": "^2.28.1",
27
27
  "eslint-plugin-vue": "^9.17.0"
28
28
  }
29
29
  }
@@ -19,6 +19,7 @@ module.exports = {
19
19
  'Fade',
20
20
  'Carousel',
21
21
  'Drawer',
22
+ 'Skeleton',
22
23
  'Prices',
23
24
  'Banner',
24
25
  'Countdown',
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@cloudcommerce/events",
3
3
  "type": "module",
4
- "version": "0.24.0",
4
+ "version": "0.25.0",
5
5
  "description": "E-Com Plus Cloud Commerce app events",
6
6
  "main": "lib/index.js",
7
7
  "exports": {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@cloudcommerce/feeds",
3
3
  "type": "module",
4
- "version": "0.24.0",
4
+ "version": "0.25.0",
5
5
  "description": "E-Com Plus Cloud Commerce catalog feeds",
6
6
  "main": "lib/index.js",
7
7
  "exports": {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@cloudcommerce/firebase",
3
3
  "type": "module",
4
- "version": "0.24.0",
4
+ "version": "0.25.0",
5
5
  "description": "E-Com Plus Cloud Commerce on Firebase",
6
6
  "main": "lib/index.js",
7
7
  "types": "lib/index.d.ts",
@@ -31,7 +31,7 @@
31
31
  "dependencies": {
32
32
  "@cloudcommerce/api": "workspace:*",
33
33
  "@cloudcommerce/config": "workspace:*",
34
- "@google-cloud/pubsub": "^3.7.3",
34
+ "@google-cloud/pubsub": "^4.0.1",
35
35
  "firebase-admin": "^11.10.1",
36
36
  "firebase-functions": "^4.4.1",
37
37
  "source-map-support": "^0.5.21"
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@cloudcommerce/i18n",
3
3
  "type": "module",
4
- "version": "0.24.0",
4
+ "version": "0.25.0",
5
5
  "description": "E-Com Plus Cloud Commerce i18n",
6
6
  "main": "lib/all.js",
7
7
  "exports": {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@cloudcommerce/modules",
3
3
  "type": "module",
4
- "version": "0.24.0",
4
+ "version": "0.25.0",
5
5
  "description": "E-Com Plus Cloud Commerce modules API",
6
6
  "main": "lib/index.cjs",
7
7
  "exports": {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@cloudcommerce/passport",
3
3
  "type": "module",
4
- "version": "0.24.0",
4
+ "version": "0.25.0",
5
5
  "description": "E-Com Plus Cloud Commerce customers authentication (passport) API",
6
6
  "main": "lib/index.js",
7
7
  "exports": {
@@ -109,26 +109,10 @@ export default async (req, res) => {
109
109
  proxy(req, res);
110
110
  return;
111
111
  }
112
- res.set('X-XSS-Protection', '1; mode=block');
113
- const url = req.path.replace(/\.html$/, '');
114
- const setStatusAndCache = (status, cacheControl) => {
115
- if (res.headersSent) return res;
116
- return res.status(status)
117
- .set('X-SSR-ID', `v1/${Date.now()}`)
118
- .set('Cache-Control', cacheControl);
119
- };
120
- const fallback = (err, status = 500) => {
121
- if (url !== '/~fallback' && (/\/[^/.]+$/.test(url) || /\.x?html$/.test(url))) {
122
- setStatusAndCache(status, 'public, max-age=120')
123
- .send('<html><head>'
124
- + '<meta http-equiv="refresh" content="0; '
125
- + `url=/~fallback?status=${status}&url=${encodeURIComponent(url)}"/>`
126
- + `</head><body>${err.toString()}</body></html>`);
127
- } else {
128
- setStatusAndCache(status, 'public, max-age=120, s-maxage=600')
129
- .send(err.toString());
130
- }
131
- };
112
+ if (req.path.endsWith('.css') && cssFilepath) {
113
+ res.set('Cache-Control', 'max-age=3600').redirect(302, cssFilepath);
114
+ return;
115
+ }
132
116
  if (req.path === '/_image') {
133
117
  const { href } = req.query;
134
118
  if (typeof href === 'string' && href.length > 3) {
@@ -169,7 +153,27 @@ export default async (req, res) => {
169
153
  res.sendStatus(400);
170
154
  return;
171
155
  }
172
- /*
156
+ res.set('X-XSS-Protection', '1; mode=block');
157
+ const url = req.path.replace(/\.html$/, '');
158
+ const setStatusAndCache = (status, cacheControl) => {
159
+ if (res.headersSent) return res;
160
+ return res.status(status)
161
+ .set('X-SSR-ID', `v1/${Date.now()}`)
162
+ .set('Cache-Control', cacheControl);
163
+ };
164
+ const fallback = (err, status = 500) => {
165
+ if (url !== '/~fallback' && (/\/[^/.]+$/.test(url) || /\.x?html$/.test(url))) {
166
+ setStatusAndCache(status, 'public, max-age=120')
167
+ .send('<html><head>'
168
+ + '<meta http-equiv="refresh" content="0; '
169
+ + `url=/~fallback?status=${status}&url=${encodeURIComponent(url)}"/>`
170
+ + `</head><body>${err.toString()}</body></html>`);
171
+ } else {
172
+ setStatusAndCache(status, 'public, max-age=120, s-maxage=600')
173
+ .send(err.toString());
174
+ }
175
+ };
176
+ /*
173
177
  Check Response methods used by Astro Node.js integration:
174
178
  https://github.com/withastro/astro/blob/main/packages/integrations/node/src/nodeMiddleware.ts
175
179
  */
@@ -1 +1 @@
1
- {"version":3,"file":"serve-storefront.js","sourceRoot":"","sources":["../../src/firebase/serve-storefront.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"serve-storefront.js","sourceRoot":"","sources":["../../src/firebase/serve-storefront.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@cloudcommerce/ssr",
3
3
  "type": "module",
4
- "version": "0.24.0",
4
+ "version": "0.25.0",
5
5
  "description": "E-Com Plus Cloud Commerce storefront SSR",
6
6
  "main": "lib/index.js",
7
7
  "exports": {
@@ -24,21 +24,21 @@
24
24
  "build:workers": "npx tsc -p src/cloudflare --outDir cloudflare && npx eslint --ext .js cloudflare --fix"
25
25
  },
26
26
  "dependencies": {
27
- "@astrojs/node": "5.3.4",
27
+ "@astrojs/node": "5.3.5",
28
28
  "@cloudcommerce/api": "workspace:*",
29
29
  "@cloudcommerce/firebase": "workspace:*",
30
30
  "@cloudcommerce/i18n": "workspace:*",
31
31
  "@ecomplus/utils": "1.5.0-rc.5",
32
- "@headlessui/vue": "^1.7.15",
32
+ "@headlessui/vue": "^1.7.16",
33
33
  "@vueuse/core": "10.3.0",
34
- "astro": "2.10.9",
34
+ "astro": "2.10.12",
35
35
  "firebase-admin": "^11.10.1",
36
36
  "firebase-functions": "^4.4.1",
37
37
  "vue": "^3.3.4"
38
38
  },
39
39
  "devDependencies": {
40
40
  "@cloudcommerce/types": "workspace:*",
41
- "@cloudflare/workers-types": "^4.20230807.0",
41
+ "@cloudflare/workers-types": "^4.20230814.0",
42
42
  "@firebase/app-types": "^0.9.0"
43
43
  }
44
44
  }
@@ -132,28 +132,10 @@ export default async (req: Request, res: Response) => {
132
132
  proxy(req, res);
133
133
  return;
134
134
  }
135
- res.set('X-XSS-Protection', '1; mode=block');
136
- const url = req.path.replace(/\.html$/, '');
137
-
138
- const setStatusAndCache = (status: number, cacheControl: string) => {
139
- if (res.headersSent) return res;
140
- return res.status(status)
141
- .set('X-SSR-ID', `v1/${Date.now()}`)
142
- .set('Cache-Control', cacheControl);
143
- };
144
-
145
- const fallback = (err: any, status = 500) => {
146
- if (url !== '/~fallback' && (/\/[^/.]+$/.test(url) || /\.x?html$/.test(url))) {
147
- setStatusAndCache(status, 'public, max-age=120')
148
- .send('<html><head>'
149
- + '<meta http-equiv="refresh" content="0; '
150
- + `url=/~fallback?status=${status}&url=${encodeURIComponent(url)}"/>`
151
- + `</head><body>${err.toString()}</body></html>`);
152
- } else {
153
- setStatusAndCache(status, 'public, max-age=120, s-maxage=600')
154
- .send(err.toString());
155
- }
156
- };
135
+ if (req.path.endsWith('.css') && cssFilepath) {
136
+ res.set('Cache-Control', 'max-age=3600').redirect(302, cssFilepath);
137
+ return;
138
+ }
157
139
 
158
140
  if (req.path === '/_image') {
159
141
  const { href } = req.query;
@@ -196,6 +178,29 @@ export default async (req: Request, res: Response) => {
196
178
  return;
197
179
  }
198
180
 
181
+ res.set('X-XSS-Protection', '1; mode=block');
182
+ const url = req.path.replace(/\.html$/, '');
183
+
184
+ const setStatusAndCache = (status: number, cacheControl: string) => {
185
+ if (res.headersSent) return res;
186
+ return res.status(status)
187
+ .set('X-SSR-ID', `v1/${Date.now()}`)
188
+ .set('Cache-Control', cacheControl);
189
+ };
190
+
191
+ const fallback = (err: any, status = 500) => {
192
+ if (url !== '/~fallback' && (/\/[^/.]+$/.test(url) || /\.x?html$/.test(url))) {
193
+ setStatusAndCache(status, 'public, max-age=120')
194
+ .send('<html><head>'
195
+ + '<meta http-equiv="refresh" content="0; '
196
+ + `url=/~fallback?status=${status}&url=${encodeURIComponent(url)}"/>`
197
+ + `</head><body>${err.toString()}</body></html>`);
198
+ } else {
199
+ setStatusAndCache(status, 'public, max-age=120, s-maxage=600')
200
+ .send(err.toString());
201
+ }
202
+ };
203
+
199
204
  /*
200
205
  Check Response methods used by Astro Node.js integration:
201
206
  https://github.com/withastro/astro/blob/main/packages/integrations/node/src/nodeMiddleware.ts
@@ -4,9 +4,15 @@ import config from '@cloudcommerce/config';
4
4
  import './storefront.cms.js';
5
5
 
6
6
  export default () => {
7
- const { VITE_ECOM_STORE_ID } = import.meta.env || process.env;
7
+ const {
8
+ ECOM_STORE_ID,
9
+ VITE_ECOM_STORE_ID,
10
+ PROD,
11
+ } = import.meta.env || process.env;
8
12
  if (VITE_ECOM_STORE_ID) {
9
13
  config.set({ storeId: Number(VITE_ECOM_STORE_ID) });
14
+ } else if (ECOM_STORE_ID) {
15
+ config.set({ storeId: Number(ECOM_STORE_ID) });
10
16
  }
11
17
 
12
18
  const {
@@ -29,7 +35,7 @@ export default () => {
29
35
  } catch {
30
36
  //
31
37
  }
32
- if (!storeId && import.meta.env.DEV === true) {
38
+ if (!storeId && !PROD) {
33
39
  storeId = 1011;
34
40
  console.warn('> `storeId` is not set, using fallback 1011 for dev only\n');
35
41
  }
@@ -69,7 +69,7 @@ const genUnoCSSConfig = (_tailwindConfig) => {
69
69
  '--collection': iconset,
70
70
  '--icon': icon,
71
71
  } = utilities[s];
72
- shortcuts.push({ [`i-${icon}`]: `i-${iconset}:${icon}` });
72
+ shortcuts.push({ [s.replace('.', '')]: `i-${iconset}:${icon}` });
73
73
  } else if (!s.startsWith('.ui-') && !s.includes('prose')) {
74
74
  rules.push([s.replace('.', ''), utilities[s]]);
75
75
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@cloudcommerce/storefront",
3
3
  "type": "module",
4
- "version": "0.24.0",
4
+ "version": "0.25.0",
5
5
  "description": "E-Com Plus Cloud Commerce storefront with Astro",
6
6
  "bin": {
7
7
  "storefront": "./scripts/build-prod.sh"
@@ -30,29 +30,29 @@
30
30
  },
31
31
  "dependencies": {
32
32
  "@astrojs/image": "0.17.3",
33
- "@astrojs/node": "5.3.4",
33
+ "@astrojs/node": "5.3.5",
34
34
  "@astrojs/vue": "2.2.1",
35
35
  "@cloudcommerce/api": "workspace:*",
36
36
  "@cloudcommerce/config": "workspace:*",
37
37
  "@cloudcommerce/i18n": "workspace:*",
38
38
  "@ecomplus/utils": "1.5.0-rc.5",
39
39
  "@fastify/deepmerge": "^1.3.0",
40
- "@headlessui/vue": "^1.7.15",
40
+ "@headlessui/vue": "^1.7.16",
41
41
  "@iconify-json/fa6-brands": "^1.1.13",
42
42
  "@iconify-json/heroicons": "^1.1.12",
43
43
  "@iconify-json/logos": "^1.1.34",
44
44
  "@vite-pwa/astro": "^0.1.1",
45
45
  "@vueuse/core": "10.3.0",
46
- "astro": "2.10.9",
46
+ "astro": "2.10.12",
47
47
  "chroma-js": "^2.4.2",
48
48
  "dotenv": "^16.3.1",
49
- "firebase": "^10.1.0",
49
+ "firebase": "^10.2.0",
50
50
  "image-size": "^1.0.2",
51
51
  "mime": "^3.0.0",
52
52
  "semver": "^7.5.4",
53
- "sharp": "^0.32.4",
53
+ "sharp": "^0.32.5",
54
54
  "tailwindcss": "^3.3.3",
55
- "unocss": "^0.55.0",
55
+ "unocss": "^0.55.2",
56
56
  "vite": "^4.4.9",
57
57
  "vite-plugin-pwa": "^0.16.4",
58
58
  "vue": "^3.3.4"
@@ -1,8 +1,3 @@
1
- const {
2
- settings,
3
- apiContext,
4
- } = globalThis.$storefront;
5
-
6
1
  const networkNames = [
7
2
  'whatsapp',
8
3
  'instagram',
@@ -17,16 +12,18 @@ const networkNames = [
17
12
  export type NetworkName = typeof networkNames[number];
18
13
 
19
14
  const socialNetworks: Partial<Record<NetworkName, string>> = {};
20
- networkNames.forEach((network: NetworkName) => {
21
- if (settings[network]) {
22
- socialNetworks[network] = settings[network];
23
- }
24
- });
25
-
26
- export { settings, apiContext, socialNetworks };
27
-
28
- export const serviceLinks = settings.service_links;
29
-
30
- export const paymentMethodFlags = settings.payment_methods;
15
+ const setSocialNetworks = () => {
16
+ const { settings } = globalThis.$storefront;
17
+ networkNames.forEach((network: NetworkName) => {
18
+ if (settings[network]) {
19
+ socialNetworks[network] = settings[network];
20
+ }
21
+ });
22
+ };
23
+ if (import.meta.env.SSR) {
24
+ global.$storefront.onLoad(() => setSocialNetworks());
25
+ } else {
26
+ setSocialNetworks();
27
+ }
31
28
 
32
- export type PaymentMethodFlag = Exclude<typeof paymentMethodFlags, undefined>[number];
29
+ export { socialNetworks };
@@ -63,10 +63,25 @@ const useSSRPicture = async (params: UsePictureParams) => {
63
63
  }
64
64
  } else if ((!attrs.width || !attrs.height) && typeof src === 'string') {
65
65
  const { width, height } = tryImageSize(src);
66
- if (height) {
66
+ if (width && height) {
67
67
  aspectRatio = getAspectRatio({ width, height }, tryImageSize);
68
- attrs.width = width;
69
- attrs.height = height;
68
+ let hasSplicedWidths = false;
69
+ for (let i = widths.length - 1; i >= 0; i--) {
70
+ if (widths[i] > width) {
71
+ widths.splice(i, 1);
72
+ hasSplicedWidths = true;
73
+ }
74
+ }
75
+ if (hasSplicedWidths) {
76
+ attrs.width = width;
77
+ attrs.height = height;
78
+ if (!widths.find((w) => w === width)) {
79
+ widths.push(width);
80
+ }
81
+ } else {
82
+ attrs.width = Math.max(...widths);
83
+ attrs.height = Math.round(attrs.width / aspectRatio);
84
+ }
70
85
  }
71
86
  }
72
87
  let sizes: string = propSizes || '';
@@ -18,8 +18,8 @@ const {
18
18
  subtitle,
19
19
  buttonText,
20
20
  index,
21
- class: className = 'max-w-screen-2xl',
22
- mobileClass = 'max-w-screen-sm',
21
+ class: className = 'max-w-screen-sm sm:max-w-[828px] md:max-w-screen-2xl',
22
+ mobileClass = 'max-w-screen-sm sm:max-w-screen-lg',
23
23
  } = Astro.props as Props;
24
24
  const hasHeader = title || subtitle || buttonText;
25
25
  let { widths, mobileWidths } = Astro.props;
@@ -27,14 +27,14 @@ if (!widths?.length) {
27
27
  if (mobileImg) {
28
28
  widths = [1536, 2048];
29
29
  } else {
30
- widths = [856, 1536, 2048];
30
+ widths = [640, 828, 1536, 2048];
31
31
  if (hasHeader) {
32
32
  widths = widths.map((w) => (w / 2));
33
33
  }
34
34
  }
35
35
  }
36
36
  if (!mobileWidths?.length) {
37
- mobileWidths = [720, 856];
37
+ mobileWidths = [640, 1024];
38
38
  }
39
39
  ---
40
40
 
@@ -1,10 +1,10 @@
1
1
  <script setup lang="ts">
2
- import type { PaymentMethodFlag } from '@@sf/sf-lib';
2
+ import type { SettingsContent } from '@@sf/content';
3
3
  import { computed } from 'vue';
4
4
 
5
5
  export interface Props {
6
6
  as?: string;
7
- flag: PaymentMethodFlag;
7
+ flag: Exclude<SettingsContent['payment_methods'], undefined>[number];
8
8
  }
9
9
 
10
10
  const props = withDefaults(defineProps<Props>(), {
@@ -0,0 +1,29 @@
1
+ <script setup lang="ts">
2
+ import { computed } from 'vue';
3
+
4
+ export interface Props {
5
+ isBold?: boolean;
6
+ isLarge?: boolean;
7
+ }
8
+
9
+ const props = defineProps<Props>();
10
+ const rowClassName = 'bg-gray-200 rounded-md dark:bg-gray-700';
11
+ const firstRowClassName = computed(() => {
12
+ return `${rowClassName} ${(props.isBold ? 'h-8 mb-6' : 'h-2.5 mb-4')}`;
13
+ });
14
+ const nextRowsClassName = computed(() => {
15
+ return `${rowClassName} ${(props.isBold ? 'h-5 mb-4' : 'h-2 mb-2.5')}`;
16
+ });
17
+ </script>
18
+
19
+ <template>
20
+ <div role="status" class="animate-pulse" :class="isLarge ? 'max-w-4xl' : 'max-w-sm'">
21
+ <div :class="[firstRowClassName, isLarge ? 'w-96' : 'w-48']"></div>
22
+ <div :class="[nextRowsClassName, isLarge ? 'max-w-[680px]' : 'max-w-[340px]']"></div>
23
+ <div :class="nextRowsClassName"></div>
24
+ <div :class="[nextRowsClassName, isLarge ? 'max-w-[660px]' : 'max-w-[330px]']"></div>
25
+ <div :class="[nextRowsClassName, isLarge ? 'max-w-[600px]' : 'max-w-[300px]']"></div>
26
+ <div :class="[nextRowsClassName, isLarge ? 'max-w-[720px]' : 'max-w-[360px]']"></div>
27
+ <span class="sr-only">Loading...</span>
28
+ </div>
29
+ </template>
@@ -3,6 +3,7 @@ import { i18n, formatMoney } from '@ecomplus/utils';
3
3
  import Fade from '@@sf/components/globals/Fade.vue';
4
4
  import ALink from '@@sf/components/globals/ALink.vue';
5
5
  import AImg from '@@sf/components/globals/AImg.vue';
6
+ import Skeleton from '@@sf/components/globals/Skeleton.vue';
6
7
 
7
8
  const formatPercentage = (value: number, digits = 1) => {
8
9
  return Number.isInteger(value) ? `${value}%` : `${value.toFixed(digits)}%`;
@@ -26,6 +27,7 @@ const createApp = (app: App) => {
26
27
  app.component('Fade', Fade);
27
28
  app.component('ALink', ALink);
28
29
  app.component('AImg', AImg);
30
+ app.component('Skeleton', Skeleton);
29
31
  };
30
32
 
31
33
  export default createApp;
@@ -36,7 +36,7 @@ if (!globalThis.$storefront) {
36
36
  globalThis.$storefront = {
37
37
  settings: {},
38
38
  onLoad(callback: (...args: any[]) => void) {
39
- emitter.on('load', callback);
39
+ emitter.once('load', callback);
40
40
  },
41
41
  data: {},
42
42
  };
@@ -26,6 +26,7 @@ declare module '@vue/runtime-core' {
26
26
  Fade: typeof import('@@sf/components/globals/Fade.vue')['default'];
27
27
  ALink: typeof import('@@sf/components/globals/ALink.vue')['default'];
28
28
  AImg: typeof import('@@sf/components/globals/AImg.vue')['default'];
29
+ Skeleton: typeof import('@@sf/components/globals/Skeleton.vue')['default'];
29
30
  }
30
31
  }
31
32
 
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@cloudcommerce/types",
3
3
  "type": "module",
4
- "version": "0.24.0",
4
+ "version": "0.25.0",
5
5
  "description": "E-Com Plus Cloud Commerce reusable type definitions",
6
6
  "main": "index.ts",
7
7
  "repository": {