@propeller-commerce/propeller-v2-react-ui 0.27.0 → 0.28.0

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/index.js CHANGED
@@ -2,7 +2,7 @@
2
2
  import { getLabel, getLocalizedValue, formatPrice, localeForLanguage, getClusterSku, getClusterImageUrl, isContentHidden, getProductSku, getProductImageUrl, createServices, isCheckoutAllowed, err, ok, formatSurcharge, deriveUserMode, isContact, isCustomer, getAddresses, attributeNameMatches, getAttributeDisplayName, filterProductsBySelections, extractAttributeValues, buildInventoryFilter, findPurchaserPac, isOverAuthorizationLimit, MIN_STOCK_THRESHOLD, getNettedBonusItems, getLanguageString, collectAttributeValues, getCountryName, resolveLanguageEntry, getLanguageUri } from '@propeller-commerce/propeller-v2-core-ui';
3
3
  export * from '@propeller-commerce/propeller-v2-core-ui';
4
4
  import * as React6 from 'react';
5
- import { createContext, useState, useRef, useCallback, useEffect, useMemo, useContext, useSyncExternalStore } from 'react';
5
+ import { createContext, useState, useContext, useRef, useCallback, useEffect, useMemo, useSyncExternalStore } from 'react';
6
6
  import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
7
7
  import { ProductStatus, ProductSortField, SortOrder, CrossupsellType, PriceDisplay, CartStatus, CartAddressType, Gender, YesNo, AddressType, MagicTokenService, PaymentStatuses, OrderSearchFields, OrderItemClass, ProductSearchableField, machineService, PurchaseRole, AttributeType, OrderSortField, OrderType, BundleCondition, OrderDiscountType } from '@propeller-commerce/propeller-sdk-v2';
8
8
  import { clsx } from 'clsx';
@@ -21,6 +21,9 @@ function PropellerProvider({ value, children }) {
21
21
  function usePropellerDeps() {
22
22
  return useContext(PropellerDepsContext);
23
23
  }
24
+ function useImgComponent() {
25
+ return useContext(PropellerDepsContext)?.imgComponent;
26
+ }
24
27
  function useRequiredPropellerDeps() {
25
28
  const deps = useContext(PropellerDepsContext);
26
29
  if (!deps) {
@@ -4676,8 +4679,25 @@ function ActionCode(rawProps) {
4676
4679
  ] });
4677
4680
  }
4678
4681
  var ActionCode_default = ActionCode;
