@plasmicpkgs/commerce-local 0.0.42 → 0.0.45

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