@plasmicpkgs/commerce-local 0.0.40 → 0.0.43

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.
@@ -1,6 +1,2230 @@
1
- import registerComponent from '@plasmicapp/host/registerComponent';
1
+ import registerGlobalContext from '@plasmicapp/host/registerGlobalContext';
2
2
  import React, { useCallback } from 'react';
3
3
  import { useCart, CommerceError, getCommerceProvider, useCommerce as useCommerce$1 } from '@plasmicpkgs/commerce';
4
+ import Cookies from 'js-cookie';
5
+
6
+ var categories = [
7
+ {
8
+ id: "id::270412710052",
9
+ name: "New Arrivals",
10
+ slug: "clothes",
11
+ path: "/clothes",
12
+ isEmpty: false,
13
+ products: [
14
+ "id::5447323812004",
15
+ "id::5447324270756",
16
+ "id::5447324729508",
17
+ "id::5447325024420",
18
+ "id::6621772644516"
19
+ ]
20
+ },
21
+ {
22
+ id: "id::271211167908",
23
+ name: "Featured",
24
+ slug: "featured",
25
+ path: "/featured",
26
+ isEmpty: false,
27
+ products: [
28
+ "id::5447323156644",
29
+ "id::5447323812004",
30
+ "id::6621772644516"
31
+ ]
32
+ }
33
+ ];
34
+ var products = [
35
+ {
36
+ id: "id::5447322697892",
37
+ name: "Special Edition T-Shirt",
38
+ vendor: "ACME",
39
+ path: "/conf-shirt",
40
+ slug: "conf-shirt",
41
+ price: {
42
+ value: 50,
43
+ currencyCode: "USD"
44
+ },
45
+ images: [
46
+ {
47
+ url: "https://static1.plasmic.app/commerce/conf-shirt-0.png",
48
+ altText: null,
49
+ width: 958,
50
+ height: 1000
51
+ },
52
+ {
53
+ url: "https://static1.plasmic.app/commerce/conf-shirt-1.png",
54
+ altText: null,
55
+ width: 1000,
56
+ height: 1000
57
+ },
58
+ {
59
+ url: "https://static1.plasmic.app/commerce/conf-shirt-2.png",
60
+ altText: null,
61
+ width: 1000,
62
+ height: 1000
63
+ },
64
+ {
65
+ url: "https://static1.plasmic.app/commerce/conf-shirt-3.png",
66
+ altText: null,
67
+ width: 1000,
68
+ height: 1000
69
+ }
70
+ ],
71
+ variants: [
72
+ {
73
+ id: "id::40047332688036",
74
+ name: "Black / S",
75
+ sku: "",
76
+ price: 200,
77
+ listPrice: null,
78
+ requiresShipping: true,
79
+ availableForSale: true,
80
+ options: [
81
+ {
82
+ __typename: "MultipleChoiceOption",
83
+ id: "id::40047332688036",
84
+ displayName: "color",
85
+ values: [
86
+ {
87
+ label: "Black",
88
+ hexColors: [
89
+ "#000000"
90
+ ]
91
+ }
92
+ ]
93
+ },
94
+ {
95
+ __typename: "MultipleChoiceOption",
96
+ id: "id::40047332688036",
97
+ displayName: "size",
98
+ values: [
99
+ {
100
+ label: "S"
101
+ }
102
+ ]
103
+ }
104
+ ]
105
+ },
106
+ {
107
+ id: "id::40009056387236",
108
+ name: "Black / M",
109
+ sku: "",
110
+ price: 200,
111
+ listPrice: null,
112
+ requiresShipping: true,
113
+ availableForSale: true,
114
+ options: [
115
+ {
116
+ __typename: "MultipleChoiceOption",
117
+ id: "id::40009056387236",
118
+ displayName: "color",
119
+ values: [
120
+ {
121
+ label: "Black",
122
+ hexColors: [
123
+ "#000000"
124
+ ]
125
+ }
126
+ ]
127
+ },
128
+ {
129
+ __typename: "MultipleChoiceOption",
130
+ id: "id::40009056387236",
131
+ displayName: "size",
132
+ values: [
133
+ {
134
+ label: "M"
135
+ }
136
+ ]
137
+ }
138
+ ]
139
+ },
140
+ {
141
+ id: "id::40064229212324",
142
+ name: "Black / L",
143
+ sku: "",
144
+ price: 200,
145
+ listPrice: null,
146
+ requiresShipping: true,
147
+ availableForSale: true,
148
+ options: [
149
+ {
150
+ __typename: "MultipleChoiceOption",
151
+ id: "id::40064229212324",
152
+ displayName: "color",
153
+ values: [
154
+ {
155
+ label: "Black",
156
+ hexColors: [
157
+ "#000000"
158
+ ]
159
+ }
160
+ ]
161
+ },
162
+ {
163
+ __typename: "MultipleChoiceOption",
164
+ id: "id::40064229212324",
165
+ displayName: "size",
166
+ values: [
167
+ {
168
+ label: "L"
169
+ }
170
+ ]
171
+ }
172
+ ]
173
+ },
174
+ {
175
+ id: "id::40073451602084",
176
+ name: "Black / XL",
177
+ sku: "",
178
+ price: 50,
179
+ listPrice: null,
180
+ requiresShipping: true,
181
+ availableForSale: true,
182
+ options: [
183
+ {
184
+ __typename: "MultipleChoiceOption",
185
+ id: "id::40073451602084",
186
+ displayName: "color",
187
+ values: [
188
+ {
189
+ label: "Black",
190
+ hexColors: [
191
+ "#000000"
192
+ ]
193
+ }
194
+ ]
195
+ },
196
+ {
197
+ __typename: "MultipleChoiceOption",
198
+ id: "id::40073451602084",
199
+ displayName: "size",
200
+ values: [
201
+ {
202
+ label: "XL"
203
+ }
204
+ ]
205
+ }
206
+ ]
207
+ },
208
+ {
209
+ id: "id::40073450061988",
210
+ name: "Black / XXL",
211
+ sku: "",
212
+ price: 50,
213
+ listPrice: null,
214
+ requiresShipping: true,
215
+ availableForSale: true,
216
+ options: [
217
+ {
218
+ __typename: "MultipleChoiceOption",
219
+ id: "id::40073450061988",
220
+ displayName: "color",
221
+ values: [
222
+ {
223
+ label: "Black",
224
+ hexColors: [
225
+ "#000000"
226
+ ]
227
+ }
228
+ ]
229
+ },
230
+ {
231
+ __typename: "MultipleChoiceOption",
232
+ id: "id::40073450061988",
233
+ displayName: "size",
234
+ values: [
235
+ {
236
+ label: "XXL"
237
+ }
238
+ ]
239
+ }
240
+ ]
241
+ }
242
+ ],
243
+ options: [
244
+ {
245
+ __typename: "MultipleChoiceOption",
246
+ id: "id::6940501311652",
247
+ displayName: "color",
248
+ values: [
249
+ {
250
+ label: "Black",
251
+ hexColors: [
252
+ "#000000"
253
+ ]
254
+ }
255
+ ]
256
+ },
257
+ {
258
+ __typename: "MultipleChoiceOption",
259
+ id: "id::6940501278884",
260
+ displayName: "size",
261
+ values: [
262
+ {
263
+ label: "S"
264
+ },
265
+ {
266
+ label: "M"
267
+ },
268
+ {
269
+ label: "L"
270
+ },
271
+ {
272
+ label: "XL"
273
+ },
274
+ {
275
+ label: "XXL"
276
+ }
277
+ ]
278
+ }
279
+ ],
280
+ description: "Show off your love for Next.js and Vercel with this unique, limited edition t-shirt. This design is part of a limited run, numbered drop at the June 2021 Next.js Conf. It features a unique, handcrafted triangle design. Get it while supplies last – only 200 of these shirts will be made! All proceeds will be donated to charity.",
281
+ descriptionHtml: "<p><meta charset=\"utf-8\"><span>Show off your love for Next.js and Vercel with this unique, </span><strong>limited edition</strong><span> t-shirt. This design is part of a limited run, numbered drop at the June 2021 Next.js Conf. It features a unique, handcrafted triangle design. Get it while supplies last – only 200 of these shirts will be made! </span><strong>All proceeds will be donated to charity.</strong></p>"
282
+ },
283
+ {
284
+ id: "id::5447323156644",
285
+ name: "Quarter Zip",
286
+ vendor: "ACME",
287
+ path: "/quarter-zip",
288
+ slug: "quarter-zip",
289
+ price: {
290
+ value: 90,
291
+ currencyCode: "USD"
292
+ },
293
+ images: [
294
+ {
295
+ url: "https://static1.plasmic.app/commerce/quarter-zip-0.png",
296
+ altText: null,
297
+ width: 1000,
298
+ height: 1000
299
+ },
300
+ {
301
+ url: "https://static1.plasmic.app/commerce/quarter-zip-1.png",
302
+ altText: null,
303
+ width: 1000,
304
+ height: 1000
305
+ },
306
+ {
307
+ url: "https://static1.plasmic.app/commerce/quarter-zip-2.png",
308
+ altText: null,
309
+ width: 1000,
310
+ height: 1000
311
+ }
312
+ ],
313
+ variants: [
314
+ {
315
+ id: "id::40065999569060",
316
+ name: "Black / S",
317
+ sku: "",
318
+ price: 90,
319
+ listPrice: 20,
320
+ requiresShipping: true,
321
+ availableForSale: true,
322
+ options: [
323
+ {
324
+ __typename: "MultipleChoiceOption",
325
+ id: "id::40065999569060",
326
+ displayName: "color",
327
+ values: [
328
+ {
329
+ label: "Black",
330
+ hexColors: [
331
+ "#000000"
332
+ ]
333
+ }
334
+ ]
335
+ },
336
+ {
337
+ __typename: "MultipleChoiceOption",
338
+ id: "id::40065999569060",
339
+ displayName: "size",
340
+ values: [
341
+ {
342
+ label: "S"
343
+ }
344
+ ]
345
+ }
346
+ ]
347
+ },
348
+ {
349
+ id: "id::40008984756388",
350
+ name: "Black / M",
351
+ sku: "",
352
+ price: 90,
353
+ listPrice: 20,
354
+ requiresShipping: true,
355
+ availableForSale: true,
356
+ options: [
357
+ {
358
+ __typename: "MultipleChoiceOption",
359
+ id: "id::40008984756388",
360
+ displayName: "color",
361
+ values: [
362
+ {
363
+ label: "Black",
364
+ hexColors: [
365
+ "#000000"
366
+ ]
367
+ }
368
+ ]
369
+ },
370
+ {
371
+ __typename: "MultipleChoiceOption",
372
+ id: "id::40008984756388",
373
+ displayName: "size",
374
+ values: [
375
+ {
376
+ label: "M"
377
+ }
378
+ ]
379
+ }
380
+ ]
381
+ },
382
+ {
383
+ id: "id::40065122828452",
384
+ name: "Black / L",
385
+ sku: "",
386
+ price: 90,
387
+ listPrice: 20,
388
+ requiresShipping: true,
389
+ availableForSale: true,
390
+ options: [
391
+ {
392
+ __typename: "MultipleChoiceOption",
393
+ id: "id::40065122828452",
394
+ displayName: "color",
395
+ values: [
396
+ {
397
+ label: "Black",
398
+ hexColors: [
399
+ "#000000"
400
+ ]
401
+ }
402
+ ]
403
+ },
404
+ {
405
+ __typename: "MultipleChoiceOption",
406
+ id: "id::40065122828452",
407
+ displayName: "size",
408
+ values: [
409
+ {
410
+ label: "L"
411
+ }
412
+ ]
413
+ }
414
+ ]
415
+ },
416
+ {
417
+ id: "id::40065123713188",
418
+ name: "Black / XL",
419
+ sku: "",
420
+ price: 90,
421
+ listPrice: 20,
422
+ requiresShipping: true,
423
+ availableForSale: true,
424
+ options: [
425
+ {
426
+ __typename: "MultipleChoiceOption",
427
+ id: "id::40065123713188",
428
+ displayName: "color",
429
+ values: [
430
+ {
431
+ label: "Black",
432
+ hexColors: [
433
+ "#000000"
434
+ ]
435
+ }
436
+ ]
437
+ },
438
+ {
439
+ __typename: "MultipleChoiceOption",
440
+ id: "id::40065123713188",
441
+ displayName: "size",
442
+ values: [
443
+ {
444
+ label: "XL"
445
+ }
446
+ ]
447
+ }
448
+ ]
449
+ },
450
+ {
451
+ id: "id::40065125286052",
452
+ name: "Black / XXL",
453
+ sku: "",
454
+ price: 90,
455
+ listPrice: 20,
456
+ requiresShipping: true,
457
+ availableForSale: true,
458
+ options: [
459
+ {
460
+ __typename: "MultipleChoiceOption",
461
+ id: "id::40065125286052",
462
+ displayName: "color",
463
+ values: [
464
+ {
465
+ label: "Black",
466
+ hexColors: [
467
+ "#000000"
468
+ ]
469
+ }
470
+ ]
471
+ },
472
+ {
473
+ __typename: "MultipleChoiceOption",
474
+ id: "id::40065125286052",
475
+ displayName: "size",
476
+ values: [
477
+ {
478
+ label: "XXL"
479
+ }
480
+ ]
481
+ }
482
+ ]
483
+ }
484
+ ],
485
+ options: [
486
+ {
487
+ __typename: "MultipleChoiceOption",
488
+ id: "id::6940501835940",
489
+ displayName: "color",
490
+ values: [
491
+ {
492
+ label: "Black",
493
+ hexColors: [
494
+ "#000000"
495
+ ]
496
+ }
497
+ ]
498
+ },
499
+ {
500
+ __typename: "MultipleChoiceOption",
501
+ id: "id::6940501803172",
502
+ displayName: "size",
503
+ values: [
504
+ {
505
+ label: "S"
506
+ },
507
+ {
508
+ label: "M"
509
+ },
510
+ {
511
+ label: "L"
512
+ },
513
+ {
514
+ label: "XL"
515
+ },
516
+ {
517
+ label: "XXL"
518
+ }
519
+ ]
520
+ }
521
+ ],
522
+ description: "Show off your love for Next.js and Vercel with this unique, limited edition quarter zip. This design is part of a limited run, numbered drop at the June 2021 Next.js Conf. It features a unique, handcrafted triangle design. Get it while supplies last – only 200 of these shirts will be made! All proceeds will be donated to charity.",
523
+ descriptionHtml: "<p>Show off your love for Next.js and Vercel with this unique, <strong>limited edition</strong> quarter zip. This design is part of a limited run, numbered drop at the June 2021 Next.js Conf. It features a unique, handcrafted triangle design. Get it while supplies last – only 200 of these shirts will be made! <strong>All proceeds will be donated to charity.</strong></p>"
524
+ },
525
+ {
526
+ id: "id::5447323812004",
527
+ name: "Sticker",
528
+ vendor: "ACME",
529
+ path: "/sticker",
530
+ slug: "sticker",
531
+ price: {
532
+ value: 0,
533
+ currencyCode: "USD"
534
+ },
535
+ images: [
536
+ {
537
+ url: "https://static1.plasmic.app/commerce/sticker-0.png",
538
+ altText: null,
539
+ width: 900,
540
+ height: 900
541
+ }
542
+ ],
543
+ variants: [
544
+ {
545
+ id: "id::40008892580004",
546
+ name: "Gradient",
547
+ sku: "",
548
+ price: 0,
549
+ listPrice: 60,
550
+ requiresShipping: true,
551
+ availableForSale: true,
552
+ options: [
553
+ {
554
+ __typename: "MultipleChoiceOption",
555
+ id: "id::40008892580004",
556
+ displayName: "color",
557
+ values: [
558
+ {
559
+ label: "Gradient"
560
+ }
561
+ ]
562
+ }
563
+ ]
564
+ }
565
+ ],
566
+ options: [
567
+ {
568
+ __typename: "MultipleChoiceOption",
569
+ id: "id::6940502524068",
570
+ displayName: "color",
571
+ values: [
572
+ {
573
+ label: "Gradient"
574
+ }
575
+ ]
576
+ }
577
+ ],
578
+ description: "Wafer cupcake candy macaroon bonbon candy canes cheesecake candy. Donut chupa chups sesame snaps candy chocolate cake chocolate cake danish. Tart cotton candy gummies cotton candy sweet roll. Wafer pie chocolate cake. Caramels toffee gummies. Liquorice sweet oat cake chocolate candy canes toffee bear claw. Chocolate cupcake wafer. Halvah soufflé halvah. Dessert pastry toffee apple pie chocolate cake lemon drops. Tart carrot cake wafer halvah tiramisu fruitcake.",
579
+ descriptionHtml: "<p><meta charset=\"utf-8\">Wafer cupcake candy macaroon bonbon candy canes cheesecake candy. Donut chupa chups sesame snaps candy chocolate cake chocolate cake danish. Tart cotton candy gummies cotton candy sweet roll. Wafer pie chocolate cake. Caramels toffee gummies. Liquorice sweet oat cake chocolate candy canes toffee bear claw. Chocolate cupcake wafer. Halvah soufflé halvah. Dessert pastry toffee apple pie chocolate cake lemon drops. Tart carrot cake wafer halvah tiramisu fruitcake.<br></p>"
580
+ },
581
+ {
582
+ id: "id::5447324270756",
583
+ name: "Bomber Jacket",
584
+ vendor: "Next.js",
585
+ path: "/bomber-jacket",
586
+ slug: "bomber-jacket",
587
+ price: {
588
+ value: 635.99,
589
+ currencyCode: "USD"
590
+ },
591
+ images: [
592
+ {
593
+ url: "https://static1.plasmic.app/commerce/bomber-jacket-0.png",
594
+ altText: null,
595
+ width: 1000,
596
+ height: 1000
597
+ },
598
+ {
599
+ url: "https://static1.plasmic.app/commerce/bomber-jacket-1.png",
600
+ altText: null,
601
+ width: 1000,
602
+ height: 1000
603
+ }
604
+ ],
605
+ variants: [
606
+ {
607
+ id: "id::40046243905700",
608
+ name: "L / Black",
609
+ sku: "",
610
+ price: 635.99,
611
+ listPrice: 5200,
612
+ requiresShipping: true,
613
+ availableForSale: true,
614
+ options: [
615
+ {
616
+ __typename: "MultipleChoiceOption",
617
+ id: "id::40046243905700",
618
+ displayName: "size",
619
+ values: [
620
+ {
621
+ label: "L"
622
+ }
623
+ ]
624
+ },
625
+ {
626
+ __typename: "MultipleChoiceOption",
627
+ id: "id::40046243905700",
628
+ displayName: "color",
629
+ values: [
630
+ {
631
+ label: "Black",
632
+ hexColors: [
633
+ "#000000"
634
+ ]
635
+ }
636
+ ]
637
+ }
638
+ ]
639
+ },
640
+ {
641
+ id: "id::40046243938468",
642
+ name: "L / DarkOliveGreen",
643
+ sku: "",
644
+ price: 635.99,
645
+ listPrice: 5200,
646
+ requiresShipping: true,
647
+ availableForSale: true,
648
+ options: [
649
+ {
650
+ __typename: "MultipleChoiceOption",
651
+ id: "id::40046243938468",
652
+ displayName: "size",
653
+ values: [
654
+ {
655
+ label: "L"
656
+ }
657
+ ]
658
+ },
659
+ {
660
+ __typename: "MultipleChoiceOption",
661
+ id: "id::40046243938468",
662
+ displayName: "color",
663
+ values: [
664
+ {
665
+ label: "DarkOliveGreen",
666
+ hexColors: [
667
+ "#556B2F"
668
+ ]
669
+ }
670
+ ]
671
+ }
672
+ ]
673
+ },
674
+ {
675
+ id: "id::40046243971236",
676
+ name: "XL / Black",
677
+ sku: "",
678
+ price: 635.99,
679
+ listPrice: 5200,
680
+ requiresShipping: true,
681
+ availableForSale: true,
682
+ options: [
683
+ {
684
+ __typename: "MultipleChoiceOption",
685
+ id: "id::40046243971236",
686
+ displayName: "size",
687
+ values: [
688
+ {
689
+ label: "XL"
690
+ }
691
+ ]
692
+ },
693
+ {
694
+ __typename: "MultipleChoiceOption",
695
+ id: "id::40046243971236",
696
+ displayName: "color",
697
+ values: [
698
+ {
699
+ label: "Black",
700
+ hexColors: [
701
+ "#000000"
702
+ ]
703
+ }
704
+ ]
705
+ }
706
+ ]
707
+ },
708
+ {
709
+ id: "id::40046244004004",
710
+ name: "XL / DarkOliveGreen",
711
+ sku: "",
712
+ price: 635.99,
713
+ listPrice: 5200,
714
+ requiresShipping: true,
715
+ availableForSale: true,
716
+ options: [
717
+ {
718
+ __typename: "MultipleChoiceOption",
719
+ id: "id::40046244004004",
720
+ displayName: "size",
721
+ values: [
722
+ {
723
+ label: "XL"
724
+ }
725
+ ]
726
+ },
727
+ {
728
+ __typename: "MultipleChoiceOption",
729
+ id: "id::40046244004004",
730
+ displayName: "color",
731
+ values: [
732
+ {
733
+ label: "DarkOliveGreen",
734
+ hexColors: [
735
+ "#556B2F"
736
+ ]
737
+ }
738
+ ]
739
+ }
740
+ ]
741
+ },
742
+ {
743
+ id: "id::40046244036772",
744
+ name: "XXL / Black",
745
+ sku: "",
746
+ price: 635.99,
747
+ listPrice: 5200,
748
+ requiresShipping: true,
749
+ availableForSale: true,
750
+ options: [
751
+ {
752
+ __typename: "MultipleChoiceOption",
753
+ id: "id::40046244036772",
754
+ displayName: "size",
755
+ values: [
756
+ {
757
+ label: "XXL"
758
+ }
759
+ ]
760
+ },
761
+ {
762
+ __typename: "MultipleChoiceOption",
763
+ id: "id::40046244036772",
764
+ displayName: "color",
765
+ values: [
766
+ {
767
+ label: "Black",
768
+ hexColors: [
769
+ "#000000"
770
+ ]
771
+ }
772
+ ]
773
+ }
774
+ ]
775
+ },
776
+ {
777
+ id: "id::40046244069540",
778
+ name: "XXL / DarkOliveGreen",
779
+ sku: "",
780
+ price: 635.99,
781
+ listPrice: 5200,
782
+ requiresShipping: true,
783
+ availableForSale: true,
784
+ options: [
785
+ {
786
+ __typename: "MultipleChoiceOption",
787
+ id: "id::40046244069540",
788
+ displayName: "size",
789
+ values: [
790
+ {
791
+ label: "XXL"
792
+ }
793
+ ]
794
+ },
795
+ {
796
+ __typename: "MultipleChoiceOption",
797
+ id: "id::40046244069540",
798
+ displayName: "color",
799
+ values: [
800
+ {
801
+ label: "DarkOliveGreen",
802
+ hexColors: [
803
+ "#556B2F"
804
+ ]
805
+ }
806
+ ]
807
+ }
808
+ ]
809
+ }
810
+ ],
811
+ options: [
812
+ {
813
+ __typename: "MultipleChoiceOption",
814
+ id: "id::6940503015588",
815
+ displayName: "size",
816
+ values: [
817
+ {
818
+ label: "L"
819
+ },
820
+ {
821
+ label: "XL"
822
+ },
823
+ {
824
+ label: "XXL"
825
+ }
826
+ ]
827
+ },
828
+ {
829
+ __typename: "MultipleChoiceOption",
830
+ id: "id::8655769764004",
831
+ displayName: "color",
832
+ values: [
833
+ {
834
+ label: "Black",
835
+ hexColors: [
836
+ "#000000"
837
+ ]
838
+ },
839
+ {
840
+ label: "DarkOliveGreen",
841
+ hexColors: [
842
+ "#556B2F"
843
+ ]
844
+ }
845
+ ]
846
+ }
847
+ ],
848
+ description: "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Praesent elementum facilisis leo vel fringilla est ullamcorper eget. At imperdiet dui accumsan sit amet nulla facilisi morbi tempus. Praesent elementum facilisis leo vel fringilla. Congue mauris rhoncus aenean vel. Egestas sed tempus urna et pharetra pharetra massa massa ultricies.",
849
+ descriptionHtml: "<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Praesent elementum facilisis leo vel fringilla est ullamcorper eget. At imperdiet dui accumsan sit amet nulla facilisi morbi tempus. Praesent elementum facilisis leo vel fringilla. Congue mauris rhoncus aenean vel. Egestas sed tempus urna et pharetra pharetra massa massa ultricies.</p>"
850
+ },
851
+ {
852
+ id: "id::5447324729508",
853
+ name: "Short Sleeve T-Shirt",
854
+ vendor: "Next.js",
855
+ path: "/short-sleeve-t-shirt",
856
+ slug: "short-sleeve-t-shirt",
857
+ price: {
858
+ value: 35,
859
+ currencyCode: "USD"
860
+ },
861
+ images: [
862
+ {
863
+ url: "https://static1.plasmic.app/commerce/short-sleeve-t-shirt-0.png",
864
+ altText: null,
865
+ width: 1000,
866
+ height: 1000
867
+ },
868
+ {
869
+ url: "https://static1.plasmic.app/commerce/short-sleeve-t-shirt-1.png",
870
+ altText: null,
871
+ width: 1000,
872
+ height: 1000
873
+ },
874
+ {
875
+ url: "https://static1.plasmic.app/commerce/short-sleeve-t-shirt-2.png",
876
+ altText: null,
877
+ width: 1000,
878
+ height: 1000
879
+ },
880
+ {
881
+ url: "https://static1.plasmic.app/commerce/short-sleeve-t-shirt-3.png",
882
+ altText: null,
883
+ width: 1000,
884
+ height: 1000
885
+ }
886
+ ],
887
+ variants: [
888
+ {
889
+ id: "id::35180690669732",
890
+ name: "M / gray",
891
+ sku: "",
892
+ price: 35,
893
+ listPrice: null,
894
+ requiresShipping: true,
895
+ availableForSale: true,
896
+ options: [
897
+ {
898
+ __typename: "MultipleChoiceOption",
899
+ id: "id::35180690669732",
900
+ displayName: "size",
901
+ values: [
902
+ {
903
+ label: "M"
904
+ }
905
+ ]
906
+ },
907
+ {
908
+ __typename: "MultipleChoiceOption",
909
+ id: "id::35180690669732",
910
+ displayName: "color",
911
+ values: [
912
+ {
913
+ label: "gray",
914
+ hexColors: [
915
+ "#808080"
916
+ ]
917
+ }
918
+ ]
919
+ }
920
+ ]
921
+ },
922
+ {
923
+ id: "id::35180690702500",
924
+ name: "L / gray",
925
+ sku: "",
926
+ price: 35,
927
+ listPrice: null,
928
+ requiresShipping: true,
929
+ availableForSale: true,
930
+ options: [
931
+ {
932
+ __typename: "MultipleChoiceOption",
933
+ id: "id::35180690702500",
934
+ displayName: "size",
935
+ values: [
936
+ {
937
+ label: "L"
938
+ }
939
+ ]
940
+ },
941
+ {
942
+ __typename: "MultipleChoiceOption",
943
+ id: "id::35180690702500",
944
+ displayName: "color",
945
+ values: [
946
+ {
947
+ label: "gray",
948
+ hexColors: [
949
+ "#808080"
950
+ ]
951
+ }
952
+ ]
953
+ }
954
+ ]
955
+ },
956
+ {
957
+ id: "id::35180690735268",
958
+ name: "XL / gray",
959
+ sku: "",
960
+ price: 35,
961
+ listPrice: null,
962
+ requiresShipping: true,
963
+ availableForSale: true,
964
+ options: [
965
+ {
966
+ __typename: "MultipleChoiceOption",
967
+ id: "id::35180690735268",
968
+ displayName: "size",
969
+ values: [
970
+ {
971
+ label: "XL"
972
+ }
973
+ ]
974
+ },
975
+ {
976
+ __typename: "MultipleChoiceOption",
977
+ id: "id::35180690735268",
978
+ displayName: "color",
979
+ values: [
980
+ {
981
+ label: "gray",
982
+ hexColors: [
983
+ "#808080"
984
+ ]
985
+ }
986
+ ]
987
+ }
988
+ ]
989
+ },
990
+ {
991
+ id: "id::40046203437220",
992
+ name: "M / beige",
993
+ sku: "",
994
+ price: 35,
995
+ listPrice: null,
996
+ requiresShipping: true,
997
+ availableForSale: true,
998
+ options: [
999
+ {
1000
+ __typename: "MultipleChoiceOption",
1001
+ id: "id::40046203437220",
1002
+ displayName: "size",
1003
+ values: [
1004
+ {
1005
+ label: "M"
1006
+ }
1007
+ ]
1008
+ },
1009
+ {
1010
+ __typename: "MultipleChoiceOption",
1011
+ id: "id::40046203437220",
1012
+ displayName: "color",
1013
+ values: [
1014
+ {
1015
+ label: "beige",
1016
+ hexColors: [
1017
+ "#F5F5DC"
1018
+ ]
1019
+ }
1020
+ ]
1021
+ }
1022
+ ]
1023
+ },
1024
+ {
1025
+ id: "id::40046207369380",
1026
+ name: "L / beige",
1027
+ sku: "",
1028
+ price: 35,
1029
+ listPrice: null,
1030
+ requiresShipping: true,
1031
+ availableForSale: true,
1032
+ options: [
1033
+ {
1034
+ __typename: "MultipleChoiceOption",
1035
+ id: "id::40046207369380",
1036
+ displayName: "size",
1037
+ values: [
1038
+ {
1039
+ label: "L"
1040
+ }
1041
+ ]
1042
+ },
1043
+ {
1044
+ __typename: "MultipleChoiceOption",
1045
+ id: "id::40046207369380",
1046
+ displayName: "color",
1047
+ values: [
1048
+ {
1049
+ label: "beige",
1050
+ hexColors: [
1051
+ "#F5F5DC"
1052
+ ]
1053
+ }
1054
+ ]
1055
+ }
1056
+ ]
1057
+ },
1058
+ {
1059
+ id: "id::40046207729828",
1060
+ name: "XL / beige",
1061
+ sku: "",
1062
+ price: 35,
1063
+ listPrice: null,
1064
+ requiresShipping: true,
1065
+ availableForSale: true,
1066
+ options: [
1067
+ {
1068
+ __typename: "MultipleChoiceOption",
1069
+ id: "id::40046207729828",
1070
+ displayName: "size",
1071
+ values: [
1072
+ {
1073
+ label: "XL"
1074
+ }
1075
+ ]
1076
+ },
1077
+ {
1078
+ __typename: "MultipleChoiceOption",
1079
+ id: "id::40046207729828",
1080
+ displayName: "color",
1081
+ values: [
1082
+ {
1083
+ label: "beige",
1084
+ hexColors: [
1085
+ "#F5F5DC"
1086
+ ]
1087
+ }
1088
+ ]
1089
+ }
1090
+ ]
1091
+ },
1092
+ {
1093
+ id: "id::40046212612260",
1094
+ name: "M / white",
1095
+ sku: "",
1096
+ price: 35,
1097
+ listPrice: null,
1098
+ requiresShipping: true,
1099
+ availableForSale: true,
1100
+ options: [
1101
+ {
1102
+ __typename: "MultipleChoiceOption",
1103
+ id: "id::40046212612260",
1104
+ displayName: "size",
1105
+ values: [
1106
+ {
1107
+ label: "M"
1108
+ }
1109
+ ]
1110
+ },
1111
+ {
1112
+ __typename: "MultipleChoiceOption",
1113
+ id: "id::40046212612260",
1114
+ displayName: "color",
1115
+ values: [
1116
+ {
1117
+ label: "white",
1118
+ hexColors: [
1119
+ "#FFFFFF"
1120
+ ]
1121
+ }
1122
+ ]
1123
+ }
1124
+ ]
1125
+ },
1126
+ {
1127
+ id: "id::40046212907172",
1128
+ name: "L / white",
1129
+ sku: "",
1130
+ price: 35,
1131
+ listPrice: null,
1132
+ requiresShipping: true,
1133
+ availableForSale: true,
1134
+ options: [
1135
+ {
1136
+ __typename: "MultipleChoiceOption",
1137
+ id: "id::40046212907172",
1138
+ displayName: "size",
1139
+ values: [
1140
+ {
1141
+ label: "L"
1142
+ }
1143
+ ]
1144
+ },
1145
+ {
1146
+ __typename: "MultipleChoiceOption",
1147
+ id: "id::40046212907172",
1148
+ displayName: "color",
1149
+ values: [
1150
+ {
1151
+ label: "white",
1152
+ hexColors: [
1153
+ "#FFFFFF"
1154
+ ]
1155
+ }
1156
+ ]
1157
+ }
1158
+ ]
1159
+ },
1160
+ {
1161
+ id: "id::40046213300388",
1162
+ name: "XL / white",
1163
+ sku: "",
1164
+ price: 35,
1165
+ listPrice: null,
1166
+ requiresShipping: true,
1167
+ availableForSale: true,
1168
+ options: [
1169
+ {
1170
+ __typename: "MultipleChoiceOption",
1171
+ id: "id::40046213300388",
1172
+ displayName: "size",
1173
+ values: [
1174
+ {
1175
+ label: "XL"
1176
+ }
1177
+ ]
1178
+ },
1179
+ {
1180
+ __typename: "MultipleChoiceOption",
1181
+ id: "id::40046213300388",
1182
+ displayName: "color",
1183
+ values: [
1184
+ {
1185
+ label: "white",
1186
+ hexColors: [
1187
+ "#FFFFFF"
1188
+ ]
1189
+ }
1190
+ ]
1191
+ }
1192
+ ]
1193
+ },
1194
+ {
1195
+ id: "id::40046214742180",
1196
+ name: "M / DarkTurquoise",
1197
+ sku: "",
1198
+ price: 35,
1199
+ listPrice: null,
1200
+ requiresShipping: true,
1201
+ availableForSale: true,
1202
+ options: [
1203
+ {
1204
+ __typename: "MultipleChoiceOption",
1205
+ id: "id::40046214742180",
1206
+ displayName: "size",
1207
+ values: [
1208
+ {
1209
+ label: "M"
1210
+ }
1211
+ ]
1212
+ },
1213
+ {
1214
+ __typename: "MultipleChoiceOption",
1215
+ id: "id::40046214742180",
1216
+ displayName: "color",
1217
+ values: [
1218
+ {
1219
+ label: "DarkTurquoise",
1220
+ hexColors: [
1221
+ "#00CED1"
1222
+ ]
1223
+ }
1224
+ ]
1225
+ }
1226
+ ]
1227
+ },
1228
+ {
1229
+ id: "id::40046218346660",
1230
+ name: "L / DarkTurquoise",
1231
+ sku: "",
1232
+ price: 35,
1233
+ listPrice: null,
1234
+ requiresShipping: true,
1235
+ availableForSale: true,
1236
+ options: [
1237
+ {
1238
+ __typename: "MultipleChoiceOption",
1239
+ id: "id::40046218346660",
1240
+ displayName: "size",
1241
+ values: [
1242
+ {
1243
+ label: "L"
1244
+ }
1245
+ ]
1246
+ },
1247
+ {
1248
+ __typename: "MultipleChoiceOption",
1249
+ id: "id::40046218346660",
1250
+ displayName: "color",
1251
+ values: [
1252
+ {
1253
+ label: "DarkTurquoise",
1254
+ hexColors: [
1255
+ "#00CED1"
1256
+ ]
1257
+ }
1258
+ ]
1259
+ }
1260
+ ]
1261
+ },
1262
+ {
1263
+ id: "id::40046220214436",
1264
+ name: "XL / DarkTurquoise",
1265
+ sku: "",
1266
+ price: 35,
1267
+ listPrice: null,
1268
+ requiresShipping: true,
1269
+ availableForSale: true,
1270
+ options: [
1271
+ {
1272
+ __typename: "MultipleChoiceOption",
1273
+ id: "id::40046220214436",
1274
+ displayName: "size",
1275
+ values: [
1276
+ {
1277
+ label: "XL"
1278
+ }
1279
+ ]
1280
+ },
1281
+ {
1282
+ __typename: "MultipleChoiceOption",
1283
+ id: "id::40046220214436",
1284
+ displayName: "color",
1285
+ values: [
1286
+ {
1287
+ label: "DarkTurquoise",
1288
+ hexColors: [
1289
+ "#00CED1"
1290
+ ]
1291
+ }
1292
+ ]
1293
+ }
1294
+ ]
1295
+ }
1296
+ ],
1297
+ options: [
1298
+ {
1299
+ __typename: "MultipleChoiceOption",
1300
+ id: "id::6940503474340",
1301
+ displayName: "size",
1302
+ values: [
1303
+ {
1304
+ label: "M"
1305
+ },
1306
+ {
1307
+ label: "L"
1308
+ },
1309
+ {
1310
+ label: "XL"
1311
+ }
1312
+ ]
1313
+ },
1314
+ {
1315
+ __typename: "MultipleChoiceOption",
1316
+ id: "id::8655761178788",
1317
+ displayName: "color",
1318
+ values: [
1319
+ {
1320
+ label: "gray",
1321
+ hexColors: [
1322
+ "#808080"
1323
+ ]
1324
+ },
1325
+ {
1326
+ label: "beige",
1327
+ hexColors: [
1328
+ "#F5F5DC"
1329
+ ]
1330
+ },
1331
+ {
1332
+ label: "white",
1333
+ hexColors: [
1334
+ "#FFFFFF"
1335
+ ]
1336
+ },
1337
+ {
1338
+ label: "DarkTurquoise",
1339
+ hexColors: [
1340
+ "#00CED1"
1341
+ ]
1342
+ }
1343
+ ]
1344
+ }
1345
+ ],
1346
+ description: "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Praesent elementum facilisis leo vel fringilla est ullamcorper eget. At imperdiet dui accumsan sit amet nulla facilisi morbi tempus. Praesent elementum facilisis leo vel fringilla. Congue mauris rhoncus aenean vel. Egestas sed tempus urna et pharetra pharetra massa massa ultricies.",
1347
+ descriptionHtml: "<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Praesent elementum facilisis leo vel fringilla est ullamcorper eget. At imperdiet dui accumsan sit amet nulla facilisi morbi tempus. Praesent elementum facilisis leo vel fringilla. Congue mauris rhoncus aenean vel. Egestas sed tempus urna et pharetra pharetra massa massa ultricies.</p>"
1348
+ },
1349
+ {
1350
+ id: "id::5447325024420",
1351
+ name: "New Short Sleeve T-Shirt",
1352
+ vendor: "Next.js",
1353
+ path: "/new-short-sleeve-t-shirt",
1354
+ slug: "new-short-sleeve-t-shirt",
1355
+ price: {
1356
+ value: 25,
1357
+ currencyCode: "USD"
1358
+ },
1359
+ images: [
1360
+ {
1361
+ url: "https://static1.plasmic.app/commerce/new-short-sleeve-t-shirt-0.png",
1362
+ altText: null,
1363
+ width: 1000,
1364
+ height: 1000
1365
+ },
1366
+ {
1367
+ url: "https://static1.plasmic.app/commerce/new-short-sleeve-t-shirt-1.png",
1368
+ altText: null,
1369
+ width: 1000,
1370
+ height: 1000
1371
+ },
1372
+ {
1373
+ url: "https://static1.plasmic.app/commerce/new-short-sleeve-t-shirt-2.png",
1374
+ altText: null,
1375
+ width: 1000,
1376
+ height: 1000
1377
+ },
1378
+ {
1379
+ url: "https://static1.plasmic.app/commerce/new-short-sleeve-t-shirt-3.png",
1380
+ altText: null,
1381
+ width: 1000,
1382
+ height: 1000
1383
+ }
1384
+ ],
1385
+ variants: [
1386
+ {
1387
+ id: "id::40046230962340",
1388
+ name: "XS / white",
1389
+ sku: "",
1390
+ price: 25,
1391
+ listPrice: null,
1392
+ requiresShipping: true,
1393
+ availableForSale: true,
1394
+ options: [
1395
+ {
1396
+ __typename: "MultipleChoiceOption",
1397
+ id: "id::40046230962340",
1398
+ displayName: "size",
1399
+ values: [
1400
+ {
1401
+ label: "XS"
1402
+ }
1403
+ ]
1404
+ },
1405
+ {
1406
+ __typename: "MultipleChoiceOption",
1407
+ id: "id::40046230962340",
1408
+ displayName: "color",
1409
+ values: [
1410
+ {
1411
+ label: "white",
1412
+ hexColors: [
1413
+ "#FFFFFF"
1414
+ ]
1415
+ }
1416
+ ]
1417
+ }
1418
+ ]
1419
+ },
1420
+ {
1421
+ id: "id::40046230995108",
1422
+ name: "XS / grey",
1423
+ sku: "",
1424
+ price: 25,
1425
+ listPrice: null,
1426
+ requiresShipping: true,
1427
+ availableForSale: true,
1428
+ options: [
1429
+ {
1430
+ __typename: "MultipleChoiceOption",
1431
+ id: "id::40046230995108",
1432
+ displayName: "size",
1433
+ values: [
1434
+ {
1435
+ label: "XS"
1436
+ }
1437
+ ]
1438
+ },
1439
+ {
1440
+ __typename: "MultipleChoiceOption",
1441
+ id: "id::40046230995108",
1442
+ displayName: "color",
1443
+ values: [
1444
+ {
1445
+ label: "grey",
1446
+ hexColors: [
1447
+ "#808080"
1448
+ ]
1449
+ }
1450
+ ]
1451
+ }
1452
+ ]
1453
+ },
1454
+ {
1455
+ id: "id::40046231027876",
1456
+ name: "XS / DarkTurquoise",
1457
+ sku: "",
1458
+ price: 25,
1459
+ listPrice: null,
1460
+ requiresShipping: true,
1461
+ availableForSale: true,
1462
+ options: [
1463
+ {
1464
+ __typename: "MultipleChoiceOption",
1465
+ id: "id::40046231027876",
1466
+ displayName: "size",
1467
+ values: [
1468
+ {
1469
+ label: "XS"
1470
+ }
1471
+ ]
1472
+ },
1473
+ {
1474
+ __typename: "MultipleChoiceOption",
1475
+ id: "id::40046231027876",
1476
+ displayName: "color",
1477
+ values: [
1478
+ {
1479
+ label: "DarkTurquoise",
1480
+ hexColors: [
1481
+ "#00CED1"
1482
+ ]
1483
+ }
1484
+ ]
1485
+ }
1486
+ ]
1487
+ },
1488
+ {
1489
+ id: "id::40046231060644",
1490
+ name: "XS / LightSalmon",
1491
+ sku: "",
1492
+ price: 25,
1493
+ listPrice: null,
1494
+ requiresShipping: true,
1495
+ availableForSale: true,
1496
+ options: [
1497
+ {
1498
+ __typename: "MultipleChoiceOption",
1499
+ id: "id::40046231060644",
1500
+ displayName: "size",
1501
+ values: [
1502
+ {
1503
+ label: "XS"
1504
+ }
1505
+ ]
1506
+ },
1507
+ {
1508
+ __typename: "MultipleChoiceOption",
1509
+ id: "id::40046231060644",
1510
+ displayName: "color",
1511
+ values: [
1512
+ {
1513
+ label: "LightSalmon",
1514
+ hexColors: [
1515
+ "#FFA07A"
1516
+ ]
1517
+ }
1518
+ ]
1519
+ }
1520
+ ]
1521
+ },
1522
+ {
1523
+ id: "id::40046231093412",
1524
+ name: "S / white",
1525
+ sku: "",
1526
+ price: 25,
1527
+ listPrice: null,
1528
+ requiresShipping: true,
1529
+ availableForSale: true,
1530
+ options: [
1531
+ {
1532
+ __typename: "MultipleChoiceOption",
1533
+ id: "id::40046231093412",
1534
+ displayName: "size",
1535
+ values: [
1536
+ {
1537
+ label: "S"
1538
+ }
1539
+ ]
1540
+ },
1541
+ {
1542
+ __typename: "MultipleChoiceOption",
1543
+ id: "id::40046231093412",
1544
+ displayName: "color",
1545
+ values: [
1546
+ {
1547
+ label: "white",
1548
+ hexColors: [
1549
+ "#FFFFFF"
1550
+ ]
1551
+ }
1552
+ ]
1553
+ }
1554
+ ]
1555
+ },
1556
+ {
1557
+ id: "id::40046231126180",
1558
+ name: "S / grey",
1559
+ sku: "",
1560
+ price: 25,
1561
+ listPrice: null,
1562
+ requiresShipping: true,
1563
+ availableForSale: true,
1564
+ options: [
1565
+ {
1566
+ __typename: "MultipleChoiceOption",
1567
+ id: "id::40046231126180",
1568
+ displayName: "size",
1569
+ values: [
1570
+ {
1571
+ label: "S"
1572
+ }
1573
+ ]
1574
+ },
1575
+ {
1576
+ __typename: "MultipleChoiceOption",
1577
+ id: "id::40046231126180",
1578
+ displayName: "color",
1579
+ values: [
1580
+ {
1581
+ label: "grey",
1582
+ hexColors: [
1583
+ "#808080"
1584
+ ]
1585
+ }
1586
+ ]
1587
+ }
1588
+ ]
1589
+ },
1590
+ {
1591
+ id: "id::40046231158948",
1592
+ name: "S / DarkTurquoise",
1593
+ sku: "",
1594
+ price: 25,
1595
+ listPrice: null,
1596
+ requiresShipping: true,
1597
+ availableForSale: true,
1598
+ options: [
1599
+ {
1600
+ __typename: "MultipleChoiceOption",
1601
+ id: "id::40046231158948",
1602
+ displayName: "size",
1603
+ values: [
1604
+ {
1605
+ label: "S"
1606
+ }
1607
+ ]
1608
+ },
1609
+ {
1610
+ __typename: "MultipleChoiceOption",
1611
+ id: "id::40046231158948",
1612
+ displayName: "color",
1613
+ values: [
1614
+ {
1615
+ label: "DarkTurquoise",
1616
+ hexColors: [
1617
+ "#00CED1"
1618
+ ]
1619
+ }
1620
+ ]
1621
+ }
1622
+ ]
1623
+ },
1624
+ {
1625
+ id: "id::40046231191716",
1626
+ name: "S / LightSalmon",
1627
+ sku: "",
1628
+ price: 25,
1629
+ listPrice: null,
1630
+ requiresShipping: true,
1631
+ availableForSale: true,
1632
+ options: [
1633
+ {
1634
+ __typename: "MultipleChoiceOption",
1635
+ id: "id::40046231191716",
1636
+ displayName: "size",
1637
+ values: [
1638
+ {
1639
+ label: "S"
1640
+ }
1641
+ ]
1642
+ },
1643
+ {
1644
+ __typename: "MultipleChoiceOption",
1645
+ id: "id::40046231191716",
1646
+ displayName: "color",
1647
+ values: [
1648
+ {
1649
+ label: "LightSalmon",
1650
+ hexColors: [
1651
+ "#FFA07A"
1652
+ ]
1653
+ }
1654
+ ]
1655
+ }
1656
+ ]
1657
+ },
1658
+ {
1659
+ id: "id::40046231224484",
1660
+ name: "M / white",
1661
+ sku: "",
1662
+ price: 25,
1663
+ listPrice: null,
1664
+ requiresShipping: true,
1665
+ availableForSale: true,
1666
+ options: [
1667
+ {
1668
+ __typename: "MultipleChoiceOption",
1669
+ id: "id::40046231224484",
1670
+ displayName: "size",
1671
+ values: [
1672
+ {
1673
+ label: "M"
1674
+ }
1675
+ ]
1676
+ },
1677
+ {
1678
+ __typename: "MultipleChoiceOption",
1679
+ id: "id::40046231224484",
1680
+ displayName: "color",
1681
+ values: [
1682
+ {
1683
+ label: "white",
1684
+ hexColors: [
1685
+ "#FFFFFF"
1686
+ ]
1687
+ }
1688
+ ]
1689
+ }
1690
+ ]
1691
+ },
1692
+ {
1693
+ id: "id::40046231257252",
1694
+ name: "M / grey",
1695
+ sku: "",
1696
+ price: 25,
1697
+ listPrice: null,
1698
+ requiresShipping: true,
1699
+ availableForSale: true,
1700
+ options: [
1701
+ {
1702
+ __typename: "MultipleChoiceOption",
1703
+ id: "id::40046231257252",
1704
+ displayName: "size",
1705
+ values: [
1706
+ {
1707
+ label: "M"
1708
+ }
1709
+ ]
1710
+ },
1711
+ {
1712
+ __typename: "MultipleChoiceOption",
1713
+ id: "id::40046231257252",
1714
+ displayName: "color",
1715
+ values: [
1716
+ {
1717
+ label: "grey",
1718
+ hexColors: [
1719
+ "#808080"
1720
+ ]
1721
+ }
1722
+ ]
1723
+ }
1724
+ ]
1725
+ },
1726
+ {
1727
+ id: "id::40046231290020",
1728
+ name: "M / DarkTurquoise",
1729
+ sku: "",
1730
+ price: 25,
1731
+ listPrice: null,
1732
+ requiresShipping: true,
1733
+ availableForSale: true,
1734
+ options: [
1735
+ {
1736
+ __typename: "MultipleChoiceOption",
1737
+ id: "id::40046231290020",
1738
+ displayName: "size",
1739
+ values: [
1740
+ {
1741
+ label: "M"
1742
+ }
1743
+ ]
1744
+ },
1745
+ {
1746
+ __typename: "MultipleChoiceOption",
1747
+ id: "id::40046231290020",
1748
+ displayName: "color",
1749
+ values: [
1750
+ {
1751
+ label: "DarkTurquoise",
1752
+ hexColors: [
1753
+ "#00CED1"
1754
+ ]
1755
+ }
1756
+ ]
1757
+ }
1758
+ ]
1759
+ },
1760
+ {
1761
+ id: "id::40046231322788",
1762
+ name: "M / LightSalmon",
1763
+ sku: "",
1764
+ price: 25,
1765
+ listPrice: null,
1766
+ requiresShipping: true,
1767
+ availableForSale: true,
1768
+ options: [
1769
+ {
1770
+ __typename: "MultipleChoiceOption",
1771
+ id: "id::40046231322788",
1772
+ displayName: "size",
1773
+ values: [
1774
+ {
1775
+ label: "M"
1776
+ }
1777
+ ]
1778
+ },
1779
+ {
1780
+ __typename: "MultipleChoiceOption",
1781
+ id: "id::40046231322788",
1782
+ displayName: "color",
1783
+ values: [
1784
+ {
1785
+ label: "LightSalmon",
1786
+ hexColors: [
1787
+ "#FFA07A"
1788
+ ]
1789
+ }
1790
+ ]
1791
+ }
1792
+ ]
1793
+ },
1794
+ {
1795
+ id: "id::40046231355556",
1796
+ name: "L / white",
1797
+ sku: "",
1798
+ price: 25,
1799
+ listPrice: null,
1800
+ requiresShipping: true,
1801
+ availableForSale: true,
1802
+ options: [
1803
+ {
1804
+ __typename: "MultipleChoiceOption",
1805
+ id: "id::40046231355556",
1806
+ displayName: "size",
1807
+ values: [
1808
+ {
1809
+ label: "L"
1810
+ }
1811
+ ]
1812
+ },
1813
+ {
1814
+ __typename: "MultipleChoiceOption",
1815
+ id: "id::40046231355556",
1816
+ displayName: "color",
1817
+ values: [
1818
+ {
1819
+ label: "white",
1820
+ hexColors: [
1821
+ "#FFFFFF"
1822
+ ]
1823
+ }
1824
+ ]
1825
+ }
1826
+ ]
1827
+ },
1828
+ {
1829
+ id: "id::40046231388324",
1830
+ name: "L / grey",
1831
+ sku: "",
1832
+ price: 25,
1833
+ listPrice: null,
1834
+ requiresShipping: true,
1835
+ availableForSale: true,
1836
+ options: [
1837
+ {
1838
+ __typename: "MultipleChoiceOption",
1839
+ id: "id::40046231388324",
1840
+ displayName: "size",
1841
+ values: [
1842
+ {
1843
+ label: "L"
1844
+ }
1845
+ ]
1846
+ },
1847
+ {
1848
+ __typename: "MultipleChoiceOption",
1849
+ id: "id::40046231388324",
1850
+ displayName: "color",
1851
+ values: [
1852
+ {
1853
+ label: "grey",
1854
+ hexColors: [
1855
+ "#808080"
1856
+ ]
1857
+ }
1858
+ ]
1859
+ }
1860
+ ]
1861
+ },
1862
+ {
1863
+ id: "id::40046231421092",
1864
+ name: "L / DarkTurquoise",
1865
+ sku: "",
1866
+ price: 25,
1867
+ listPrice: null,
1868
+ requiresShipping: true,
1869
+ availableForSale: true,
1870
+ options: [
1871
+ {
1872
+ __typename: "MultipleChoiceOption",
1873
+ id: "id::40046231421092",
1874
+ displayName: "size",
1875
+ values: [
1876
+ {
1877
+ label: "L"
1878
+ }
1879
+ ]
1880
+ },
1881
+ {
1882
+ __typename: "MultipleChoiceOption",
1883
+ id: "id::40046231421092",
1884
+ displayName: "color",
1885
+ values: [
1886
+ {
1887
+ label: "DarkTurquoise",
1888
+ hexColors: [
1889
+ "#00CED1"
1890
+ ]
1891
+ }
1892
+ ]
1893
+ }
1894
+ ]
1895
+ },
1896
+ {
1897
+ id: "id::40046231453860",
1898
+ name: "L / LightSalmon",
1899
+ sku: "",
1900
+ price: 25,
1901
+ listPrice: null,
1902
+ requiresShipping: true,
1903
+ availableForSale: true,
1904
+ options: [
1905
+ {
1906
+ __typename: "MultipleChoiceOption",
1907
+ id: "id::40046231453860",
1908
+ displayName: "size",
1909
+ values: [
1910
+ {
1911
+ label: "L"
1912
+ }
1913
+ ]
1914
+ },
1915
+ {
1916
+ __typename: "MultipleChoiceOption",
1917
+ id: "id::40046231453860",
1918
+ displayName: "color",
1919
+ values: [
1920
+ {
1921
+ label: "LightSalmon",
1922
+ hexColors: [
1923
+ "#FFA07A"
1924
+ ]
1925
+ }
1926
+ ]
1927
+ }
1928
+ ]
1929
+ },
1930
+ {
1931
+ id: "id::40046231486628",
1932
+ name: "XL / white",
1933
+ sku: "",
1934
+ price: 25,
1935
+ listPrice: null,
1936
+ requiresShipping: true,
1937
+ availableForSale: true,
1938
+ options: [
1939
+ {
1940
+ __typename: "MultipleChoiceOption",
1941
+ id: "id::40046231486628",
1942
+ displayName: "size",
1943
+ values: [
1944
+ {
1945
+ label: "XL"
1946
+ }
1947
+ ]
1948
+ },
1949
+ {
1950
+ __typename: "MultipleChoiceOption",
1951
+ id: "id::40046231486628",
1952
+ displayName: "color",
1953
+ values: [
1954
+ {
1955
+ label: "white",
1956
+ hexColors: [
1957
+ "#FFFFFF"
1958
+ ]
1959
+ }
1960
+ ]
1961
+ }
1962
+ ]
1963
+ },
1964
+ {
1965
+ id: "id::40046231519396",
1966
+ name: "XL / grey",
1967
+ sku: "",
1968
+ price: 25,
1969
+ listPrice: null,
1970
+ requiresShipping: true,
1971
+ availableForSale: true,
1972
+ options: [
1973
+ {
1974
+ __typename: "MultipleChoiceOption",
1975
+ id: "id::40046231519396",
1976
+ displayName: "size",
1977
+ values: [
1978
+ {
1979
+ label: "XL"
1980
+ }
1981
+ ]
1982
+ },
1983
+ {
1984
+ __typename: "MultipleChoiceOption",
1985
+ id: "id::40046231519396",
1986
+ displayName: "color",
1987
+ values: [
1988
+ {
1989
+ label: "grey",
1990
+ hexColors: [
1991
+ "#808080"
1992
+ ]
1993
+ }
1994
+ ]
1995
+ }
1996
+ ]
1997
+ },
1998
+ {
1999
+ id: "id::40046231552164",
2000
+ name: "XL / DarkTurquoise",
2001
+ sku: "",
2002
+ price: 25,
2003
+ listPrice: null,
2004
+ requiresShipping: true,
2005
+ availableForSale: true,
2006
+ options: [
2007
+ {
2008
+ __typename: "MultipleChoiceOption",
2009
+ id: "id::40046231552164",
2010
+ displayName: "size",
2011
+ values: [
2012
+ {
2013
+ label: "XL"
2014
+ }
2015
+ ]
2016
+ },
2017
+ {
2018
+ __typename: "MultipleChoiceOption",
2019
+ id: "id::40046231552164",
2020
+ displayName: "color",
2021
+ values: [
2022
+ {
2023
+ label: "DarkTurquoise",
2024
+ hexColors: [
2025
+ "#00CED1"
2026
+ ]
2027
+ }
2028
+ ]
2029
+ }
2030
+ ]
2031
+ },
2032
+ {
2033
+ id: "id::40046231584932",
2034
+ name: "XL / LightSalmon",
2035
+ sku: "",
2036
+ price: 25,
2037
+ listPrice: null,
2038
+ requiresShipping: true,
2039
+ availableForSale: true,
2040
+ options: [
2041
+ {
2042
+ __typename: "MultipleChoiceOption",
2043
+ id: "id::40046231584932",
2044
+ displayName: "size",
2045
+ values: [
2046
+ {
2047
+ label: "XL"
2048
+ }
2049
+ ]
2050
+ },
2051
+ {
2052
+ __typename: "MultipleChoiceOption",
2053
+ id: "id::40046231584932",
2054
+ displayName: "color",
2055
+ values: [
2056
+ {
2057
+ label: "LightSalmon",
2058
+ hexColors: [
2059
+ "#FFA07A"
2060
+ ]
2061
+ }
2062
+ ]
2063
+ }
2064
+ ]
2065
+ }
2066
+ ],
2067
+ options: [
2068
+ {
2069
+ __typename: "MultipleChoiceOption",
2070
+ id: "id::6940503769252",
2071
+ displayName: "size",
2072
+ values: [
2073
+ {
2074
+ label: "XS"
2075
+ },
2076
+ {
2077
+ label: "S"
2078
+ },
2079
+ {
2080
+ label: "M"
2081
+ },
2082
+ {
2083
+ label: "L"
2084
+ },
2085
+ {
2086
+ label: "XL"
2087
+ }
2088
+ ]
2089
+ },
2090
+ {
2091
+ __typename: "MultipleChoiceOption",
2092
+ id: "id::8655765471396",
2093
+ displayName: "color",
2094
+ values: [
2095
+ {
2096
+ label: "white",
2097
+ hexColors: [
2098
+ "#FFFFFF"
2099
+ ]
2100
+ },
2101
+ {
2102
+ label: "grey",
2103
+ hexColors: [
2104
+ "#808080"
2105
+ ]
2106
+ },
2107
+ {
2108
+ label: "DarkTurquoise",
2109
+ hexColors: [
2110
+ "#00CED1"
2111
+ ]
2112
+ },
2113
+ {
2114
+ label: "LightSalmon",
2115
+ hexColors: [
2116
+ "#FFA07A"
2117
+ ]
2118
+ }
2119
+ ]
2120
+ }
2121
+ ],
2122
+ description: "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Praesent elementum facilisis leo vel fringilla est ullamcorper eget. At imperdiet dui accumsan sit amet nulla facilisi morbi tempus. Praesent elementum facilisis leo vel fringilla. Congue mauris rhoncus aenean vel. Egestas sed tempus urna et pharetra pharetra massa massa ultricies.",
2123
+ descriptionHtml: "<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Praesent elementum facilisis leo vel fringilla est ullamcorper eget. At imperdiet dui accumsan sit amet nulla facilisi morbi tempus. Praesent elementum facilisis leo vel fringilla. Congue mauris rhoncus aenean vel. Egestas sed tempus urna et pharetra pharetra massa massa ultricies.<br></p>"
2124
+ },
2125
+ {
2126
+ id: "id::6621772644516",
2127
+ name: "ACME Cup",
2128
+ vendor: "ACME",
2129
+ path: "/acme-cup",
2130
+ slug: "acme-cup",
2131
+ price: {
2132
+ value: 25,
2133
+ currencyCode: "USD"
2134
+ },
2135
+ images: [
2136
+ {
2137
+ url: "https://static1.plasmic.app/commerce/acme-cup-0.png",
2138
+ altText: null,
2139
+ width: 2048,
2140
+ height: 2048
2141
+ },
2142
+ {
2143
+ url: "https://static1.plasmic.app/commerce/acme-cup-1.png",
2144
+ altText: null,
2145
+ width: 2048,
2146
+ height: 2048
2147
+ }
2148
+ ],
2149
+ variants: [
2150
+ {
2151
+ id: "id::40064679805092",
2152
+ name: "White",
2153
+ sku: "200",
2154
+ price: 25,
2155
+ listPrice: null,
2156
+ requiresShipping: true,
2157
+ availableForSale: true,
2158
+ options: [
2159
+ {
2160
+ __typename: "MultipleChoiceOption",
2161
+ id: "id::40064679805092",
2162
+ displayName: "color",
2163
+ values: [
2164
+ {
2165
+ label: "White",
2166
+ hexColors: [
2167
+ "#FFFFFF"
2168
+ ]
2169
+ }
2170
+ ]
2171
+ }
2172
+ ]
2173
+ },
2174
+ {
2175
+ id: "id::40064679837860",
2176
+ name: "Black",
2177
+ sku: "201",
2178
+ price: 25,
2179
+ listPrice: null,
2180
+ requiresShipping: true,
2181
+ availableForSale: false,
2182
+ options: [
2183
+ {
2184
+ __typename: "MultipleChoiceOption",
2185
+ id: "id::40064679837860",
2186
+ displayName: "color",
2187
+ values: [
2188
+ {
2189
+ label: "Black",
2190
+ hexColors: [
2191
+ "#000000"
2192
+ ]
2193
+ }
2194
+ ]
2195
+ }
2196
+ ]
2197
+ }
2198
+ ],
2199
+ options: [
2200
+ {
2201
+ __typename: "MultipleChoiceOption",
2202
+ id: "id::8505918849188",
2203
+ displayName: "color",
2204
+ values: [
2205
+ {
2206
+ label: "White",
2207
+ hexColors: [
2208
+ "#FFFFFF"
2209
+ ]
2210
+ },
2211
+ {
2212
+ label: "Black",
2213
+ hexColors: [
2214
+ "#000000"
2215
+ ]
2216
+ }
2217
+ ]
2218
+ }
2219
+ ],
2220
+ description: "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Praesent elementum facilisis leo vel fringilla est ullamcorper eget. At imperdiet dui accumsan sit amet nulla facilisi morbi tempus. Praesent elementum facilisis leo vel fringilla. Congue mauris rhoncus aenean vel. Egestas sed tempus urna et pharetra pharetra massa massa ultricies.",
2221
+ descriptionHtml: "<meta charset=\"utf-8\"><span>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Praesent elementum facilisis leo vel fringilla est ullamcorper eget. At imperdiet dui accumsan sit amet nulla facilisi morbi tempus. Praesent elementum facilisis leo vel fringilla. Congue mauris rhoncus aenean vel. Egestas sed tempus urna et pharetra pharetra massa massa ultricies.</span>"
2222
+ }
2223
+ ];
2224
+ var data = {
2225
+ categories: categories,
2226
+ products: products
2227
+ };
4
2228
 
