@plasmicpkgs/commerce 0.0.13 → 0.0.16
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.
- package/dist/commerce.cjs.development.js +214 -23
- package/dist/commerce.cjs.development.js.map +1 -1
- package/dist/commerce.cjs.production.min.js +1 -1
- package/dist/commerce.cjs.production.min.js.map +1 -1
- package/dist/commerce.esm.js +209 -24
- package/dist/commerce.esm.js.map +1 -1
- package/dist/contexts.d.ts +10 -3
- package/dist/index.d.ts +2 -0
- package/dist/registerCategoryMedia.d.ts +11 -0
- package/dist/registerProductMedia.d.ts +1 -0
- package/dist/registerProductSlider.d.ts +14 -0
- package/dist/types/site.d.ts +14 -7
- package/package.json +2 -2
|
@@ -971,6 +971,7 @@ var defaultProduct = {
|
|
|
971
971
|
|
|
972
972
|
var ProductContext = /*#__PURE__*/React__default.createContext(undefined);
|
|
973
973
|
var CategoryContext = /*#__PURE__*/React__default.createContext(undefined);
|
|
974
|
+
var SliderContext = /*#__PURE__*/React__default.createContext(undefined);
|
|
974
975
|
function ProductProvider(_ref) {
|
|
975
976
|
var product = _ref.product,
|
|
976
977
|
children = _ref.children;
|
|
@@ -995,6 +996,20 @@ function CategoryProvider(_ref2) {
|
|
|
995
996
|
var useCategoryContext = function useCategoryContext() {
|
|
996
997
|
return React.useContext(CategoryContext);
|
|
997
998
|
};
|
|
999
|
+
function ProductSliderProvider(_ref3) {
|
|
1000
|
+
var mediaIndex = _ref3.mediaIndex,
|
|
1001
|
+
onClick = _ref3.onClick,
|
|
1002
|
+
children = _ref3.children;
|
|
1003
|
+
return React__default.createElement(SliderContext.Provider, {
|
|
1004
|
+
value: mediaIndex,
|
|
1005
|
+
key: mediaIndex
|
|
1006
|
+
}, React__default.cloneElement(React__default.isValidElement(children) ? children : React__default.createElement(React__default.Fragment, null), {
|
|
1007
|
+
onClick: onClick
|
|
1008
|
+
}));
|
|
1009
|
+
}
|
|
1010
|
+
var useProductSliderContext = function useProductSliderContext() {
|
|
1011
|
+
return React.useContext(SliderContext);
|
|
1012
|
+
};
|
|
998
1013
|
|
|
999
1014
|
var _excluded = ["children"];
|
|
1000
1015
|
var Commerce = /*#__PURE__*/React.createContext({});
|
|
@@ -1546,13 +1561,6 @@ var useCategories = function useCategories(input) {
|
|
|
1546
1561
|
}, hook))(input);
|
|
1547
1562
|
};
|
|
1548
1563
|
|
|
1549
|
-
var useCommerceExtraFeatures = function useCommerceExtraFeatures() {
|
|
1550
|
-
var _useCommerce = useCommerce(),
|
|
1551
|
-
providerRef = _useCommerce.providerRef;
|
|
1552
|
-
|
|
1553
|
-
return providerRef.current.extraFeatures;
|
|
1554
|
-
};
|
|
1555
|
-
|
|
1556
1564
|
var categoryCollectionMeta = {
|
|
1557
1565
|
name: "plasmic-commerce-category-collection",
|
|
1558
1566
|
displayName: "Category Collection",
|
|
@@ -1600,8 +1608,10 @@ var categoryCollectionMeta = {
|
|
|
1600
1608
|
var _ctx$categories$map;
|
|
1601
1609
|
|
|
1602
1610
|
return (_ctx$categories$map = ctx == null ? void 0 : ctx.categories.map(function (category) {
|
|
1611
|
+
var _category$depth;
|
|
1612
|
+
|
|
1603
1613
|
return {
|
|
1604
|
-
label: category.name,
|
|
1614
|
+
label: "" + " ".repeat((_category$depth = category.depth) != null ? _category$depth : 0) + category.name,
|
|
1605
1615
|
value: category.id
|
|
1606
1616
|
};
|
|
1607
1617
|
})) != null ? _ctx$categories$map : [];
|
|
@@ -1626,7 +1636,6 @@ function CategoryCollection(props) {
|
|
|
1626
1636
|
emptyMessage = props.emptyMessage,
|
|
1627
1637
|
selectedCategory = props.category,
|
|
1628
1638
|
setControlContextData = props.setControlContextData;
|
|
1629
|
-
var features = useCommerceExtraFeatures();
|
|
1630
1639
|
var inEditor = React__default.useContext(host.PlasmicCanvasContext);
|
|
1631
1640
|
|
|
1632
1641
|
var _useCategories = useCategories(),
|
|
@@ -1635,7 +1644,6 @@ function CategoryCollection(props) {
|
|
|
1635
1644
|
|
|
1636
1645
|
var _useCategories2 = useCategories({
|
|
1637
1646
|
categoryId: selectedCategory,
|
|
1638
|
-
topologicalSort: !selectedCategory && (features == null ? void 0 : features.includeSubCategories),
|
|
1639
1647
|
addIsEmptyField: !!inEditor
|
|
1640
1648
|
}),
|
|
1641
1649
|
categories = _useCategories2.data,
|
|
@@ -1774,6 +1782,61 @@ function registerCategoryLink(loader, customCategoryLinkMeta) {
|
|
|
1774
1782
|
doRegisterComponent(CategoryLink, customCategoryLinkMeta != null ? customCategoryLinkMeta : categoryLinkMeta);
|
|
1775
1783
|
}
|
|
1776
1784
|
|
|
1785
|
+
var categoryMediaMeta = {
|
|
1786
|
+
name: "plasmic-commerce-category-media",
|
|
1787
|
+
displayName: "Category Media",
|
|
1788
|
+
props: {
|
|
1789
|
+
mediaIndex: "number",
|
|
1790
|
+
mediaSize: {
|
|
1791
|
+
type: "choice",
|
|
1792
|
+
options: [{
|
|
1793
|
+
label: "Fill",
|
|
1794
|
+
value: "fill"
|
|
1795
|
+
}, {
|
|
1796
|
+
label: "Container",
|
|
1797
|
+
value: "contain"
|
|
1798
|
+
}, {
|
|
1799
|
+
label: "Cover",
|
|
1800
|
+
value: "cover"
|
|
1801
|
+
}, {
|
|
1802
|
+
label: "None",
|
|
1803
|
+
value: "none"
|
|
1804
|
+
}, {
|
|
1805
|
+
label: "Scale down",
|
|
1806
|
+
value: "scale-down"
|
|
1807
|
+
}]
|
|
1808
|
+
}
|
|
1809
|
+
},
|
|
1810
|
+
importPath: "@plasmicpkgs/commerce",
|
|
1811
|
+
importName: "CategoryMedia"
|
|
1812
|
+
};
|
|
1813
|
+
function CategoryMedia(props) {
|
|
1814
|
+
var _image$url;
|
|
1815
|
+
|
|
1816
|
+
var className = props.className,
|
|
1817
|
+
_props$mediaIndex = props.mediaIndex,
|
|
1818
|
+
mediaIndex = _props$mediaIndex === void 0 ? 0 : _props$mediaIndex,
|
|
1819
|
+
mediaSize = props.mediaSize;
|
|
1820
|
+
var category = useCategoryContext();
|
|
1821
|
+
var image = category != null && category.images ? category.images[mediaIndex] : undefined;
|
|
1822
|
+
return React__default.createElement("img", {
|
|
1823
|
+
alt: (category == null ? void 0 : category.name) || "Category Image",
|
|
1824
|
+
src: (_image$url = image == null ? void 0 : image.url) != null ? _image$url : "",
|
|
1825
|
+
loading: "lazy",
|
|
1826
|
+
className: className,
|
|
1827
|
+
style: {
|
|
1828
|
+
objectFit: mediaSize
|
|
1829
|
+
}
|
|
1830
|
+
});
|
|
1831
|
+
}
|
|
1832
|
+
function registerCategoryMedia(loader, customCategoryMediaMeta) {
|
|
1833
|
+
var doRegisterComponent = function doRegisterComponent() {
|
|
1834
|
+
return loader ? loader.registerComponent.apply(loader, arguments) : registerComponent.apply(void 0, arguments);
|
|
1835
|
+
};
|
|
1836
|
+
|
|
1837
|
+
doRegisterComponent(CategoryMedia, customCategoryMediaMeta != null ? customCategoryMediaMeta : categoryMediaMeta);
|
|
1838
|
+
}
|
|
1839
|
+
|
|
1777
1840
|
var fetcher$3 = SWRFetcher;
|
|
1778
1841
|
|
|
1779
1842
|
var fn$3 = function fn(provider) {
|
|
@@ -1899,6 +1962,13 @@ var useBrands = function useBrands(input) {
|
|
|
1899
1962
|
}, hook))(input);
|
|
1900
1963
|
};
|
|
1901
1964
|
|
|
1965
|
+
var useCommerceExtraFeatures = function useCommerceExtraFeatures() {
|
|
1966
|
+
var _useCommerce = useCommerce(),
|
|
1967
|
+
providerRef = _useCommerce.providerRef;
|
|
1968
|
+
|
|
1969
|
+
return providerRef.current.extraFeatures;
|
|
1970
|
+
};
|
|
1971
|
+
|
|
1902
1972
|
var productCollectionMeta = {
|
|
1903
1973
|
name: "plasmic-commerce-product-collection",
|
|
1904
1974
|
displayName: "Product Collection",
|
|
@@ -1944,8 +2014,10 @@ var productCollectionMeta = {
|
|
|
1944
2014
|
var _ctx$categories$map;
|
|
1945
2015
|
|
|
1946
2016
|
return (_ctx$categories$map = ctx == null ? void 0 : ctx.categories.map(function (category) {
|
|
2017
|
+
var _category$depth;
|
|
2018
|
+
|
|
1947
2019
|
return {
|
|
1948
|
-
label: category.name,
|
|
2020
|
+
label: "" + " ".repeat((_category$depth = category.depth) != null ? _category$depth : 0) + category.name,
|
|
1949
2021
|
value: category.id
|
|
1950
2022
|
};
|
|
1951
2023
|
})) != null ? _ctx$categories$map : [];
|
|
@@ -2151,7 +2223,26 @@ var productMediaMeta = {
|
|
|
2151
2223
|
name: "plasmic-commerce-product-media",
|
|
2152
2224
|
displayName: "Product Media",
|
|
2153
2225
|
props: {
|
|
2154
|
-
mediaIndex: "number"
|
|
2226
|
+
mediaIndex: "number",
|
|
2227
|
+
mediaSize: {
|
|
2228
|
+
type: "choice",
|
|
2229
|
+
options: [{
|
|
2230
|
+
label: "Fill",
|
|
2231
|
+
value: "fill"
|
|
2232
|
+
}, {
|
|
2233
|
+
label: "Container",
|
|
2234
|
+
value: "contain"
|
|
2235
|
+
}, {
|
|
2236
|
+
label: "Cover",
|
|
2237
|
+
value: "cover"
|
|
2238
|
+
}, {
|
|
2239
|
+
label: "None",
|
|
2240
|
+
value: "none"
|
|
2241
|
+
}, {
|
|
2242
|
+
label: "Scale down",
|
|
2243
|
+
value: "scale-down"
|
|
2244
|
+
}]
|
|
2245
|
+
}
|
|
2155
2246
|
},
|
|
2156
2247
|
importPath: "@plasmicpkgs/commerce",
|
|
2157
2248
|
importName: "ProductMedia"
|
|
@@ -2161,14 +2252,19 @@ function ProductMedia(props) {
|
|
|
2161
2252
|
|
|
2162
2253
|
var className = props.className,
|
|
2163
2254
|
_props$mediaIndex = props.mediaIndex,
|
|
2164
|
-
mediaIndex = _props$mediaIndex === void 0 ? 0 : _props$mediaIndex
|
|
2255
|
+
mediaIndex = _props$mediaIndex === void 0 ? 0 : _props$mediaIndex,
|
|
2256
|
+
mediaSize = props.mediaSize;
|
|
2165
2257
|
var product = useProduct();
|
|
2166
|
-
var
|
|
2258
|
+
var sliderContext = useProductSliderContext();
|
|
2259
|
+
var image = product == null ? void 0 : product.images[sliderContext != null ? sliderContext : mediaIndex];
|
|
2167
2260
|
return React__default.createElement("img", {
|
|
2168
|
-
alt: (product == null ? void 0 : product.name) ||
|
|
2261
|
+
alt: (product == null ? void 0 : product.name) || "Product Image",
|
|
2169
2262
|
src: product ? (_image$url = image == null ? void 0 : image.url) != null ? _image$url : "" : placeholderImage,
|
|
2170
|
-
loading:
|
|
2171
|
-
className: className
|
|
2263
|
+
loading: "lazy",
|
|
2264
|
+
className: className,
|
|
2265
|
+
style: {
|
|
2266
|
+
objectFit: mediaSize
|
|
2267
|
+
}
|
|
2172
2268
|
});
|
|
2173
2269
|
}
|
|
2174
2270
|
function registerProductMedia(loader, customProductMediaMeta) {
|
|
@@ -2263,6 +2359,90 @@ function registerProductQuantity(loader, customProductQuantityMeta) {
|
|
|
2263
2359
|
doRegisterComponent(ProductQuantity, customProductQuantityMeta != null ? customProductQuantityMeta : productQuantityMeta);
|
|
2264
2360
|
}
|
|
2265
2361
|
|
|
2362
|
+
var productSliderMeta = {
|
|
2363
|
+
name: "plasmic-commerce-product-slider",
|
|
2364
|
+
displayName: "Product Slider",
|
|
2365
|
+
props: {
|
|
2366
|
+
thumbsVisible: {
|
|
2367
|
+
type: "number",
|
|
2368
|
+
description: "Number of thumbs visible",
|
|
2369
|
+
defaultValue: 4,
|
|
2370
|
+
defaultValueHint: 4
|
|
2371
|
+
},
|
|
2372
|
+
slideContainer: {
|
|
2373
|
+
type: "slot",
|
|
2374
|
+
defaultValue: {
|
|
2375
|
+
type: "vbox",
|
|
2376
|
+
children: [{
|
|
2377
|
+
type: "component",
|
|
2378
|
+
name: "plasmic-commerce-product-media"
|
|
2379
|
+
}]
|
|
2380
|
+
}
|
|
2381
|
+
},
|
|
2382
|
+
thumbsContainer: {
|
|
2383
|
+
type: "slot",
|
|
2384
|
+
defaultValue: {
|
|
2385
|
+
type: "hbox",
|
|
2386
|
+
children: [{
|
|
2387
|
+
type: "component",
|
|
2388
|
+
name: "plasmic-commerce-product-media"
|
|
2389
|
+
}]
|
|
2390
|
+
}
|
|
2391
|
+
},
|
|
2392
|
+
slideSelected: {
|
|
2393
|
+
type: "number",
|
|
2394
|
+
defaultValue: 0,
|
|
2395
|
+
defaultValueHint: 0,
|
|
2396
|
+
description: "Current slide selected"
|
|
2397
|
+
}
|
|
2398
|
+
},
|
|
2399
|
+
importPath: "@plasmicpkgs/commerce",
|
|
2400
|
+
importName: "ProductSlider"
|
|
2401
|
+
};
|
|
2402
|
+
function ProductSlider(props) {
|
|
2403
|
+
var className = props.className,
|
|
2404
|
+
slideContainer = props.slideContainer,
|
|
2405
|
+
thumbsContainer = props.thumbsContainer,
|
|
2406
|
+
_props$thumbsVisible = props.thumbsVisible,
|
|
2407
|
+
thumbsVisible = _props$thumbsVisible === void 0 ? 4 : _props$thumbsVisible,
|
|
2408
|
+
_props$slideSelected = props.slideSelected,
|
|
2409
|
+
slideSelected = _props$slideSelected === void 0 ? 0 : _props$slideSelected;
|
|
2410
|
+
var product = useProduct();
|
|
2411
|
+
|
|
2412
|
+
var _React$useState = React__default.useState(slideSelected),
|
|
2413
|
+
selected = _React$useState[0],
|
|
2414
|
+
setSelected = _React$useState[1];
|
|
2415
|
+
|
|
2416
|
+
var maximumRight = product.images.length - thumbsVisible;
|
|
2417
|
+
var leftIndex = Math.min(maximumRight, Math.max(0, selected - 1));
|
|
2418
|
+
return React__default.createElement("div", {
|
|
2419
|
+
className: className
|
|
2420
|
+
}, React__default.createElement(ProductSliderProvider, {
|
|
2421
|
+
mediaIndex: selected,
|
|
2422
|
+
children: slideContainer
|
|
2423
|
+
}), React__default.createElement("div", {
|
|
2424
|
+
style: {
|
|
2425
|
+
display: "grid",
|
|
2426
|
+
gridTemplateColumns: "repeat(" + thumbsVisible + ", 1fr)"
|
|
2427
|
+
}
|
|
2428
|
+
}, product.images.slice(leftIndex, leftIndex + thumbsVisible).map(function (image, i) {
|
|
2429
|
+
return host.repeatedElement(i === 0, React__default.createElement(ProductSliderProvider, {
|
|
2430
|
+
mediaIndex: leftIndex + i,
|
|
2431
|
+
children: thumbsContainer,
|
|
2432
|
+
onClick: function onClick() {
|
|
2433
|
+
return setSelected(leftIndex + i);
|
|
2434
|
+
}
|
|
2435
|
+
}));
|
|
2436
|
+
})));
|
|
2437
|
+
}
|
|
2438
|
+
function registerProductSlider(loader, customProductSliderMeta) {
|
|
2439
|
+
var doRegisterComponent = function doRegisterComponent() {
|
|
2440
|
+
return loader ? loader.registerComponent.apply(loader, arguments) : registerComponent.apply(void 0, arguments);
|
|
2441
|
+
};
|
|
2442
|
+
|
|
2443
|
+
doRegisterComponent(ProductSlider, customProductSliderMeta != null ? customProductSliderMeta : productSliderMeta);
|
|
2444
|
+
}
|
|
2445
|
+
|
|
2266
2446
|
var productTextFieldMeta = {
|
|
2267
2447
|
name: "plasmic-commerce-product-text-field",
|
|
2268
2448
|
displayName: "Product Text Field",
|
|
@@ -2295,14 +2475,14 @@ function ProductTextField(props) {
|
|
|
2295
2475
|
var value;
|
|
2296
2476
|
|
|
2297
2477
|
if (field === "description") {
|
|
2298
|
-
|
|
2478
|
+
var _product$descriptionH;
|
|
2479
|
+
|
|
2480
|
+
return React__default.createElement("div", {
|
|
2299
2481
|
className: className,
|
|
2300
2482
|
dangerouslySetInnerHTML: {
|
|
2301
|
-
__html: product.descriptionHtml
|
|
2483
|
+
__html: (_product$descriptionH = product.descriptionHtml) != null ? _product$descriptionH : product.description
|
|
2302
2484
|
}
|
|
2303
|
-
})
|
|
2304
|
-
className: className
|
|
2305
|
-
}, product.description);
|
|
2485
|
+
});
|
|
2306
2486
|
} else {
|
|
2307
2487
|
value = product[field];
|
|
2308
2488
|
}
|
|
@@ -2402,7 +2582,10 @@ var product = {
|
|
|
2402
2582
|
__proto__: null
|
|
2403
2583
|
};
|
|
2404
2584
|
|
|
2405
|
-
|
|
2585
|
+
/*
|
|
2586
|
+
Forked from https://github.com/vercel/commerce/tree/main/packages/commerce/src
|
|
2587
|
+
Changes: Added CategoryImage and depth/children/parent_id to Category
|
|
2588
|
+
*/
|
|
2406
2589
|
|
|
2407
2590
|
var site = {
|
|
2408
2591
|
__proto__: null
|
|
@@ -2418,10 +2601,12 @@ function registerAll(loader) {
|
|
|
2418
2601
|
registerProductQuantity(loader);
|
|
2419
2602
|
registerProductVariantPicker(loader);
|
|
2420
2603
|
registerProductBox(loader);
|
|
2604
|
+
registerProductSlider(loader);
|
|
2421
2605
|
registerProductLink(loader);
|
|
2422
2606
|
registerCategoryCollection(loader);
|
|
2423
2607
|
registerCategoryField(loader);
|
|
2424
2608
|
registerCategoryLink(loader);
|
|
2609
|
+
registerCategoryMedia(loader);
|
|
2425
2610
|
}
|
|
2426
2611
|
|
|
2427
2612
|
exports.AddToCartButton = AddToCartButton;
|
|
@@ -2430,6 +2615,7 @@ exports.CartType = cart;
|
|
|
2430
2615
|
exports.CategoryCollection = CategoryCollection;
|
|
2431
2616
|
exports.CategoryField = CategoryField;
|
|
2432
2617
|
exports.CategoryLink = CategoryLink;
|
|
2618
|
+
exports.CategoryMedia = CategoryMedia;
|
|
2433
2619
|
exports.CommerceError = CommerceError;
|
|
2434
2620
|
exports.CoreCommerceProvider = CoreCommerceProvider;
|
|
2435
2621
|
exports.FetcherError = FetcherError;
|
|
@@ -2440,6 +2626,7 @@ exports.ProductMedia = ProductMedia;
|
|
|
2440
2626
|
exports.ProductPlaceholder = defaultProduct;
|
|
2441
2627
|
exports.ProductPriceComponent = ProductPriceComponent;
|
|
2442
2628
|
exports.ProductQuantity = ProductQuantity;
|
|
2629
|
+
exports.ProductSlider = ProductSlider;
|
|
2443
2630
|
exports.ProductTextField = ProductTextField;
|
|
2444
2631
|
exports.ProductTypes = product;
|
|
2445
2632
|
exports.ProductVariantPicker = ProductVariantPicker;
|
|
@@ -2450,6 +2637,7 @@ exports.cartMeta = cartMeta;
|
|
|
2450
2637
|
exports.categoryCollectionMeta = categoryCollectionMeta;
|
|
2451
2638
|
exports.categoryFieldMeta = categoryFieldMeta;
|
|
2452
2639
|
exports.categoryLinkMeta = categoryLinkMeta;
|
|
2640
|
+
exports.categoryMediaMeta = categoryMediaMeta;
|
|
2453
2641
|
exports.fetcher = fetcher$4;
|
|
2454
2642
|
exports.getCommerceProvider = getCommerceProvider;
|
|
2455
2643
|
exports.productBoxMeta = productBoxMeta;
|
|
@@ -2458,6 +2646,7 @@ exports.productLinkMeta = productLinkMeta;
|
|
|
2458
2646
|
exports.productMediaMeta = productMediaMeta;
|
|
2459
2647
|
exports.productPriceMeta = productPriceMeta;
|
|
2460
2648
|
exports.productQuantityMeta = productQuantityMeta;
|
|
2649
|
+
exports.productSliderMeta = productSliderMeta;
|
|
2461
2650
|
exports.productTextFieldMeta = productTextFieldMeta;
|
|
2462
2651
|
exports.productVariantPickerMeta = productVariantPickerMeta;
|
|
2463
2652
|
exports.registerAddToCartButton = registerAddToCartButton;
|
|
@@ -2466,12 +2655,14 @@ exports.registerCart = registerCart;
|
|
|
2466
2655
|
exports.registerCategoryCollection = registerCategoryCollection;
|
|
2467
2656
|
exports.registerCategoryField = registerCategoryField;
|
|
2468
2657
|
exports.registerCategoryLink = registerCategoryLink;
|
|
2658
|
+
exports.registerCategoryMedia = registerCategoryMedia;
|
|
2469
2659
|
exports.registerProductBox = registerProductBox;
|
|
2470
2660
|
exports.registerProductCollection = registerProductCollection;
|
|
2471
2661
|
exports.registerProductLink = registerProductLink;
|
|
2472
2662
|
exports.registerProductMedia = registerProductMedia;
|
|
2473
2663
|
exports.registerProductPrice = registerProductPrice;
|
|
2474
2664
|
exports.registerProductQuantity = registerProductQuantity;
|
|
2665
|
+
exports.registerProductSlider = registerProductSlider;
|
|
2475
2666
|
exports.registerProductVariantPicker = registerProductVariantPicker;
|
|
2476
2667
|
exports.registerTextField = registerTextField;
|
|
2477
2668
|
exports.useAddItem = useAddItem;
|