@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
package/dist/commerce.esm.js
CHANGED
|
@@ -964,6 +964,7 @@ var defaultProduct = {
|
|
|
964
964
|
|
|
965
965
|
var ProductContext = /*#__PURE__*/React.createContext(undefined);
|
|
966
966
|
var CategoryContext = /*#__PURE__*/React.createContext(undefined);
|
|
967
|
+
var SliderContext = /*#__PURE__*/React.createContext(undefined);
|
|
967
968
|
function ProductProvider(_ref) {
|
|
968
969
|
var product = _ref.product,
|
|
969
970
|
children = _ref.children;
|
|
@@ -988,6 +989,20 @@ function CategoryProvider(_ref2) {
|
|
|
988
989
|
var useCategoryContext = function useCategoryContext() {
|
|
989
990
|
return useContext(CategoryContext);
|
|
990
991
|
};
|
|
992
|
+
function ProductSliderProvider(_ref3) {
|
|
993
|
+
var mediaIndex = _ref3.mediaIndex,
|
|
994
|
+
onClick = _ref3.onClick,
|
|
995
|
+
children = _ref3.children;
|
|
996
|
+
return React.createElement(SliderContext.Provider, {
|
|
997
|
+
value: mediaIndex,
|
|
998
|
+
key: mediaIndex
|
|
999
|
+
}, React.cloneElement(React.isValidElement(children) ? children : React.createElement(React.Fragment, null), {
|
|
1000
|
+
onClick: onClick
|
|
1001
|
+
}));
|
|
1002
|
+
}
|
|
1003
|
+
var useProductSliderContext = function useProductSliderContext() {
|
|
1004
|
+
return useContext(SliderContext);
|
|
1005
|
+
};
|
|
991
1006
|
|
|
992
1007
|
var _excluded = ["children"];
|
|
993
1008
|
var Commerce = /*#__PURE__*/createContext({});
|
|
@@ -1539,13 +1554,6 @@ var useCategories = function useCategories(input) {
|
|
|
1539
1554
|
}, hook))(input);
|
|
1540
1555
|
};
|
|
1541
1556
|
|
|
1542
|
-
var useCommerceExtraFeatures = function useCommerceExtraFeatures() {
|
|
1543
|
-
var _useCommerce = useCommerce(),
|
|
1544
|
-
providerRef = _useCommerce.providerRef;
|
|
1545
|
-
|
|
1546
|
-
return providerRef.current.extraFeatures;
|
|
1547
|
-
};
|
|
1548
|
-
|
|
1549
1557
|
var categoryCollectionMeta = {
|
|
1550
1558
|
name: "plasmic-commerce-category-collection",
|
|
1551
1559
|
displayName: "Category Collection",
|
|
@@ -1593,8 +1601,10 @@ var categoryCollectionMeta = {
|
|
|
1593
1601
|
var _ctx$categories$map;
|
|
1594
1602
|
|
|
1595
1603
|
return (_ctx$categories$map = ctx == null ? void 0 : ctx.categories.map(function (category) {
|
|
1604
|
+
var _category$depth;
|
|
1605
|
+
|
|
1596
1606
|
return {
|
|
1597
|
-
label: category.name,
|
|
1607
|
+
label: "" + " ".repeat((_category$depth = category.depth) != null ? _category$depth : 0) + category.name,
|
|
1598
1608
|
value: category.id
|
|
1599
1609
|
};
|
|
1600
1610
|
})) != null ? _ctx$categories$map : [];
|
|
@@ -1619,7 +1629,6 @@ function CategoryCollection(props) {
|
|
|
1619
1629
|
emptyMessage = props.emptyMessage,
|
|
1620
1630
|
selectedCategory = props.category,
|
|
1621
1631
|
setControlContextData = props.setControlContextData;
|
|
1622
|
-
var features = useCommerceExtraFeatures();
|
|
1623
1632
|
var inEditor = React.useContext(PlasmicCanvasContext);
|
|
1624
1633
|
|
|
1625
1634
|
var _useCategories = useCategories(),
|
|
@@ -1628,7 +1637,6 @@ function CategoryCollection(props) {
|
|
|
1628
1637
|
|
|
1629
1638
|
var _useCategories2 = useCategories({
|
|
1630
1639
|
categoryId: selectedCategory,
|
|
1631
|
-
topologicalSort: !selectedCategory && (features == null ? void 0 : features.includeSubCategories),
|
|
1632
1640
|
addIsEmptyField: !!inEditor
|
|
1633
1641
|
}),
|
|
1634
1642
|
categories = _useCategories2.data,
|
|
@@ -1767,6 +1775,61 @@ function registerCategoryLink(loader, customCategoryLinkMeta) {
|
|
|
1767
1775
|
doRegisterComponent(CategoryLink, customCategoryLinkMeta != null ? customCategoryLinkMeta : categoryLinkMeta);
|
|
1768
1776
|
}
|
|
1769
1777
|
|
|
1778
|
+
var categoryMediaMeta = {
|
|
1779
|
+
name: "plasmic-commerce-category-media",
|
|
1780
|
+
displayName: "Category Media",
|
|
1781
|
+
props: {
|
|
1782
|
+
mediaIndex: "number",
|
|
1783
|
+
mediaSize: {
|
|
1784
|
+
type: "choice",
|
|
1785
|
+
options: [{
|
|
1786
|
+
label: "Fill",
|
|
1787
|
+
value: "fill"
|
|
1788
|
+
}, {
|
|
1789
|
+
label: "Container",
|
|
1790
|
+
value: "contain"
|
|
1791
|
+
}, {
|
|
1792
|
+
label: "Cover",
|
|
1793
|
+
value: "cover"
|
|
1794
|
+
}, {
|
|
1795
|
+
label: "None",
|
|
1796
|
+
value: "none"
|
|
1797
|
+
}, {
|
|
1798
|
+
label: "Scale down",
|
|
1799
|
+
value: "scale-down"
|
|
1800
|
+
}]
|
|
1801
|
+
}
|
|
1802
|
+
},
|
|
1803
|
+
importPath: "@plasmicpkgs/commerce",
|
|
1804
|
+
importName: "CategoryMedia"
|
|
1805
|
+
};
|
|
1806
|
+
function CategoryMedia(props) {
|
|
1807
|
+
var _image$url;
|
|
1808
|
+
|
|
1809
|
+
var className = props.className,
|
|
1810
|
+
_props$mediaIndex = props.mediaIndex,
|
|
1811
|
+
mediaIndex = _props$mediaIndex === void 0 ? 0 : _props$mediaIndex,
|
|
1812
|
+
mediaSize = props.mediaSize;
|
|
1813
|
+
var category = useCategoryContext();
|
|
1814
|
+
var image = category != null && category.images ? category.images[mediaIndex] : undefined;
|
|
1815
|
+
return React.createElement("img", {
|
|
1816
|
+
alt: (category == null ? void 0 : category.name) || "Category Image",
|
|
1817
|
+
src: (_image$url = image == null ? void 0 : image.url) != null ? _image$url : "",
|
|
1818
|
+
loading: "lazy",
|
|
1819
|
+
className: className,
|
|
1820
|
+
style: {
|
|
1821
|
+
objectFit: mediaSize
|
|
1822
|
+
}
|
|
1823
|
+
});
|
|
1824
|
+
}
|
|
1825
|
+
function registerCategoryMedia(loader, customCategoryMediaMeta) {
|
|
1826
|
+
var doRegisterComponent = function doRegisterComponent() {
|
|
1827
|
+
return loader ? loader.registerComponent.apply(loader, arguments) : registerComponent.apply(void 0, arguments);
|
|
1828
|
+
};
|
|
1829
|
+
|
|
1830
|
+
doRegisterComponent(CategoryMedia, customCategoryMediaMeta != null ? customCategoryMediaMeta : categoryMediaMeta);
|
|
1831
|
+
}
|
|
1832
|
+
|
|
1770
1833
|
var fetcher$3 = SWRFetcher;
|
|
1771
1834
|
|
|
1772
1835
|
var fn$3 = function fn(provider) {
|
|
@@ -1892,6 +1955,13 @@ var useBrands = function useBrands(input) {
|
|
|
1892
1955
|
}, hook))(input);
|
|
1893
1956
|
};
|
|
1894
1957
|
|
|
1958
|
+
var useCommerceExtraFeatures = function useCommerceExtraFeatures() {
|
|
1959
|
+
var _useCommerce = useCommerce(),
|
|
1960
|
+
providerRef = _useCommerce.providerRef;
|
|
1961
|
+
|
|
1962
|
+
return providerRef.current.extraFeatures;
|
|
1963
|
+
};
|
|
1964
|
+
|
|
1895
1965
|
var productCollectionMeta = {
|
|
1896
1966
|
name: "plasmic-commerce-product-collection",
|
|
1897
1967
|
displayName: "Product Collection",
|
|
@@ -1937,8 +2007,10 @@ var productCollectionMeta = {
|
|
|
1937
2007
|
var _ctx$categories$map;
|
|
1938
2008
|
|
|
1939
2009
|
return (_ctx$categories$map = ctx == null ? void 0 : ctx.categories.map(function (category) {
|
|
2010
|
+
var _category$depth;
|
|
2011
|
+
|
|
1940
2012
|
return {
|
|
1941
|
-
label: category.name,
|
|
2013
|
+
label: "" + " ".repeat((_category$depth = category.depth) != null ? _category$depth : 0) + category.name,
|
|
1942
2014
|
value: category.id
|
|
1943
2015
|
};
|
|
1944
2016
|
})) != null ? _ctx$categories$map : [];
|
|
@@ -2144,7 +2216,26 @@ var productMediaMeta = {
|
|
|
2144
2216
|
name: "plasmic-commerce-product-media",
|
|
2145
2217
|
displayName: "Product Media",
|
|
2146
2218
|
props: {
|
|
2147
|
-
mediaIndex: "number"
|
|
2219
|
+
mediaIndex: "number",
|
|
2220
|
+
mediaSize: {
|
|
2221
|
+
type: "choice",
|
|
2222
|
+
options: [{
|
|
2223
|
+
label: "Fill",
|
|
2224
|
+
value: "fill"
|
|
2225
|
+
}, {
|
|
2226
|
+
label: "Container",
|
|
2227
|
+
value: "contain"
|
|
2228
|
+
}, {
|
|
2229
|
+
label: "Cover",
|
|
2230
|
+
value: "cover"
|
|
2231
|
+
}, {
|
|
2232
|
+
label: "None",
|
|
2233
|
+
value: "none"
|
|
2234
|
+
}, {
|
|
2235
|
+
label: "Scale down",
|
|
2236
|
+
value: "scale-down"
|
|
2237
|
+
}]
|
|
2238
|
+
}
|
|
2148
2239
|
},
|
|
2149
2240
|
importPath: "@plasmicpkgs/commerce",
|
|
2150
2241
|
importName: "ProductMedia"
|
|
@@ -2154,14 +2245,19 @@ function ProductMedia(props) {
|
|
|
2154
2245
|
|
|
2155
2246
|
var className = props.className,
|
|
2156
2247
|
_props$mediaIndex = props.mediaIndex,
|
|
2157
|
-
mediaIndex = _props$mediaIndex === void 0 ? 0 : _props$mediaIndex
|
|
2248
|
+
mediaIndex = _props$mediaIndex === void 0 ? 0 : _props$mediaIndex,
|
|
2249
|
+
mediaSize = props.mediaSize;
|
|
2158
2250
|
var product = useProduct();
|
|
2159
|
-
var
|
|
2251
|
+
var sliderContext = useProductSliderContext();
|
|
2252
|
+
var image = product == null ? void 0 : product.images[sliderContext != null ? sliderContext : mediaIndex];
|
|
2160
2253
|
return React.createElement("img", {
|
|
2161
|
-
alt: (product == null ? void 0 : product.name) ||
|
|
2254
|
+
alt: (product == null ? void 0 : product.name) || "Product Image",
|
|
2162
2255
|
src: product ? (_image$url = image == null ? void 0 : image.url) != null ? _image$url : "" : placeholderImage,
|
|
2163
|
-
loading:
|
|
2164
|
-
className: className
|
|
2256
|
+
loading: "lazy",
|
|
2257
|
+
className: className,
|
|
2258
|
+
style: {
|
|
2259
|
+
objectFit: mediaSize
|
|
2260
|
+
}
|
|
2165
2261
|
});
|
|
2166
2262
|
}
|
|
2167
2263
|
function registerProductMedia(loader, customProductMediaMeta) {
|
|
@@ -2256,6 +2352,90 @@ function registerProductQuantity(loader, customProductQuantityMeta) {
|
|
|
2256
2352
|
doRegisterComponent(ProductQuantity, customProductQuantityMeta != null ? customProductQuantityMeta : productQuantityMeta);
|
|
2257
2353
|
}
|
|
2258
2354
|
|
|
2355
|
+
var productSliderMeta = {
|
|
2356
|
+
name: "plasmic-commerce-product-slider",
|
|
2357
|
+
displayName: "Product Slider",
|
|
2358
|
+
props: {
|
|
2359
|
+
thumbsVisible: {
|
|
2360
|
+
type: "number",
|
|
2361
|
+
description: "Number of thumbs visible",
|
|
2362
|
+
defaultValue: 4,
|
|
2363
|
+
defaultValueHint: 4
|
|
2364
|
+
},
|
|
2365
|
+
slideContainer: {
|
|
2366
|
+
type: "slot",
|
|
2367
|
+
defaultValue: {
|
|
2368
|
+
type: "vbox",
|
|
2369
|
+
children: [{
|
|
2370
|
+
type: "component",
|
|
2371
|
+
name: "plasmic-commerce-product-media"
|
|
2372
|
+
}]
|
|
2373
|
+
}
|
|
2374
|
+
},
|
|
2375
|
+
thumbsContainer: {
|
|
2376
|
+
type: "slot",
|
|
2377
|
+
defaultValue: {
|
|
2378
|
+
type: "hbox",
|
|
2379
|
+
children: [{
|
|
2380
|
+
type: "component",
|
|
2381
|
+
name: "plasmic-commerce-product-media"
|
|
2382
|
+
}]
|
|
2383
|
+
}
|
|
2384
|
+
},
|
|
2385
|
+
slideSelected: {
|
|
2386
|
+
type: "number",
|
|
2387
|
+
defaultValue: 0,
|
|
2388
|
+
defaultValueHint: 0,
|
|
2389
|
+
description: "Current slide selected"
|
|
2390
|
+
}
|
|
2391
|
+
},
|
|
2392
|
+
importPath: "@plasmicpkgs/commerce",
|
|
2393
|
+
importName: "ProductSlider"
|
|
2394
|
+
};
|
|
2395
|
+
function ProductSlider(props) {
|
|
2396
|
+
var className = props.className,
|
|
2397
|
+
slideContainer = props.slideContainer,
|
|
2398
|
+
thumbsContainer = props.thumbsContainer,
|
|
2399
|
+
_props$thumbsVisible = props.thumbsVisible,
|
|
2400
|
+
thumbsVisible = _props$thumbsVisible === void 0 ? 4 : _props$thumbsVisible,
|
|
2401
|
+
_props$slideSelected = props.slideSelected,
|
|
2402
|
+
slideSelected = _props$slideSelected === void 0 ? 0 : _props$slideSelected;
|
|
2403
|
+
var product = useProduct();
|
|
2404
|
+
|
|
2405
|
+
var _React$useState = React.useState(slideSelected),
|
|
2406
|
+
selected = _React$useState[0],
|
|
2407
|
+
setSelected = _React$useState[1];
|
|
2408
|
+
|
|
2409
|
+
var maximumRight = product.images.length - thumbsVisible;
|
|
2410
|
+
var leftIndex = Math.min(maximumRight, Math.max(0, selected - 1));
|
|
2411
|
+
return React.createElement("div", {
|
|
2412
|
+
className: className
|
|
2413
|
+
}, React.createElement(ProductSliderProvider, {
|
|
2414
|
+
mediaIndex: selected,
|
|
2415
|
+
children: slideContainer
|
|
2416
|
+
}), React.createElement("div", {
|
|
2417
|
+
style: {
|
|
2418
|
+
display: "grid",
|
|
2419
|
+
gridTemplateColumns: "repeat(" + thumbsVisible + ", 1fr)"
|
|
2420
|
+
}
|
|
2421
|
+
}, product.images.slice(leftIndex, leftIndex + thumbsVisible).map(function (image, i) {
|
|
2422
|
+
return repeatedElement(i === 0, React.createElement(ProductSliderProvider, {
|
|
2423
|
+
mediaIndex: leftIndex + i,
|
|
2424
|
+
children: thumbsContainer,
|
|
2425
|
+
onClick: function onClick() {
|
|
2426
|
+
return setSelected(leftIndex + i);
|
|
2427
|
+
}
|
|
2428
|
+
}));
|
|
2429
|
+
})));
|
|
2430
|
+
}
|
|
2431
|
+
function registerProductSlider(loader, customProductSliderMeta) {
|
|
2432
|
+
var doRegisterComponent = function doRegisterComponent() {
|
|
2433
|
+
return loader ? loader.registerComponent.apply(loader, arguments) : registerComponent.apply(void 0, arguments);
|
|
2434
|
+
};
|
|
2435
|
+
|
|
2436
|
+
doRegisterComponent(ProductSlider, customProductSliderMeta != null ? customProductSliderMeta : productSliderMeta);
|
|
2437
|
+
}
|
|
2438
|
+
|
|
2259
2439
|
var productTextFieldMeta = {
|
|
2260
2440
|
name: "plasmic-commerce-product-text-field",
|
|
2261
2441
|
displayName: "Product Text Field",
|
|
@@ -2288,14 +2468,14 @@ function ProductTextField(props) {
|
|
|
2288
2468
|
var value;
|
|
2289
2469
|
|
|
2290
2470
|
if (field === "description") {
|
|
2291
|
-
|
|
2471
|
+
var _product$descriptionH;
|
|
2472
|
+
|
|
2473
|
+
return React.createElement("div", {
|
|
2292
2474
|
className: className,
|
|
2293
2475
|
dangerouslySetInnerHTML: {
|
|
2294
|
-
__html: product.descriptionHtml
|
|
2476
|
+
__html: (_product$descriptionH = product.descriptionHtml) != null ? _product$descriptionH : product.description
|
|
2295
2477
|
}
|
|
2296
|
-
})
|
|
2297
|
-
className: className
|
|
2298
|
-
}, product.description);
|
|
2478
|
+
});
|
|
2299
2479
|
} else {
|
|
2300
2480
|
value = product[field];
|
|
2301
2481
|
}
|
|
@@ -2395,7 +2575,10 @@ var product = {
|
|
|
2395
2575
|
__proto__: null
|
|
2396
2576
|
};
|
|
2397
2577
|
|
|
2398
|
-
|
|
2578
|
+
/*
|
|
2579
|
+
Forked from https://github.com/vercel/commerce/tree/main/packages/commerce/src
|
|
2580
|
+
Changes: Added CategoryImage and depth/children/parent_id to Category
|
|
2581
|
+
*/
|
|
2399
2582
|
|
|
2400
2583
|
var site = {
|
|
2401
2584
|
__proto__: null
|
|
@@ -2411,11 +2594,13 @@ function registerAll(loader) {
|
|
|
2411
2594
|
registerProductQuantity(loader);
|
|
2412
2595
|
registerProductVariantPicker(loader);
|
|
2413
2596
|
registerProductBox(loader);
|
|
2597
|
+
registerProductSlider(loader);
|
|
2414
2598
|
registerProductLink(loader);
|
|
2415
2599
|
registerCategoryCollection(loader);
|
|
2416
2600
|
registerCategoryField(loader);
|
|
2417
2601
|
registerCategoryLink(loader);
|
|
2602
|
+
registerCategoryMedia(loader);
|
|
2418
2603
|
}
|
|
2419
2604
|
|
|
2420
|
-
export { AddToCartButton, CartComponent, cart as CartType, CategoryCollection, CategoryField, CategoryLink, CommerceError, CoreCommerceProvider, FetcherError, ProductBox, ProductCollection, ProductLink, ProductMedia, defaultProduct as ProductPlaceholder, ProductPriceComponent, ProductQuantity, ProductTextField, product as ProductTypes, ProductVariantPicker, site as SiteTypes, ValidationError, addToCartButtonMeta, cartMeta, categoryCollectionMeta, categoryFieldMeta, categoryLinkMeta, fetcher$4 as fetcher, getCommerceProvider, productBoxMeta, productCollectionMeta, productLinkMeta, productMediaMeta, productPriceMeta, productQuantityMeta, productTextFieldMeta, productVariantPickerMeta, registerAddToCartButton, registerAll, registerCart, registerCategoryCollection, registerCategoryField, registerCategoryLink, registerProductBox, registerProductCollection, registerProductLink, registerProductMedia, registerProductPrice, registerProductQuantity, registerProductVariantPicker, registerTextField, useAddItem, useBrands, useCart, useCategories, useCommerce, useProduct$1 as useProduct, useRemoveItem, useSearch, useUpdateItem };
|
|
2605
|
+
export { AddToCartButton, CartComponent, cart as CartType, CategoryCollection, CategoryField, CategoryLink, CategoryMedia, CommerceError, CoreCommerceProvider, FetcherError, ProductBox, ProductCollection, ProductLink, ProductMedia, defaultProduct as ProductPlaceholder, ProductPriceComponent, ProductQuantity, ProductSlider, ProductTextField, product as ProductTypes, ProductVariantPicker, site as SiteTypes, ValidationError, addToCartButtonMeta, cartMeta, categoryCollectionMeta, categoryFieldMeta, categoryLinkMeta, categoryMediaMeta, fetcher$4 as fetcher, getCommerceProvider, productBoxMeta, productCollectionMeta, productLinkMeta, productMediaMeta, productPriceMeta, productQuantityMeta, productSliderMeta, productTextFieldMeta, productVariantPickerMeta, registerAddToCartButton, registerAll, registerCart, registerCategoryCollection, registerCategoryField, registerCategoryLink, registerCategoryMedia, registerProductBox, registerProductCollection, registerProductLink, registerProductMedia, registerProductPrice, registerProductQuantity, registerProductSlider, registerProductVariantPicker, registerTextField, useAddItem, useBrands, useCart, useCategories, useCommerce, useProduct$1 as useProduct, useRemoveItem, useSearch, useUpdateItem };
|
|
2421
2606
|
//# sourceMappingURL=commerce.esm.js.map
|