@propeller-commerce/propeller-v2-vue-ui 0.3.32 → 0.3.34

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.cjs CHANGED
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
3
  const index = require("./index-CrrZsxTR.cjs");
4
- const ProductVideos_vue_vue_type_script_setup_true_lang = require("./ProductVideos.vue_vue_type_script_setup_true_lang-cfRT3L_k.cjs");
4
+ const ProductVideos_vue_vue_type_script_setup_true_lang = require("./ProductVideos.vue_vue_type_script_setup_true_lang-7UMkFuC2.cjs");
5
5
  const vue = require("vue");
6
6
  const propellerSdkV2 = require("@propeller-commerce/propeller-sdk-v2");
7
7
  const ProductGridInjectionKey = /* @__PURE__ */ Symbol("propeller-product-grid");
@@ -3084,11 +3084,11 @@ const _hoisted_14$t = {
3084
3084
  viewBox: "0 0 24 24",
3085
3085
  class: "propeller-login-form__spinner animate-spin -ml-1 mr-2 h-4 w-4 text-primary-foreground"
3086
3086
  };
3087
- const _hoisted_15$s = {
3087
+ const _hoisted_15$t = {
3088
3088
  key: 1,
3089
3089
  class: "propeller-login-form__footer mt-6 border-t pt-6 space-y-3"
3090
3090
  };
3091
- const _hoisted_16$r = { class: "propeller-login-form__register text-center" };
3091
+ const _hoisted_16$s = { class: "propeller-login-form__register text-center" };
3092
3092
  const _hoisted_17$r = { class: "propeller-login-form__register-prompt text-sm text-muted-foreground mb-2" };
3093
3093
  const _hoisted_18$p = { class: "propeller-login-form__guest text-center" };
3094
3094
  const _hoisted_19$p = {
@@ -3322,13 +3322,13 @@ const _sfc_main$U = /* @__PURE__ */ vue.defineComponent({
3322
3322
  ], 8, _hoisted_13$t)
3323
3323
  ])
3324
3324
  ], 32),
