cloudcommerce 0.24.0 → 0.24.1

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 (53) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/ecomplus-stores/barra-doce/functions/many/package.json +3 -3
  3. package/ecomplus-stores/barra-doce/functions/ssr/package.json +6 -6
  4. package/ecomplus-stores/barra-doce/functions/ssr/src/components/ShopHeader.vue +31 -5
  5. package/ecomplus-stores/barra-doce/functions/with-apps/package.json +3 -3
  6. package/ecomplus-stores/barra-doce/package.json +2 -2
  7. package/ecomplus-stores/iluminim/.ecomplus.cd.json +3 -3
  8. package/ecomplus-stores/iluminim/functions/many/package.json +3 -3
  9. package/ecomplus-stores/iluminim/functions/ssr/package.json +6 -6
  10. package/ecomplus-stores/iluminim/functions/ssr/src/components/ShopHeader.vue +31 -5
  11. package/ecomplus-stores/iluminim/functions/with-apps/package.json +3 -3
  12. package/ecomplus-stores/iluminim/package.json +2 -2
  13. package/package.json +2 -2
  14. package/packages/api/package.json +1 -1
  15. package/packages/apps/affilate-program/package.json +1 -1
  16. package/packages/apps/correios/package.json +1 -1
  17. package/packages/apps/custom-payment/package.json +1 -1
  18. package/packages/apps/custom-shipping/package.json +1 -1
  19. package/packages/apps/datafrete/package.json +1 -1
  20. package/packages/apps/discounts/package.json +1 -1
  21. package/packages/apps/emails/package.json +1 -1
  22. package/packages/apps/fb-conversions/package.json +1 -1
  23. package/packages/apps/flash-courier/package.json +1 -1
  24. package/packages/apps/frenet/package.json +1 -1
  25. package/packages/apps/galaxpay/package.json +1 -1
  26. package/packages/apps/google-analytics/package.json +1 -1
  27. package/packages/apps/jadlog/package.json +1 -1
  28. package/packages/apps/loyalty-points/package.json +1 -1
  29. package/packages/apps/melhor-envio/package.json +1 -1
  30. package/packages/apps/mercadopago/package.json +1 -1
  31. package/packages/apps/pagarme/package.json +1 -1
  32. package/packages/apps/paghiper/package.json +1 -1
  33. package/packages/apps/pix/package.json +1 -1
  34. package/packages/apps/tiny-erp/package.json +1 -1
  35. package/packages/apps/webhooks/package.json +1 -1
  36. package/packages/cli/package.json +1 -1
  37. package/packages/config/package.json +1 -1
  38. package/packages/emails/package.json +1 -1
  39. package/packages/eslint/package.json +1 -1
  40. package/packages/eslint/storefront.eslintrc.cjs +1 -0
  41. package/packages/events/package.json +1 -1
  42. package/packages/feeds/package.json +1 -1
  43. package/packages/firebase/package.json +1 -1
  44. package/packages/i18n/package.json +1 -1
  45. package/packages/modules/package.json +1 -1
  46. package/packages/passport/package.json +1 -1
  47. package/packages/ssr/package.json +1 -1
  48. package/packages/storefront/config/storefront.unocss.cjs +1 -1
  49. package/packages/storefront/package.json +1 -1
  50. package/packages/storefront/src/lib/components/globals/Skeleton.vue +29 -0
  51. package/packages/storefront/src/lib/pages/_vue.ts +2 -0
  52. package/packages/storefront/src/vue-globals.d.ts +1 -0
  53. package/packages/types/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -2,6 +2,18 @@
2
2
 
3
3
  All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
4
4
 
