@propeller-commerce/propeller-v2-react-ui 0.15.1 → 0.15.3

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/CHANGELOG.md CHANGED
@@ -8,6 +8,30 @@ once it reaches 1.0. Until then (the `0.x` line) the public API may change
8
8
  between minor versions; breaking changes are called out below and in
9
9
  [MIGRATION.md](./MIGRATION.md).
10
10
 
11
+ ## [0.15.3] - 2026-08-10
12
+
13
+ ### Fixed
14
+
15
+ - `<CartSummary>` renders a **Transaction costs** line when the cart's payment
16
+ method carries a fee. The fee was already inside `total.totalGross`, so the
17
+ panel's own rows never added up to the "Total excl. VAT" it printed — a €7.25
18
+ order with €49.00 shipping showed €56.60. `<OrderTotals>` has always shown
19
+ this row; the cart panel now matches. Label key: `transactionCosts`.
20
+
21
+ ## [0.15.2] - 2026-08-10
22
+
23
+ ### Fixed
24
+
25
+ - `<GridFilters>` resolves each facet's label in the active language. The title
26
+ came from `descriptions[0]`, so on a bilingual tenant every filter heading
27
+ rendered in whichever language the API returned first (Dutch), regardless of
28
+ the shopper's selection. It now matches on the `language` prop, falling back
29
+ to the first description and then the raw attribute name.
30
+
31
+ Hosts must pass `language` to `<GridFilters>` / `<GridFiltersPanel>` for the
32
+ labels to follow the language switcher; omitting it preserves the previous
33
+ behaviour.
34
+
11
35
  ## [0.15.1] - 2026-08-10
12
36
 
13
37
  ### Fixed
package/dist/index.cjs CHANGED
@@ -7815,6 +7815,12 @@ function CartSummary(rawProps) {
7815
7815
  function discountAmount() {
7816
7816
  return props.cart?.total?.discount || 0;
7817
7817
  }
7818
+ function hasTransactionCosts() {
7819
+ return (props.cart?.paymentData?.price || 0) > 0;
7820
+ }
7821
+ function transactionCosts() {
7822
+ return Number(props.cart?.paymentData?.price || 0);
7823
+ }
7818
7824
  function hasShippingCosts() {
7819
7825
  return (props.cart?.postageData?.price || 0) > 0;
7820
7826
  }
@@ -7889,6 +7895,10 @@ function CartSummary(rawProps) {
7889
7895
  formatItemPrice(discountAmount())
7890
7896
  ] })
7891
7897
  ] }) : null,
7898
+ hasTransactionCosts() ? /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "propeller-cart-summary__row flex justify-between text-muted-foreground", "data-row": "transaction-costs", children: [
7899
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "propeller-cart-summary__label", children: propellerV2CoreUi.getLabel(props.labels, "transactionCosts", "Transaction costs:") }),
7900
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "propeller-cart-summary__value", children: formatItemPrice(transactionCosts()) })
7901
+ ] }) : null,
7892
7902
  showShippingCosts() && hasShippingCosts() ? /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "propeller-cart-summary__row flex justify-between text-muted-foreground", "data-row": "shipping-costs", children: [
7893
7903
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: "propeller-cart-summary__label", children: propellerV2CoreUi.getLabel(props.labels, "shippingCosts", "Shipping costs:") }),
7894
7904
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: "propeller-cart-summary__value", children: formatItemPrice(shippingCosts()) })
@@ -9388,7 +9398,10 @@ function GridFilters(rawProps) {
9388
9398
  return filter?.attributeDescription?.name || "";
9389
9399
  }
9390
9400
  function getFilterTitle(filter) {
9391
- return filter?.attributeDescription?.descriptions?.[0]?.value || filter?.attributeDescription?.name || "";
9401
+ const descriptions = filter?.attributeDescription?.descriptions;
9402
+ const lang = props.language?.toUpperCase();
9403
+ const match = lang ? descriptions?.find((d) => d?.language?.toUpperCase() === lang) : void 0;
9404
+ return match?.value || descriptions?.[0]?.value || filter?.attributeDescription?.name || "";
9392
9405
  }
9393
9406
  function getFilteredFilters() {
9394
9407
  const list = props.filters ?? [];