5
2229
  function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
6
2230
  try {
@@ -709,465 +2933,173 @@ var runtime_1 = /*#__PURE__*/createCommonjsModule(function (module) {
709
2933
  }
710
2934
  }
711
2935
 
712
- if (finallyEntry && (type === "break" || type === "continue") && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc) {
713
- // Ignore the finally entry if control is not jumping to a
714
- // location outside the try/catch block.
715
- finallyEntry = null;
716
- }
717
-
718
- var record = finallyEntry ? finallyEntry.completion : {};
719
- record.type = type;
720
- record.arg = arg;
721
-
722
- if (finallyEntry) {
723
- this.method = "next";
724
- this.next = finallyEntry.finallyLoc;
725
- return ContinueSentinel;
726
- }
727
-
728
- return this.complete(record);
729
- },
730
- complete: function complete(record, afterLoc) {
731
- if (record.type === "throw") {
732
- throw record.arg;
733
- }
734
-
735
- if (record.type === "break" || record.type === "continue") {
736
- this.next = record.arg;
737
- } else if (record.type === "return") {
738
- this.rval = this.arg = record.arg;
739
- this.method = "return";
740
- this.next = "end";
741
- } else if (record.type === "normal" && afterLoc) {
742
- this.next = afterLoc;
743
- }
744
-
745
- return ContinueSentinel;
746
- },
747
- finish: function finish(finallyLoc) {
748
- for (var i = this.tryEntries.length - 1; i >= 0; --i) {
749
- var entry = this.tryEntries[i];
750
-
751
- if (entry.finallyLoc === finallyLoc) {
752
- this.complete(entry.completion, entry.afterLoc);
753
- resetTryEntry(entry);
754
- return ContinueSentinel;
755
- }
756
- }
757
- },
758
- "catch": function _catch(tryLoc) {
759
- for (var i = this.tryEntries.length - 1; i >= 0; --i) {
760
- var entry = this.tryEntries[i];
761
-
762
- if (entry.tryLoc === tryLoc) {
763
- var record = entry.completion;
764
-
765
- if (record.type === "throw") {
766
- var thrown = record.arg;
767
- resetTryEntry(entry);
768
- }
769
-
770
- return thrown;
771
- }
772
- } // The context.catch method must only be called with a location
773
- // argument that corresponds to a known catch block.
774
-
775
-
776
- throw new Error("illegal catch attempt");
777
- },
778
- delegateYield: function delegateYield(iterable, resultName, nextLoc) {
779
- this.delegate = {
780
- iterator: values(iterable),
781
- resultName: resultName,
782
- nextLoc: nextLoc
783
- };
784
-
785
- if (this.method === "next") {
786
- // Deliberately forget the last sent value so that we don't
787
- // accidentally pass it on to the delegate.
788
- this.arg = undefined$1;
789
- }
790
-
791
- return ContinueSentinel;
792
- }
793
- }; // Regardless of whether this script is executing as a CommonJS module
794
- // or not, return the runtime object so that we can declare the variable
795
- // regeneratorRuntime in the outer scope, which allows this module to be
796
- // injected easily by `bin/regenerator --include-runtime script.js`.
797
-
798
- return exports;
799
- }( // If this script is executing as a CommonJS module, use module.exports
800
- // as the regeneratorRuntime namespace. Otherwise create a new empty
801
- // object. Either way, the resulting object will be used to initialize
802
- // the regeneratorRuntime variable at the top of this file.
803
- module.exports );
804
-
805
- try {
806
- regeneratorRuntime = runtime;
807
- } catch (accidentalStrictMode) {
808
- // This module should not be running in strict mode, so the above
809
- // assignment should always work unless something is misconfigured. Just
810
- // in case runtime.js accidentally runs in strict mode, in modern engines
811
- // we can explicitly access globalThis. In older engines we can escape
812
- // strict mode using a global Function call. This could conceivably fail
813
- // if a Content Security Policy forbids using Function, but in that case
814
- // the proper solution is to fix the accidental strict mode problem. If
815
- // you've misconfigured your bundler to force strict mode and applied a
816
- // CSP to forbid Function, and you're not willing to fix either of those
817
- // problems, please detail your unique predicament in a GitHub issue.
818
- if (typeof globalThis === "object") {
819
- globalThis.regeneratorRuntime = runtime;
820
- } else {
821
- Function("r", "regeneratorRuntime = r")(runtime);
822
- }
823
- }
824
- });
825
-
826
- var fetcher = /*#__PURE__*/function () {
827
- var _ref = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/runtime_1.mark(function _callee() {
828
- var res, _yield$res$json, data;
829
-
830
- return runtime_1.wrap(function _callee$(_context) {
831
- while (1) {
832
- switch (_context.prev = _context.next) {
833
- case 0:
834
- console.log('FETCHER');
835
- _context.next = 3;
836
- return fetch('./data.json');
837
-
838
- case 3:
839
- res = _context.sent;
840
-
841
- if (!res.ok) {
842
- _context.next = 10;
843
- break;
844
- }
845
-
846
- _context.next = 7;
847
- return res.json();
848
-
849
- case 7:
850
- _yield$res$json = _context.sent;
851
- data = _yield$res$json.data;
852
- return _context.abrupt("return", data);
853
-
854
- case 10:
855
- throw res;
856
-
857
- case 11:
858
- case "end":
859
- return _context.stop();
860
- }
861
- }
862
- }, _callee);
863
- }));
864
-
865
- return function fetcher() {
866
- return _ref.apply(this, arguments);
867
- };
868
- }();
869
-
870
- var LOCAL_CART_URL = 'localCartUrl';
871
-
872
- var handler = {
873
- fetchOptions: {
874
- query: ''
875
- },
876
- fetcher: function fetcher(_ref) {
877
- return _asyncToGenerator( /*#__PURE__*/runtime_1.mark(function _callee() {
878
- var _localStorage$getItem;
2936
+ if (finallyEntry && (type === "break" || type === "continue") && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc) {
2937
+ // Ignore the finally entry if control is not jumping to a
2938
+ // location outside the try/catch block.
2939
+ finallyEntry = null;
2940
+ }
879
2941
 
880
- var cartId, fetch;
881
- return runtime_1.wrap(function _callee$(_context) {
882
- while (1) {
883
- switch (_context.prev = _context.next) {
884
- case 0:
885
- cartId = _ref.input.cartId, fetch = _ref.fetch;
2942
+ var record = finallyEntry ? finallyEntry.completion : {};
2943
+ record.type = type;
2944
+ record.arg = arg;
886
2945
 
887
- if (!cartId) {
888
- cartId = LOCAL_CART_URL;
889
- }
2946
+ if (finallyEntry) {
2947
+ this.method = "next";
2948
+ this.next = finallyEntry.finallyLoc;
2949
+ return ContinueSentinel;
2950
+ }
890
2951
 
891
- return _context.abrupt("return", JSON.parse((_localStorage$getItem = localStorage.getItem(cartId)) != null ? _localStorage$getItem : "null"));
2952
+ return this.complete(record);
2953
+ },
2954
+ complete: function complete(record, afterLoc) {
2955
+ if (record.type === "throw") {
2956
+ throw record.arg;
2957
+ }
892
2958
 
893
- case 3:
894
- case "end":
895
- return _context.stop();
896
- }
2959
+ if (record.type === "break" || record.type === "continue") {
2960
+ this.next = record.arg;
2961
+ } else if (record.type === "return") {
2962
+ this.rval = this.arg = record.arg;
2963
+ this.method = "return";
2964
+ this.next = "end";
2965
+ } else if (record.type === "normal" && afterLoc) {
2966
+ this.next = afterLoc;
897
2967
  }
898
- }, _callee);
899
- }))();
900
- },
901
- useHook: function useHook(_ref2) {
902
- var useData = _ref2.useData;
903
- return function (input) {
904
- return useData({
905
- swrOptions: _extends({
906
- revalidateOnFocus: false
907
- }, input == null ? void 0 : input.swrOptions)
908
- });
909
- };
910
- }
911
- };
912
2968
 
913
- var products = [
914
- {
915
- id: "Z2lkOi8vc2hvcGlmeS9Qcm9kdWN0LzU0NDczMjUwMjQ0MjA=",
916
- name: "New Short Sleeve T-Shirt",
917
- vendor: "Next.js",
918
- path: "/new-short-sleeve-t-shirt",
919
- slug: "new-short-sleeve-t-shirt",
920
- price: {
921
- value: 25,
922
- currencyCode: "USD"
923
- },
924
- descriptionHtml: "<p><span>Show off your love for Next.js and Vercel with this unique,&nbsp;</span><strong>limited edition</strong><span>&nbsp;t-shirt. This design is part of a limited run, numbered drop at the June 2021 Next.js Conf. It features a unique, handcrafted triangle design. Get it while supplies last – only 200 of these shirts will be made!&nbsp;</span><strong>All proceeds will be donated to charity.</strong></p>",
925
- images: [
926
- {
927
- url: "https://static1.plasmic.app/commerce/drop-shirt-0.png",
928
- altText: "Shirt",
929
- width: 1000,
930
- height: 1000
931
- },
932
- {
933
- url: "https://static1.plasmic.app/commerce/drop-shirt-1.png",
934
- altText: "Shirt",
935
- width: 1000,
936
- height: 1000
937
- },
938
- {
939
- url: "https://static1.plasmic.app/commerce/drop-shirt-2.png",
940
- altText: "Shirt",
941
- width: 1000,
942
- height: 1000
943
- }
944
- ],
945
- variants: [
946
- {
947
- id: "Z2lkOi8vc2hvcGlmeS9Qcm9kdWN0LzU0NDczMjUwMjQ0MjAss=",
948
- options: [
949
- {
950
- __typename: "MultipleChoiceOption",
951
- id: "asd",
952
- displayName: "Size",
953
- values: [
954
- {
955
- label: "XL"
956
- }
957
- ]
958
- }
959
- ]
960
- }
961
- ],
962
- options: [
963
- {
964
- id: "option-color",
965
- displayName: "Color",
966
- values: [
967
- {
968
- label: "color",
969
- hexColors: [
970
- "#222"
971
- ]
972
- }
973
- ]
974
- },
975
- {
976
- id: "option-size",
977
- displayName: "Size",
978
- values: [
979
- {
980
- label: "S"
981
- },
982
- {
983
- label: "M"
984
- },
985
- {
986
- label: "L"
987
- }
988
- ]
989
- }
990
- ]
991
- },
992
- {
993
- id: "Z2lkOi8vc2hvcGlmeS9Qcm9ksdWN0LzU0NDczMjUwMjQ0MjA=",
994
- name: "Lightweight Jacket",
995
- vendor: "Next.js",
996
- path: "/lightweight-jacket",
997
- slug: "lightweight-jacket",
998
- price: {
999
- value: 249.99,
1000
- currencyCode: "USD"
1001
- },
1002
- descriptionHtml: "<p><span>Show off your love for Next.js and Vercel with this unique,&nbsp;</span><strong>limited edition</strong><span>&nbsp;t-shirt. This design is part of a limited run, numbered drop at the June 2021 Next.js Conf. It features a unique, handcrafted triangle design. Get it while supplies last – only 200 of these shirts will be made!&nbsp;</span><strong>All proceeds will be donated to charity.</strong></p>",
1003
- images: [
1004
- {
1005
- url: "https://static1.plasmic.app/commerce/lightweight-jacket-0.png",
1006
- altText: "Lightweight Jacket",
1007
- width: 1000,
1008
- height: 1000
1009
- },
1010
- {
1011
- url: "https://static1.plasmic.app/commerce/lightweight-jacket-1.png",
1012
- altText: "Lightweight Jacket",
1013
- width: 1000,
1014
- height: 1000
1015
- },
1016
- {
1017
- url: "https://static1.plasmic.app/commerce/lightweight-jacket-2.png",
1018
- altText: "Lightweight Jacket",
1019
- width: 1000,
1020
- height: 1000
1021
- }
1022
- ],
1023
- variants: [
1024
- {
1025
- id: "Z2lkOid8vc2hvcGlmeS9Qcm9kdWN0LzU0NDczMjUwMjQ0MjAss=",
1026
- options: [
1027
- {
1028
- __typename: "MultipleChoiceOption",
1029
- id: "asd",
1030
- displayName: "Size",
1031
- values: [
1032
- {
1033
- label: "XL"
1034
- }
1035
- ]
1036
- }
1037
- ]
1038
- }
1039
- ],
1040
- options: [
1041
- {
1042
- id: "option-color",
1043
- displayName: "Color",
1044
- values: [
1045
- {
1046
- label: "color",
1047
- hexColors: [
1048
- "#222"
1049
- ]
1050
- }
1051
- ]
1052
- },
1053
- {
1054
- id: "option-size",
1055
- displayName: "Size",
1056
- values: [
1057
- {
1058
- label: "S"
1059
- },
1060
- {
1061
- label: "M"
1062
- },
1063
- {
1064
- label: "L"
1065
- }
1066
- ]
1067
- }
1068
- ]
1069
- },
1070
- {
1071
- id: "Z2lkOis8vc2hvcGlmsddeS9Qcm9kdWN0LzU0NDczMjUwMjQ0MjA=",
1072
- name: "Shirt",
1073
- vendor: "Next.js",
1074
- path: "/shirt",
1075
- slug: "shirt",
1076
- price: {
1077
- value: 25,
1078
- currencyCode: "USD"
1079
- },
1080
- descriptionHtml: "<p><span>Show off your love for Next.js and Vercel with this unique,&nbsp;</span><strong>limited edition</strong><span>&nbsp;t-shirt. This design is part of a limited run, numbered drop at the June 2021 Next.js Conf. It features a unique, handcrafted triangle design. Get it while supplies last – only 200 of these shirts will be made!&nbsp;</span><strong>All proceeds will be donated to charity.</strong></p>",
1081
- images: [
1082
- {
1083
- url: "https://static1.plasmic.app/commerce/t-shirt-0.png",
1084
- altText: "Shirt",
1085
- width: 1000,
1086
- height: 1000
1087
- },
1088
- {
1089
- url: "https://static1.plasmic.app/commerce/t-shirt-1.png",
1090
- altText: "Shirt",
1091
- width: 1000,
1092
- height: 1000
1093
- },
1094
- {
1095
- url: "https://static1.plasmic.app/commerce/t-shirt-2.png",
1096
- altText: "Shirt",
1097
- width: 1000,
1098
- height: 1000
1099
- },
1100
- {
1101
- url: "https://static1.plasmic.app/commerce/t-shirt-3.png",
1102
- altText: "Shirt",
1103
- width: 1000,
1104
- height: 1000
1105
- },
1106
- {
1107
- url: "https://static1.plasmic.app/commerce/t-shirt-4.png",
1108
- altText: "Shirt",
1109
- width: 1000,
1110
- height: 1000
1111
- }
1112
- ],
1113
- variants: [
1114
- {
1115
- id: "Z2lkOi8vc2hvcGlmeS9Qcms9kdWN0LzU0NDczMjUwMjQ0MjAss=",
1116
- options: [
1117
- {
1118
- __typename: "MultipleChoiceOption",
1119
- id: "asd",
1120
- displayName: "Size",
1121
- values: [
1122
- {
1123
- label: "XL"
1124
- }
1125
- ]
1126
- }
1127
- ]
1128
- }
1129
- ],
1130
- options: [
1131
- {
1132
- id: "option-color",
1133
- displayName: "Color",
1134
- values: [
1135
- {
1136
- label: "color",
1137
- hexColors: [
1138
- "#222"
1139
- ]
1140
- }
1141
- ]
1142
- },
1143
- {
1144
- id: "option-size",
1145
- displayName: "Size",
1146
- values: [
1147
- {
1148
- label: "S"
1149
- },
1150
- {
1151
- label: "M"
1152
- },
1153
- {
1154
- label: "L"
1155
- }
1156
- ]
1157
- }
1158
- ]
1159
- }
1160
- ];
1161
- var data = {
1162
- products: products
1163
- };
2969
+ return ContinueSentinel;
2970
+ },
2971
+ finish: function finish(finallyLoc) {
2972
+ for (var i = this.tryEntries.length - 1; i >= 0; --i) {
2973
+ var entry = this.tryEntries[i];
2974
+
2975
+ if (entry.finallyLoc === finallyLoc) {
2976
+ this.complete(entry.completion, entry.afterLoc);
2977
+ resetTryEntry(entry);
2978
+ return ContinueSentinel;
2979
+ }
2980
+ }
2981
+ },
2982
+ "catch": function _catch(tryLoc) {
2983
+ for (var i = this.tryEntries.length - 1; i >= 0; --i) {
2984
+ var entry = this.tryEntries[i];
2985
+
2986
+ if (entry.tryLoc === tryLoc) {
2987
+ var record = entry.completion;
2988
+
2989
+ if (record.type === "throw") {
2990
+ var thrown = record.arg;
2991
+ resetTryEntry(entry);
2992
+ }
2993
+
2994
+ return thrown;
2995
+ }
2996
+ } // The context.catch method must only be called with a location
2997
+ // argument that corresponds to a known catch block.
2998
+
2999
+
3000
+ throw new Error("illegal catch attempt");
3001
+ },
3002
+ delegateYield: function delegateYield(iterable, resultName, nextLoc) {
3003
+ this.delegate = {
3004
+ iterator: values(iterable),
3005
+ resultName: resultName,
3006
+ nextLoc: nextLoc
3007
+ };
3008
+
3009
+ if (this.method === "next") {
3010
+ // Deliberately forget the last sent value so that we don't
3011
+ // accidentally pass it on to the delegate.
3012
+ this.arg = undefined$1;
3013
+ }
3014
+
3015
+ return ContinueSentinel;
3016
+ }
3017
+ }; // Regardless of whether this script is executing as a CommonJS module
3018
+ // or not, return the runtime object so that we can declare the variable
3019
+ // regeneratorRuntime in the outer scope, which allows this module to be
3020
+ // injected easily by `bin/regenerator --include-runtime script.js`.
3021
+
3022
+ return exports;
3023
+ }( // If this script is executing as a CommonJS module, use module.exports
3024
+ // as the regeneratorRuntime namespace. Otherwise create a new empty
3025
+ // object. Either way, the resulting object will be used to initialize
3026
+ // the regeneratorRuntime variable at the top of this file.
3027
+ module.exports );
3028
+
3029
+ try {
3030
+ regeneratorRuntime = runtime;
3031
+ } catch (accidentalStrictMode) {
3032
+ // This module should not be running in strict mode, so the above
3033
+ // assignment should always work unless something is misconfigured. Just
3034
+ // in case runtime.js accidentally runs in strict mode, in modern engines
3035
+ // we can explicitly access globalThis. In older engines we can escape
3036
+ // strict mode using a global Function call. This could conceivably fail
3037
+ // if a Content Security Policy forbids using Function, but in that case
3038
+ // the proper solution is to fix the accidental strict mode problem. If
3039
+ // you've misconfigured your bundler to force strict mode and applied a
3040
+ // CSP to forbid Function, and you're not willing to fix either of those
3041
+ // problems, please detail your unique predicament in a GitHub issue.
3042
+ if (typeof globalThis === "object") {
3043
+ globalThis.regeneratorRuntime = runtime;
3044
+ } else {
3045
+ Function("r", "regeneratorRuntime = r")(runtime);
3046
+ }
3047
+ }
3048
+ });
3049
+
3050
+ var fetcher = /*#__PURE__*/function () {
3051
+ var _ref = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/runtime_1.mark(function _callee() {
3052
+ var res, _yield$res$json, data;
3053
+
3054
+ return runtime_1.wrap(function _callee$(_context) {
3055
+ while (1) {
3056
+ switch (_context.prev = _context.next) {
3057
+ case 0:
3058
+ console.log('FETCHER');
3059
+ _context.next = 3;
3060
+ return fetch('./data.json');
3061
+
3062
+ case 3:
3063
+ res = _context.sent;
3064
+
3065
+ if (!res.ok) {
3066
+ _context.next = 10;
3067
+ break;
3068
+ }
3069
+
3070
+ _context.next = 7;
3071
+ return res.json();
3072
+
3073
+ case 7:
3074
+ _yield$res$json = _context.sent;
3075
+ data = _yield$res$json.data;
3076
+ return _context.abrupt("return", data);
3077
+
3078
+ case 10:
3079
+ throw res;
3080
+
3081
+ case 11:
3082
+ case "end":
3083
+ return _context.stop();
3084
+ }
3085
+ }
3086
+ }, _callee);
3087
+ }));
3088
+
3089
+ return function fetcher() {
3090
+ return _ref.apply(this, arguments);
3091
+ };
3092
+ }();
3093
+
3094
+ var LOCAL_CART_OBJ = "localCartObj";
3095
+ var LOCAL_CART_ID = "localCartId";
1164
3096
 