5
+ ### [0.24.1](https://github.com/ecomplus/cloud-commerce/compare/v0.24.0...v0.24.1) (2023-08-19)
6
+
7
+
8
+ ### Features
9
+
10
+ * **storefront:** Add new global <Skeleton> component ([83c42b1](https://github.com/ecomplus/cloud-commerce/commit/83c42b113200c28dd56b77f80df393f911194957))
11
+
12
+
13
+ ### Bug Fixes
14
+
15
+ * **storefront:** Fix regression with icons aliases selectors on UnoCSS config ([37f7c8e](https://github.com/ecomplus/cloud-commerce/commit/37f7c8efaa63273cf3c0eb575d174cb9e2358fdc))
16
+
5
17
  ## [0.24.0](https://github.com/ecomplus/cloud-commerce/compare/v0.23.3...v0.24.0) (2023-08-18)
6
18
 
7
19
 
@@ -15,8 +15,8 @@
15
15
  },
16
16
  "main": "index.js",
17
17
  "dependencies": {
18
- "@cloudcommerce/feeds": "^0.23.3",
19
- "@cloudcommerce/firebase": "^0.23.3",
20
- "@cloudcommerce/passport": "^0.23.3"
18
+ "@cloudcommerce/feeds": "^0.24.0",
19
+ "@cloudcommerce/firebase": "^0.24.0",
20
+ "@cloudcommerce/passport": "^0.24.0"
21
21
  }
22
22
  }
@@ -17,14 +17,14 @@
17
17
  },
18
18
  "main": "index.js",
19
19
  "dependencies": {
20
- "@cloudcommerce/api": "^0.23.3",
21
- "@cloudcommerce/firebase": "^0.23.3",
22
- "@cloudcommerce/ssr": "^0.23.3"
20
+ "@cloudcommerce/api": "^0.24.0",
21
+ "@cloudcommerce/firebase": "^0.24.0",
22
+ "@cloudcommerce/ssr": "^0.24.0"
23
23
  },
24
24
  "devDependencies": {
25
- "@cloudcommerce/i18n": "^0.23.3",
26
- "@cloudcommerce/storefront": "^0.23.3",
27
- "@cloudcommerce/types": "^0.23.3",
25
+ "@cloudcommerce/i18n": "^0.24.0",
26
+ "@cloudcommerce/storefront": "^0.24.0",
27
+ "@cloudcommerce/types": "^0.24.0",
28
28
  "@fontsource/croissant-one": "^5.0.5",
29
29
  "@iconify-json/mingcute": "^1.1.7"
30
30
  }
@@ -114,7 +114,14 @@
114
114
  :has-close-button="false"
115
115
  placement="top"
116
116
  >
117
- <SearchModal />
117
+ <Suspense>
118
+ <SearchModal v-if="isSearchOpenOnce" />
119
+ <template #fallback>
120
+ <div class="container mx-auto">
121
+ <Skeleton class="p-6" is-large />
122
+ </div>
123
+ </template>
124
+ </Suspense>
118
125
  </Drawer>
119
126
  <Teleport v-if="isMounted" to="#teleported-overlap">
120
127
  <Drawer
@@ -122,14 +129,25 @@
122
129
  placement="end"
123
130
  backdrop-target="#teleported-overlap"
124
131
  >
125
- <CartSidebar />
132
+ <Suspense>
133
+ <CartSidebar v-if="isCartOpenOnce" @close="isCartOpen = false" />
134
+ <template #fallback>
135
+ <Skeleton class="pt-16 px-6" is-bold />
136
+ </template>
137
+ </Suspense>
126
138
  </Drawer>
127
139
  </Teleport>
128
140
  </header>
129
141
  </template>
130
142
 
131
143
  <script setup lang="ts">
132
- import { ref, watch, onMounted } from 'vue';
144
+ import {
145
+ ref,
146
+ watch,
147
+ onMounted,
148
+ defineAsyncComponent,
149
+ } from 'vue';
150
+ import { watchOnce } from '@vueuse/core';
133
151
  import { totalItems } from '@@sf/state/shopping-cart';
134
152
  import {
135
153
  type Props as UseShopHeaderProps,
@@ -138,12 +156,12 @@ import {
138
156
  import Drawer from '@@sf/components/Drawer.vue';
139
157
  import ShopSidenav from '~/components/ShopSidenav.vue';
140
158
  import ShopHeaderMenu from '~/components/ShopHeaderMenu.vue';
141
- import SearchModal from '~/components/SearchModal.vue';
142
159
  import AccountMenu from '~/components/AccountMenu.vue';
143
- import CartSidebar from '~/components/CartSidebar.vue';
144
160
 
145
161
  export interface Props extends Omit<UseShopHeaderProps, 'header'> {}
146
162
 
163
+ const SearchModal = defineAsyncComponent(() => import('~/components/SearchModal.vue'));
164
+ const CartSidebar = defineAsyncComponent(() => import('~/components/CartSidebar.vue'));
147
165
  const props = defineProps<Props>();
148
166
  const header = ref<HTMLElement | null>(null);
149
167
  const {
@@ -154,7 +172,15 @@ const {
154
172
  } = useShopHeader({ ...props, header });
155
173
  const isSidenavOpen = ref(false);
156
174
  const isSearchOpen = ref(false);
175
+ const isSearchOpenOnce = ref(false);
176
+ watchOnce(isSearchOpen, () => {
177
+ isSearchOpenOnce.value = true;
178
+ });
157
179
  const isCartOpen = ref(false);
180
+ const isCartOpenOnce = ref(false);
181
+ watchOnce(isCartOpen, () => {
182
+ isCartOpenOnce.value = true;
183
+ });
158
184
  const isMounted = ref(false);
159
185
  const delayedTotalItems = ref(0);
160
186
  const searchTerm = ref('');
@@ -15,8 +15,8 @@
15
15
  },
16
16
  "main": "index.js",
17
17
  "dependencies": {
18
- "@cloudcommerce/events": "^0.23.3",
19
- "@cloudcommerce/firebase": "^0.23.3",
20
- "@cloudcommerce/modules": "^0.23.3"
18
+ "@cloudcommerce/events": "^0.24.0",
19
+ "@cloudcommerce/firebase": "^0.24.0",
20
+ "@cloudcommerce/modules": "^0.24.0"
21
21
  }
22
22
  }
@@ -23,9 +23,9 @@
23
23
  "url": "https://github.com/ecomplus/cloud-commerce/issues"
24
24
  },
25
25
  "dependencies": {
26
- "@cloudcommerce/cli": "^0.23.3"
26
+ "@cloudcommerce/cli": "^0.24.0"
27
27
  },
28
28
  "devDependencies": {
29
- "@cloudcommerce/eslint": "^0.23.3"
29
+ "@cloudcommerce/eslint": "^0.24.0"
30
30
  }
31
31
  }