4682
+ function PropellerImg({ as: Injected, ...props }) {
4683
+ if (Injected) return /* @__PURE__ */ jsx(Injected, { ...props });
4684
+ const { src, alt, className, width, height, loading, onClick } = props;
4685
+ return /* @__PURE__ */ jsx(
4686
+ "img",
4687
+ {
4688
+ src,
4689
+ alt,
4690
+ className,
4691
+ width,
4692
+ height,
4693
+ loading,
4694
+ onClick
4695
+ }
4696
+ );
4697
+ }
4679
4698
  function CartBonusItems(rawProps) {
4680
4699
  const props = useInfraProps(rawProps);
4700
+ const Img = useImgComponent();
4681
4701
  const items = props.bonusItems ?? props.cart?.bonusItems ?? [];
4682
4702
  if (items.length === 0) return null;
4683
4703
  const currency = props.currency ?? "\u20AC";
@@ -4695,20 +4715,21 @@ function CartBonusItems(rawProps) {
4695
4715
  {
4696
4716
  className: "propeller-cart-bonus-item flex items-center gap-4 bg-card p-4 rounded-container shadow-sm border border-border",
4697
4717
  children: [
4698
- /* @__PURE__ */ jsx("div", { className: "propeller-cart-bonus-item__media w-20 h-20 flex-shrink-0 bg-surface-hover rounded-control overflow-hidden flex items-center justify-center", children: img ? /* @__PURE__ */ jsx("img", { className: "propeller-cart-bonus-item__image w-full h-full object-contain p-1", src: img, alt: name }) : /* @__PURE__ */ jsx(
4718
+ /* @__PURE__ */ jsx("div", { className: "propeller-cart-bonus-item__media w-20 h-20 flex-shrink-0 bg-surface-hover rounded-control overflow-hidden flex items-center justify-center", children: img ? /* @__PURE__ */ jsx(PropellerImg, { as: Img, className: "propeller-cart-bonus-item__image w-full h-full object-contain p-1", src: img, alt: name, loading: "lazy" }) : /* @__PURE__ */ jsx(
4699
4719
  "svg",
4700
4720
  {
4721
+ "aria-hidden": "true",
4701
4722
  fill: "none",
4702
4723
  viewBox: "0 0 24 24",
4703
4724
  stroke: "currentColor",
4704
- className: "propeller-cart-bonus-item__image-placeholder w-8 h-8 text-foreground-subtle",
4705
- strokeWidth: 1.5,
4725
+ className: "propeller-cart-bonus-item__image-placeholder w-10 h-10 text-foreground-subtle",
4726
+ strokeWidth: 1,
4706
4727
  children: /* @__PURE__ */ jsx(
4707
4728
  "path",
4708
4729
  {
4709
4730
  strokeLinecap: "round",
4710
4731
  strokeLinejoin: "round",
4711
- d: "M2.25 15.75l5.159-5.159a2.25 2.25 0 013.182 0l5.159 5.159m-1.5-1.5l1.409-1.409a2.25 2.25 0 013.182 0l2.909 2.909M3.75 21h16.5A2.25 2.25 0 0022.5 18.75V5.25A2.25 2.25 0 0020.25 3H3.75A2.25 2.25 0 001.5 5.25v13.5A2.25 2.25 0 003.75 21z"
4732
+ d: "M4 16l4.586-4.586a2 2 0 012.828 0L16 16m-2-2l1.586-1.586a2 2 0 012.828 0L20 14m-6-6h.01M6 20h12a2 2 0 002-2V6a2 2 0 00-2-2H6a2 2 0 00-2 2v12a2 2 0 002 2z"
4712
4733
  }
4713
4734
  )
4714
4735
  }
@@ -4753,6 +4774,7 @@ function mergeGrouped(p) {
4753
4774
  }
4754
4775
  function AddToCart(rawProps) {
4755
4776
  const props = mergeGrouped(useInfraProps(rawProps));
4777
+ const Img = useImgComponent();
4756
4778
  const { cart, loading, checkoutAllowed, addItem: addItem2, getMinQuantity, getStep } = useCart({
4757
4779
  graphqlClient: props.graphqlClient,
4758
4780
  user: props.user ?? null,
@@ -5109,27 +5131,30 @@ function AddToCart(rawProps) {
5109
5131
  /* @__PURE__ */ jsxs("div", { className: "propeller-add-to-cart__modal-body px-6 py-5", children: [
5110
5132
  /* @__PURE__ */ jsxs("div", { className: "propeller-add-to-cart__modal-product flex items-start gap-4", children: [
5111
5133
  !!getModalImageUrl() ? /* @__PURE__ */ jsx(
5112
- "img",
5134
+ PropellerImg,
5113
5135
  {
5136
+ as: Img,
5114
5137
  className: "propeller-add-to-cart__modal-image w-16 h-16 object-contain rounded border border-border-subtle flex-shrink-0",
5115
5138
  src: getModalImageUrl(),
5116
- alt: getModalName()
5139
+ alt: getModalName(),
5140
+ loading: "lazy"
5117
5141
  }
5118
5142
  ) : null,
5119
5143
  !getModalImageUrl() ? /* @__PURE__ */ jsx("div", { className: "propeller-add-to-cart__modal-image-placeholder w-16 h-16 flex items-center justify-center rounded border border-border-subtle flex-shrink-0 bg-surface-hover", children: /* @__PURE__ */ jsx(
5120
5144
  "svg",
5121
5145
  {
5146
+ "aria-hidden": "true",
5122
5147
  fill: "none",
5123
5148
  viewBox: "0 0 24 24",
5124
5149
  stroke: "currentColor",
5125
5150
  className: "w-8 h-8 text-foreground-subtle",
5126
- strokeWidth: 1.5,
5151
+ strokeWidth: 1,
5127
5152
  children: /* @__PURE__ */ jsx(
5128
5153
  "path",
5129
5154
  {
5130
5155
  strokeLinecap: "round",
5131
5156
  strokeLinejoin: "round",
5132
- d: "M2.25 15.75l5.159-5.159a2.25 2.25 0 013.182 0l5.159 5.159m-1.5-1.5l1.409-1.409a2.25 2.25 0 013.182 0l2.909 2.909M3.75 21h16.5A2.25 2.25 0 0022.5 18.75V5.25A2.25 2.25 0 0020.25 3H3.75A2.25 2.25 0 001.5 5.25v13.5A2.25 2.25 0 003.75 21z"
5157
+ d: "M4 16l4.586-4.586a2 2 0 012.828 0L16 16m-2-2l1.586-1.586a2 2 0 012.828 0L20 14m-6-6h.01M6 20h12a2 2 0 002-2V6a2 2 0 00-2-2H6a2 2 0 00-2 2v12a2 2 0 002 2z"
5133
5158
  }
5134
5159
  )
5135
5160
  }
@@ -7189,29 +7214,33 @@ function CartItem(rawProps) {
7189
7214
  }
7190
7215
  function CartItemImage(props = {}) {
7191
7216
  const { derived } = useCartItemContext();
7217
+ const Img = useImgComponent();
7192
7218
  return /* @__PURE__ */ jsxs("div", { className: props.className ?? "propeller-cart-item__media w-20 h-20 md:w-24 md:h-24 flex-shrink-0 bg-surface-hover flex items-center justify-center overflow-hidden relative rounded-control", children: [
7193
7219
  !!derived.imageUrl ? /* @__PURE__ */ jsx(
7194
- "img",
7220
+ PropellerImg,
7195
7221
  {
7222
+ as: Img,
7196
7223
  className: "propeller-cart-item__image w-full h-full object-contain p-1",
7197
7224
  src: derived.imageUrl,
7198
- alt: derived.name
7225
+ alt: derived.name,
7226
+ loading: "lazy"
7199
7227
  }
7200
7228
  ) : null,
7201
7229
  !derived.imageUrl ? /* @__PURE__ */ jsx(
7202
7230
  "svg",
7203
7231
  {
7232
+ "aria-hidden": "true",
7204
7233
  fill: "none",
7205
7234
  viewBox: "0 0 24 24",
7206
7235
  stroke: "currentColor",
7207
- className: "propeller-cart-item__image-placeholder w-8 h-8 text-foreground-subtle",
7208
- strokeWidth: 1.5,
7236
+ className: "propeller-cart-item__image-placeholder w-10 h-10 md:w-12 md:h-12 text-foreground-subtle",
7237
+ strokeWidth: 1,
7209
7238
  children: /* @__PURE__ */ jsx(
7210
7239
  "path",
7211
7240
  {
7212
7241
  strokeLinecap: "round",
7213
7242
  strokeLinejoin: "round",
7214
- d: "M2.25 15.75l5.159-5.159a2.25 2.25 0 013.182 0l5.159 5.159m-1.5-1.5l1.409-1.409a2.25 2.25 0 013.182 0l2.909 2.909M3.75 21h16.5A2.25 2.25 0 0022.5 18.75V5.25A2.25 2.25 0 0020.25 3H3.75A2.25 2.25 0 001.5 5.25v13.5A2.25 2.25 0 003.75 21z"
7243
+ d: "M4 16l4.586-4.586a2 2 0 012.828 0L16 16m-2-2l1.586-1.586a2 2 0 012.828 0L20 14m-6-6h.01M6 20h12a2 2 0 002-2V6a2 2 0 00-2-2H6a2 2 0 00-2 2v12a2 2 0 002 2z"
7215
7244
  }
7216
7245
  )
7217
7246
  }
@@ -7332,6 +7361,7 @@ function CartItemNotes(props = {}) {
7332
7361
  }
7333
7362
  function CartItemCrossupsells(props = {}) {
7334
7363
  const { resolved, state, helpers, handlers } = useCartItemContext();
7364
+ const Img = useImgComponent();
7335
7365
  if (state.visibleCrossupsells.length === 0) return null;
7336
7366
  return /* @__PURE__ */ jsxs("div", { className: props.className ?? "propeller-cart-item__crossupsells mt-3 pt-3 border-t border-border", children: [
7337
7367
  /* @__PURE__ */ jsx("p", { className: "propeller-cart-item__crossupsells-label text-xs font-semibold text-muted-foreground uppercase tracking-wider mb-2", children: getLabel(resolved.labels, "crossupsellTitle", "You might also like") }),
@@ -7348,11 +7378,13 @@ function CartItemCrossupsells(props = {}) {
7348
7378
  onClick: (e) => handlers.onCrossupsellClick(item, e),
7349
7379
  children: [
7350
7380
  !!helpers.getCrossupsellImageUrl(item) ? /* @__PURE__ */ jsx(
7351
- "img",
7381
+ PropellerImg,
7352
7382
  {
7383
+ as: Img,
7353
7384
  className: "propeller-cart-item__crossupsell-image w-10 h-10 object-contain rounded flex-shrink-0",
7354
7385
  src: helpers.getCrossupsellImageUrl(item),
7355
- alt: helpers.getCrossupsellName(item)
7386
+ alt: helpers.getCrossupsellName(item),
7387
+ loading: "lazy"
7356
7388
  }
7357
7389
  ) : null,
7358
7390
  /* @__PURE__ */ jsxs("div", { className: "min-w-0", children: [
@@ -7781,7 +7813,7 @@ function CartIconAndSidebar(rawProps) {
7781
7813
  includeTax: useTax,
7782
7814
  className: "propeller-cart-icon__item",
7783
7815
  children: [
7784
- /* @__PURE__ */ jsx(CartItem_default.Image, { className: "w-20 h-20 flex-shrink-0 bg-surface-hover rounded-control overflow-hidden border border-border-subtle" }),
7816
+ /* @__PURE__ */ jsx(CartItem_default.Image, { className: "w-20 h-20 flex-shrink-0 bg-surface-hover rounded-control overflow-hidden border border-border-subtle flex items-center justify-center relative" }),
7785
7817
  /* @__PURE__ */ jsxs("div", { className: "flex-1 min-w-0 flex flex-col justify-between py-1", children: [
7786
7818
  /* @__PURE__ */ jsxs("div", { children: [
7787
7819
  /* @__PURE__ */ jsx(CartItem_default.Title, { className: "propeller-cart-icon__item-name text-sm font-medium hover:text-primary line-clamp-2" }),
@@ -8548,6 +8580,7 @@ function ClusterCardImage(props) {
8548
8580
  const showFavorite = props.showFavorite ?? !!resolved.enableAddFavorite;
8549
8581
  const isRow = derived.isRow;
8550
8582
  const InjectedImage = resolved.imageComponent;
8583
+ const Img = useImgComponent();
8551
8584
  if (InjectedImage) {
8552
8585
  return /* @__PURE__ */ jsx(
8553
8586
  InjectedImage,
@@ -8566,13 +8599,15 @@ function ClusterCardImage(props) {
8566
8599
  className: props.className ?? `propeller-cluster-card__media relative overflow-hidden bg-surface-hover ${isRow ? "w-20 h-20 flex-shrink-0 p-2" : "aspect-[4/3] sm:aspect-square p-2 sm:p-4"}`,
8567
8600
  children: [
8568
8601
  /* @__PURE__ */ jsx("a", { className: "block h-full w-full", href: derived.clusterUrl, onClick: handleClusterClick, children: derived.imageUrl ? /* @__PURE__ */ jsx(
8569
- "img",
8602
+ PropellerImg,
8570
8603
  {
8604
+ as: Img,
8571
8605
  className: "propeller-cluster-card__image h-full w-full object-contain transition-transform duration-300 group-hover:scale-105",
8572
8606
  src: derived.imageUrl,
8573
- alt: derived.name
8607
+ alt: derived.name,
8608
+ loading: "lazy"
8574
8609
  }
8575
- ) : /* @__PURE__ */ jsx("div", { className: "propeller-cluster-card__image-placeholder flex h-full w-full items-center justify-center text-foreground-subtle", children: /* @__PURE__ */ jsx("svg", { fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", className: "h-16 w-16", children: /* @__PURE__ */ jsx(
8610
+ ) : /* @__PURE__ */ jsx("div", { className: "propeller-cluster-card__image-placeholder flex h-full w-full items-center justify-center text-foreground-subtle", children: /* @__PURE__ */ jsx("svg", { "aria-hidden": "true", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", className: "h-16 w-16", children: /* @__PURE__ */ jsx(
8576
8611
  "path",
8577
8612
  {
8578
8613
  strokeLinecap: "round",
@@ -8790,6 +8825,7 @@ function getMachineImageUrl(machine) {
8790
8825
  }
8791
8826
  function MachineCard(props) {
8792
8827
  const { machine, href, language } = props;
8828
+ const Img = useImgComponent();
8793
8829
  const Wrapper = href ? "a" : "div";
8794
8830
  const showImage = props.showImage ?? true;
8795
8831
  const showDescription = props.showDescription ?? false;
@@ -8808,8 +8844,9 @@ function MachineCard(props) {
8808
8844
  className: "flex h-full flex-col focus:outline-none focus-visible:ring-2 focus-visible:ring-primary",
8809
8845
  children: [
8810
8846
  showImage && /* @__PURE__ */ jsx("div", { className: "propeller-machine-card__image aspect-square w-full overflow-hidden bg-background-subtle", children: imageUrl ? /* @__PURE__ */ jsx(
8811
- "img",
8847
+ PropellerImg,
8812
8848
  {
8849
+ as: Img,
8813
8850
  src: imageUrl,
8814
8851
  alt: name,
8815
8852
  loading: "lazy",
@@ -8826,6 +8863,7 @@ function MachineCard(props) {
8826
8863
  children: /* @__PURE__ */ jsx(
8827
8864
  "svg",
8828
8865
  {
8866
+ "aria-hidden": "true",
8829
8867
  className: "h-12 w-12",
8830
8868
  fill: "none",
8831
8869
  stroke: "currentColor",
@@ -9130,6 +9168,7 @@ function ProductCardImage(props) {
9130
9168
  const showFavorite = props.showFavorite ?? !!resolved.enableAddFavorite;
9131
9169
  const isRow = derived.isRow;
9132
9170
  const InjectedImage = resolved.imageComponent;
9171
+ const Img = useImgComponent();
9133
9172
  if (InjectedImage) {
9134
9173
  return /* @__PURE__ */ jsx(
9135
9174
  InjectedImage,
@@ -9148,13 +9187,15 @@ function ProductCardImage(props) {
9148
9187
  className: props.className ?? `propeller-product-card__media relative overflow-hidden bg-surface-hover ${isRow ? "w-20 h-20 flex-shrink-0 p-2" : "aspect-[4/3] sm:aspect-square p-2 sm:p-4"}`,
9149
9188
  children: [
9150
9189
  /* @__PURE__ */ jsx("a", { className: "block h-full w-full", href: derived.productUrl, onClick: handleProductClick, children: derived.imageUrl ? /* @__PURE__ */ jsx(
9151
- "img",
9190
+ PropellerImg,
9152
9191
  {
9192
+ as: Img,
9153
9193
  className: "propeller-product-card__image h-full w-full object-contain transition-transform duration-300 group-hover:scale-105",
9154
9194
  src: derived.imageUrl,
9155
- alt: derived.name
9195
+ alt: derived.name,
9196
+ loading: "lazy"
9156
9197
  }
9157
- ) : /* @__PURE__ */ jsx("div", { className: "propeller-product-card__image-placeholder flex h-full w-full items-center justify-center text-foreground-subtle", children: /* @__PURE__ */ jsx("svg", { fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", className: "h-16 w-16", children: /* @__PURE__ */ jsx(
9198
+ ) : /* @__PURE__ */ jsx("div", { className: "propeller-product-card__image-placeholder flex h-full w-full items-center justify-center text-foreground-subtle", children: /* @__PURE__ */ jsx("svg", { "aria-hidden": "true", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", className: "h-16 w-16", children: /* @__PURE__ */ jsx(
9158
9199
  "path",
9159
9200
  {
9160
9201
  strokeLinecap: "round",
@@ -11009,6 +11050,7 @@ function MachinePartsSearch(props) {
11009
11050
  ] });
11010
11051
  }
11011
11052
  function ClusterConfigurator(props) {
11053
+ const Img = useImgComponent();
11012
11054
  const { settingsWithValues, handleAttributeSelect, initFromProduct } = useClusterConfigurator({
11013
11055
  products: props.products,
11014
11056
  config: props.config,
@@ -11099,7 +11141,7 @@ function ClusterConfigurator(props) {
11099
11141
  "data-selected": setting.selectedValue === val ? "true" : "false",
11100
11142
  className: `propeller-cluster-configurator__image-swatch relative w-16 h-16 rounded-control border-2 overflow-hidden transition-all ${setting.disabled ? "opacity-50 cursor-not-allowed" : "cursor-pointer"} ${setting.selectedValue === val ? "border-secondary ring-2 ring-secondary/30 ring-offset-1" : "border-border hover:border-secondary/30"}`,
11101
11143
  children: [
11102
- /* @__PURE__ */ jsx("img", { className: "propeller-cluster-configurator__image w-full h-full object-cover", src: val, alt: val }),
11144
+ /* @__PURE__ */ jsx(PropellerImg, { as: Img, className: "propeller-cluster-configurator__image w-full h-full object-cover", src: val, alt: val, loading: "lazy" }),
11103
11145
  setting.selectedValue === val ? /* @__PURE__ */ jsx("div", { className: "propeller-cluster-configurator__image-check absolute inset-0 bg-secondary bg-opacity-20 flex items-center justify-center", children: /* @__PURE__ */ jsx(
11104
11146
  "svg",
11105
11147
  {
@@ -11199,6 +11241,7 @@ function getProductImageUrl4(product) {
11199
11241
  }
11200
11242
  function ClusterOptions(rawProps) {
11201
11243
  const props = useInfraProps(rawProps);
11244
+ const Img = useImgComponent();
11202
11245
  const [selectedProductIds, setSelectedProductIds] = useState({});
11203
11246
  function getOptionsForRender() {
11204
11247
  const language = props.language;
@@ -11285,20 +11328,23 @@ function ClusterOptions(rawProps) {
11285
11328
  option.hasError ? /* @__PURE__ */ jsx("p", { className: "propeller-cluster-options__error mt-1 text-xs text-destructive", children: getLabel(props.labels, "requiredError", "This option is required") }) : null,
11286
11329
  option.hasSelection ? /* @__PURE__ */ jsxs("div", { className: "propeller-cluster-options__preview mt-3 flex items-center gap-3 rounded-container border border-border-subtle bg-surface-hover p-3", children: [
11287
11330
  !!option.previewImageUrl ? /* @__PURE__ */ jsx(
11288
- "img",
11331
+ PropellerImg,
11289
11332
  {
11333
+ as: Img,
11290
11334
  className: "propeller-cluster-options__preview-image h-12 w-12 flex-shrink-0 rounded border border-border-subtle bg-card object-contain",
11291
11335
  src: option.previewImageUrl,
11292
- alt: option.previewName
11336
+ alt: option.previewName,
11337
+ loading: "lazy"
11293
11338
  }
11294
11339
  ) : null,
11295
11340
  !option.previewImageUrl ? /* @__PURE__ */ jsx("div", { className: "propeller-cluster-options__preview-image-placeholder flex h-12 w-12 flex-shrink-0 items-center justify-center rounded border border-border bg-surface-hover", children: /* @__PURE__ */ jsx(
11296
11341
  "svg",
11297
11342
  {
11343
+ "aria-hidden": "true",
11298
11344
  fill: "none",
11299
11345
  stroke: "currentColor",
11300
11346
  viewBox: "0 0 24 24",
11301
- className: "h-5 w-5 text-foreground-subtle",
11347
+ className: "h-6 w-6 text-foreground-subtle",
11302
11348
  children: /* @__PURE__ */ jsx(
11303
11349
  "path",
11304
11350
  {
@@ -11782,19 +11828,22 @@ function FavoriteListItem(rawProps) {
11782
11828
  }
11783
11829
  function FavoriteListItemImage(props) {
11784
11830
  const { derived, handleItemClick, resolved } = useFavoriteListItemContext();
11831
+ const Img = useImgComponent();
11785
11832
  const { imageUrl, name, productUrl } = derived;
11786
11833
  const linkable = resolved.titleLinkable !== false;
11787
11834
  const wrapperClass = props.className ?? "propeller-favorite-list-item__media relative w-16 h-16 flex-shrink-0 overflow-hidden rounded-control bg-surface-hover p-1";
11788
11835
  const inner = /* @__PURE__ */ jsxs(Fragment, { children: [
11789
11836
  !!imageUrl ? /* @__PURE__ */ jsx(
11790
- "img",
11837
+ PropellerImg,
11791
11838
  {
11839
+ as: Img,
11792
11840
  className: "propeller-favorite-list-item__image h-full w-full object-contain",
11793
11841
  src: imageUrl,
11794
- alt: name
11842
+ alt: name,
11843
+ loading: "lazy"
11795
11844
  }
11796
11845
  ) : null,
11797
- !imageUrl ? /* @__PURE__ */ jsx("div", { className: "propeller-favorite-list-item__image-placeholder flex h-full w-full items-center justify-center text-foreground-subtle", children: /* @__PURE__ */ jsx("svg", { fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", className: "h-8 w-8", children: /* @__PURE__ */ jsx(
11846
+ !imageUrl ? /* @__PURE__ */ jsx("div", { className: "propeller-favorite-list-item__image-placeholder flex h-full w-full items-center justify-center text-foreground-subtle", children: /* @__PURE__ */ jsx("svg", { "aria-hidden": "true", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", className: "h-10 w-10", children: /* @__PURE__ */ jsx(
11798
11847
  "path",
11799
11848
  {
11800
11849
  strokeLinecap: "round",
@@ -11992,6 +12041,7 @@ FavoriteListItemExport.Actions = FavoriteListItemActions;
11992
12041
  var FavoriteListItem_default = FavoriteListItemExport;
11993
12042
  function FavoriteListDetails(rawProps) {
11994
12043
  const props = useInfraProps(rawProps);
12044
+ const Img = useImgComponent();
11995
12045
  const FavoriteListItemImpl = props.favoriteListItemComponent ?? FavoriteListItem_default;
11996
12046
  const GridPaginationImpl = props.gridPaginationComponent ?? GridPagination_default;
11997
12047
  const { addToList } = useFavorites({
@@ -12573,11 +12623,13 @@ function FavoriteListDetails(rawProps) {
12573
12623
  "data-adding": isAdding ? "true" : "false",
12574
12624
  children: [
12575
12625
  /* @__PURE__ */ jsx("div", { className: "propeller-favorite-list-details__search-item-media h-14 w-14 flex-shrink-0 rounded-control bg-surface-hover overflow-hidden flex items-center justify-center", children: getSearchItemImage(item) ? /* @__PURE__ */ jsx(
12576
- "img",
12626
+ PropellerImg,
12577
12627
  {
12628
+ as: Img,
12578
12629
  src: getSearchItemImage(item),
12579
12630
  alt: getSearchItemName(item),
12580
- className: "h-full w-full object-contain"
12631
+ className: "h-full w-full object-contain",
12632
+ loading: "lazy"
12581
12633
  }
12582
12634
  ) : /* @__PURE__ */ jsxs(
12583
12635
  "svg",
@@ -13285,6 +13337,7 @@ function getBundleNonLeaders(item) {
13285
13337
  }
13286
13338
  function ItemsOverview(rawProps) {
13287
13339
  const props = useInfraProps(rawProps);
13340
+ const Img = useImgComponent();
13288
13341
  const language = props.language;
13289
13342
  const useTax = !!props.includeTax;
13290
13343
  const containerClass = props.itemsOverviewContainerClass || "cart-items-overview";
@@ -13343,26 +13396,29 @@ function ItemsOverview(rawProps) {
13343
13396
  "data-bundle": isBundle ? "true" : "false",
13344
13397
  children: [
13345
13398
  showImage ? /* @__PURE__ */ jsx("div", { className: "propeller-items-overview__item-media w-16 h-16 flex-shrink-0 bg-surface-hover rounded-control overflow-hidden border border-border-subtle flex items-center justify-center", children: getItemImageUrl(item) ? /* @__PURE__ */ jsx(
13346
- "img",
13399
+ PropellerImg,
13347
13400
  {
13401
+ as: Img,
13348
13402
  className: "propeller-items-overview__item-image w-full h-full object-contain p-1.5",
13349
13403
  src: getItemImageUrl(item),
13350
- alt: getItemName(item, language)
13404
+ alt: getItemName(item, language),
13405
+ loading: "lazy"
13351
13406
  }
13352
13407
  ) : /* @__PURE__ */ jsx(
13353
13408
  "svg",
13354
13409
  {
13410
+ "aria-hidden": "true",
13355
13411
  fill: "none",
13356
13412
  viewBox: "0 0 24 24",
13357
13413
  stroke: "currentColor",
13358
- strokeWidth: "1.5",
13359
- className: "propeller-items-overview__item-image-placeholder w-6 h-6 text-foreground-subtle",
13414
+ strokeWidth: "1",
13415
+ className: "propeller-items-overview__item-image-placeholder w-8 h-8 text-foreground-subtle",
13360
13416
  children: /* @__PURE__ */ jsx(
13361
13417
  "path",
13362
13418
  {
13363
13419
  strokeLinecap: "round",
13364
13420
  strokeLinejoin: "round",
13365
- d: "M2.25 15.75l5.159-5.159a2.25 2.25 0 013.182 0l5.159 5.159m-1.5-1.5l1.409-1.409a2.25 2.25 0 013.182 0l2.909 2.909M3.75 21h16.5A2.25 2.25 0 0022.5 18.75V5.25A2.25 2.25 0 0020.25 3H3.75A2.25 2.25 0 001.5 5.25v13.5A2.25 2.25 0 003.75 21z"
13421
+ d: "M4 16l4.586-4.586a2 2 0 012.828 0L16 16m-2-2l1.586-1.586a2 2 0 012.828 0L20 14m-6-6h.01M6 20h12a2 2 0 002-2V6a2 2 0 00-2-2H6a2 2 0 00-2 2v12a2 2 0 002 2z"
13366
13422
  }
13367
13423
  )
13368
13424
  }
@@ -13986,11 +14042,13 @@ function OrderItemCard(props) {
13986
14042
  className: `propeller-order-item-card__cell propeller-order-item-card__cell--product ${isChildItem ? "px-6 py-2 pl-28" : "px-6 py-4"}`,
13987
14043
  children: /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-4", children: [
13988
14044
  showImage ? productImage ? /* @__PURE__ */ jsx("div", { className: "propeller-order-item-card__media relative w-16 h-16 flex-shrink-0 rounded overflow-hidden", children: /* @__PURE__ */ jsx(
13989
- "img",
14045
+ PropellerImg,
13990
14046
  {
14047
+ as: props.imgComponent,
13991
14048
  className: "propeller-order-item-card__image object-cover w-full h-full",
13992
14049
  src: productImage,
13993
- alt: productName
14050
+ alt: productName,
14051
+ loading: "lazy"
13994
14052
  }
13995
14053
  ) }) : /* @__PURE__ */ jsx("div", { className: "propeller-order-item-card__image-placeholder w-16 h-16 bg-surface-hover rounded flex items-center justify-center text-foreground-subtle text-xs", children: getLabel(props.labels, "noImage", "No Img") }) : null,
13996
14054
  /* @__PURE__ */ jsxs("div", { children: [
@@ -14757,6 +14815,7 @@ function QuickOrderInner(props) {
14757
14815
  className,
14758
14816
  labels
14759
14817
  } = props;
14818
+ const Img = useImgComponent();
14760
14819
  const user = props.user ?? null;
14761
14820
  const graphqlClient = props.graphqlClient;
14762
14821
  const displayPrice = (n) => props.formatPrice ? props.formatPrice(n) : formatPrice(n, { symbol: currency, locale: localeForLanguage(props.language) });
@@ -14988,7 +15047,7 @@ function QuickOrderInner(props) {
14988
15047
  children: [
14989
15048
  m.imageUrl ? (
14990
15049
  // eslint-disable-next-line @next/next/no-img-element
14991
- /* @__PURE__ */ jsx("img", { src: m.imageUrl, alt: "", width: 32, height: 32, className: "rounded object-cover" })
15050
+ /* @__PURE__ */ jsx(PropellerImg, { as: Img, src: m.imageUrl, alt: "", width: 32, height: 32, className: "rounded object-cover", loading: "lazy" })
14992
15051
  ) : null,
14993
15052
  /* @__PURE__ */ jsxs("span", { className: "flex-1", children: [
14994
15053
  /* @__PURE__ */ jsx("span", { className: "block text-foreground", children: m.name }),
@@ -15653,6 +15712,7 @@ function getProductName4(product, language) {
15653
15712
  }
15654
15713
  function ProductBundles(rawProps) {
15655
15714
  const props = useInfraProps(rawProps);
15715
+ const Img = useImgComponent();
15656
15716
  const language = props.language;
15657
15717
  const currencySymbol = props.currency ?? "\u20AC";
15658
15718
  const money = (value) => formatPrice(value, { symbol: currencySymbol, locale: localeForLanguage(props.language) });
@@ -15788,11 +15848,13 @@ function ProductBundles(rawProps) {
15788
15848
  ) }) : null,
15789
15849
  /* @__PURE__ */ jsxs("div", { className: "flex flex-col items-center text-center w-40", children: [
15790
15850
  /* @__PURE__ */ jsx("div", { className: "propeller-product-bundles__item-media w-32 h-32 bg-surface-hover rounded-container overflow-hidden flex-shrink-0 mb-2", children: getProductImage(item.product) ? /* @__PURE__ */ jsx(
15791
- "img",
15851
+ PropellerImg,
15792
15852
  {
15853
+ as: Img,
15793
15854
  className: "propeller-product-bundles__item-image w-full h-full object-contain p-2",
15794
15855
  src: getProductImage(item.product),
15795
- alt: getProductName4(item.product, language)
15856
+ alt: getProductName4(item.product, language),
15857
+ loading: "lazy"
15796
15858
  }
15797
15859
  ) : null }),
15798
15860
  /* @__PURE__ */ jsx("div", { className: "propeller-product-bundles__item-name text-sm font-medium text-muted-foreground leading-tight mb-1", children: getProductName4(item.product, language) || "Product " + item.productId }),
@@ -15957,26 +16019,29 @@ function ProductBundles(rawProps) {
15957
16019
  /* @__PURE__ */ jsxs("div", { className: "propeller-product-bundles__modal-body px-6 py-5", children: [
15958
16020
  /* @__PURE__ */ jsxs("div", { className: "propeller-product-bundles__modal-product flex items-start gap-4", children: [
15959
16021
  lastAddedBundle && lastAddedBundle.items && lastAddedBundle.items.length > 0 && getProductImage(lastAddedBundle.items[0].product) ? /* @__PURE__ */ jsx(
15960
- "img",
16022
+ PropellerImg,
15961
16023
  {
16024
+ as: Img,
15962
16025
  className: "propeller-product-bundles__modal-image w-16 h-16 object-contain rounded border border-border-subtle flex-shrink-0",
15963
16026
  src: lastAddedBundle?.items?.[0] ? getProductImage(lastAddedBundle.items[0].product) : "",
15964
- alt: lastAddedBundle?.name || "Bundle"
16027
+ alt: lastAddedBundle?.name || "Bundle",
16028
+ loading: "lazy"
15965
16029
  }
15966
16030
  ) : /* @__PURE__ */ jsx("div", { className: "propeller-product-bundles__modal-image-placeholder w-16 h-16 flex items-center justify-center rounded border border-border-subtle flex-shrink-0 bg-surface-hover", children: /* @__PURE__ */ jsx(
15967
16031
  "svg",
15968
16032
  {
16033
+ "aria-hidden": "true",
15969
16034
  fill: "none",
15970
16035
  viewBox: "0 0 24 24",
15971
16036
  stroke: "currentColor",
15972
16037
  className: "w-8 h-8 text-foreground-subtle",
15973
- strokeWidth: 1.5,
16038
+ strokeWidth: 1,
15974
16039
  children: /* @__PURE__ */ jsx(
15975
16040
  "path",
15976
16041
  {
15977
16042
  strokeLinecap: "round",
15978
16043
  strokeLinejoin: "round",
15979
- d: "M2.25 15.75l5.159-5.159a2.25 2.25 0 013.182 0l5.159 5.159m-1.5-1.5l1.409-1.409a2.25 2.25 0 013.182 0l2.909 2.909M3.75 21h16.5A2.25 2.25 0 0022.5 18.75V5.25A2.25 2.25 0 0020.25 3H3.75A2.25 2.25 0 001.5 5.25v13.5A2.25 2.25 0 003.75 21z"
16044
+ d: "M4 16l4.586-4.586a2 2 0 012.828 0L16 16m-2-2l1.586-1.586a2 2 0 012.828 0L20 14m-6-6h.01M6 20h12a2 2 0 002-2V6a2 2 0 00-2-2H6a2 2 0 00-2 2v12a2 2 0 002 2z"
15980
16045
  }
15981
16046
  )
15982
16047
  }
@@ -16141,6 +16206,7 @@ function ProductDownloads(props) {
16141
16206
  }
16142
16207
  var ProductDownloads_default = ProductDownloads;
16143
16208
  function ProductGallery(props) {
16209
+ const Img = useImgComponent();
16144
16210
  const [selectedIndex, setSelectedIndex] = useState(0);
16145
16211
  const [lightboxOpen, setLightboxOpen] = useState(false);
16146
16212
  const images = props.images || [];
@@ -16178,11 +16244,13 @@ function ProductGallery(props) {
16178
16244
  }
16179
16245
  ) }) : null,
16180
16246
  images.length > 0 ? /* @__PURE__ */ jsx(
16181
- "img",
16247
+ PropellerImg,
16182
16248
  {
16249
+ as: Img,
16183
16250
  alt: getLabel(props.labels, "productImageAlt", "Product image"),
16184
16251
  src: mainImage,
16185
16252
  onClick: openLightbox,
16253
+ loading: "eager",
16186
16254
  className: `h-full w-full object-contain p-8 transition-transform duration-200 ${props.enableZoom !== false ? "cursor-zoom-in hover:scale-105" : ""}`
16187
16255
  }
16188
16256
  ) : null
@@ -16194,11 +16262,13 @@ function ProductGallery(props) {
16194
16262
  onClick: () => setSelectedIndex(index),
16195
16263
  className: `propeller-product-gallery__thumbnail relative flex-shrink-0 w-20 h-20 rounded-container border-2 overflow-hidden transition-all bg-card ${selectedIndex === index ? "border-primary ring-2 ring-primary/20" : "border-transparent hover:border-border"}`,
16196
16264
  children: /* @__PURE__ */ jsx(
16197
- "img",
16265
+ PropellerImg,
16198
16266
  {
16267
+ as: Img,
16199
16268
  className: "w-full h-full object-contain p-1",
16200
16269
  src: img,
16201
- alt: `${getLabel(props.labels, "productImageAlt", "Product image")} ${index + 1}`
16270
+ alt: `${getLabel(props.labels, "productImageAlt", "Product image")} ${index + 1}`,
16271
+ loading: "lazy"
16202
16272
  }
16203
16273
  )
16204
16274
  },
@@ -16253,12 +16323,13 @@ function ProductGallery(props) {
16253
16323
  }
16254
16324
  ) : null,
16255
16325
  /* @__PURE__ */ jsx(
16256
- "img",
16326
+ PropellerImg,
16257
16327
  {
16328
+ as: Img,
16258
16329
  alt: getLabel(props.labels, "productImageFullscreenAlt", "Product image fullscreen"),
16259
16330
  className: "max-h-full max-w-full object-contain rounded-lg",
16260
16331
  src: mainImage,
16261
- onClick: (e) => e.stopPropagation()
16332
+ onClick: (e) => e.stopPropagation?.()
16262
16333
  }
16263
16334
  ),
16264
16335
  hasThumbnails ? /* @__PURE__ */ jsx(
@@ -16312,6 +16383,7 @@ function pickImageUrl(mediaItems, target) {
16312
16383
  }
16313
16384
  function DefaultProductImage(props) {
16314
16385
  const { product, cluster, className } = props;
16386
+ const Img = useImgComponent();
16315
16387
  const targetLanguage = props.language ?? "NL";
16316
16388
  const mediaItems = (() => {
16317
16389
  const target = product ?? cluster?.defaultProduct ?? cluster;
@@ -16346,8 +16418,9 @@ function DefaultProductImage(props) {
16346
16418
  );
16347
16419
  }
16348
16420
  return /* @__PURE__ */ jsx(
16349
- "img",
16421
+ PropellerImg,
16350
16422
  {
16423
+ as: Img,
16351
16424
  src: url,
16352
16425
  alt: altText,
16353
16426
  className: className ?? "h-full w-full object-contain",
@@ -19256,6 +19329,7 @@ function mapToSearchBarResult(item, language, urls) {
19256
19329
  }
19257
19330
  function SearchBar(rawProps) {
19258
19331
  const props = useInfraProps(rawProps);
19332
+ const Img = useImgComponent();
19259
19333
  const [showDropdown, setShowDropdown] = useState(false);
19260
19334
  const [localTerm, setLocalTerm] = useState("");
19261
19335
  const containerRef = useRef(null);
@@ -19421,11 +19495,13 @@ function SearchBar(rawProps) {
19421
19495
  ...resultProps,
19422
19496
  children: [
19423
19497
  result.imageUrl || noImageUrl() ? /* @__PURE__ */ jsx("div", { className: "propeller-search-bar__result-media relative w-16 h-16 flex-shrink-0", children: /* @__PURE__ */ jsx(
19424
- "img",
19498
+ PropellerImg,
19425
19499
  {
19500
+ as: Img,
19426
19501
  className: "propeller-search-bar__result-image w-full h-full object-contain",
19427
19502
  src: result.imageUrl || noImageUrl(),
19428
- alt: result.name
19503
+ alt: result.name,
19504
+ loading: "lazy"
19429
19505
  }
19430
19506
  ) }) : null,
19431
19507
  /* @__PURE__ */ jsxs("div", { className: "flex-1 min-w-0", children: [
@@ -19589,6 +19665,6 @@ function UserDetails(rawProps) {
19589
19665
  }
19590
19666
  var UserDetails_default = UserDetails;
19591
19667
 
19592
- export { AccountIconAndMenu_default as AccountIconAndMenu, ActionCode_default as ActionCode, AddToCart_default as AddToCart, AddToFavorite_default as AddToFavorite, AddressCard_default as AddressCard, AddressSelector_default as AddressSelector, BreadcrumbsWithProvider_default as Breadcrumbs, CartBonusItems_default as CartBonusItems, CartCarriers_default as CartCarriers, CartIconAndSidebar_default as CartIconAndSidebar, CartItem_default as CartItem, CartOverview_default as CartOverview, CartPaymethods_default as CartPaymethods, CartSummary_default as CartSummary, CategoryDescription_default as CategoryDescription, CategoryShortDescriptionWithProvider_default as CategoryShortDescription, ClusterCard_default as ClusterCard, ClusterConfigurator_default as ClusterConfigurator, ClusterInfo_default as ClusterInfo, ClusterOptions_default as ClusterOptions, CompanySwitcher_default as CompanySwitcher, AddToCart_default as DefaultAddToCart, AddToFavorite_default as DefaultAddToFavorite, ItemStock_default as DefaultItemStock, DefaultProductBadges, ProductBulkPrices_default as DefaultProductBulkPrices, ProductBundles_default as DefaultProductBundles, DefaultProductImage, ProductPrice_default as DefaultProductPrice, DefaultProductSurcharges, DeliveryDate_default as DeliveryDate, FavoriteListDetails_default as FavoriteListDetails, FavoriteListItem_default as FavoriteListItem, FavoriteLists_default as FavoriteLists, ForgotPassword_default as ForgotPassword, GridFilters_default as GridFilters, GridFiltersPanel, GridPagination_default as GridPagination, GridTitleWithProvider_default as GridTitle, GridToolbar_default as GridToolbar, ItemStock_default as ItemStock, ItemsOverview_default as ItemsOverview, LoginForm_default as LoginForm, LoginToOrderButton_default as LoginToOrderButton, MachineCard, MachineGrid, Menu_default as Menu, OrderActions_default as OrderActions, OrderBonusItems_default as OrderBonusItems, OrderItemCard_default as OrderItemCard, OrderList_default as OrderList, OrderShipments_default as OrderShipments, OrderSummaryWithProvider_default as OrderSummary, OrderTotalsWithProvider_default as OrderTotals, PRICE_REQUEST_STORAGE_KEY, PriceRequestList_default as PriceRequestList, PriceToggle_default as PriceToggle, ProductBulkPricesWithProvider_default as ProductBulkPrices, ProductBundles_default as ProductBundles, ProductCard_default as ProductCard, ProductDescription_default as ProductDescription, ProductDownloads_default as ProductDownloads, ProductGallery_default as ProductGallery, ProductGrid_default as ProductGrid, ProductGridConfigProvider, ProductInfo_default as ProductInfo, ProductPriceWithProvider_default as ProductPrice, ProductShortDescriptionWithProvider_default as ProductShortDescription, ProductSlider_default as ProductSlider, ProductSpecifications_default as ProductSpecifications, ProductTabs_default as ProductTabs, ProductVideos_default as ProductVideos, PropellerDepsProvider, PropellerProvider, PurchaseAuthorizationConfigurator_default as PurchaseAuthorizationConfigurator, PurchaseAuthorizationRequests_default as PurchaseAuthorizationRequests, QuickOrder, QuoteActions_default as QuoteActions, RegisterForm_default as RegisterForm, RequestPriceButton_default as RequestPriceButton, SearchBar_default as SearchBar, UserDetails_default as UserDetails, addItem as addPriceRequestItem, buildRootMachinesQuery, fetchActiveCart, initCart, isPriceOnRequest, mergeAnonymousCart, containsItem as priceRequestContains, removeItem as removePriceRequestItem, setItemQuantity as setPriceRequestItemQuantity, useAddress, useAuth, useCart, useCheckout, useClusterConfigurator, useCompany, useFavorites, useInfraProps, useMachines, useMenu, useOrders, usePriceRequest, useProductBundles, useProductGridConfig, useProductInfo, useProductSearch, useProductSlider, useProductSpecs, usePropellerContext, usePropellerDeps, usePropellerScope, usePurchaseAuthorizationConfigurator, usePurchaseAuthorizationRequests, useQuickOrder, useRequiredPropellerDeps, useResolvedProps, useServices, useSpareParts, useUserMode };
19668
+ export { AccountIconAndMenu_default as AccountIconAndMenu, ActionCode_default as ActionCode, AddToCart_default as AddToCart, AddToFavorite_default as AddToFavorite, AddressCard_default as AddressCard, AddressSelector_default as AddressSelector, BreadcrumbsWithProvider_default as Breadcrumbs, CartBonusItems_default as CartBonusItems, CartCarriers_default as CartCarriers, CartIconAndSidebar_default as CartIconAndSidebar, CartItem_default as CartItem, CartOverview_default as CartOverview, CartPaymethods_default as CartPaymethods, CartSummary_default as CartSummary, CategoryDescription_default as CategoryDescription, CategoryShortDescriptionWithProvider_default as CategoryShortDescription, ClusterCard_default as ClusterCard, ClusterConfigurator_default as ClusterConfigurator, ClusterInfo_default as ClusterInfo, ClusterOptions_default as ClusterOptions, CompanySwitcher_default as CompanySwitcher, AddToCart_default as DefaultAddToCart, AddToFavorite_default as DefaultAddToFavorite, ItemStock_default as DefaultItemStock, DefaultProductBadges, ProductBulkPrices_default as DefaultProductBulkPrices, ProductBundles_default as DefaultProductBundles, DefaultProductImage, ProductPrice_default as DefaultProductPrice, DefaultProductSurcharges, DeliveryDate_default as DeliveryDate, FavoriteListDetails_default as FavoriteListDetails, FavoriteListItem_default as FavoriteListItem, FavoriteLists_default as FavoriteLists, ForgotPassword_default as ForgotPassword, GridFilters_default as GridFilters, GridFiltersPanel, GridPagination_default as GridPagination, GridTitleWithProvider_default as GridTitle, GridToolbar_default as GridToolbar, ItemStock_default as ItemStock, ItemsOverview_default as ItemsOverview, LoginForm_default as LoginForm, LoginToOrderButton_default as LoginToOrderButton, MachineCard, MachineGrid, Menu_default as Menu, OrderActions_default as OrderActions, OrderBonusItems_default as OrderBonusItems, OrderItemCard_default as OrderItemCard, OrderList_default as OrderList, OrderShipments_default as OrderShipments, OrderSummaryWithProvider_default as OrderSummary, OrderTotalsWithProvider_default as OrderTotals, PRICE_REQUEST_STORAGE_KEY, PriceRequestList_default as PriceRequestList, PriceToggle_default as PriceToggle, ProductBulkPricesWithProvider_default as ProductBulkPrices, ProductBundles_default as ProductBundles, ProductCard_default as ProductCard, ProductDescription_default as ProductDescription, ProductDownloads_default as ProductDownloads, ProductGallery_default as ProductGallery, ProductGrid_default as ProductGrid, ProductGridConfigProvider, ProductInfo_default as ProductInfo, ProductPriceWithProvider_default as ProductPrice, ProductShortDescriptionWithProvider_default as ProductShortDescription, ProductSlider_default as ProductSlider, ProductSpecifications_default as ProductSpecifications, ProductTabs_default as ProductTabs, ProductVideos_default as ProductVideos, PropellerDepsProvider, PropellerImg, PropellerProvider, PurchaseAuthorizationConfigurator_default as PurchaseAuthorizationConfigurator, PurchaseAuthorizationRequests_default as PurchaseAuthorizationRequests, QuickOrder, QuoteActions_default as QuoteActions, RegisterForm_default as RegisterForm, RequestPriceButton_default as RequestPriceButton, SearchBar_default as SearchBar, UserDetails_default as UserDetails, addItem as addPriceRequestItem, buildRootMachinesQuery, fetchActiveCart, initCart, isPriceOnRequest, mergeAnonymousCart, containsItem as priceRequestContains, removeItem as removePriceRequestItem, setItemQuantity as setPriceRequestItemQuantity, useAddress, useAuth, useCart, useCheckout, useClusterConfigurator, useCompany, useFavorites, useImgComponent, useInfraProps, useMachines, useMenu, useOrders, usePriceRequest, useProductBundles, useProductGridConfig, useProductInfo, useProductSearch, useProductSlider, useProductSpecs, usePropellerContext, usePropellerDeps, usePropellerScope, usePurchaseAuthorizationConfigurator, usePurchaseAuthorizationRequests, useQuickOrder, useRequiredPropellerDeps, useResolvedProps, useServices, useSpareParts, useUserMode };
19593
19669
  //# sourceMappingURL=index.js.map
19594
19670
  //# sourceMappingURL=index.js.map