1165
3097
  var createCart = function createCart() {
1166
- return {
1167
- id: '',
1168
- createdAt: '',
3098
+ var cart = {
3099
+ id: "",
3100
+ createdAt: "",
1169
3101
  currency: {
1170
- code: ''
3102
+ code: "USD"
1171
3103
  },
1172
3104
  taxesIncluded: false,
1173
3105
  lineItems: [],
@@ -1175,17 +3107,90 @@ var createCart = function createCart() {
1175
3107
  subtotalPrice: 0,
1176
3108
  totalPrice: 0
1177
3109
  };
3110
+ var cartId = Date.now().toString();
3111
+ Cookies.set(LOCAL_CART_ID, cartId);
3112
+ Cookies.set(LOCAL_CART_OBJ, JSON.stringify({
3113
+ id: cartId,
3114
+ cart: cart
3115
+ }));
3116
+ return cart;
3117
+ };
3118
+ var getCart = function getCart(cartId) {
3119
+ var _cartId;
3120
+
3121
+ cartId = (_cartId = cartId) != null ? _cartId : Cookies.get(LOCAL_CART_ID);
3122
+ var cartStr = Cookies.get(LOCAL_CART_OBJ);
3123
+ var cart = cartStr ? JSON.parse(cartStr) : undefined;
3124
+
3125
+ if (!cart || cart.id !== cartId) {
3126
+ return createCart();
3127
+ } else {
3128
+ return cart.cart;
3129
+ }
3130
+ };
3131
+ var cartUpdate = function cartUpdate(newCart) {
3132
+ Cookies.set(LOCAL_CART_OBJ, JSON.stringify({
3133
+ id: Cookies.get(LOCAL_CART_ID),
3134
+ cart: newCart
3135
+ }));
3136
+ return newCart;
3137
+ };
3138
+
3139
+ var handler = {
3140
+ fetchOptions: {
3141
+ query: "use-cart"
3142
+ },
3143
+ fetcher: function fetcher(_ref) {
3144
+ return _asyncToGenerator( /*#__PURE__*/runtime_1.mark(function _callee() {
3145
+ var input, fetch;
3146
+ return runtime_1.wrap(function _callee$(_context) {
3147
+ while (1) {
3148
+ switch (_context.prev = _context.next) {
3149
+ case 0:
3150
+ input = _ref.input, fetch = _ref.fetch;
3151
+ return _context.abrupt("return", getCart(input.cartId));
3152
+
3153
+ case 2:
3154
+ case "end":
3155
+ return _context.stop();
3156
+ }
3157
+ }
3158
+ }, _callee);
3159
+ }))();
3160
+ },
3161
+ useHook: function useHook(_ref2) {
3162
+ var useData = _ref2.useData;
3163
+ return function (input) {
3164
+ var response = useData({
3165
+ swrOptions: _extends({
3166
+ revalidateOnFocus: false
3167
+ }, input == null ? void 0 : input.swrOptions)
3168
+ });
3169
+ return React.useMemo(function () {
3170
+ return Object.create(response, {
3171
+ isEmpty: {
3172
+ get: function get() {
3173
+ var _response$data$lineIt, _response$data;
3174
+
3175
+ return ((_response$data$lineIt = (_response$data = response.data) == null ? void 0 : _response$data.lineItems.length) != null ? _response$data$lineIt : 0) <= 0;
3176
+ },
3177
+ enumerable: true
3178
+ }
3179
+ });
3180
+ }, [response]);
3181
+ };
3182
+ }
1178
3183
  };
1179
3184
 
1180
3185
  var handler$1 = {
1181
3186
  fetchOptions: {
1182
- query: ''
3187
+ query: "use-add-item"
1183
3188
  },
1184
3189
  fetcher: function fetcher(_ref) {
1185
3190
  return _asyncToGenerator( /*#__PURE__*/runtime_1.mark(function _callee() {
1186
3191
  var _item$quantity;
1187
3192
 
1188
- var item, fetch, lineItem, cart, _iterator, _step, product, _item$quantity2;
3193
+ var item, fetch, lineItem, cart, _iterator, _step, product, variant, _item$quantity2, currentLineItem;
1189
3194
 
1190
3195
  return runtime_1.wrap(function _callee$(_context) {
1191
3196
  while (1) {
@@ -1199,7 +3204,7 @@ var handler$1 = {
1199
3204
  }
1200
3205
 
1201
3206
  throw new CommerceError({
1202
- message: 'The item quantity has to be a valid integer greater than 0'
3207
+ message: "The item quantity has to be a valid integer greater than 0"
1203
3208
  });
1204
3209
 
1205
3210
  case 3:
@@ -1207,29 +3212,32 @@ var handler$1 = {
1207
3212
  variantId: item.variantId,
1208
3213
  quantity: (_item$quantity = item.quantity) != null ? _item$quantity : 1
1209
3214
  };
1210
-
1211
- if (!localStorage.getItem(LOCAL_CART_URL)) {
1212
- cart = createCart();
1213
- } else {
1214
- cart = JSON.parse(localStorage.getItem(LOCAL_CART_URL));
1215
- }
3215
+ cart = getCart();
1216
3216
 
1217
3217
  for (_iterator = _createForOfIteratorHelperLoose(data.products); !(_step = _iterator()).done;) {
1218
3218
  product = _step.value;
3219
+ variant = product.variants.find(function (variant) {
3220
+ return variant.id === item.variantId;
3221
+ });
1219
3222
 
1220
- if (product.id === item.variantId || product.variants.some(function (productVariant) {
1221
- return productVariant.id === item.variantId;
1222
- })) {
1223
- cart.lineItems.push(lineItem);
1224
- cart.totalPrice += product.price.value * ((_item$quantity2 = item.quantity) != null ? _item$quantity2 : 1);
3223
+ if (variant) {
3224
+ cart.totalPrice += variant.price * ((_item$quantity2 = item.quantity) != null ? _item$quantity2 : 1);
1225
3225
  cart.currency.code = product.price.currencyCode;
3226
+ currentLineItem = cart.lineItems.find(function (item) {
3227
+ return item.variantId === lineItem.variantId;
3228
+ });
3229
+
3230
+ if (!currentLineItem) {
3231
+ cart.lineItems.push(lineItem);
3232
+ } else {
3233
+ currentLineItem.quantity += lineItem.quantity;
3234
+ }
1226
3235
  }
1227
3236
  }
1228
3237
 
1229
- localStorage.setItem(LOCAL_CART_URL, JSON.stringify(cart));
1230
- return _context.abrupt("return", cart);
3238
+ return _context.abrupt("return", cartUpdate(cart));
1231
3239
 
1232
- case 8:
3240
+ case 7:
1233
3241
  case "end":
1234
3242
  return _context.stop();
1235
3243
  }
@@ -1375,23 +3383,75 @@ var handler$3 = {
1375
3383
  }
1376
3384
  };
1377
3385
 
3386
+ var sortProduct = function sortProduct(a, b, sortKey) {
3387
+ switch (sortKey) {
3388
+ case "price-asc":
3389
+ return a.price.value < b.price.value ? -1 : 1;
3390
+
3391
+ case "price-desc":
3392
+ return a.price.value < b.price.value ? 1 : -1;
3393
+
3394
+ case "trending-desc":
3395
+ return a.id.localeCompare(b.id);
3396
+
3397
+ case "latest-desc":
3398
+ return a.id.localeCompare(b.id) * -1;
3399
+
3400
+ default:
3401
+ return 0;
3402
+ }
3403
+ };
3404
+
1378
3405
  var handler$4 = {
1379
3406
  fetchOptions: {
1380
- query: ''
3407
+ query: "use-search"
1381
3408
  },
1382
3409
  fetcher: function fetcher(_ref) {
1383
3410
  return _asyncToGenerator( /*#__PURE__*/runtime_1.mark(function _callee() {
3411
+ var input, fetch, search, categoryId, brandId, sort, count, products, category;
1384
3412
  return runtime_1.wrap(function _callee$(_context) {
1385
3413
  while (1) {
1386
3414
  switch (_context.prev = _context.next) {
1387
3415
  case 0:
3416
+ input = _ref.input, fetch = _ref.fetch;
3417
+ search = input.search, categoryId = input.categoryId, brandId = input.brandId, sort = input.sort, count = input.count;
3418
+ products = data.products;
3419
+
3420
+ if (categoryId) {
3421
+ category = data.categories.find(function (category) {
3422
+ return category.id === categoryId;
3423
+ });
3424
+ products = data.products.filter(function (product) {
3425
+ var _category$products;
3426
+
3427
+ return category == null ? void 0 : (_category$products = category.products) == null ? void 0 : _category$products.includes(product.id);
3428
+ });
3429
+ }
3430
+
3431
+ if (brandId) {
3432
+ products = products.filter(function (product) {
3433
+ return product.vendor.replace(/\s+/g, "-").toLowerCase() === ("" + brandId).toLowerCase();
3434
+ });
3435
+ }
3436
+
3437
+ if (search) {
3438
+ products = products.filter(function (product) {
3439
+ return product.name.toLowerCase().includes(("" + search).toLowerCase()) || product.slug.toLowerCase().includes(("" + search).toLowerCase());
3440
+ });
3441
+ }
3442
+
3443
+ if (sort) {
3444
+ products = products.sort(function (a, b) {
3445
+ return sortProduct(a, b, sort);
3446
+ });
3447
+ }
3448
+
1388
3449
  return _context.abrupt("return", {
1389
- data: {
1390
- products: data.products
1391
- }
3450
+ products: products.slice(0, count),
3451
+ found: products.length > 0
1392
3452
  });
1393
3453
 
1394
- case 2:
3454
+ case 8:
1395
3455
  case "end":
1396
3456
  return _context.stop();
1397
3457
  }
@@ -1399,30 +3459,43 @@ var handler$4 = {
1399
3459
  }, _callee);
1400
3460
  }))();
1401
3461
  },
1402
- useHook: function useHook() {
1403
- return function () {
1404
- return {
1405
- data: {
1406
- products: data.products
1407
- }
1408
- };
3462
+ useHook: function useHook(_ref2) {
3463
+ var useData = _ref2.useData;
3464
+ return function (input) {
3465
+ if (input === void 0) {
3466
+ input = {};
3467
+ }
3468
+
3469
+ return useData({
3470
+ input: [["search", input.search], ["prefixSearch", input.prefixSearch], ["categoryId", input.categoryId], ["brandId", input.brandId], ["sort", input.sort], ["locale", input.locale], ["count", input.count]],
3471
+ swrOptions: _extends({
3472
+ revalidateOnFocus: false
3473
+ }, input.swrOptions)
3474
+ });
1409
3475
  };
1410
3476
  }
1411
3477
  };
1412
3478
 
1413
3479
  var handler$5 = {
1414
3480
  fetchOptions: {
1415
- query: ''
3481
+ query: "use-product"
1416
3482
  },
1417
3483
  fetcher: function fetcher(_ref) {
1418
3484
  return _asyncToGenerator( /*#__PURE__*/runtime_1.mark(function _callee() {
3485
+ var _data$products$find;
3486
+
3487
+ var input, fetch, id;
1419
3488
  return runtime_1.wrap(function _callee$(_context) {
1420
3489
  while (1) {
1421
3490
  switch (_context.prev = _context.next) {
1422
3491
  case 0:
1423
- return _context.abrupt("return", []);
3492
+ input = _ref.input, fetch = _ref.fetch;
3493
+ id = input.id;
3494
+ return _context.abrupt("return", (_data$products$find = data.products.find(function (product) {
3495
+ return [product.id, product.slug].includes(id);
3496
+ })) != null ? _data$products$find : null);
1424
3497
 
1425
- case 2:
3498
+ case 3:
1426
3499
  case "end":
1427
3500
  return _context.stop();
1428
3501
  }
@@ -1430,26 +3503,51 @@ var handler$5 = {
1430
3503
  }, _callee);
1431
3504
  }))();
1432
3505
  },
1433
- useHook: function useHook() {
1434
- return function () {
1435
- return [];
3506
+ useHook: function useHook(_ref2) {
3507
+ var useData = _ref2.useData;
3508
+ return function (input) {
3509
+ if (input === void 0) {
3510
+ input = {};
3511
+ }
3512
+
3513
+ return useData({
3514
+ input: [["id", input.id]],
3515
+ swrOptions: _extends({
3516
+ revalidateOnFocus: false
3517
+ }, input.swrOptions)
3518
+ });
1436
3519
  };
1437
3520
  }
1438
3521
  };
1439
3522
 
1440
3523
  var handler$6 = {
1441
3524
  fetchOptions: {
1442
- query: ''
3525
+ query: "use-categories"
1443
3526
  },
1444
3527
  fetcher: function fetcher(_ref) {
1445
3528
  return _asyncToGenerator( /*#__PURE__*/runtime_1.mark(function _callee() {
3529
+ var input, fetch, categoryId, category;
1446
3530
  return runtime_1.wrap(function _callee$(_context) {
1447
3531
  while (1) {
1448
3532
  switch (_context.prev = _context.next) {
1449
3533
  case 0:
1450
- return _context.abrupt("return", []);
3534
+ input = _ref.input, fetch = _ref.fetch;
3535
+ categoryId = input.categoryId;
1451
3536
 
1452
- case 2:
3537
+ if (categoryId) {
3538
+ _context.next = 4;
3539
+ break;
3540
+ }
3541
+
3542
+ return _context.abrupt("return", data.categories);
3543
+
3544
+ case 4:
3545
+ category = data.categories.find(function (category) {
3546
+ return category.id === categoryId;
3547
+ });
3548
+ return _context.abrupt("return", category ? [category] : []);
3549
+
3550
+ case 6:
1453
3551
  case "end":
1454
3552
  return _context.stop();
1455
3553
  }
@@ -1457,9 +3555,82 @@ var handler$6 = {
1457
3555
  }, _callee);
1458
3556
  }))();
1459
3557
  },
1460
- useHook: function useHook() {
1461
- return function () {
1462
- return [];
3558
+ useHook: function useHook(_ref2) {
3559
+ var useData = _ref2.useData;
3560
+ return function (input) {
3561
+ var response = useData({
3562
+ input: [["categoryId", input == null ? void 0 : input.categoryId]],
3563
+ swrOptions: _extends({
3564
+ revalidateOnFocus: false
3565
+ }, input == null ? void 0 : input.swrOptions)
3566
+ });
3567
+ return React.useMemo(function () {
3568
+ return Object.create(response, {
3569
+ isEmpty: {
3570
+ get: function get() {
3571
+ var _response$data$length, _response$data;
3572
+
3573
+ return ((_response$data$length = (_response$data = response.data) == null ? void 0 : _response$data.length) != null ? _response$data$length : 0) <= 0;
3574
+ },
3575
+ enumerable: true
3576
+ }
3577
+ });
3578
+ }, [response]);
3579
+ };
3580
+ }
3581
+ };
3582
+
3583
+ var handler$7 = {
3584
+ fetchOptions: {
3585
+ query: "use-brands"
3586
+ },
3587
+ fetcher: function fetcher(_ref) {
3588
+ return _asyncToGenerator( /*#__PURE__*/runtime_1.mark(function _callee() {
3589
+ var vendorsStrings;
3590
+ return runtime_1.wrap(function _callee$(_context) {
3591
+ while (1) {
3592
+ switch (_context.prev = _context.next) {
3593
+ case 0:
3594
+ vendorsStrings = data.products.map(function (product) {
3595
+ return product.vendor;
3596
+ });
3597
+ return _context.abrupt("return", Array.from(new Set(vendorsStrings).values()).map(function (v) {
3598
+ var id = v.replace(/\s+/g, "-").toLowerCase();
3599
+ return {
3600
+ entityId: id,
3601
+ name: v,
3602
+ path: "brands/" + id
3603
+ };
3604
+ }));
3605
+
3606
+ case 3:
3607
+ case "end":
3608
+ return _context.stop();
3609
+ }
3610
+ }
3611
+ }, _callee);
3612
+ }))();
3613
+ },
3614
+ useHook: function useHook(_ref2) {
3615
+ var useData = _ref2.useData;
3616
+ return function (input) {
3617
+ var response = useData({
3618
+ swrOptions: _extends({
3619
+ revalidateOnFocus: false
3620
+ }, input == null ? void 0 : input.swrOptions)
3621
+ });
3622
+ return React.useMemo(function () {
3623
+ return Object.create(response, {
3624
+ isEmpty: {
3625
+ get: function get() {
3626
+ var _response$data$length, _response$data;
3627
+
3628
+ return ((_response$data$length = (_response$data = response.data) == null ? void 0 : _response$data.length) != null ? _response$data$length : 0) <= 0;
3629
+ },
3630
+ enumerable: true
3631
+ }
3632
+ });
3633
+ }, [response]);
1463
3634
  };
1464
3635
  }
1465
3636
  };
@@ -1470,7 +3641,7 @@ var handler$6 = {
1470
3641
  */
1471
3642
  var localProvider = {
1472
3643
  locale: 'en-us',
1473
- cartCookie: 'LOCAL_CART',
3644
+ cartCookie: LOCAL_CART_ID,
1474
3645
  fetcher: fetcher,
1475
3646
  cart: {
1476
3647
  useCart: handler,
@@ -1479,17 +3650,18 @@ var localProvider = {
1479
3650
  useRemoveItem: handler$3
1480
3651
  },
1481
3652
  products: {
1482
- useSearch: handler$4
3653
+ useSearch: handler$4,
3654
+ useProduct: handler$5
1483
3655
  },
1484
3656
  site: {
1485
- useCategories: handler$5,
1486
- useBrands: handler$6
3657
+ useCategories: handler$6,
3658
+ useBrands: handler$7
1487
3659
  }
1488
3660
  };
1489
3661
 
1490
3662
  /*
1491
3663
  Forked from https://github.com/vercel/commerce/tree/main/packages/local/src
1492
- Changes: None
3664
+ Changes: Add export data
1493
3665
  */
1494
3666
  var CommerceProvider = /*#__PURE__*/getCommerceProvider(localProvider);
1495
3667
  var useCommerce = function useCommerce() {
@@ -1499,13 +3671,9 @@ var useCommerce = function useCommerce() {
1499
3671
  var commerceProviderMeta = {
1500
3672
  name: "plasmic-commerce-local-provider",
1501
3673
  displayName: "Local Provider",
1502
- props: {
1503
- children: {
1504
- type: "slot"
1505
- }
1506
- },
1507
- importPath: "commerce-providers/local",
1508
- importName: "LocalProvider"
3674
+ props: {},
3675
+ importPath: "@plasmicpkgs/commerce-local",
3676
+ importName: "CommerceProviderComponent"
1509
3677
  };
1510
3678
 
1511
3679
  function CommerceProviderComponent(props) {
@@ -1514,7 +3682,7 @@ function CommerceProviderComponent(props) {
1514
3682
 
1515
3683
  function registerCommerceProvider(loader, customCommerceProviderMeta) {
1516
3684
  var doRegisterComponent = function doRegisterComponent() {
1517
- return loader ? loader.registerComponent.apply(loader, arguments) : registerComponent.apply(void 0, arguments);
3685
+ return loader ? loader.registerGlobalContext.apply(loader, arguments) : registerGlobalContext.apply(void 0, arguments);
1518
3686
  };
1519
3687
 
1520
3688
  doRegisterComponent(CommerceProviderComponent, customCommerceProviderMeta != null ? customCommerceProviderMeta : commerceProviderMeta);
@@ -1524,5 +3692,5 @@ function registerAll(loader) {
1524
3692
  registerCommerceProvider(loader);
1525
3693
  }
1526
3694
 
1527
- export { CommerceProvider, localProvider, registerAll, registerCommerceProvider, useCommerce };
3695
+ export { CommerceProvider, data, localProvider, registerAll, registerCommerceProvider, useCommerce };
1528
3696
  //# sourceMappingURL=commerce-local.esm.js.map