@gem-sdk/pages 1.5.14 → 1.5.23

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 (79) hide show
  1. package/dist/cjs/components/ErrorBoundary.js +32 -24
  2. package/dist/cjs/components/ErrorFallback.js +19 -2
  3. package/dist/cjs/components/FacebookPixel.js +25 -20
  4. package/dist/cjs/components/Footer.js +462 -0
  5. package/dist/cjs/components/GoogleAnalytic.js +49 -23
  6. package/dist/cjs/components/Header.js +211 -0
  7. package/dist/cjs/components/TikTokPixel.js +9 -6
  8. package/dist/cjs/components/builder/Toolbox.js +215 -188
  9. package/dist/cjs/layouts/main.js +19 -5
  10. package/dist/cjs/libs/api/get-builder-props.js +26 -24
  11. package/dist/cjs/libs/api/get-collection-props.js +59 -55
  12. package/dist/cjs/libs/api/get-home-page-props-v2.js +121 -114
  13. package/dist/cjs/libs/api/get-home-page-props.js +133 -123
  14. package/dist/cjs/libs/api/get-preview-props.js +10 -10
  15. package/dist/cjs/libs/api/get-product-props.js +64 -62
  16. package/dist/cjs/libs/api/get-static-page-props-preview.js +128 -121
  17. package/dist/cjs/libs/api/get-static-page-props-v2.js +126 -119
  18. package/dist/cjs/libs/api/get-static-page-props.js +130 -120
  19. package/dist/cjs/libs/fetcher.js +59 -63
  20. package/dist/cjs/libs/get-layout.js +5 -2
  21. package/dist/cjs/libs/get-storefront-api.js +7 -7
  22. package/dist/cjs/libs/getStaticPaths.js +5 -5
  23. package/dist/cjs/libs/google-fonts.js +54 -61
  24. package/dist/cjs/libs/helpers/gen-css.js +103 -94
  25. package/dist/cjs/libs/helpers/generate-manifres.js +1 -1
  26. package/dist/cjs/libs/helpers/get-fallback.js +24 -22
  27. package/dist/cjs/libs/helpers/normalize.js +82 -80
  28. package/dist/cjs/libs/helpers/parse-json.js +10 -12
  29. package/dist/cjs/libs/helpers/user-agent.js +2 -2
  30. package/dist/cjs/libs/hooks/use-tracking-view.js +36 -31
  31. package/dist/cjs/libs/parse-html.js +33 -26
  32. package/dist/cjs/pages/404.js +34 -2
  33. package/dist/cjs/pages/500.js +63 -8
  34. package/dist/cjs/pages/builder.js +69 -14
  35. package/dist/cjs/pages/collection-detail.js +48 -7
  36. package/dist/cjs/pages/preview.js +18 -12
  37. package/dist/cjs/pages/product-detail.js +53 -7
  38. package/dist/cjs/pages/static-v2.js +62 -7
  39. package/dist/cjs/pages/static.js +60 -6
  40. package/dist/esm/components/ErrorBoundary.js +32 -24
  41. package/dist/esm/components/ErrorFallback.js +19 -2
  42. package/dist/esm/components/FacebookPixel.js +25 -20
  43. package/dist/esm/components/Footer.js +458 -0
  44. package/dist/esm/components/GoogleAnalytic.js +49 -23
  45. package/dist/esm/components/Header.js +207 -0
  46. package/dist/esm/components/TikTokPixel.js +9 -6
  47. package/dist/esm/components/builder/Toolbox.js +217 -190
  48. package/dist/esm/layouts/main.js +19 -5
  49. package/dist/esm/libs/api/get-builder-props.js +26 -24
  50. package/dist/esm/libs/api/get-collection-props.js +59 -55
  51. package/dist/esm/libs/api/get-home-page-props-v2.js +121 -114
  52. package/dist/esm/libs/api/get-home-page-props.js +133 -123
  53. package/dist/esm/libs/api/get-preview-props.js +10 -10
  54. package/dist/esm/libs/api/get-product-props.js +64 -62
  55. package/dist/esm/libs/api/get-static-page-props-preview.js +128 -121
  56. package/dist/esm/libs/api/get-static-page-props-v2.js +126 -119
  57. package/dist/esm/libs/api/get-static-page-props.js +130 -120
  58. package/dist/esm/libs/fetcher.js +59 -63
  59. package/dist/esm/libs/get-layout.js +5 -2
  60. package/dist/esm/libs/get-storefront-api.js +7 -7
  61. package/dist/esm/libs/getStaticPaths.js +5 -5
  62. package/dist/esm/libs/google-fonts.js +54 -61
  63. package/dist/esm/libs/helpers/gen-css.js +103 -94
  64. package/dist/esm/libs/helpers/generate-manifres.js +1 -1
  65. package/dist/esm/libs/helpers/get-fallback.js +24 -22
  66. package/dist/esm/libs/helpers/normalize.js +82 -80
  67. package/dist/esm/libs/helpers/parse-json.js +10 -12
  68. package/dist/esm/libs/helpers/user-agent.js +2 -2
  69. package/dist/esm/libs/hooks/use-tracking-view.js +36 -31
  70. package/dist/esm/libs/parse-html.js +33 -26
  71. package/dist/esm/pages/404.js +34 -2
  72. package/dist/esm/pages/500.js +63 -8
  73. package/dist/esm/pages/builder.js +69 -14
  74. package/dist/esm/pages/collection-detail.js +48 -7
  75. package/dist/esm/pages/preview.js +18 -12
  76. package/dist/esm/pages/product-detail.js +53 -7
  77. package/dist/esm/pages/static-v2.js +62 -7
  78. package/dist/esm/pages/static.js +60 -6
  79. package/package.json +1 -1