@@ -1,5 +1,5 @@
1
1
  {
2
- "trigger": "64c290035e60690370759966",
3
- "resource": "collections",
4
- "slug": "luminarias-led"
2
+ "trigger": "64dd2f382cd6b659591a3cfc",
3
+ "resource": "products",
4
+ "slug": "refletor-holofote-microled-slim-100w-branco-frio,refletor-holofote-microled-slim-200w-branco-frio"
5
5
  }
@@ -15,8 +15,8 @@
15
15
  },
16
16
  "main": "index.js",
17
17
  "dependencies": {
18
- "@cloudcommerce/feeds": "^0.23.3",
19
- "@cloudcommerce/firebase": "^0.23.3",
20
- "@cloudcommerce/passport": "^0.23.3"
18
+ "@cloudcommerce/feeds": "^0.24.0",
19
+ "@cloudcommerce/firebase": "^0.24.0",
20
+ "@cloudcommerce/passport": "^0.24.0"
21
21
  }
22
22
  }
@@ -17,14 +17,14 @@
17
17
  },
18
18
  "main": "index.js",
19
19
  "dependencies": {
20
- "@cloudcommerce/api": "^0.23.3",
21
- "@cloudcommerce/firebase": "^0.23.3",
22
- "@cloudcommerce/ssr": "^0.23.3"
20
+ "@cloudcommerce/api": "^0.24.0",
21
+ "@cloudcommerce/firebase": "^0.24.0",
22
+ "@cloudcommerce/ssr": "^0.24.0"
23
23
  },
24
24
  "devDependencies": {
25
- "@cloudcommerce/i18n": "^0.23.3",
26
- "@cloudcommerce/storefront": "^0.23.3",
27
- "@cloudcommerce/types": "^0.23.3",
25
+ "@cloudcommerce/i18n": "^0.24.0",
26
+ "@cloudcommerce/storefront": "^0.24.0",
27
+ "@cloudcommerce/types": "^0.24.0",
28
28
  "@fontsource-variable/heebo": "^5.0.5",
29
29
  "@iconify-json/carbon": "^1.1.18"
30
30
  }
@@ -73,7 +73,14 @@
73
73
  :has-close-button="false"
74
74
  placement="top"
75
75
  >
76
- <SearchModal />
76
+ <Suspense>
77
+ <SearchModal v-if="isSearchOpenOnce" />
78
+ <template #fallback>
79
+ <div class="container mx-auto">
80
+ <Skeleton class="p-6" is-large />
81
+ </div>
82
+ </template>
83
+ </Suspense>
77
84
  </Drawer>
78
85
  <Teleport v-if="isMounted" to="#teleported-overlap">
79
86
  <Drawer
@@ -81,14 +88,25 @@
81
88
  placement="end"
82
89
  backdrop-target="#teleported-overlap"
