@plasmicpkgs/commerce 0.0.13 → 0.0.14
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 +146 -9
- 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 +146 -9
- package/dist/commerce.esm.js.map +1 -1
- package/dist/contexts.d.ts +10 -3
- package/dist/registerCategoryMedia.d.ts +10 -0
- package/dist/registerProductSlider.d.ts +14 -0
- package/dist/types/site.d.ts +11 -6
- 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({});
|
|
@@ -1767,6 +1782,38 @@ function registerCategoryLink(loader, customCategoryLinkMeta) {
|
|
|
1767
1782
|
doRegisterComponent(CategoryLink, customCategoryLinkMeta != null ? customCategoryLinkMeta : categoryLinkMeta);
|
|
1768
1783
|
}
|
|
1769
1784
|
|
|
1785
|
+
var categoryMediaMeta = {
|
|
1786
|
+
name: "plasmic-commerce-category-media",
|
|
1787
|
+
displayName: "Category Media",
|
|
1788
|
+
props: {
|
|
1789
|
+
mediaIndex: "number"
|
|
1790
|
+
},
|
|
1791
|
+
importPath: "@plasmicpkgs/commerce",
|
|
1792
|
+
importName: "CategoryMedia"
|
|
1793
|
+
};
|
|
1794
|
+
function CategoryMedia(props) {
|
|
1795
|
+
var _image$url;
|
|
1796
|
+
|
|
1797
|
+
var className = props.className,
|
|
1798
|
+
_props$mediaIndex = props.mediaIndex,
|
|
1799
|
+
mediaIndex = _props$mediaIndex === void 0 ? 0 : _props$mediaIndex;
|
|
1800
|
+
var category = useCategoryContext();
|
|
1801
|
+
var image = category != null && category.images ? category.images[mediaIndex] : undefined;
|
|
1802
|
+
return React.createElement("img", {
|
|
1803
|
+
alt: (category == null ? void 0 : category.name) || "Category Image",
|
|
1804
|
+
src: (_image$url = image == null ? void 0 : image.url) != null ? _image$url : "",
|
|
1805
|
+
loading: "lazy",
|
|
1806
|
+
className: className
|
|
1807
|
+
});
|
|
1808
|
+
}
|
|
1809
|
+
function registerCategoryMedia(loader, customCategoryMediaMeta) {
|
|
1810
|
+
var doRegisterComponent = function doRegisterComponent() {
|
|
1811
|
+
return loader ? loader.registerComponent.apply(loader, arguments) : registerComponent.apply(void 0, arguments);
|
|
1812
|
+
};
|
|
1813
|
+
|
|
1814
|
+
doRegisterComponent(CategoryMedia, customCategoryMediaMeta != null ? customCategoryMediaMeta : categoryMediaMeta);
|
|
1815
|
+
}
|
|
1816
|
+
|
|
1770
1817
|
var fetcher$3 = SWRFetcher;
|
|
1771
1818
|
|
|
1772
1819
|
var fn$3 = function fn(provider) {
|
|
@@ -2156,11 +2203,12 @@ function ProductMedia(props) {
|
|
|
2156
2203
|
_props$mediaIndex = props.mediaIndex,
|
|
2157
2204
|
mediaIndex = _props$mediaIndex === void 0 ? 0 : _props$mediaIndex;
|
|
2158
2205
|
var product = useProduct();
|
|
2159
|
-
var
|
|
2206
|
+
var sliderContext = useProductSliderContext();
|
|
2207
|
+
var image = product == null ? void 0 : product.images[sliderContext != null ? sliderContext : mediaIndex];
|
|
2160
2208
|
return React.createElement("img", {
|
|
2161
|
-
alt: (product == null ? void 0 : product.name) ||
|
|
2209
|
+
alt: (product == null ? void 0 : product.name) || "Product Image",
|
|
2162
2210
|
src: product ? (_image$url = image == null ? void 0 : image.url) != null ? _image$url : "" : placeholderImage,
|
|
2163
|
-
loading:
|
|
2211
|
+
loading: "lazy",
|
|
2164
2212
|
className: className
|
|
2165
2213
|
});
|
|
2166
2214
|
}
|
|
@@ -2256,6 +2304,90 @@ function registerProductQuantity(loader, customProductQuantityMeta) {
|
|
|
2256
2304
|
doRegisterComponent(ProductQuantity, customProductQuantityMeta != null ? customProductQuantityMeta : productQuantityMeta);
|
|
2257
2305
|
}
|
|
2258
2306
|
|
|
2307
|
+
var productSliderMeta = {
|
|
2308
|
+
name: "plasmic-commerce-product-slider",
|
|
2309
|
+
displayName: "Product Slider",
|
|
2310
|
+
props: {
|
|
2311
|
+
thumbsVisible: {
|
|
2312
|
+
type: "number",
|
|
2313
|
+
description: "Number of thumbs visible",
|
|
2314
|
+
defaultValue: 4,
|
|
2315
|
+
defaultValueHint: 4
|
|
2316
|
+
},
|
|
2317
|
+
slideContainer: {
|
|
2318
|
+
type: "slot",
|
|
2319
|
+
defaultValue: {
|
|
2320
|
+
type: "vbox",
|
|
2321
|
+
children: [{
|
|
2322
|
+
type: "component",
|
|
2323
|
+
name: "plasmic-commerce-product-media"
|
|
2324
|
+
}]
|
|
2325
|
+
}
|
|
2326
|
+
},
|
|
2327
|
+
thumbsContainer: {
|
|
2328
|
+
type: "slot",
|
|
2329
|
+
defaultValue: {
|
|
2330
|
+
type: "hbox",
|
|
2331
|
+
children: [{
|
|
2332
|
+
type: "component",
|
|
2333
|
+
name: "plasmic-commerce-product-media"
|
|
2334
|
+
}]
|
|
2335
|
+
}
|
|
2336
|
+
},
|
|
2337
|
+
slideSelected: {
|
|
2338
|
+
type: "number",
|
|
2339
|
+
defaultValue: 0,
|
|
2340
|
+
defaultValueHint: 0,
|
|
2341
|
+
description: "Current slide selected"
|
|
2342
|
+
}
|
|
2343
|
+
},
|
|
2344
|
+
importPath: "@plasmicpkgs/commerce",
|
|
2345
|
+
importName: "ProductSlider"
|
|
2346
|
+
};
|
|
2347
|
+
function ProductSlider(props) {
|
|
2348
|
+
var className = props.className,
|
|
2349
|
+
slideContainer = props.slideContainer,
|
|
2350
|
+
thumbsContainer = props.thumbsContainer,
|
|
2351
|
+
_props$thumbsVisible = props.thumbsVisible,
|
|
2352
|
+
thumbsVisible = _props$thumbsVisible === void 0 ? 4 : _props$thumbsVisible,
|
|
2353
|
+
_props$slideSelected = props.slideSelected,
|
|
2354
|
+
slideSelected = _props$slideSelected === void 0 ? 0 : _props$slideSelected;
|
|
2355
|
+
var product = useProduct();
|
|
2356
|
+
|
|
2357
|
+
var _React$useState = React.useState(slideSelected),
|
|
2358
|
+
selected = _React$useState[0],
|
|
2359
|
+
setSelected = _React$useState[1];
|
|
2360
|
+
|
|
2361
|
+
var maximumRight = product.images.length - thumbsVisible;
|
|
2362
|
+
var leftIndex = Math.min(maximumRight, Math.max(0, selected - 1));
|
|
2363
|
+
return React.createElement("div", {
|
|
2364
|
+
className: className
|
|
2365
|
+
}, React.createElement(ProductSliderProvider, {
|
|
2366
|
+
mediaIndex: selected,
|
|
2367
|
+
children: slideContainer
|
|
2368
|
+
}), React.createElement("div", {
|
|
2369
|
+
style: {
|
|
2370
|
+
display: "grid",
|
|
2371
|
+
gridTemplateColumns: "repeat(" + thumbsVisible + ", 1fr)"
|
|
2372
|
+
}
|
|
2373
|
+
}, product.images.slice(leftIndex, leftIndex + thumbsVisible).map(function (image, i) {
|
|
2374
|
+
return repeatedElement(i === 0, React.createElement(ProductSliderProvider, {
|
|
2375
|
+
mediaIndex: leftIndex + i,
|
|
2376
|
+
children: thumbsContainer,
|
|
2377
|
+
onClick: function onClick() {
|
|
2378
|
+
return setSelected(leftIndex + i);
|
|
2379
|
+
}
|
|
2380
|
+
}));
|
|
2381
|
+
})));
|
|
2382
|
+
}
|
|
2383
|
+
function registerProductSlider(loader, customProductSliderMeta) {
|
|
2384
|
+
var doRegisterComponent = function doRegisterComponent() {
|
|
2385
|
+
return loader ? loader.registerComponent.apply(loader, arguments) : registerComponent.apply(void 0, arguments);
|
|
2386
|
+
};
|
|
2387
|
+
|
|
2388
|
+
doRegisterComponent(ProductSlider, customProductSliderMeta != null ? customProductSliderMeta : productSliderMeta);
|
|
2389
|
+
}
|
|
2390
|
+
|
|
2259
2391
|
var productTextFieldMeta = {
|
|
2260
2392
|
name: "plasmic-commerce-product-text-field",
|
|
2261
2393
|
displayName: "Product Text Field",
|
|
@@ -2288,14 +2420,14 @@ function ProductTextField(props) {
|
|
|
2288
2420
|
var value;
|
|
2289
2421
|
|
|
2290
2422
|
if (field === "description") {
|
|
2291
|
-
|
|
2423
|
+
var _product$descriptionH;
|
|
2424
|
+
|
|
2425
|
+
return React.createElement("div", {
|
|
2292
2426
|
className: className,
|
|
2293
2427
|
dangerouslySetInnerHTML: {
|
|
2294
|
-
__html: product.descriptionHtml
|
|
2428
|
+
__html: (_product$descriptionH = product.descriptionHtml) != null ? _product$descriptionH : product.description
|
|
2295
2429
|
}
|
|
2296
|
-
})
|
|
2297
|
-
className: className
|
|
2298
|
-
}, product.description);
|
|
2430
|
+
});
|
|
2299
2431
|
} else {
|
|
2300
2432
|
value = product[field];
|
|
2301
2433
|
}
|
|
@@ -2395,7 +2527,10 @@ var product = {
|
|
|
2395
2527
|
__proto__: null
|
|
2396
2528
|
};
|
|
2397
2529
|
|
|
2398
|
-
|
|
2530
|
+
/*
|
|
2531
|
+
Forked from https://github.com/vercel/commerce/tree/main/packages/commerce/src
|
|
2532
|
+
Changes: Added CategoryImage
|
|
2533
|
+
*/
|
|
2399
2534
|
|
|
2400
2535
|
var site = {
|
|
2401
2536
|
__proto__: null
|
|
@@ -2411,10 +2546,12 @@ function registerAll(loader) {
|
|
|
2411
2546
|
registerProductQuantity(loader);
|
|
2412
2547
|
registerProductVariantPicker(loader);
|
|
2413
2548
|
registerProductBox(loader);
|
|
2549
|
+
registerProductSlider(loader);
|
|
2414
2550
|
registerProductLink(loader);
|
|
2415
2551
|
registerCategoryCollection(loader);
|
|
2416
2552
|
registerCategoryField(loader);
|
|
2417
2553
|
registerCategoryLink(loader);
|
|
2554
|
+
registerCategoryMedia(loader);
|
|
2418
2555
|
}
|
|
2419
2556
|
|
|
2420
2557
|
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 };
|