@@ -3,30 +3,38 @@
3
3
  var jsxRuntime = require('react/jsx-runtime');
4
4
  var react = require('react');
5
5
 
6
- const initialState = { hasError: false };
7
- class ErrorBoundary extends react.Component {
8
- state = initialState;
9
- static getDerivedStateFromError(error) {
10
- // Update state so the next render will show the fallback UI
11
- return { hasError: true, error };
12
- }
13
- reset = () => {
14
- this.setState(initialState);
15
- };
16
- componentDidCatch(error, errorInfo) {
17
- // You can use your own error logging service here
18
- this.props.onError?.(error, errorInfo);
19
- }
20
- render() {
21
- const { FallbackComponent } = this.props;
22
- // Check if the error is thrown
23
- if (this.state.hasError) {
24
- // You can render any custom fallback UI
25
- return jsxRuntime.jsx(FallbackComponent, { error: this.state.error, resetErrorBoundary: this.reset });
26
- }
27
- // Return children components in case of no error
28
- return this.props.children;
29
- }
6
+ const initialState = {
7
+ hasError: false
8
+ };
9
+ class ErrorBoundary extends react.Component {
10
+ state = initialState;
11
+ static getDerivedStateFromError(error) {
12
+ // Update state so the next render will show the fallback UI
13
+ return {
14
+ hasError: true,
15
+ error
16
+ };
17
+ }
18
+ reset = ()=>{
19
+ this.setState(initialState);
20
+ };
21
+ componentDidCatch(error, errorInfo) {
22
+ // You can use your own error logging service here
23
+ this.props.onError?.(error, errorInfo);
24
+ }
25
+ render() {
26
+ const { FallbackComponent } = this.props;
27
+ // Check if the error is thrown
28
+ if (this.state.hasError) {
29
+ // You can render any custom fallback UI
30
+ return /*#__PURE__*/ jsxRuntime.jsx(FallbackComponent, {
31
+ error: this.state.error,
32
+ resetErrorBoundary: this.reset
33
+ });
34
+ }
35
+ // Return children components in case of no error
36
+ return this.props.children;
37
+ }
30
38
  }
31
39
 
32
40
  exports.ErrorBoundary = ErrorBoundary;
@@ -2,8 +2,25 @@
2
2
 
3
3
  var jsxRuntime = require('react/jsx-runtime');
4
4
 
5
- const ErrorFallback = ({ error, resetErrorBoundary }) => {
6
- return (jsxRuntime.jsxs("div", { role: "alert", className: "flex flex-col items-center gap-2", children: [jsxRuntime.jsx("p", { className: "text-center text-2xl", children: "Oops! Something went wrong" }), jsxRuntime.jsx("pre", { children: error?.message }), jsxRuntime.jsx("button", { onClick: resetErrorBoundary, className: "inline-flex h-10 items-center justify-center gap-2 rounded bg-[#3C67FF] px-6 text-white active:translate-y-1", children: "Try again" })] }));
5
+ const ErrorFallback = ({ error , resetErrorBoundary })=>{
6
+ return /*#__PURE__*/ jsxRuntime.jsxs("div", {
7
+ role: "alert",
8
+ className: "flex flex-col items-center gap-2",
9
+ children: [
10
+ /*#__PURE__*/ jsxRuntime.jsx("p", {
11
+ className: "text-center text-2xl",
12
+ children: "Oops! Something went wrong"
13
+ }),
14
+ /*#__PURE__*/ jsxRuntime.jsx("pre", {
15
+ children: error?.message
16
+ }),
17
+ /*#__PURE__*/ jsxRuntime.jsx("button", {
18
+ onClick: resetErrorBoundary,
19
+ className: "inline-flex h-10 items-center justify-center gap-2 rounded bg-[#3C67FF] px-6 text-white active:translate-y-1",
20
+ children: "Try again"
21
+ })
22
+ ]
23
+ });
7
24
  };
8
25
 
9
26
  exports.ErrorFallback = ErrorFallback;
@@ -6,24 +6,28 @@ var router = require('next/router');
6
6
  var Script = require('next/script');
7
7
  var react = require('react');
8
8
 
9
- const FacebookPixel = ({ pixelId }) => {
10
- const router$1 = router.useRouter();
11
- react.useEffect(() => {
12
- // This pageview only triggers the first time (it's important for Pixel to have real information)
13
- core.fpixel.pageview();
14
- const handleRouteChange = () => {
15
- core.fpixel.pageview();
16
- };
17
- router$1.events.on('routeChangeComplete', handleRouteChange);
18
- router$1.events.on('hashChangeComplete', handleRouteChange);
19
- return () => {
20
- router$1.events.off('routeChangeComplete', handleRouteChange);
21
- router$1.events.off('hashChangeComplete', handleRouteChange);
22
- };
23
- }, [router$1.events]);
24
- if (!pixelId)
25
- return null;
26
- return (jsxRuntime.jsx(Script, { id: "fb-pixel", strategy: "afterInteractive", dangerouslySetInnerHTML: {
9
+ const FacebookPixel = ({ pixelId })=>{
10
+ const router$1 = router.useRouter();
11
+ react.useEffect(()=>{
12
+ // This pageview only triggers the first time (it's important for Pixel to have real information)
13
+ core.fpixel.pageview();
14
+ const handleRouteChange = ()=>{
15
+ core.fpixel.pageview();
16
+ };
17
+ router$1.events.on('routeChangeComplete', handleRouteChange);
18
+ router$1.events.on('hashChangeComplete', handleRouteChange);
19
+ return ()=>{
20
+ router$1.events.off('routeChangeComplete', handleRouteChange);
21
+ router$1.events.off('hashChangeComplete', handleRouteChange);
22
+ };
23
+ }, [
24
+ router$1.events
25
+ ]);
26
+ if (!pixelId) return null;
27
+ return /*#__PURE__*/ jsxRuntime.jsx(Script, {
28
+ id: "fb-pixel",
29
+ strategy: "afterInteractive",
30
+ dangerouslySetInnerHTML: {
27
31
  __html: `
28
32
  !function(f,b,e,v,n,t,s)
29
33
  {if(f.fbq)return;n=f.fbq=function(){n.callMethod?
@@ -34,8 +38,9 @@ const FacebookPixel = ({ pixelId }) => {
34
38
  s.parentNode.insertBefore(t,s)}(window, document,'script',
35
39
  'https://connect.facebook.net/en_US/fbevents.js');
36
40
  fbq('init', ${pixelId});
37
- `,
38
- } }));
41
+ `
42
+ }
43
+ });
39
44
  };
40
45
 
41
46
  exports.FacebookPixel = FacebookPixel;
@@ -0,0 +1,462 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var jsxRuntime = require('react/jsx-runtime');
6
+ var core = require('@gem-sdk/core');
7
+
8
+ const Footer = ()=>{
9
+ const layoutSetting = core.useShopStore((s)=>s.layoutSettings);
10
+ if (!layoutSetting?.showFooter) return null;
11
+ return /*#__PURE__*/ jsxRuntime.jsxs("div", {
12
+ children: [
13
+ /*#__PURE__*/ jsxRuntime.jsxs("div", {
14
+ className: "mobile:flex mx-4 hidden h-[138px] flex-col items-center justify-center gap-4",
15
+ children: [
16
+ /*#__PURE__*/ jsxRuntime.jsxs("div", {
17
+ className: "flex w-full justify-between",
18
+ children: [
19
+ /*#__PURE__*/ jsxRuntime.jsxs("svg", {
20
+ width: "60",
21
+ height: "50",
22
+ viewBox: "0 0 60 50",
23
+ fill: "none",
24
+ xmlns: "http://www.w3.org/2000/svg",
25
+ children: [
26
+ /*#__PURE__*/ jsxRuntime.jsx("rect", {
27
+ width: "60",
28
+ height: "36",
29
+ rx: "1",
30
+ fill: "#D6D6D6"
31
+ }),
32
+ /*#__PURE__*/ jsxRuntime.jsx("rect", {
33
+ y: "40",
34
+ width: "48",
35
+ height: "3",
36
+ rx: "1",
37
+ fill: "#D6D6D6"
38
+ }),
39
+ /*#__PURE__*/ jsxRuntime.jsx("rect", {
40
+ y: "47",
41
+ width: "36",
42
+ height: "3",
43
+ rx: "1",
44
+ fill: "#D6D6D6"
45
+ })
46
+ ]
47
+ }),
48
+ /*#__PURE__*/ jsxRuntime.jsxs("div", {
49
+ className: "flex gap-6",
50
+ children: [
51
+ /*#__PURE__*/ jsxRuntime.jsxs("svg", {
52
+ width: "60",
53
+ height: "36",
54
+ viewBox: "0 0 60 36",
55
+ fill: "none",
56
+ xmlns: "http://www.w3.org/2000/svg",
57
+ children: [
58
+ /*#__PURE__*/ jsxRuntime.jsx("rect", {
59
+ width: "60",
60
+ height: "6",
61
+ rx: "3",
62
+ fill: "#D6D6D6"
63
+ }),
64
+ /*#__PURE__*/ jsxRuntime.jsx("rect", {
65
+ y: "10",
66
+ width: "36",
67
+ height: "6",
68
+ rx: "3",
69
+ fill: "#D6D6D6"
70
+ }),
71
+ /*#__PURE__*/ jsxRuntime.jsx("rect", {
72
+ y: "20",
73
+ width: "36",
74
+ height: "6",
75
+ rx: "3",
76
+ fill: "#D6D6D6"
77
+ }),
78
+ /*#__PURE__*/ jsxRuntime.jsx("rect", {
79
+ y: "30",
80
+ width: "36",
81
+ height: "6",
82
+ rx: "3",
83
+ fill: "#D6D6D6"
84
+ })
85
+ ]
86
+ }),
87
+ /*#__PURE__*/ jsxRuntime.jsxs("svg", {
88
+ width: "60",
89
+ height: "26",
90
+ viewBox: "0 0 60 26",
91
+ fill: "none",
92
+ xmlns: "http://www.w3.org/2000/svg",
93
+ children: [
94
+ /*#__PURE__*/ jsxRuntime.jsx("rect", {
95
+ width: "60",
96
+ height: "6",
97
+ rx: "3",
98
+ fill: "#D6D6D6"
99
+ }),
100
+ /*#__PURE__*/ jsxRuntime.jsx("rect", {
101
+ y: "10",
102
+ width: "36",
103
+ height: "6",
104
+ rx: "3",
105
+ fill: "#D6D6D6"
106
+ }),
107
+ /*#__PURE__*/ jsxRuntime.jsx("rect", {
108
+ y: "20",
109
+ width: "36",
110
+ height: "6",
111
+ rx: "3",
112
+ fill: "#D6D6D6"
113
+ })
114
+ ]
115
+ }),
116
+ /*#__PURE__*/ jsxRuntime.jsxs("svg", {
117
+ width: "60",
118
+ height: "26",
119
+ viewBox: "0 0 60 26",
120
+ fill: "none",
121
+ xmlns: "http://www.w3.org/2000/svg",
122
+ children: [
123
+ /*#__PURE__*/ jsxRuntime.jsx("rect", {
124
+ width: "60",
125
+ height: "6",
126
+ rx: "3",
127
+ fill: "#D6D6D6"
128
+ }),
129
+ /*#__PURE__*/ jsxRuntime.jsx("rect", {
130
+ y: "10",
131
+ width: "36",
132
+ height: "6",
133
+ rx: "3",
134
+ fill: "#D6D6D6"
135
+ }),
136
+ /*#__PURE__*/ jsxRuntime.jsx("rect", {
137
+ y: "20",
138
+ width: "36",
139
+ height: "6",
140
+ rx: "3",
141
+ fill: "#D6D6D6"
142
+ })
143
+ ]
144
+ }),
145
+ /*#__PURE__*/ jsxRuntime.jsxs("svg", {
146
+ width: "60",
147
+ height: "26",
148
+ viewBox: "0 0 60 26",
149
+ fill: "none",
150
+ xmlns: "http://www.w3.org/2000/svg",
151
+ children: [
152
+ /*#__PURE__*/ jsxRuntime.jsx("rect", {
153
+ width: "60",
154
+ height: "6",
155
+ rx: "3",
156
+ fill: "#D6D6D6"
157
+ }),
158
+ /*#__PURE__*/ jsxRuntime.jsx("rect", {
159
+ y: "10",
160
+ width: "36",
161
+ height: "6",
162
+ rx: "3",
163
+ fill: "#D6D6D6"
164
+ }),
165
+ /*#__PURE__*/ jsxRuntime.jsx("rect", {
166
+ y: "20",
167
+ width: "36",
168
+ height: "6",
169
+ rx: "3",
170
+ fill: "#D6D6D6"
171
+ })
172
+ ]
173
+ })
174
+ ]
175
+ })
176
+ ]
177
+ }),
178
+ /*#__PURE__*/ jsxRuntime.jsxs("div", {
179
+ className: "flex gap-2",
180
+ children: [
181
+ /*#__PURE__*/ jsxRuntime.jsx("svg", {
182
+ width: "24",
183
+ height: "24",
184
+ viewBox: "0 0 24 24",
185
+ fill: "none",
186
+ xmlns: "http://www.w3.org/2000/svg",
187
+ children: /*#__PURE__*/ jsxRuntime.jsx("rect", {
188
+ width: "24",
189
+ height: "24",
190
+ rx: "12",
191
+ fill: "#D6D6D6"
192
+ })
193
+ }),
194
+ /*#__PURE__*/ jsxRuntime.jsx("svg", {
195
+ width: "24",
196
+ height: "24",
197
+ viewBox: "0 0 24 24",
198
+ fill: "none",
199
+ xmlns: "http://www.w3.org/2000/svg",
200
+ children: /*#__PURE__*/ jsxRuntime.jsx("rect", {
201
+ width: "24",
202
+ height: "24",
203
+ rx: "12",
204
+ fill: "#D6D6D6"
205
+ })
206
+ }),
207
+ /*#__PURE__*/ jsxRuntime.jsx("svg", {
208
+ width: "24",
209
+ height: "24",
210
+ viewBox: "0 0 24 24",
211
+ fill: "none",
212
+ xmlns: "http://www.w3.org/2000/svg",
213
+ children: /*#__PURE__*/ jsxRuntime.jsx("rect", {
214
+ width: "24",
215
+ height: "24",
216
+ rx: "12",
217
+ fill: "#D6D6D6"
218
+ })
219
+ }),
220
+ /*#__PURE__*/ jsxRuntime.jsx("svg", {
221
+ width: "24",
222
+ height: "24",
223
+ viewBox: "0 0 24 24",
224
+ fill: "none",
225
+ xmlns: "http://www.w3.org/2000/svg",
226
+ children: /*#__PURE__*/ jsxRuntime.jsx("rect", {
227
+ width: "24",
228
+ height: "24",
229
+ rx: "12",
230
+ fill: "#D6D6D6"
231
+ })
232
+ })
233
+ ]
234
+ })
235
+ ]
236
+ }),
237
+ /*#__PURE__*/ jsxRuntime.jsxs("div", {
238
+ className: "mobile:hidden mx-4 flex h-24 items-center justify-between",
239
+ children: [
240
+ /*#__PURE__*/ jsxRuntime.jsx("div", {
241
+ children: /*#__PURE__*/ jsxRuntime.jsxs("svg", {
242
+ width: "60",
243
+ height: "50",
244
+ viewBox: "0 0 60 50",
245
+ fill: "none",
246
+ xmlns: "http://www.w3.org/2000/svg",
247
+ children: [
248
+ /*#__PURE__*/ jsxRuntime.jsx("rect", {
249
+ width: "60",
250
+ height: "36",
251
+ rx: "1",
252
+ fill: "#D6D6D6"
253
+ }),
254
+ /*#__PURE__*/ jsxRuntime.jsx("rect", {
255
+ y: "40",
256
+ width: "48",
257
+ height: "3",
258
+ rx: "1",
259
+ fill: "#D6D6D6"
260
+ }),
261
+ /*#__PURE__*/ jsxRuntime.jsx("rect", {
262
+ y: "47",
263
+ width: "36",
264
+ height: "3",
265
+ rx: "1",
266
+ fill: "#D6D6D6"
267
+ })
268
+ ]
269
+ })
270
+ }),
271
+ /*#__PURE__*/ jsxRuntime.jsxs("div", {
272
+ className: "flex gap-6",
273
+ children: [
274
+ /*#__PURE__*/ jsxRuntime.jsxs("svg", {
275
+ width: "60",
276
+ height: "36",
277
+ viewBox: "0 0 60 36",
278
+ fill: "none",
279
+ xmlns: "http://www.w3.org/2000/svg",
280
+ children: [
281
+ /*#__PURE__*/ jsxRuntime.jsx("rect", {
282
+ width: "60",
283
+ height: "6",
284
+ rx: "3",
285
+ fill: "#D6D6D6"
286
+ }),
287
+ /*#__PURE__*/ jsxRuntime.jsx("rect", {
288
+ y: "10",
289
+ width: "36",
290
+ height: "6",
291
+ rx: "3",
292
+ fill: "#D6D6D6"
293
+ }),
294
+ /*#__PURE__*/ jsxRuntime.jsx("rect", {
295
+ y: "20",
296
+ width: "36",
297
+ height: "6",
298
+ rx: "3",
299
+ fill: "#D6D6D6"
300
+ }),
301
+ /*#__PURE__*/ jsxRuntime.jsx("rect", {
302
+ y: "30",
303
+ width: "36",
304
+ height: "6",
305
+ rx: "3",
306
+ fill: "#D6D6D6"
307
+ })
308
+ ]
309
+ }),
310
+ /*#__PURE__*/ jsxRuntime.jsxs("svg", {
311
+ width: "60",
312
+ height: "26",
313
+ viewBox: "0 0 60 26",
314
+ fill: "none",
315
+ xmlns: "http://www.w3.org/2000/svg",
316
+ children: [
317
+ /*#__PURE__*/ jsxRuntime.jsx("rect", {
318
+ width: "60",
319
+ height: "6",
320
+ rx: "3",
321
+ fill: "#D6D6D6"
322
+ }),
323
+ /*#__PURE__*/ jsxRuntime.jsx("rect", {
324
+ y: "10",
325
+ width: "36",
326
+ height: "6",
327
+ rx: "3",
328
+ fill: "#D6D6D6"
329
+ }),
330
+ /*#__PURE__*/ jsxRuntime.jsx("rect", {
331
+ y: "20",
332
+ width: "36",
333
+ height: "6",
334
+ rx: "3",
335
+ fill: "#D6D6D6"
336
+ })
337
+ ]
338
+ }),
339
+ /*#__PURE__*/ jsxRuntime.jsxs("svg", {
340
+ width: "60",
341
+ height: "26",
342
+ viewBox: "0 0 60 26",
343
+ fill: "none",
344
+ xmlns: "http://www.w3.org/2000/svg",
345
+ children: [
346
+ /*#__PURE__*/ jsxRuntime.jsx("rect", {
347
+ width: "60",
348
+ height: "6",
349
+ rx: "3",
350
+ fill: "#D6D6D6"
351
+ }),
352
+ /*#__PURE__*/ jsxRuntime.jsx("rect", {
353
+ y: "10",
354
+ width: "36",
355
+ height: "6",
356
+ rx: "3",
357
+ fill: "#D6D6D6"
358
+ }),
359
+ /*#__PURE__*/ jsxRuntime.jsx("rect", {
360
+ y: "20",
361
+ width: "36",
362
+ height: "6",
363
+ rx: "3",
364
+ fill: "#D6D6D6"
365
+ })
366
+ ]
367
+ }),
368
+ /*#__PURE__*/ jsxRuntime.jsxs("svg", {
369
+ width: "60",
370
+ height: "26",
371
+ viewBox: "0 0 60 26",
372
+ fill: "none",
373
+ xmlns: "http://www.w3.org/2000/svg",
374
+ children: [
375
+ /*#__PURE__*/ jsxRuntime.jsx("rect", {
376
+ width: "60",
377
+ height: "6",
378
+ rx: "3",
379
+ fill: "#D6D6D6"
380
+ }),
381
+ /*#__PURE__*/ jsxRuntime.jsx("rect", {
382
+ y: "10",
383
+ width: "36",
384
+ height: "6",
385
+ rx: "3",
386
+ fill: "#D6D6D6"
387
+ }),
388
+ /*#__PURE__*/ jsxRuntime.jsx("rect", {
389
+ y: "20",
390
+ width: "36",
391
+ height: "6",
392
+ rx: "3",
393
+ fill: "#D6D6D6"
394
+ })
395
+ ]
396
+ })
397
+ ]
398
+ }),
399
+ /*#__PURE__*/ jsxRuntime.jsxs("div", {
400
+ className: "flex gap-2",
401
+ children: [
402
+ /*#__PURE__*/ jsxRuntime.jsx("svg", {
403
+ width: "24",
404
+ height: "24",
405
+ viewBox: "0 0 24 24",
406
+ fill: "none",
407
+ xmlns: "http://www.w3.org/2000/svg",
408
+ children: /*#__PURE__*/ jsxRuntime.jsx("rect", {
409
+ width: "24",
410
+ height: "24",
411
+ rx: "12",
412
+ fill: "#D6D6D6"
413
+ })
414
+ }),
415
+ /*#__PURE__*/ jsxRuntime.jsx("svg", {
416
+ width: "24",
417
+ height: "24",
418
+ viewBox: "0 0 24 24",
419
+ fill: "none",
420
+ xmlns: "http://www.w3.org/2000/svg",
421
+ children: /*#__PURE__*/ jsxRuntime.jsx("rect", {
422
+ width: "24",
423
+ height: "24",
424
+ rx: "12",
425
+ fill: "#D6D6D6"
426
+ })
427
+ }),
428
+ /*#__PURE__*/ jsxRuntime.jsx("svg", {
429
+ width: "24",
430
+ height: "24",
431
+ viewBox: "0 0 24 24",
432
+ fill: "none",
433
+ xmlns: "http://www.w3.org/2000/svg",
434
+ children: /*#__PURE__*/ jsxRuntime.jsx("rect", {
435
+ width: "24",
436
+ height: "24",
437
+ rx: "12",
438
+ fill: "#D6D6D6"
439
+ })
440
+ }),
441
+ /*#__PURE__*/ jsxRuntime.jsx("svg", {
442
+ width: "24",
443
+ height: "24",
444
+ viewBox: "0 0 24 24",
445
+ fill: "none",
446
+ xmlns: "http://www.w3.org/2000/svg",
447
+ children: /*#__PURE__*/ jsxRuntime.jsx("rect", {
448
+ width: "24",
449
+ height: "24",
450
+ rx: "12",
451
+ fill: "#D6D6D6"
452
+ })
453
+ })
454
+ ]
455
+ })
456
+ ]
457
+ })
458
+ ]
459
+ });
460
+ };
461
+
462
+ exports.default = Footer;