83
90
  >
84
- <CartSidebar />
91
+ <Suspense>
92
+ <CartSidebar v-if="isCartOpenOnce" @close="isCartOpen = false" />
93
+ <template #fallback>
94
+ <Skeleton class="pt-16 px-6" is-bold />
95
+ </template>
96
+ </Suspense>
85
97
  </Drawer>
86
98
  </Teleport>
87
99
  </header>
88
100
  </template>
89
101
 
90
102
  <script setup lang="ts">
91
- import { ref, watch, onMounted } from 'vue';
103
+ import {
104
+ ref,
105
+ watch,
106
+ onMounted,
107
+ defineAsyncComponent,
108
+ } from 'vue';
109
+ import { watchOnce } from '@vueuse/core';
92
110
  import { totalItems } from '@@sf/state/shopping-cart';
93
111
  import {
94
112
  type Props as UseShopHeaderProps,
@@ -97,12 +115,12 @@ import {
97
115
  import Drawer from '@@sf/components/Drawer.vue';
98
116
  import ShopSidenav from '~/components/ShopSidenav.vue';
99
117
  import ShopHeaderMenu from '~/components/ShopHeaderMenu.vue';
100
- import SearchModal from '~/components/SearchModal.vue';
101
118
  import AccountMenu from '~/components/AccountMenu.vue';
102
- import CartSidebar from '~/components/CartSidebar.vue';
103
119
 
104
120
  export interface Props extends Omit<UseShopHeaderProps, 'header'> {}
105
121
 
122
+ const SearchModal = defineAsyncComponent(() => import('~/components/SearchModal.vue'));
123
+ const CartSidebar = defineAsyncComponent(() => import('~/components/CartSidebar.vue'));
106
124
  const props = defineProps<Props>();
107
125
  const header = ref<HTMLElement | null>(null);
108
126
  const {
@@ -113,7 +131,15 @@ const {
113
131
  } = useShopHeader({ ...props, header });
114
132
  const isSidenavOpen = ref(false);
115
133
  const isSearchOpen = ref(false);
134
+ const isSearchOpenOnce = ref(false);
135
+ watchOnce(isSearchOpen, () => {
136
+ isSearchOpenOnce.value = true;
137
+ });
116
138
  const isCartOpen = ref(false);
139
+ const isCartOpenOnce = ref(false);
140
+ watchOnce(isCartOpen, () => {
141
+ isCartOpenOnce.value = true;
142
+ });
117
143
  const isMounted = ref(false);
118
144
  const delayedTotalItems = ref(0);
119
145
  onMounted(() => {
@@ -15,8 +15,8 @@
15
15
  },
16
16
  "main": "index.js",
17
17
  "dependencies": {
18
- "@cloudcommerce/events": "^0.23.3",
19
- "@cloudcommerce/firebase": "^0.23.3",
20
- "@cloudcommerce/modules": "^0.23.3"
18
+ "@cloudcommerce/events": "^0.24.0",
19
+ "@cloudcommerce/firebase": "^0.24.0",
20
+ "@cloudcommerce/modules": "^0.24.0"
21
21
  }
22
22
  }
@@ -23,9 +23,9 @@
23
23
  "url": "https://github.com/ecomplus/cloud-commerce/issues"
24
24
  },
25
25
  "dependencies": {
26
- "@cloudcommerce/cli": "^0.23.3"
26
+ "@cloudcommerce/cli": "^0.24.0"
27
27
  },
28
28
  "devDependencies": {
29
- "@cloudcommerce/eslint": "^0.23.3"
29
+ "@cloudcommerce/eslint": "^0.24.0"
30
30
  }
31
31
  }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "cloudcommerce",
3
3
  "type": "module",
4
- "version": "0.24.0",
4
+ "version": "0.24.1",
5
5
  "description": "Open fair-code headless commerce platform: API-first, microservices based, event driven and cloud native",
6
6
  "main": "packages/api/lib/index.js",
7
7
  "author": "E-Com Club Softwares para E-commerce <ti@e-com.club>",
@@ -30,7 +30,7 @@
30
30
  "vite": "^4.4.9",
31
31
  "vitest": "^0.34.1",
32
32
  "zx": "^7.2.3",
33
- "@cloudcommerce/eslint": "0.24.0"
33
+ "@cloudcommerce/eslint": "0.24.1"
34
34
  },