3325
- (showRegister.value || showGuestCheckout.value) && !__props.accountHeaderLoginForm ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_15$s, [
3325
+ (showRegister.value || showGuestCheckout.value) && !__props.accountHeaderLoginForm ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_15$t, [
3326
3326
  __props.displayRegisterLink !== false ? vue.renderSlot(_ctx.$slots, "registerLink", {
3327
3327
  key: 0,
3328
3328
  onClick: (e) => __props.onRegisterClick?.(e),
3329
3329
  labels: __props.labels
3330
3330
  }, () => [
3331
- vue.createElementVNode("div", _hoisted_16$r, [
3331
+ vue.createElementVNode("div", _hoisted_16$s, [
3332
3332
  vue.createElementVNode("p", _hoisted_17$r, vue.toDisplayString(registerText.value), 1),
3333
3333
  vue.createElementVNode("button", {
3334
3334
  type: "button",
@@ -3419,8 +3419,8 @@ const _hoisted_13$s = {
3419
3419
  class: "propeller-account-menu__greeting hidden md:block font-normal"
3420
3420
  };
3421
3421
  const _hoisted_14$s = { class: "propeller-account-menu__user pb-3 mb-3 border-b border-border" };
3422
- const _hoisted_15$r = { class: "propeller-account-menu__user-label text-xs text-muted-foreground uppercase tracking-wider font-semibold mb-1" };
3423
- const _hoisted_16$q = { class: "propeller-account-menu__user-name font-medium text-foreground truncate" };
3422
+ const _hoisted_15$s = { class: "propeller-account-menu__user-label text-xs text-muted-foreground uppercase tracking-wider font-semibold mb-1" };
3423
+ const _hoisted_16$r = { class: "propeller-account-menu__user-name font-medium text-foreground truncate" };
3424
3424
  const _hoisted_17$q = { class: "propeller-account-menu__nav" };
3425
3425
  const _hoisted_18$o = { class: "propeller-account-menu__list space-y-0.5" };
3426
3426
  const _hoisted_19$o = ["onClick"];
@@ -3645,8 +3645,8 @@ const _sfc_main$T = /* @__PURE__ */ vue.defineComponent({
3645
3645
  isMounted.value ? (vue.openBlock(), vue.createElementBlock(vue.Fragment, { key: 0 }, [
3646
3646
  !!user.value ? (vue.openBlock(), vue.createElementBlock(vue.Fragment, { key: 0 }, [
3647
3647
  vue.createElementVNode("div", _hoisted_14$s, [
3648
- vue.createElementVNode("p", _hoisted_15$r, vue.toDisplayString(getLabel("signedInAs", "Signed in as")), 1),
3649
- vue.createElementVNode("p", _hoisted_16$q, vue.toDisplayString(getUserName()), 1)
3648
+ vue.createElementVNode("p", _hoisted_15$s, vue.toDisplayString(getLabel("signedInAs", "Signed in as")), 1),
3649
+ vue.createElementVNode("p", _hoisted_16$r, vue.toDisplayString(getUserName()), 1)
3650
3650
  ]),
3651
3651
  vue.createElementVNode("nav", _hoisted_17$q, [
3652
3652
  vue.createElementVNode("ul", _hoisted_18$o, [
@@ -3936,8 +3936,8 @@ const _hoisted_14$r = {
3936
3936
  key: 1,
3937
3937
  class: "propeller-add-to-cart__modal fixed inset-0 z-50 flex items-center justify-center px-4"
3938
3938
  };
3939
- const _hoisted_15$q = { class: "propeller-add-to-cart__modal-content relative w-full max-w-lg bg-card rounded-[var(--radius-container)] shadow-2xl overflow-hidden" };
3940
- const _hoisted_16$p = { class: "propeller-add-to-cart__modal-header flex items-center gap-3 px-6 py-4 border-b border-border-subtle" };
3939
+ const _hoisted_15$r = { class: "propeller-add-to-cart__modal-content relative w-full max-w-lg bg-card rounded-[var(--radius-container)] shadow-2xl overflow-hidden" };
3940
+ const _hoisted_16$q = { class: "propeller-add-to-cart__modal-header flex items-center gap-3 px-6 py-4 border-b border-border-subtle" };
3941
3941
  const _hoisted_17$p = {
3942
3942
  fill: "none",
3943
3943
  viewBox: "0 0 24 24",
@@ -4320,8 +4320,8 @@ const _sfc_main$R = /* @__PURE__ */ vue.defineComponent({
4320
4320
  class: "propeller-add-to-cart__modal-backdrop fixed inset-0 bg-foreground/20",
4321
4321
  onClick: _cache[6] || (_cache[6] = async (event) => closeModal())
4322
4322
  }),
4323
- vue.createElementVNode("div", _hoisted_15$q, [
4324
- vue.createElementVNode("div", _hoisted_16$p, [
4323
+ vue.createElementVNode("div", _hoisted_15$r, [
4324
+ vue.createElementVNode("div", _hoisted_16$q, [
4325
4325
  (vue.openBlock(), vue.createElementBlock("svg", _hoisted_17$p, [..._cache[15] || (_cache[15] = [
4326
4326
  vue.createElementVNode("path", {
4327
4327
  strokeLinecap: "round",
@@ -4477,8 +4477,8 @@ const _hoisted_14$q = {
4477
4477
  key: 1,
4478
4478
  class: "propeller-add-to-favorite__add-form space-y-3"
4479
4479
  };
4480
- const _hoisted_15$p = { class: "space-y-1" };
4481
- const _hoisted_16$o = { class: "propeller-add-to-favorite__select-label text-xs text-muted-foreground" };
4480
+ const _hoisted_15$q = { class: "space-y-1" };
4481
+ const _hoisted_16$p = { class: "propeller-add-to-favorite__select-label text-xs text-muted-foreground" };
4482
4482
  const _hoisted_17$o = ["value"];
4483
4483
  const _hoisted_18$m = ["value"];
4484
4484
  const _hoisted_19$m = ["disabled"];
@@ -4723,8 +4723,8 @@ const _sfc_main$Q = /* @__PURE__ */ vue.defineComponent({
4723
4723
  _cache[9] || (_cache[9] = vue.createElementVNode("div", { class: "propeller-add-to-favorite__divider border-t border-border" }, null, -1))
4724
4724
  ], 64)) : vue.createCommentVNode("", true),
4725
4725
  getNonMemberLists().length > 0 ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_14$q, [
4726
- vue.createElementVNode("div", _hoisted_15$p, [
4727
- vue.createElementVNode("label", _hoisted_16$o, vue.toDisplayString(getLabel("chooseList", "Choose a favorites list*")), 1),
4726
+ vue.createElementVNode("div", _hoisted_15$q, [
4727
+ vue.createElementVNode("label", _hoisted_16$p, vue.toDisplayString(getLabel("chooseList", "Choose a favorites list*")), 1),
4728
4728
  vue.createElementVNode("select", {
4729
4729
  class: "propeller-add-to-favorite__select block w-full rounded-[var(--radius-control)] border border-input px-3 py-2.5 text-sm focus:border-primary focus:ring-primary",
4730
4730
  value: selectedListId.value,
@@ -4793,11 +4793,11 @@ const _hoisted_11$r = {
4793
4793
  const _hoisted_12$r = { class: "mt-2" };
4794
4794
  const _hoisted_13$p = { class: "propeller-address-card__default-badge bg-secondary/10 text-secondary text-xs px-2 py-1 rounded-full" };
4795
4795
  const _hoisted_14$p = { class: "propeller-address-card__actions mt-4 pt-4 border-t border-border-subtle flex flex-wrap gap-2" };
4796
- const _hoisted_15$o = {
4796
+ const _hoisted_15$p = {
4797
4797
  key: 1,
4798
4798
  class: "propeller-address-card__form bg-card p-6 rounded-[var(--radius-container)] border"
4799
4799
  };
4800
- const _hoisted_16$n = {
4800
+ const _hoisted_16$o = {
4801
4801
  key: 0,
4802
4802
  class: "text-xl font-bold mb-4"
4803
4803
  };
@@ -5205,11 +5205,11 @@ const _sfc_main$P = /* @__PURE__ */ vue.defineComponent({
5205
5205
  ])
5206
5206
  ]) : vue.createCommentVNode("", true)
5207
5207
  ], 8, _hoisted_2$J)) : vue.createCommentVNode("", true),
5208
- __props.inline && showEditModal.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_15$o, [
5208
+ __props.inline && showEditModal.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_15$p, [
5209
5209
  vue.createElementVNode("form", {
5210
5210
  onSubmit: _cache[19] || (_cache[19] = async (e) => handleSaveEdit(e))
5211
5211
  }, [
5212
- !!formTitle.value ? (vue.openBlock(), vue.createElementBlock("h3", _hoisted_16$n, vue.toDisplayString(formTitle.value), 1)) : vue.createCommentVNode("", true),
5212
+ !!formTitle.value ? (vue.openBlock(), vue.createElementBlock("h3", _hoisted_16$o, vue.toDisplayString(formTitle.value), 1)) : vue.createCommentVNode("", true),
5213
5213
  vue.createElementVNode("div", _hoisted_17$n, [
5214
5214
  vue.createElementVNode("div", _hoisted_18$l, [
5215
5215
  vue.createElementVNode("div", null, [
@@ -6127,11 +6127,11 @@ const _hoisted_11$q = { class: "font-medium" };
6127
6127
  const _hoisted_12$q = { class: "propeller-cart-item__surcharges-list mt-0.5" };
6128
6128
  const _hoisted_13$o = { class: "mt-1" };
6129
6129
  const _hoisted_14$o = { class: "propeller-cart-item__bundle mt-3 space-y-1.5 border-l-2 border-border pl-3" };
6130
- const _hoisted_15$n = {
6130
+ const _hoisted_15$o = {
6131
6131
  key: 0,
6132
6132
  class: "propeller-cart-item__bundle-leader flex flex-wrap gap-x-2 text-sm text-muted-foreground"
6133
6133
  };
6134
- const _hoisted_16$m = { class: "font-semibold text-foreground" };
6134
+ const _hoisted_16$n = { class: "font-semibold text-foreground" };
6135
6135
  const _hoisted_17$m = { class: "font-semibold text-foreground" };
6136
6136
  const _hoisted_18$k = { class: "font-medium" };
6137
6137
  const _hoisted_19$k = { class: "font-semibold text-foreground" };
@@ -6605,8 +6605,8 @@ const _sfc_main$K = /* @__PURE__ */ vue.defineComponent({
6605
6605
  nonLeaders: getBundleNonLeaders()
6606
6606
  }, () => [
6607
6607
  vue.createElementVNode("div", _hoisted_14$o, [
6608
- !!getBundleLeaderName() ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_15$n, [
6609
- vue.createElementVNode("span", _hoisted_16$m, vue.toDisplayString(getBundleLeaderName()), 1),
6608
+ !!getBundleLeaderName() ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_15$o, [
6609
+ vue.createElementVNode("span", _hoisted_16$n, vue.toDisplayString(getBundleLeaderName()), 1),
6610
6610
  !!getBundleLeaderPrice() ? (vue.openBlock(), vue.createElementBlock(vue.Fragment, { key: 0 }, [
6611
6611
  _cache[8] || (_cache[8] = vue.createElementVNode("div", { class: "flex-1 border-b border-dotted border-input mx-1 mb-1" }, null, -1)),
6612
6612
  vue.createElementVNode("span", _hoisted_17$m, vue.toDisplayString(getBundleLeaderPrice()), 1)
@@ -6864,8 +6864,8 @@ const _hoisted_14$n = {
6864
6864
  class: "w-5 h-5 text-muted-foreground",
6865
6865
  strokeWidth: 1.5
6866
6866
  };
6867
- const _hoisted_15$m = { class: "propeller-cart-icon__sidebar-title text-base font-semibold text-foreground" };
6868
- const _hoisted_16$l = { class: "propeller-cart-icon__sidebar-count inline-flex items-center justify-center h-5 min-w-[20px] px-1.5 rounded-full bg-secondary/10 text-secondary text-xs font-bold" };
6867
+ const _hoisted_15$n = { class: "propeller-cart-icon__sidebar-title text-base font-semibold text-foreground" };
6868
+ const _hoisted_16$m = { class: "propeller-cart-icon__sidebar-count inline-flex items-center justify-center h-5 min-w-[20px] px-1.5 rounded-full bg-secondary/10 text-secondary text-xs font-bold" };
6869
6869
  const _hoisted_17$l = ["aria-label"];
6870
6870
  const _hoisted_18$j = {
6871
6871
  fill: "none",
@@ -6926,6 +6926,7 @@ const _sfc_main$J = /* @__PURE__ */ vue.defineComponent({
6926
6926
  cartPageButton: { type: Boolean, default: true },
6927
6927
  onCartPageButtonClick: {},
6928
6928
  labels: {},
6929
+ cartItemLabels: {},
6929
6930
  user: {},
6930
6931
  companyId: {},
6931
6932
  onRequestQuoteClick: {},
@@ -6976,8 +6977,9 @@ const _sfc_main$J = /* @__PURE__ */ vue.defineComponent({
6976
6977
  function getTotalItems() {
6977
6978
  return getCartItems().reduce((sum, item) => sum + (item.quantity || 0), 0);
6978
6979
  }
6980
+ const useTax = vue.computed(() => !!infra.includeTax);
6979
6981
  function getTotalPrice() {
6980
- const total = props.cart?.total?.totalNet;
6982
+ const total = useTax.value ? props.cart?.total?.totalNet : props.cart?.total?.totalGross;
6981
6983
  return index.formatPrice(total ?? 0, { symbol: infra.currency ?? "€" });
6982
6984
  }
6983
6985
  function getItems() {
@@ -7125,8 +7127,8 @@ const _sfc_main$J = /* @__PURE__ */ vue.defineComponent({
7125
7127
  d: "M15.75 10.5V6a3.75 3.75 0 10-7.5 0v4.5m11.356-1.993l1.263 12c.07.665-.45 1.243-1.119 1.243H4.25a1.125 1.125 0 01-1.12-1.243l1.264-12A1.125 1.125 0 015.513 7.5h12.974c.576 0 1.059.435 1.119 1.007z"
7126
7128
  }, null, -1)
7127
7129
  ])])),
7128
- vue.createElementVNode("h2", _hoisted_15$m, vue.toDisplayString(getSidebarTitle()), 1),
7129
- vue.createElementVNode("span", _hoisted_16$l, vue.toDisplayString(getTotalItems()), 1)
7130
+ vue.createElementVNode("h2", _hoisted_15$n, vue.toDisplayString(getSidebarTitle()), 1),
7131
+ vue.createElementVNode("span", _hoisted_16$m, vue.toDisplayString(getTotalItems()), 1)
7130
7132
  ]),
7131
7133
  vue.createElementVNode("button", {
7132
7134
  type: "button",
@@ -7169,6 +7171,7 @@ const _sfc_main$J = /* @__PURE__ */ vue.defineComponent({
7169
7171
  language: __props.language,
7170
7172
  configuration: __props.configuration,
7171
7173
  companyId: __props.companyId,
7174
+ labels: __props.cartItemLabels,
7172
7175
  cardFrame: false,
7173
7176
  showDelete: false,
7174
7177
  readOnlyQuantity: true,
@@ -7176,7 +7179,7 @@ const _sfc_main$J = /* @__PURE__ */ vue.defineComponent({
7176
7179
  showCartItemNotesField: false,
7177
7180
  showCrossupsells: false,
7178
7181
  showStockComponent: false,
7179
- includeTax: false,
7182
+ includeTax: useTax.value,
7180
7183
  className: "propeller-cart-icon__item"
7181
7184
  }, {
7182
7185
  image: vue.withCtx(({ cartItem: rowCartItem }) => [
@@ -7206,13 +7209,13 @@ const _sfc_main$J = /* @__PURE__ */ vue.defineComponent({
7206
7209
  }, vue.toDisplayString(name), 9, _hoisted_27$f)) : vue.createCommentVNode("", true)
7207
7210
  ]),
7208
7211
  _: 1
7209
- }, 40, ["cartItem", "cartId", "graphqlClient", "user", "language", "configuration", "companyId", "onTitleClick"]);
7212
+ }, 40, ["cartItem", "cartId", "graphqlClient", "user", "language", "configuration", "companyId", "labels", "onTitleClick", "includeTax"]);
7210
7213
  }), 128)) : vue.createCommentVNode("", true),
7211
7214
  (vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(CartBonusItemsImpl.value), {
7212
7215
  cart: __props.cart,
7213
- includeTax: true,
7216
+ includeTax: useTax.value,
7214
7217
  className: "mt-4"
7215
- }, null, 8, ["cart"]))
7218
+ }, null, 8, ["cart", "includeTax"]))
7216
7219
  ]),
7217
7220
  getItems().length > 0 ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_28$e, [
7218
7221
  vue.createElementVNode("div", _hoisted_29$e, [
@@ -7306,8 +7309,8 @@ const _hoisted_14$m = {
7306
7309
  key: 2,
7307
7310
  class: "propeller-cart-overview__address-email text-muted-foreground"
7308
7311
  };
7309
- const _hoisted_15$l = { class: "propeller-cart-overview__info-panel bg-surface-hover p-4 rounded-[var(--radius-control)] border border-border space-y-2 text-sm" };
7310
- const _hoisted_16$k = {
7312
+ const _hoisted_15$m = { class: "propeller-cart-overview__info-panel bg-surface-hover p-4 rounded-[var(--radius-control)] border border-border space-y-2 text-sm" };
7313
+ const _hoisted_16$l = {
7311
7314
  key: 0,
7312
7315
  class: "flex justify-between"
7313
7316
  };
@@ -7401,11 +7404,11 @@ const _sfc_main$I = /* @__PURE__ */ vue.defineComponent({
7401
7404
  const requestDate = vue.computed(() => {
7402
7405
  const date = props.cart?.postageData?.requestDate;
7403
7406
  if (!date) return "";
7404
- try {
7405
- return new Date(date).toLocaleDateString();
7406
- } catch {
7407
- return date;
7408
- }
7407
+ const d = new Date(date);
7408
+ if (isNaN(d.getTime())) return date;
7409
+ const day = String(d.getDate()).padStart(2, "0");
7410
+ const month = String(d.getMonth() + 1).padStart(2, "0");
7411
+ return `${day}-${month}-${d.getFullYear()}`;
7409
7412
  });
7410
7413
  const isPurchaseDisabled = vue.computed(() => {
7411
7414
  if (showTermsAndConditions.value && !termsAccepted.value) return true;
@@ -7485,8 +7488,8 @@ const _sfc_main$I = /* @__PURE__ */ vue.defineComponent({
7485
7488
  ])) : vue.createCommentVNode("", true)
7486
7489
  ])
7487
7490
  ]),
7488
- vue.createElementVNode("div", _hoisted_15$l, [
7489
- paymentMethod.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_16$k, [
7491
+ vue.createElementVNode("div", _hoisted_15$m, [
7492
+ paymentMethod.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_16$l, [
7490
7493
  vue.createElementVNode("span", _hoisted_17$k, vue.toDisplayString(getLabel("payment", "Payment:")), 1),
7491
7494
  vue.createElementVNode("span", null, vue.toDisplayString(paymentMethod.value), 1)
7492
7495
  ])) : vue.createCommentVNode("", true),
@@ -7592,7 +7595,8 @@ const _sfc_main$H = /* @__PURE__ */ vue.defineComponent({
7592
7595
  showPaymethodLogo: { type: Boolean, default: true },
7593
7596
  onPaymethodSelect: {},
7594
7597
  formatPrice: {},
7595
- labels: {}
7598
+ labels: {},
7599
+ paymethodLabels: {}
7596
7600
  },
7597
7601
  setup(__props) {
7598
7602
  const props = __props;
@@ -7635,6 +7639,10 @@ const _sfc_main$H = /* @__PURE__ */ vue.defineComponent({
7635
7639
  },
7636
7640
  { immediate: true }
7637
7641
  );
7642
+ function methodName(method) {
7643
+ const code = (method.code || "").toLowerCase();
7644
+ return props.paymethodLabels?.[code] || method.name || method.code || "";
7645
+ }
7638
7646
  function isOnAccountMethod(method) {
7639
7647
  const code = (method.code || "").toLowerCase();
7640
7648
  return code === "on_account" || code === "onaccount" || code === "on-account";
@@ -7674,10 +7682,10 @@ const _sfc_main$H = /* @__PURE__ */ vue.defineComponent({
7674
7682
  vue.createElementVNode("img", {
7675
7683
  class: "propeller-cart-paymethods__method-logo max-h-10 max-w-[80%] w-auto object-contain",
7676
7684
  src: getLogoUrl(method),
7677
- alt: method.name || method.code
7685
+ alt: methodName(method)
7678
7686
  }, null, 8, _hoisted_5$x)
7679
7687
  ])) : vue.createCommentVNode("", true),
7680
- vue.createElementVNode("span", _hoisted_6$w, vue.toDisplayString(method.name || method.code), 1)
7688
+ vue.createElementVNode("span", _hoisted_6$w, vue.toDisplayString(methodName(method)), 1)
7681
7689
  ], 10, _hoisted_2$C);
7682
7690
  }), 128))
7683
7691
  ])) : vue.createCommentVNode("", true),
@@ -7716,8 +7724,8 @@ const _hoisted_12$n = {
7716
7724
  };
7717
7725
  const _hoisted_13$l = { class: "propeller-cart-summary__label" };
7718
7726
  const _hoisted_14$l = { class: "propeller-cart-summary__value" };
7719
- const _hoisted_15$k = { class: "propeller-cart-summary__label" };
7720
- const _hoisted_16$j = { class: "propeller-cart-summary__value" };
7727
+ const _hoisted_15$l = { class: "propeller-cart-summary__label" };
7728
+ const _hoisted_16$k = { class: "propeller-cart-summary__value" };
7721
7729
  const _hoisted_17$j = {
7722
7730
  key: 5,
7723
7731
  class: "propeller-cart-summary__row flex justify-between text-muted-foreground text-sm",
@@ -7905,8 +7913,8 @@ const _sfc_main$G = /* @__PURE__ */ vue.defineComponent({
7905
7913
  class: "propeller-cart-summary__row flex justify-between text-muted-foreground text-sm",
7906
7914
  "data-row": "vat-line"
7907
7915
  }, [
7908
- vue.createElementVNode("span", _hoisted_15$k, vue.toDisplayString(tax.taxPercentage) + "% " + vue.toDisplayString(getLabel("vat", "VAT")) + ":", 1),
7909
- vue.createElementVNode("span", _hoisted_16$j, vue.toDisplayString(formatItemPrice(Number(tax.price))), 1)
7916
+ vue.createElementVNode("span", _hoisted_15$l, vue.toDisplayString(tax.taxPercentage) + "% " + vue.toDisplayString(getLabel("vat", "VAT")) + ":", 1),
7917
+ vue.createElementVNode("span", _hoisted_16$k, vue.toDisplayString(formatItemPrice(Number(tax.price))), 1)
7910
7918
  ]);
7911
7919
  }), 128)) : vue.createCommentVNode("", true),
7912
7920
  showTotalVat.value && totalVat.value > 0 ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_17$j, [
@@ -8150,8 +8158,8 @@ const _hoisted_11$m = ["href"];
8150
8158
  const _hoisted_12$m = { class: "flex flex-col gap-0.5" };
8151
8159
  const _hoisted_13$k = { class: "propeller-cluster-card__manufacturer text-xs text-muted-foreground" };
8152
8160
  const _hoisted_14$k = { class: "propeller-cluster-card__description line-clamp-2 text-xs text-muted-foreground" };
8153
- const _hoisted_15$j = { class: "propeller-cluster-card__footer w-full md:w-auto flex flex-col gap-2 md:flex-row md:items-center md:gap-3 px-4 py-2 md:py-0 border-t md:border-t-0 border-border-subtle" };
8154
- const _hoisted_16$i = { class: "propeller-cluster-card__footer-meta flex items-center justify-between gap-3 md:contents" };
8161
+ const _hoisted_15$k = { class: "propeller-cluster-card__footer w-full md:w-auto flex flex-col gap-2 md:flex-row md:items-center md:gap-3 px-4 py-2 md:py-0 border-t md:border-t-0 border-border-subtle" };
8162
+ const _hoisted_16$j = { class: "propeller-cluster-card__footer-meta flex items-center justify-between gap-3 md:contents" };
8155
8163
  const _hoisted_17$i = {
8156
8164
  key: 1,
8157
8165
  class: "propeller-cluster-card__price font-bold text-foreground text-sm whitespace-nowrap"
@@ -8495,8 +8503,8 @@ const _sfc_main$C = /* @__PURE__ */ vue.defineComponent({
8495
8503
  ]) : vue.createCommentVNode("", true)
8496
8504
  ])
8497
8505
  ]),
8498
- vue.createElementVNode("div", _hoisted_15$j, [
8499
- vue.createElementVNode("div", _hoisted_16$i, [
8506
+ vue.createElementVNode("div", _hoisted_15$k, [
8507
+ vue.createElementVNode("div", _hoisted_16$j, [
8500
8508
  __props.showStock && !!__props.cluster.defaultProduct?.inventory ? vue.renderSlot(_ctx.$slots, "stock", {
8501
8509
  key: 0,
8502
8510
  cluster: __props.cluster,
@@ -8730,8 +8738,8 @@ const _hoisted_14$j = {
8730
8738
  key: 4,
8731
8739
  class: "propeller-cluster-configurator__options flex flex-wrap gap-3"
8732
8740
  };
8733
- const _hoisted_15$i = ["disabled", "onClick", "data-selected"];
8734
- const _hoisted_16$h = ["src", "alt"];
8741
+ const _hoisted_15$j = ["disabled", "onClick", "data-selected"];
8742
+ const _hoisted_16$i = ["src", "alt"];
8735
8743
  const _hoisted_17$h = {
8736
8744
  key: 0,
8737
8745
  class: "propeller-cluster-configurator__image-check absolute inset-0 bg-secondary bg-opacity-20 flex items-center justify-center"
@@ -9108,7 +9116,7 @@ const _sfc_main$B = /* @__PURE__ */ vue.defineComponent({
9108
9116
  class: "propeller-cluster-configurator__image w-full h-full object-cover",
9109
9117
  src: val,
9110
9118
  alt: val
9111
- }, null, 8, _hoisted_16$h),
9119
+ }, null, 8, _hoisted_16$i),
9112
9120
  setting.selectedValue === val ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_17$h, [..._cache[0] || (_cache[0] = [
9113
9121
  vue.createElementVNode("svg", {
9114
9122
  fill: "currentColor",
@@ -9122,7 +9130,7 @@ const _sfc_main$B = /* @__PURE__ */ vue.defineComponent({
9122
9130
  })
9123
9131
  ], -1)
9124
9132
  ])])) : vue.createCommentVNode("", true)
9125
- ], 10, _hoisted_15$i);
9133
+ ], 10, _hoisted_15$j);
9126
9134
  }), 128))
9127
9135
  ])) : vue.createCommentVNode("", true),
9128
9136
  setting.displayType !== "DROPDOWN" && setting.displayType !== "RADIO" && setting.displayType !== "COLOR" && setting.displayType !== "IMAGE" ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_18$f, [
@@ -9305,7 +9313,7 @@ const _hoisted_12$k = {
9305
9313
  };
9306
9314
  const _hoisted_13$i = { class: "min-w-0 flex-1" };
9307
9315
  const _hoisted_14$i = { class: "propeller-cluster-options__preview-name truncate text-sm font-medium text-foreground" };
9308
- const _hoisted_15$h = { class: "propeller-cluster-options__preview-price text-sm font-semibold text-secondary" };
9316
+ const _hoisted_15$i = { class: "propeller-cluster-options__preview-price text-sm font-semibold text-secondary" };
9309
9317
  const _sfc_main$y = /* @__PURE__ */ vue.defineComponent({
9310
9318
  __name: "ClusterOptions",
9311
9319
  props: {
@@ -9459,7 +9467,7 @@ const _sfc_main$y = /* @__PURE__ */ vue.defineComponent({
9459
9467
  ])])) : vue.createCommentVNode("", true),
9460
9468
  vue.createElementVNode("div", _hoisted_13$i, [
9461
9469
  vue.createElementVNode("p", _hoisted_14$i, vue.toDisplayString(option.previewName), 1),
9462
- vue.createElementVNode("p", _hoisted_15$h, vue.toDisplayString(option.previewPrice), 1)
9470
+ vue.createElementVNode("p", _hoisted_15$i, vue.toDisplayString(option.previewPrice), 1)
9463
9471
  ])
9464
9472
  ])) : vue.createCommentVNode("", true)
9465
9473
  ], 8, _hoisted_2$w);
@@ -9639,7 +9647,7 @@ const _hoisted_6$q = {
9639
9647
  const _hoisted_7$q = { class: "propeller-delivery-date__modal-content bg-card rounded-xl shadow-xl p-6 w-full max-w-sm mx-4" };
9640
9648
  const _hoisted_8$o = { class: "propeller-delivery-date__modal-header flex justify-between items-center mb-4" };
9641
9649
  const _hoisted_9$n = { class: "propeller-delivery-date__modal-title text-lg font-semibold" };
9642
- const _hoisted_10$l = ["min", "value"];
9650
+ const _hoisted_10$l = ["lang", "min", "value"];
9643
9651
  const _hoisted_11$j = {
9644
9652
  key: 0,
9645
9653
  class: "propeller-delivery-date__input-error text-sm text-destructive mt-2",
@@ -9657,10 +9665,15 @@ const _sfc_main$w = /* @__PURE__ */ vue.defineComponent({
9657
9665
  formatDateDisplay: {},
9658
9666
  labels: {},
9659
9667
  containerClass: {},
9660
- initialDate: {}
9668
+ initialDate: {},
9669
+ language: {}
9661
9670
  },
9662
9671
  setup(__props) {
9663
9672
  const props = __props;
9673
+ const infra = ProductVideos_vue_vue_type_script_setup_true_lang.useInfraProps(props);
9674
+ const inputLang = vue.computed(
9675
+ () => infra.language ? String(infra.language).toLowerCase() : void 0
9676
+ );
9664
9677
  const selectedDate = vue.ref("");
9665
9678
  const modalOpen = vue.ref(false);
9666
9679
  const customDateValue = vue.ref("");
@@ -9747,8 +9760,8 @@ const _sfc_main$w = /* @__PURE__ */ vue.defineComponent({
9747
9760
  if (!isoDate) return "";
9748
9761
  const date = new Date(isoDate);
9749
9762
  if (isNaN(date.getTime())) return "";
9750
- const weekday = ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"][date.getDay()];
9751
- const months = [
9763
+ const WEEKDAYS = ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"];
9764
+ const MONTHS = [
9752
9765
  "Jan",
9753
9766
  "Feb",
9754
9767
  "Mar",
@@ -9762,7 +9775,9 @@ const _sfc_main$w = /* @__PURE__ */ vue.defineComponent({
9762
9775
  "Nov",
9763
9776
  "Dec"
9764
9777
  ];
9765
- return weekday + ", " + months[date.getMonth()] + " " + date.getDate();
9778
+ const weekday = getLabel(`day_${date.getDay()}`, WEEKDAYS[date.getDay()]);
9779
+ const month = getLabel(`month_${date.getMonth()}`, MONTHS[date.getMonth()]);
9780
+ return weekday + ", " + month + " " + date.getDate();
9766
9781
  }
9767
9782
  function handleSelect(isoDate) {
9768
9783
  selectedDate.value = isoDate;
@@ -9867,6 +9882,7 @@ const _sfc_main$w = /* @__PURE__ */ vue.defineComponent({
9867
9882
  ]),
9868
9883
  vue.createElementVNode("input", {
9869
9884
  type: "date",
9885
+ lang: inputLang.value,
9870
9886
  class: vue.normalizeClass(["propeller-delivery-date__input w-full border border-input rounded-[var(--radius-container)] px-3 py-2 text-sm focus:outline-none focus:ring-2 focus:ring-secondary focus:border-secondary", customDateError.value ? "border-destructive focus:ring-destructive focus:border-destructive" : ""]),
9871
9887
  min: minDate.value,
9872
9888
  value: customDateValue.value,
@@ -9918,12 +9934,12 @@ const _hoisted_14$h = {
9918
9934
  key: 0,
9919
9935
  class: "propeller-favorite-list-item__stock flex-shrink-0"
9920
9936
  };
9921
- const _hoisted_15$g = {
9937
+ const _hoisted_15$h = {
9922
9938
  key: 0,
9923
9939
  class: "propeller-favorite-list-item__stock-badge inline-flex items-center rounded-full px-2 py-0.5 text-xs font-medium text-success bg-success/10",
9924
9940
  "data-stock": "in"
9925
9941
  };
9926
- const _hoisted_16$g = {
9942
+ const _hoisted_16$h = {
9927
9943
  key: 1,
9928
9944
  class: "propeller-favorite-list-item__stock-badge inline-flex items-center rounded-full px-2 py-0.5 text-xs font-medium text-warning bg-warning/10",
9929
9945
  "data-stock": "low"
@@ -10145,8 +10161,8 @@ const _sfc_main$v = /* @__PURE__ */ vue.defineComponent({
10145
10161
  ])) : vue.createCommentVNode("", true),
10146
10162
  !isProduct() ? (vue.openBlock(), vue.createElementBlock(vue.Fragment, { key: 1 }, [
10147
10163
  getCluster()?.defaultProduct?.inventory?.totalQuantity !== void 0 ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_14$h, [
10148
- (getCluster()?.defaultProduct?.inventory?.totalQuantity || 0) > 5 ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_15$g, vue.toDisplayString(getLabel("inStock", "In stock")), 1)) : vue.createCommentVNode("", true),
10149
- (getCluster()?.defaultProduct?.inventory?.totalQuantity || 0) > 0 && (getCluster()?.defaultProduct?.inventory?.totalQuantity || 0) <= 5 ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_16$g, vue.toDisplayString(getLabel("lowStock", "Low stock")), 1)) : vue.createCommentVNode("", true),
10164
+ (getCluster()?.defaultProduct?.inventory?.totalQuantity || 0) > 5 ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_15$h, vue.toDisplayString(getLabel("inStock", "In stock")), 1)) : vue.createCommentVNode("", true),
10165
+ (getCluster()?.defaultProduct?.inventory?.totalQuantity || 0) > 0 && (getCluster()?.defaultProduct?.inventory?.totalQuantity || 0) <= 5 ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_16$h, vue.toDisplayString(getLabel("lowStock", "Low stock")), 1)) : vue.createCommentVNode("", true),
10150
10166
  (getCluster()?.defaultProduct?.inventory?.totalQuantity || 0) === 0 ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_17$g, vue.toDisplayString(getLabel("outOfStock", "Out of stock")), 1)) : vue.createCommentVNode("", true)
10151
10167
  ])) : vue.createCommentVNode("", true)
10152
10168
  ], 64)) : vue.createCommentVNode("", true)
@@ -10414,11 +10430,11 @@ const _hoisted_12$h = {
10414
10430
  };
10415
10431
  const _hoisted_13$g = { class: "propeller-favorite-list-details__empty-title text-lg font-medium" };
10416
10432
  const _hoisted_14$g = { class: "propeller-favorite-list-details__empty-message text-muted-foreground" };
10417
- const _hoisted_15$f = {
10433
+ const _hoisted_15$g = {
10418
10434
  key: 2,
10419
10435
  class: "propeller-favorite-list-details__floating-bar fixed bottom-0 left-0 right-0 z-40 border-t border-border bg-card shadow-lg"
10420
10436
  };
10421
- const _hoisted_16$f = { class: "propeller-favorite-list-details__floating-bar-inner flex items-center justify-between gap-4 px-6 py-4" };
10437
+ const _hoisted_16$g = { class: "propeller-favorite-list-details__floating-bar-inner flex items-center justify-between gap-4 px-6 py-4" };
10422
10438
  const _hoisted_17$f = { class: "propeller-favorite-list-details__floating-bar-status flex items-center gap-2" };
10423
10439
  const _hoisted_18$d = ["checked"];
10424
10440
  const _hoisted_19$d = {
@@ -10952,8 +10968,8 @@ const _sfc_main$t = /* @__PURE__ */ vue.defineComponent({
10952
10968
  ])
10953
10969
  ])) : vue.createCommentVNode("", true)
10954
10970
  ], 64)) : vue.createCommentVNode("", true),
10955
- selectedIds.value.size > 0 ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_15$f, [
10956
- vue.createElementVNode("div", _hoisted_16$f, [
10971
+ selectedIds.value.size > 0 ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_15$g, [
10972
+ vue.createElementVNode("div", _hoisted_16$g, [
10957
10973
  vue.createElementVNode("div", _hoisted_17$f, [
10958
10974
  vue.createElementVNode("input", {
10959
10975
  id: "favorite-list-select-all-floating",
@@ -11170,8 +11186,8 @@ const _hoisted_11$g = { class: "flex items-center space-x-2" };
11170
11186
  const _hoisted_12$g = ["id", "checked"];
11171
11187
  const _hoisted_13$f = ["for"];
11172
11188
  const _hoisted_14$f = { class: "flex gap-2" };
11173
- const _hoisted_15$e = ["onClick", "disabled"];
11174
- const _hoisted_16$e = {
11189
+ const _hoisted_15$f = ["onClick", "disabled"];
11190
+ const _hoisted_16$f = {
11175
11191
  key: 1,
11176
11192
  class: "propeller-favorite-lists__display space-y-2"
11177
11193
  };
@@ -11335,10 +11351,11 @@ const _sfc_main$s = /* @__PURE__ */ vue.defineComponent({
11335
11351
  if (props.formatDate) return props.formatDate(dateString);
11336
11352
  if (!dateString) return "-";
11337
11353
  const d = new Date(dateString);
11354
+ if (isNaN(d.getTime())) return dateString;
11338
11355
  const day = String(d.getDate()).padStart(2, "0");
11339
11356
  const month = String(d.getMonth() + 1).padStart(2, "0");
11340
11357
  const year = d.getFullYear();
11341
- return `${day}/${month}/${year}`;
11358
+ return `${day}-${month}-${year}`;
11342
11359
  }
11343
11360
  function getProductCount(list) {
11344
11361
  const products = list.products;
@@ -11443,14 +11460,14 @@ const _sfc_main$s = /* @__PURE__ */ vue.defineComponent({
11443
11460
  class: "propeller-favorite-lists__save-btn inline-flex items-center px-3 py-1.5 text-sm font-medium rounded-[var(--radius-control)] text-primary-foreground bg-primary hover:bg-primary/80 disabled:opacity-50",
11444
11461
  onClick: async (event) => handleUpdateList(String(list.id)),
11445
11462
  disabled: !vue.unref(editListName).trim()
11446
- }, vue.toDisplayString(getLabel("editSave", "Save")), 9, _hoisted_15$e),
11463
+ }, vue.toDisplayString(getLabel("editSave", "Save")), 9, _hoisted_15$f),
11447
11464
  vue.createElementVNode("button", {
11448
11465
  class: "propeller-favorite-lists__cancel-btn inline-flex items-center px-3 py-1.5 text-sm font-medium rounded-[var(--radius-control)] border border-input text-muted-foreground bg-card hover:bg-surface-hover",
11449
11466
  onClick: _cache[3] || (_cache[3] = async (event) => handleCancelEdit())
11450
11467
  }, vue.toDisplayString(getLabel("editCancel", "Cancel")), 1)
11451
11468
  ])
11452
11469
  ])) : vue.createCommentVNode("", true),
11453
- vue.unref(editingListId) !== String(list.id) ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_16$e, [
11470
+ vue.unref(editingListId) !== String(list.id) ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_16$f, [
11454
11471
  vue.createElementVNode("div", _hoisted_17$e, [
11455
11472
  vue.createElementVNode("span", _hoisted_18$c, vue.toDisplayString(list.name), 1),
11456
11473
  __props.showDefaultIndicator !== false && list.isDefault ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_19$c, vue.toDisplayString(getLabel("defaultBadge", "Default")), 1)) : vue.createCommentVNode("", true)
@@ -11883,8 +11900,8 @@ const _hoisted_12$e = {
11883
11900
  };
11884
11901
  const _hoisted_13$e = ["data-expanded"];
11885
11902
  const _hoisted_14$e = ["onClick"];
11886
- const _hoisted_15$d = { class: "propeller-grid-filters__group-title text-sm font-semibold text-muted-foreground truncate" };
11887
- const _hoisted_16$d = {
11903
+ const _hoisted_15$e = { class: "propeller-grid-filters__group-title text-sm font-semibold text-muted-foreground truncate" };
11904
+ const _hoisted_16$e = {
11888
11905
  key: 0,
11889
11906
  class: "propeller-grid-filters__options pt-2 space-y-1.5"
11890
11907
  };
@@ -12189,7 +12206,7 @@ const _sfc_main$q = /* @__PURE__ */ vue.defineComponent({
12189
12206
  class: "propeller-grid-filters__group-toggle w-full flex items-center justify-between gap-2 text-left py-1 hover:text-secondary transition-colors",
12190
12207
  onClick: async (event) => toggleAccordion(getFilterName(filter))
12191
12208
  }, [
12192
- vue.createElementVNode("span", _hoisted_15$d, vue.toDisplayString(getFilterTitle(filter)), 1),
12209
+ vue.createElementVNode("span", _hoisted_15$e, vue.toDisplayString(getFilterTitle(filter)), 1),
12193
12210
  (vue.openBlock(), vue.createElementBlock("svg", {
12194
12211
  fill: "none",
12195
12212
  stroke: "currentColor",
@@ -12204,7 +12221,7 @@ const _sfc_main$q = /* @__PURE__ */ vue.defineComponent({
12204
12221
  }, null, -1)
12205
12222
  ])], 2))
12206
12223
  ], 8, _hoisted_14$e),
12207
- isExpanded(getFilterName(filter)) ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_16$d, [
12224
+ isExpanded(getFilterName(filter)) ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_16$e, [
12208
12225
  (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(getValidOptions(filter), (option, index22) => {
12209
12226
  return vue.openBlock(), vue.createElementBlock("label", {
12210
12227
  key: option.value,
@@ -12391,7 +12408,7 @@ const _hoisted_14$d = {
12391
12408
  strokeLinecap: "round",
12392
12409
  strokeLinejoin: "round"
12393
12410
  };
12394
- const _hoisted_15$c = {
12411
+ const _hoisted_15$d = {
12395
12412
  key: 1,
12396
12413
  xmlns: "http://www.w3.org/2000/svg",
12397
12414
  width: "16",
@@ -12403,7 +12420,7 @@ const _hoisted_15$c = {
12403
12420
  strokeLinecap: "round",
12404
12421
  strokeLinejoin: "round"
12405
12422
  };
12406
- const _hoisted_16$c = {
12423
+ const _hoisted_16$d = {
12407
12424
  key: 0,
12408
12425
  class: "propeller-grid-toolbar__active-filters flex flex-wrap gap-2 mb-4"
12409
12426
  };
@@ -12609,7 +12626,7 @@ const _sfc_main$o = /* @__PURE__ */ vue.defineComponent({
12609
12626
  currentViewMode.value === "grid" ? (vue.openBlock(), vue.createElementBlock("svg", _hoisted_14$d, [..._cache[6] || (_cache[6] = [
12610
12627
  vue.createStaticVNode('<line x1="8" y1="6" x2="21" y2="6"></line><line x1="8" y1="12" x2="21" y2="12"></line><line x1="8" y1="18" x2="21" y2="18"></line><line x1="3" y1="6" x2="3.01" y2="6"></line><line x1="3" y1="12" x2="3.01" y2="12"></line><line x1="3" y1="18" x2="3.01" y2="18"></line>', 6)
12611
12628
  ])])) : vue.createCommentVNode("", true),
12612
- currentViewMode.value === "list" ? (vue.openBlock(), vue.createElementBlock("svg", _hoisted_15$c, [..._cache[7] || (_cache[7] = [
12629
+ currentViewMode.value === "list" ? (vue.openBlock(), vue.createElementBlock("svg", _hoisted_15$d, [..._cache[7] || (_cache[7] = [
12613
12630
  vue.createElementVNode("rect", {
12614
12631
  x: "3",
12615
12632
  y: "3",
@@ -12638,7 +12655,7 @@ const _sfc_main$o = /* @__PURE__ */ vue.defineComponent({
12638
12655
  ], 8, _hoisted_13$d)
12639
12656
  ])
12640
12657
  ]),
12641
- hasActiveFilters() ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_16$c, [
12658
+ hasActiveFilters() ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_16$d, [
12642
12659
  vue.createElementVNode("button", {
12643
12660
  type: "button",
12644
12661
  class: "propeller-grid-toolbar__clear-all h-7 px-2 text-xs rounded-[var(--radius-control)] hover:bg-accent hover:text-accent-foreground transition-colors",
@@ -12731,8 +12748,8 @@ const _hoisted_14$c = {
12731
12748
  key: 0,
12732
12749
  class: "text-muted-foreground whitespace-nowrap ml-2"
12733
12750
  };
12734
- const _hoisted_15$b = { class: "line-clamp-1" };
12735
- const _hoisted_16$b = {
12751
+ const _hoisted_15$c = { class: "line-clamp-1" };
12752
+ const _hoisted_16$c = {
12736
12753
  key: 0,
12737
12754
  class: "text-foreground-subtle whitespace-nowrap ml-2"
12738
12755
  };
@@ -12955,8 +12972,8 @@ const _sfc_main$m = /* @__PURE__ */ vue.defineComponent({
12955
12972
  key: idx,
12956
12973
  class: "propeller-items-overview__item-bundle-item flex justify-between items-center text-xs text-muted-foreground"
12957
12974
  }, [
12958
- vue.createElementVNode("span", _hoisted_15$b, vue.toDisplayString(getBundleItemName(bundleItem)), 1),
12959
- !!getBundleItemPrice(bundleItem) ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_16$b, vue.toDisplayString(getBundleItemPrice(bundleItem)), 1)) : vue.createCommentVNode("", true)
12975
+ vue.createElementVNode("span", _hoisted_15$c, vue.toDisplayString(getBundleItemName(bundleItem)), 1),
12976
+ !!getBundleItemPrice(bundleItem) ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_16$c, vue.toDisplayString(getBundleItemPrice(bundleItem)), 1)) : vue.createCommentVNode("", true)
12960
12977
  ]);
12961
12978
  }), 128))
12962
12979
  ])
@@ -13054,14 +13071,14 @@ const _hoisted_11$b = {
13054
13071
  const _hoisted_12$b = ["data-active", "onMouseenter"];
13055
13072
  const _hoisted_13$b = ["href", "onClick"];
13056
13073
  const _hoisted_14$b = { class: "propeller-menu__label truncate" };
13057
- const _hoisted_15$a = {
13074
+ const _hoisted_15$b = {
13058
13075
  key: 0,
13059
13076
  fill: "none",
13060
13077
  stroke: "currentColor",
13061
13078
  viewBox: "0 0 24 24",
13062
13079
  class: "propeller-menu__chevron w-4 h-4 text-muted-foreground"
13063
13080
  };
13064
- const _hoisted_16$a = {
13081
+ const _hoisted_16$b = {
13065
13082
  key: 0,
13066
13083
  class: "propeller-menu__list w-64 py-1 flex-shrink-0",
13067
13084
  "data-level": "3"
@@ -13262,7 +13279,7 @@ const _sfc_main$l = /* @__PURE__ */ vue.defineComponent({
13262
13279
  class: vue.normalizeClass(`propeller-menu__link flex items-center justify-between px-4 py-2.5 text-sm transition-colors ${hoveredL2Id.value === l2.categoryId ? "bg-accent text-accent-foreground" : "text-foreground hover:bg-accent/50"}`)
13263
13280
  }, [
13264
13281
  vue.createElementVNode("span", _hoisted_14$b, vue.toDisplayString(getCategoryName(l2)), 1),
13265
- getSubCategories(l2).length > 0 ? (vue.openBlock(), vue.createElementBlock("svg", _hoisted_15$a, [..._cache[3] || (_cache[3] = [
13282
+ getSubCategories(l2).length > 0 ? (vue.openBlock(), vue.createElementBlock("svg", _hoisted_15$b, [..._cache[3] || (_cache[3] = [
13266
13283
  vue.createElementVNode("path", {
13267
13284
  strokeLinecap: "round",
13268
13285
  strokeLinejoin: "round",
@@ -13280,7 +13297,7 @@ const _sfc_main$l = /* @__PURE__ */ vue.defineComponent({
13280
13297
  return vue.openBlock(), vue.createElementBlock(vue.Fragment, { key: index2 }, [
13281
13298
  hoveredL1Id.value === l1.categoryId ? (vue.openBlock(true), vue.createElementBlock(vue.Fragment, { key: 0 }, vue.renderList(getSubCategories(l1), (l2, index22) => {
13282
13299
  return vue.openBlock(), vue.createElementBlock(vue.Fragment, { key: index22 }, [
13283
- hoveredL2Id.value === l2.categoryId && getSubCategories(l2).length > 0 ? (vue.openBlock(), vue.createElementBlock("ul", _hoisted_16$a, [
13300
+ hoveredL2Id.value === l2.categoryId && getSubCategories(l2).length > 0 ? (vue.openBlock(), vue.createElementBlock("ul", _hoisted_16$b, [
13284
13301
  (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(getSubCategories(l2), (l3, idx3) => {
13285
13302
  return vue.openBlock(), vue.createElementBlock("li", {
13286
13303
  key: `l3-${l3.categoryId}-${idx3}`,
@@ -13735,8 +13752,8 @@ const _hoisted_14$a = {
13735
13752
  key: 2,
13736
13753
  class: "flex space-x-2 w-full"
13737
13754
  };
13738
- const _hoisted_15$9 = ["placeholder", "value"];
13739
- const _hoisted_16$9 = ["placeholder", "value"];
13755
+ const _hoisted_15$a = ["placeholder", "value"];
13756
+ const _hoisted_16$a = ["placeholder", "value"];
13740
13757
  const _hoisted_17$9 = {
13741
13758
  key: 3,
13742
13759
  class: "flex space-x-2 w-full"
@@ -13879,7 +13896,11 @@ const _sfc_main$i = /* @__PURE__ */ vue.defineComponent({
13879
13896
  function formatDate(dateString) {
13880
13897
  if (props.formatDate) return props.formatDate(dateString);
13881
13898
  if (!dateString) return "-";
13882
- return new Date(dateString).toLocaleDateString();
13899
+ const d = new Date(dateString);
13900
+ if (isNaN(d.getTime())) return dateString;
13901
+ const day = String(d.getDate()).padStart(2, "0");
13902
+ const month = String(d.getMonth() + 1).padStart(2, "0");
13903
+ return `${day}-${month}-${d.getFullYear()}`;
13883
13904
  }
13884
13905
  function formatPrice(price) {
13885
13906
  if (props.formatPrice) return props.formatPrice(price);
@@ -14059,7 +14080,7 @@ const _sfc_main$i = /* @__PURE__ */ vue.defineComponent({
14059
14080
  }
14060
14081
  };
14061
14082
  })
14062
- }, null, 40, _hoisted_15$9),
14083
+ }, null, 40, _hoisted_15$a),
14063
14084
  vue.createElementVNode("input", {
14064
14085
  type: "number",
14065
14086
  placeholder: getLabel("priceMaxPlaceholder", "Max"),
@@ -14075,7 +14096,7 @@ const _sfc_main$i = /* @__PURE__ */ vue.defineComponent({
14075
14096
  }
14076
14097
  };
14077
14098
  })
14078
- }, null, 40, _hoisted_16$9)
14099
+ }, null, 40, _hoisted_16$a)
14079
14100
  ])) : vue.createCommentVNode("", true),
14080
14101
  field === "sortInput" ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_17$9, [
14081
14102
  vue.createElementVNode("select", {
@@ -14304,8 +14325,8 @@ const _hoisted_14$9 = {
14304
14325
  key: 1,
14305
14326
  class: "text-muted-foreground"
14306
14327
  };
14307
- const _hoisted_15$8 = { class: "px-4 py-3 text-muted-foreground" };
14308
- const _hoisted_16$8 = { class: "px-4 py-3 text-muted-foreground" };
14328
+ const _hoisted_15$9 = { class: "px-4 py-3 text-muted-foreground" };
14329
+ const _hoisted_16$9 = { class: "px-4 py-3 text-muted-foreground" };
14309
14330
  const _hoisted_17$8 = { class: "px-4 py-3 text-muted-foreground" };
14310
14331
  const _hoisted_18$7 = { class: "px-4 py-3 text-right" };
14311
14332
  const _hoisted_19$7 = ["onClick"];
@@ -14382,7 +14403,10 @@ const _sfc_main$h = /* @__PURE__ */ vue.defineComponent({
14382
14403
  function formatDate(dateStr) {
14383
14404
  if (!dateStr) return "-";
14384
14405
  const d = new Date(dateStr);
14385
- return `${d.getDate()}.${d.getMonth() + 1}.${d.getFullYear()}`;
14406
+ if (isNaN(d.getTime())) return dateStr;
14407
+ const day = String(d.getDate()).padStart(2, "0");
14408
+ const month = String(d.getMonth() + 1).padStart(2, "0");
14409
+ return `${day}-${month}-${d.getFullYear()}`;
14386
14410
  }
14387
14411
  function getOrderItemForShipmentItem(shipmentItem) {
14388
14412
  if (!props.order?.items || !shipmentItem.orderItemId) return null;
@@ -14422,8 +14446,8 @@ const _sfc_main$h = /* @__PURE__ */ vue.defineComponent({
14422
14446
  !!shipment.status ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_13$9, vue.toDisplayString(shipment.status), 1)) : vue.createCommentVNode("", true),
14423
14447
  !shipment.status ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_14$9, "-")) : vue.createCommentVNode("", true)
14424
14448
  ]),
14425
- vue.createElementVNode("td", _hoisted_15$8, vue.toDisplayString(formatDate(shipment.createdAt)), 1),
14426
- vue.createElementVNode("td", _hoisted_16$8, [
14449
+ vue.createElementVNode("td", _hoisted_15$9, vue.toDisplayString(formatDate(shipment.createdAt)), 1),
14450
+ vue.createElementVNode("td", _hoisted_16$9, [
14427
14451
  !!shipment.expectedDeliveryAt ? (vue.openBlock(), vue.createElementBlock(vue.Fragment, { key: 0 }, [
14428
14452
  vue.createTextVNode(vue.toDisplayString(formatDate(shipment.expectedDeliveryAt)), 1)
14429
14453
  ], 64)) : vue.createCommentVNode("", true),
@@ -14607,16 +14631,19 @@ const _sfc_main$g = /* @__PURE__ */ vue.defineComponent({
14607
14631
  props: {
14608
14632
  label: {},
14609
14633
  labels: {},
14634
+ value: { type: Boolean },
14610
14635
  initialState: { type: Boolean },
14611
14636
  inclExclVatSwitched: { type: Function },
14612
14637
  className: {}
14613
14638
  },
14614
14639
  setup(__props) {
14615
14640
  const props = __props;
14616
- const isOn = vue.ref(props.initialState ?? true);
14641
+ const isControlled = vue.computed(() => props.value !== void 0);
14642
+ const internal = vue.ref(props.initialState ?? true);
14643
+ const isOn = vue.computed(() => isControlled.value ? !!props.value : internal.value);
14617
14644
  vue.onMounted(() => {
14618
- if (typeof window !== "undefined") {
14619
- isOn.value = props.initialState ?? true;
14645
+ if (!isControlled.value && typeof window !== "undefined") {
14646
+ internal.value = props.initialState ?? true;
14620
14647
  }
14621
14648
  });
14622
14649
  function getLabel() {
@@ -14627,7 +14654,9 @@ const _sfc_main$g = /* @__PURE__ */ vue.defineComponent({
14627
14654
  }
14628
14655
  function handleToggle() {
14629
14656
  const newValue = !isOn.value;
14630
- isOn.value = newValue;
14657
+ if (!isControlled.value) {
14658
+ internal.value = newValue;
14659
+ }
14631
14660
  if (props.inclExclVatSwitched) {
14632
14661
  props.inclExclVatSwitched(newValue);
14633
14662
  }
@@ -14689,8 +14718,8 @@ const _hoisted_13$8 = {
14689
14718
  strokeWidth: 2.5
14690
14719
  };
14691
14720
  const _hoisted_14$8 = { class: "propeller-product-bundles__summary flex-shrink-0 w-full lg:w-72 pl-0 lg:pl-6" };
14692
- const _hoisted_15$7 = { class: "propeller-product-bundles__title text-xl font-bold text-foreground mb-1" };
14693
- const _hoisted_16$7 = {
14721
+ const _hoisted_15$8 = { class: "propeller-product-bundles__title text-xl font-bold text-foreground mb-1" };
14722
+ const _hoisted_16$8 = {
14694
14723
  key: 0,
14695
14724
  class: "propeller-product-bundles__description text-sm text-muted-foreground mb-3"
14696
14725
  };
@@ -15011,8 +15040,8 @@ const _sfc_main$f = /* @__PURE__ */ vue.defineComponent({
15011
15040
  ])]))
15012
15041
  ]),
15013
15042
  vue.createElementVNode("div", _hoisted_14$8, [
15014
- vue.createElementVNode("h3", _hoisted_15$7, vue.toDisplayString(bundle.name || getLabel("title", "Combo deal")), 1),
15015
- bundle.description ? (vue.openBlock(), vue.createElementBlock("p", _hoisted_16$7, vue.toDisplayString(bundle.description), 1)) : vue.createCommentVNode("", true),
15043
+ vue.createElementVNode("h3", _hoisted_15$8, vue.toDisplayString(bundle.name || getLabel("title", "Combo deal")), 1),
15044
+ bundle.description ? (vue.openBlock(), vue.createElementBlock("p", _hoisted_16$8, vue.toDisplayString(bundle.description), 1)) : vue.createCommentVNode("", true),
15016
15045
  bundle.condition ? (vue.openBlock(), vue.createElementBlock("p", _hoisted_17$7, [
15017
15046
  bundle.condition === vue.unref(propellerSdkV2.BundleCondition).ALL ? (vue.openBlock(), vue.createElementBlock(vue.Fragment, { key: 0 }, [
15018
15047
  vue.createTextVNode(vue.toDisplayString(getLabel("condition_ALL", "Discount on all items")), 1)
@@ -15205,8 +15234,8 @@ const _hoisted_11$7 = { class: "propeller-product-card__labels flex flex-col gap
15205
15234
  const _hoisted_12$7 = { class: "propeller-product-card__manufacturer text-xs text-muted-foreground" };
15206
15235
  const _hoisted_13$7 = { class: "propeller-product-card__description line-clamp-2 text-xs text-muted-foreground" };
15207
15236
  const _hoisted_14$7 = { class: "propeller-product-card__footer w-full md:w-auto flex flex-col gap-2 md:flex-row md:items-center md:gap-3 px-4 py-2 md:py-0 border-t md:border-t-0 border-border-subtle" };
15208
- const _hoisted_15$6 = { class: "propeller-product-card__footer-meta flex items-center justify-between gap-3 md:contents" };
15209
- const _hoisted_16$6 = { class: "propeller-product-card__price" };
15237
+ const _hoisted_15$7 = { class: "propeller-product-card__footer-meta flex items-center justify-between gap-3 md:contents" };
15238
+ const _hoisted_16$7 = { class: "propeller-product-card__price" };
15210
15239
  const _hoisted_17$6 = { class: "propeller-product-card__cta w-full md:w-auto md:flex-shrink-0 md:ml-auto" };
15211
15240
  const _hoisted_18$5 = { class: "propeller-product-card__body flex flex-1 flex-col gap-1.5 p-3 sm:gap-2 sm:p-4" };
15212
15241
  const _hoisted_19$5 = { class: "propeller-product-card__sku font-mono text-xs text-foreground-subtle" };
@@ -15561,7 +15590,7 @@ const _sfc_main$e = /* @__PURE__ */ vue.defineComponent({
15561
15590
  ])
15562
15591
  ]),
15563
15592
  vue.createElementVNode("div", _hoisted_14$7, [
15564
- vue.createElementVNode("div", _hoisted_15$6, [
15593
+ vue.createElementVNode("div", _hoisted_15$7, [
15565
15594
  props.showStock && !!props.product.inventory ? vue.renderSlot(_ctx.$slots, "stock", {
15566
15595
  key: 0,
15567
15596
  product: __props.product,
@@ -15591,7 +15620,7 @@ const _sfc_main$e = /* @__PURE__ */ vue.defineComponent({
15591
15620
  currency: __props.currency,
15592
15621
  labels: props.priceLabels
15593
15622
  }, () => [
15594
- vue.createElementVNode("div", _hoisted_16$6, [
15623
+ vue.createElementVNode("div", _hoisted_16$7, [
15595
15624
  props.priceComponent ? (vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(PriceImpl.value), {
15596
15625
  key: 0,
15597
15626
  price: __props.product.price,
@@ -17244,11 +17273,11 @@ const _hoisted_14$6 = {
17244
17273
  key: 1,
17245
17274
  class: "mb-6 space-y-3"
17246
17275
  };
17247
- const _hoisted_15$5 = {
17276
+ const _hoisted_15$6 = {
17248
17277
  key: 0,
17249
17278
  class: "text-sm font-semibold text-muted-foreground uppercase tracking-wide mb-2"
17250
17279
  };
17251
- const _hoisted_16$5 = {
17280
+ const _hoisted_16$6 = {
17252
17281
  key: 1,
17253
17282
  class: "overflow-hidden rounded-[var(--radius-container)] border border-border"
17254
17283
  };
@@ -17426,8 +17455,8 @@ const _sfc_main$7 = /* @__PURE__ */ vue.defineComponent({
17426
17455
  key: group,
17427
17456
  class: "mb-6"
17428
17457
  }, [
17429
- !!group ? (vue.openBlock(), vue.createElementBlock("h4", _hoisted_15$5, vue.toDisplayString(group), 1)) : vue.createCommentVNode("", true),
17430
- __props.layout !== "list" ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_16$5, [
17458
+ !!group ? (vue.openBlock(), vue.createElementBlock("h4", _hoisted_15$6, vue.toDisplayString(group), 1)) : vue.createCommentVNode("", true),
17459
+ __props.layout !== "list" ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_16$6, [
17431
17460
  vue.createElementVNode("table", _hoisted_17$5, [
17432
17461
  vue.createElementVNode("tbody", _hoisted_18$4, [
17433
17462
  (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(getAttributesByGroup(group), (attr, i) => {
@@ -17491,11 +17520,11 @@ const _hoisted_13$5 = {
17491
17520
  class: "propeller-product-tabs__accordion-panel px-4 pb-4"
17492
17521
  };
17493
17522
  const _hoisted_14$5 = { key: 2 };
17494
- const _hoisted_15$4 = {
17523
+ const _hoisted_15$5 = {
17495
17524
  key: 0,
17496
17525
  class: "propeller-product-tabs__accordion-panel px-4 pb-4"
17497
17526
  };
17498
- const _hoisted_16$4 = { key: 3 };
17527
+ const _hoisted_16$5 = { key: 3 };
17499
17528
  const _hoisted_17$4 = {
17500
17529
  key: 0,
17501
17530
  class: "propeller-product-tabs__accordion-panel px-4 pb-4"
@@ -17797,7 +17826,7 @@ const _sfc_main$6 = /* @__PURE__ */ vue.defineComponent({
17797
17826
  vue.createElementVNode("path", { d: "m6 9 6 6 6-6" }, null, -1)
17798
17827
  ])], 2))
17799
17828
  ]),
17800
- isActive("downloads") ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_15$4, [
17829
+ isActive("downloads") ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_15$5, [
17801
17830
  (vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(ProductDownloadsImpl.value), {
17802
17831
  downloads: __props.product.media?.documents,
17803
17832
  language: __props.language || "NL",
@@ -17805,7 +17834,7 @@ const _sfc_main$6 = /* @__PURE__ */ vue.defineComponent({
17805
17834
  }, null, 8, ["downloads", "language", "labels"]))
17806
17835
  ])) : vue.createCommentVNode("", true)
17807
17836
  ])) : vue.createCommentVNode("", true),
17808
- isTabVisible("videos") ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_16$4, [
17837
+ isTabVisible("videos") ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_16$5, [
17809
17838
  vue.createElementVNode("button", {
17810
17839
  type: "button",
17811
17840
  class: "propeller-product-tabs__accordion-trigger flex items-center justify-between w-full px-4 py-3 text-sm font-medium text-left",
@@ -17859,8 +17888,8 @@ const _hoisted_11$4 = { class: "text-left px-4 py-3 font-medium text-muted-foreg
17859
17888
  const _hoisted_12$4 = { class: "text-left px-4 py-3 font-medium text-muted-foreground" };
17860
17889
  const _hoisted_13$4 = { class: "divide-y divide-border" };
17861
17890
  const _hoisted_14$4 = { class: "px-4 py-3 text-muted-foreground" };
17862
- const _hoisted_15$3 = { class: "px-4 py-3" };
17863
- const _hoisted_16$3 = { class: "font-medium" };
17891
+ const _hoisted_15$4 = { class: "px-4 py-3" };
17892
+ const _hoisted_16$4 = { class: "font-medium" };
17864
17893
  const _hoisted_17$3 = { class: "text-xs text-muted-foreground mt-0.5" };
17865
17894
  const _hoisted_18$3 = { class: "px-4 py-3" };
17866
17895
  const _hoisted_19$3 = ["value", "disabled", "onChange"];
@@ -18041,8 +18070,8 @@ const _sfc_main$5 = /* @__PURE__ */ vue.defineComponent({
18041
18070
  class: "hover:bg-surface-hover/30 transition-colors"
18042
18071
  }, [
18043
18072
  vue.createElementVNode("td", _hoisted_14$4, vue.toDisplayString(contact.contactId), 1),
18044
- vue.createElementVNode("td", _hoisted_15$3, [
18045
- vue.createElementVNode("div", _hoisted_16$3, vue.toDisplayString([
18073
+ vue.createElementVNode("td", _hoisted_15$4, [
18074
+ vue.createElementVNode("div", _hoisted_16$4, vue.toDisplayString([
18046
18075
  contact.firstName,
18047
18076
  contact.middleName,
18048
18077
  contact.lastName
@@ -18309,8 +18338,8 @@ const _hoisted_11$3 = { class: "text-left px-4 py-3 font-medium text-muted-foreg
18309
18338
  const _hoisted_12$3 = { class: "text-left px-4 py-3 font-medium text-muted-foreground" };
18310
18339
  const _hoisted_13$3 = { class: "divide-y divide-border" };
18311
18340
  const _hoisted_14$3 = { class: "px-4 py-3 text-muted-foreground" };
18312
- const _hoisted_15$2 = { class: "px-4 py-3" };
18313
- const _hoisted_16$2 = { class: "px-4 py-3 font-medium" };
18341
+ const _hoisted_15$3 = { class: "px-4 py-3" };
18342
+ const _hoisted_16$3 = { class: "px-4 py-3 font-medium" };
18314
18343
  const _hoisted_17$2 = { class: "px-4 py-3" };
18315
18344
  const _hoisted_18$2 = { class: "font-medium" };
18316
18345
  const _hoisted_19$2 = { class: "text-xs text-muted-foreground mt-0.5" };
@@ -18447,7 +18476,10 @@ const _sfc_main$4 = /* @__PURE__ */ vue.defineComponent({
18447
18476
  if (props.formatDate) return props.formatDate(dateStr);
18448
18477
  if (!dateStr) return "-";
18449
18478
  const d = new Date(dateStr);
18450
- return `${d.getDate()}.${d.getMonth() + 1}.${d.getFullYear()}`;
18479
+ if (isNaN(d.getTime())) return dateStr;
18480
+ const day = String(d.getDate()).padStart(2, "0");
18481
+ const month = String(d.getMonth() + 1).padStart(2, "0");
18482
+ return `${day}-${month}-${d.getFullYear()}`;
18451
18483
  }
18452
18484
  function formatPrice(price) {
18453
18485
  if (props.formatPrice) return props.formatPrice(price);
@@ -18483,8 +18515,8 @@ const _sfc_main$4 = /* @__PURE__ */ vue.defineComponent({
18483
18515
  class: "hover:bg-surface-hover/30 transition-colors"
18484
18516
  }, [
18485
18517
  vue.createElementVNode("td", _hoisted_14$3, vue.toDisplayString(formatDate(cart.lastModifiedAt ?? "")), 1),
18486
- vue.createElementVNode("td", _hoisted_15$2, vue.toDisplayString(vue.unref(getTotalQuantity)(cart)), 1),
18487
- vue.createElementVNode("td", _hoisted_16$2, vue.toDisplayString(formatPrice(cart.total?.totalNet ?? 0)), 1),
18518
+ vue.createElementVNode("td", _hoisted_15$3, vue.toDisplayString(vue.unref(getTotalQuantity)(cart)), 1),
18519
+ vue.createElementVNode("td", _hoisted_16$3, vue.toDisplayString(formatPrice(cart.total?.totalNet ?? 0)), 1),
18488
18520
  vue.createElementVNode("td", _hoisted_17$2, [
18489
18521
  vue.createElementVNode("div", _hoisted_18$2, vue.toDisplayString(vue.unref(getContactName)(cart.contact)), 1),
18490
18522
  vue.createElementVNode("div", _hoisted_19$2, vue.toDisplayString(cart.contact?.email), 1)
@@ -18795,8 +18827,8 @@ const _hoisted_11$2 = { class: "text-sm font-medium leading-none" };
18795
18827
  const _hoisted_12$2 = { class: "flex gap-4" };
18796
18828
  const _hoisted_13$2 = { class: "flex items-center gap-2 text-sm" };
18797
18829
  const _hoisted_14$2 = ["checked", "disabled"];
18798
- const _hoisted_15$1 = { class: "flex items-center gap-2 text-sm" };
18799
- const _hoisted_16$1 = ["checked", "disabled"];
18830
+ const _hoisted_15$2 = { class: "flex items-center gap-2 text-sm" };
18831
+ const _hoisted_16$2 = ["checked", "disabled"];
18800
18832
  const _hoisted_17$1 = { class: "flex items-center gap-2 text-sm" };
18801
18833
  const _hoisted_18$1 = ["checked", "disabled"];
18802
18834
  const _hoisted_19$1 = { class: "space-y-2" };
@@ -19297,7 +19329,7 @@ const _sfc_main$2 = /* @__PURE__ */ vue.defineComponent({
19297
19329
  }, null, 40, _hoisted_14$2),
19298
19330
  vue.createTextVNode(" " + vue.toDisplayString(genderMrLabel.value), 1)
19299
19331
  ]),
19300
- vue.createElementVNode("label", _hoisted_15$1, [
19332
+ vue.createElementVNode("label", _hoisted_15$2, [
19301
19333
  vue.createElementVNode("input", {
19302
19334
  type: "radio",
19303
19335
  name: "gender",
@@ -19308,7 +19340,7 @@ const _sfc_main$2 = /* @__PURE__ */ vue.defineComponent({
19308
19340
  gender.value = vue.unref(propellerSdkV2.Gender).F;
19309
19341
  }),
19310
19342
  disabled: vue.unref(loading)
19311
- }, null, 40, _hoisted_16$1),
19343
+ }, null, 40, _hoisted_16$2),
19312
19344
  vue.createTextVNode(" " + vue.toDisplayString(genderMrsLabel.value), 1)
19313
19345
  ]),
19314
19346
  vue.createElementVNode("label", _hoisted_17$1, [
@@ -19863,9 +19895,11 @@ const _hoisted_12$1 = {
19863
19895
  };
19864
19896
  const _hoisted_13$1 = {
19865
19897
  key: 1,
19866
- class: "propeller-search-bar__result-price text-sm font-semibold text-foreground flex-shrink-0"
19898
+ class: "propeller-search-bar__result-price text-sm font-semibold text-foreground flex-shrink-0 text-right"
19867
19899
  };
19868
- const _hoisted_14$1 = {
19900
+ const _hoisted_14$1 = { class: "propeller-search-bar__result-price-value" };
19901
+ const _hoisted_15$1 = { class: "propeller-search-bar__result-price-label block text-xs font-normal text-muted-foreground" };
19902
+ const _hoisted_16$1 = {
19869
19903
  key: 1,
19870
19904
  class: "propeller-search-bar__empty p-4 text-center text-muted-foreground"
19871
19905
  };
@@ -19886,6 +19920,8 @@ const _sfc_main$1 = /* @__PURE__ */ vue.defineComponent({
19886
19920
  onViewAllClick: { type: Function },
19887
19921
  formatPrice: { type: Function },
19888
19922
  labels: {},
19923
+ includeTax: { type: Boolean },
19924
+ priceLabels: {},
19889
19925
  containerClassName: {},
19890
19926
  taxZone: {},
19891
19927
  companyId: {},
@@ -19975,6 +20011,13 @@ const _sfc_main$1 = /* @__PURE__ */ vue.defineComponent({
19975
20011
  }
19976
20012
  return index.formatPrice(price || 0, { symbol: infra.currency ?? "€" });
19977
20013
  }
20014
+ const useTax = vue.computed(() => !!infra.includeTax);
20015
+ function leadingPrice(result) {
20016
+ return useTax.value ? result.priceNet ?? result.price ?? 0 : result.priceGross ?? result.price ?? 0;
20017
+ }
20018
+ function priceTaxLabel() {
20019
+ return useTax.value ? index.getLabel(props.priceLabels, "inclTax", "incl. VAT") : index.getLabel(props.priceLabels, "exclTax", "excl. VAT");
20020
+ }
19978
20021
  function mapProductToResult(item) {
19979
20022
  const isCluster = "clusterId" in item;
19980
20023
  const displayItem = isCluster ? item.defaultProduct : item;
@@ -19983,11 +20026,16 @@ const _sfc_main$1 = /* @__PURE__ */ vue.defineComponent({
19983
20026
  const urls = infra.configuration?.urls;
19984
20027
  const builder = isCluster ? urls?.getClusterUrl : urls?.getProductUrl;
19985
20028
  const url = typeof builder === "function" ? builder(item, infra.language) : isCluster ? "/cluster/" + id + "/" + slug : "/product/" + id + "/" + slug;
20029
+ const priceNet = displayItem?.price?.net || 0;
20030
+ const priceGross = displayItem?.price?.gross || 0;
19986
20031
  return {
19987
20032
  id,
19988
20033
  name: item.names?.[0]?.value || "Product",
19989
20034
  sku: item.sku || displayItem?.sku || "",
19990
- price: displayItem?.price?.gross || 0,
20035
+ // `price` stays gross for back-compat; the row picks net/gross per toggle.
20036
+ price: priceGross,
20037
+ priceNet,
20038
+ priceGross,
19991
20039
  imageUrl: displayItem?.media?.images?.items?.[0]?.imageVariants?.[0]?.url || "",
19992
20040
  url,
19993
20041
  isCluster
@@ -20085,7 +20133,10 @@ const _sfc_main$1 = /* @__PURE__ */ vue.defineComponent({
20085
20133
  vue.createElementVNode("div", _hoisted_11$1, vue.toDisplayString(result.name), 1),
20086
20134
  result.sku ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_12$1, "SKU: " + vue.toDisplayString(result.sku), 1)) : vue.createCommentVNode("", true)
20087
20135
  ]),
20088
- result.price !== void 0 && result.price !== null ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_13$1, vue.toDisplayString(formatItemPrice(result.price)), 1)) : vue.createCommentVNode("", true)
20136
+ result.price !== void 0 && result.price !== null ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_13$1, [
20137
+ vue.createElementVNode("span", _hoisted_14$1, vue.toDisplayString(formatItemPrice(leadingPrice(result))), 1),
20138
+ vue.createElementVNode("span", _hoisted_15$1, vue.toDisplayString(priceTaxLabel()), 1)
20139
+ ])) : vue.createCommentVNode("", true)
20089
20140
  ], 8, _hoisted_7$1);
20090
20141
  }), 128))
20091
20142
  ]),
@@ -20095,7 +20146,7 @@ const _sfc_main$1 = /* @__PURE__ */ vue.defineComponent({
20095
20146
  onClick: _cache[2] || (_cache[2] = async (event) => handleViewAllClick())
20096
20147
  }, vue.toDisplayString(getLabel("viewAll", "View all results")) + " (" + vue.toDisplayString(itemsFound.value) + ") ", 1)) : vue.createCommentVNode("", true)
20097
20148
  ], 64)) : vue.createCommentVNode("", true),
20098
- results.value.length === 0 && searchTerm.value.length >= minLength.value && !vue.unref(isLoading) ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_14$1, vue.toDisplayString(getLabel("noResults", "No products found for")) + ' "' + vue.toDisplayString(searchTerm.value) + '" ', 1)) : vue.createCommentVNode("", true)
20149
+ results.value.length === 0 && searchTerm.value.length >= minLength.value && !vue.unref(isLoading) ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_16$1, vue.toDisplayString(getLabel("noResults", "No products found for")) + ' "' + vue.toDisplayString(searchTerm.value) + '" ', 1)) : vue.createCommentVNode("", true)
20099
20150
  ])) : vue.createCommentVNode("", true)
20100
20151
  ], 10, _hoisted_1$1);
20101
20152
  };