35
35
  "scripts": {
36
36
  "fix-install": "bash scripts/pre-install.sh && pnpm i",
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@cloudcommerce/api",
3
3
  "type": "module",
4
- "version": "0.24.0",
4
+ "version": "0.24.1",
5
5
  "description": "E-Com Plus Cloud Commerce APIs client/adapter",
6
6
  "main": "lib/api.js",
7
7
  "types": "lib/api.d.ts",
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@cloudcommerce/app-affilate-program",
3
3
  "type": "module",
4
- "version": "0.24.0",
4
+ "version": "0.24.1",
5
5
  "description": "E-Com Plus Cloud Commerce app for simple affiliate program",
6
6
  "main": "lib/index.js",
7
7
  "repository": {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@cloudcommerce/app-correios",
3
3
  "type": "module",
4
- "version": "0.24.0",
4
+ "version": "0.24.1",
5
5
  "description": "E-Com Plus Cloud Commerce app for Correios shipping calculation",
6
6
  "main": "lib/correios.js",
7
7
  "repository": {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@cloudcommerce/app-custom-payment",
3
3
  "type": "module",
4
- "version": "0.24.0",
4
+ "version": "0.24.1",
5
5
  "description": "E-Com Plus Cloud Commerce app for simple custom payment methods",
6
6
  "main": "lib/index.js",
7
7
  "repository": {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@cloudcommerce/app-custom-shipping",
3
3
  "type": "module",
4
- "version": "0.24.0",
4
+ "version": "0.24.1",
5
5
  "description": "E-Com Plus Cloud Commerce app for custom shipping methods",
6
6
  "main": "lib/custom-shipping.js",
7
7
  "repository": {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@cloudcommerce/app-datafrete",
3
3
  "type": "module",
4
- "version": "0.24.0",
4
+ "version": "0.24.1",
5
5
  "description": "E-Com Plus Cloud Commerce app to integrate Datafrete shipping gateway ",
6
6
  "main": "lib/datafrete.js",
7
7
  "exports": {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@cloudcommerce/app-discounts",
3
3
  "type": "module",
4
- "version": "0.24.0",
4
+ "version": "0.24.1",
5
5
  "description": "E-Com Plus Cloud Commerce app for complex discount rules",
6
6
  "main": "lib/discounts.js",
7
7
  "repository": {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@cloudcommerce/app-emails",
3
3
  "type": "module",
4
- "version": "0.24.0",
4
+ "version": "0.24.1",
5
5
  "description": "E-Com Plus Cloud Commerce default transactional email app",
6
6
  "main": "lib/index.js",
7
7
  "repository": {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@cloudcommerce/app-fb-conversions",
3
3
  "type": "module",
4
- "version": "0.24.0",
4
+ "version": "0.24.1",
5
5
  "description": "E-Com Plus Cloud Commerce app to send carts/orders to Facebook Conversions API",
6
6
  "main": "lib/index.js",
7
7
  "repository": {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@cloudcommerce/app-flash-courier",
3
3
  "type": "module",
4
- "version": "0.24.0",
4
+ "version": "0.24.1",
5
5
  "description": "E-Com Plus Cloud Commerce app to integrate Flash Courier",
6
6
  "main": "lib/index.js",
7
7
  "exports": {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@cloudcommerce/app-frenet",
3
3
  "type": "module",
4
- "version": "0.24.0",
4
+ "version": "0.24.1",
5
5
  "description": "E-Com Plus Cloud Commerce app for Frenet shipping calculation",
6
6
  "main": "lib/frenet.js",
7
7
  "exports": {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@cloudcommerce/app-galaxpay",
3
3
  "type": "module",
4
- "version": "0.24.0",
4
+ "version": "0.24.1",
5
5
  "description": "E-Com Plus Cloud Commerce app to integrate Galax Pay for recurring payments",
6
6
  "main": "lib/galaxpay.js",
7
7
  "exports": {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@cloudcommerce/app-google-analytics",
3
3
  "type": "module",
4
- "version": "0.24.0",
4
+ "version": "0.24.1",
5
5
  "description": "E-Com Plus Cloud Commerce app to send carts/orders events to GA Measurement Protocol",
6
6
  "main": "lib/index.js",
7
7
  "repository": {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@cloudcommerce/app-jadlog",
3
3
  "type": "module",
4
- "version": "0.24.0",
4
+ "version": "0.24.1",
5
5
  "description": "E-Com Plus Cloud Commerce app for Jadlog shipping calculation",
6
6
  "main": "lib/index.js",
7
7
  "repository": {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@cloudcommerce/app-loyalty-points",
3
3
  "type": "module",
4
- "version": "0.24.0",
4
+ "version": "0.24.1",
5
5
  "description": "E-Com Plus Cloud Commerce app to handle simple loyalty points programs",
6
6
  "main": "lib/loyalty-points.js",
7
7
  "exports": {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@cloudcommerce/app-melhor-envio",
3
3
  "type": "module",
4
- "version": "0.24.0",
4
+ "version": "0.24.1",
5
5
  "description": "E-Com Plus Cloud Commerce app to integrate Melhor Envio",
6
6
  "main": "lib/index.js",
7
7
  "exports": {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@cloudcommerce/app-mercadopago",
3
3
  "type": "module",
4
- "version": "0.24.0",
4
+ "version": "0.24.1",
5
5
  "description": "E-Com Plus Cloud Commerce app to integrate Mercado Pago",
6
6
  "main": "lib/mercadopago.js",
7
7
  "exports": {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@cloudcommerce/app-pagarme",
3
3
  "type": "module",
4
- "version": "0.24.0",
4
+ "version": "0.24.1",
5
5
  "description": "E-Com Plus Cloud Commerce app to integrate Pagar.me",
6
6
  "main": "lib/pagarme.js",
7
7
  "exports": {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@cloudcommerce/app-paghiper",
3
3
  "type": "module",
4
- "version": "0.24.0",
4
+ "version": "0.24.1",
5
5
  "description": "E-Com Plus Cloud Commerce app to integrate PagHiper",
6
6
  "main": "lib/paghiper.js",
7
7
  "exports": {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@cloudcommerce/app-pix",
3
3
  "type": "module",
4
- "version": "0.24.0",
4
+ "version": "0.24.1",
5
5
  "description": "E-Com Plus Cloud Commerce app to integrate Pix API (Bacen)",
6
6
  "main": "lib/pix.js",
7
7
  "exports": {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@cloudcommerce/app-tiny-erp",
3
3
  "type": "module",
4
- "version": "0.24.0",
4
+ "version": "0.24.1",
5
5
  "description": "E-Com Plus Cloud Commerce app for Tiny ERP",
6
6
  "main": "lib/tiny-erp.js",
7
7
  "repository": {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@cloudcommerce/app-webhooks",
3
3
  "type": "module",
4
- "version": "0.24.0",
4
+ "version": "0.24.1",
5
5
  "description": "E-Com Plus Cloud Commerce app for general order webhooks",
6
6
  "main": "lib/index.js",
7
7
  "repository": {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@cloudcommerce/cli",
3
3
  "type": "module",
4
- "version": "0.24.0",
4
+ "version": "0.24.1",
5
5
  "description": "E-Com Plus Cloud Commerce CLI tools",
6
6
  "bin": {
7
7
  "cloudcommerce": "./bin/run.mjs"
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@cloudcommerce/config",
3
3
  "type": "module",
4
- "version": "0.24.0",
4
+ "version": "0.24.1",
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.24.1",
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.24.1",
5
5
  "description": "E-Com Plus Cloud Commerce ESLint config",
6
6
  "main": "lib/index.js",
7
7
  "repository": {
@@ -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.24.1",
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.24.1",
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.24.1",
5
5
  "description": "E-Com Plus Cloud Commerce on Firebase",
6
6
  "main": "lib/index.js",
7
7
  "types": "lib/index.d.ts",
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@cloudcommerce/i18n",
3
3
  "type": "module",
4
- "version": "0.24.0",
4
+ "version": "0.24.1",
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.24.1",
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.24.1",
5
5
  "description": "E-Com Plus Cloud Commerce customers authentication (passport) API",
6
6
  "main": "lib/index.js",
7
7
  "exports": {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@cloudcommerce/ssr",
3
3
  "type": "module",
4
- "version": "0.24.0",
4
+ "version": "0.24.1",
5
5
  "description": "E-Com Plus Cloud Commerce storefront SSR",
6
6
  "main": "lib/index.js",
7
7
  "exports": {
@@ -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.24.1",
5
5
  "description": "E-Com Plus Cloud Commerce storefront with Astro",
6
6
  "bin": {
7
7
  "storefront": "./scripts/build-prod.sh"
@@ -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;
@@ -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.24.1",
5
5
  "description": "E-Com Plus Cloud Commerce reusable type definitions",
6
6
  "main": "index.ts",
7
7
  "repository": {