@propeller-commerce/propeller-v2-react-ui 0.26.1 → 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/CHANGELOG.md +83 -0
- package/dist/index.cjs +201 -76
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +24 -3
- package/dist/index.d.ts +24 -3
- package/dist/index.js +201 -78
- package/dist/index.js.map +1 -1
- package/dist/pure.cjs +46 -4
- package/dist/pure.cjs.map +1 -1
- package/dist/pure.d.cts +18 -3
- package/dist/pure.d.ts +18 -3
- package/dist/pure.js +46 -5
- package/dist/pure.js.map +1 -1
- package/dist/styles.css +1 -1
- package/package.json +6 -3
package/CHANGELOG.md
CHANGED
|
@@ -8,6 +8,89 @@ 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.28.0] - 2026-10-02
|
|
12
|
+
|
|
13
|
+
### Added
|
|
14
|
+
|
|
15
|
+
- **`imgComponent` on `<PropellerDepsProvider>` — one setting routes every
|
|
16
|
+
image through the host’s image component.** Components rendered a bare
|
|
17
|
+
`<img src="https://media.…">`, so catalog images were fetched straight from
|
|
18
|
+
the media CDN. That CDN sends no `X-Robots-Tag` and serves no `robots.txt`,
|
|
19
|
+
so those images sat outside the storefront’s crawler directives and got none
|
|
20
|
+
of the host framework’s image optimisation. The existing `imageComponent`
|
|
21
|
+
slot could not close this: it takes a `product`/`cluster` and resolves the
|
|
22
|
+
URL itself, so it only fitted five surfaces, and the other nineteen image
|
|
23
|
+
sites had already resolved a URL string by render time. Set `imgComponent`
|
|
24
|
+
once on the provider and images across the package route through it,
|
|
25
|
+
including components added later. Optional — omitting it keeps the previous
|
|
26
|
+
markup. (PWP-1001)
|
|
27
|
+
- **`<PropellerImg>` and `useImgComponent()` are exported.** Hosts composing
|
|
28
|
+
their own cards get the same seam; `<PropellerImg>` is also on the `/pure`
|
|
29
|
+
entry for Server Components.
|
|
30
|
+
- **`OrderItemCard` accepts `imgComponent` as a prop.** It is `@rsc-safe` and
|
|
31
|
+
reads no context, so the provider cannot reach it — same direct-prop
|
|
32
|
+
convention as its existing `priceComponent` / `stockComponent`.
|
|
33
|
+
|
|
34
|
+
### Changed
|
|
35
|
+
|
|
36
|
+
- **Nineteen image sites now render `<PropellerImg>`** across `ProductCard`,
|
|
37
|
+
`ClusterCard`, `ProductGallery`, `CartItem`, `OrderItemCard`, `SearchBar`,
|
|
38
|
+
`ProductBundles`, `MachineCard`, `AddToCart`, `QuickOrder`, `ItemsOverview`,
|
|
39
|
+
`FavoriteListItem`, `FavoriteListDetails`, `ClusterOptions`,
|
|
40
|
+
`ClusterConfigurator`, `CartBonusItems` and `DefaultProductImage`. Markup is
|
|
41
|
+
unchanged when no component is injected.
|
|
42
|
+
- **Carrier and payment-provider logos stay plain `<img>`.** Their domains sit
|
|
43
|
+
outside the host’s image allowlist, so routing them through a framework
|
|
44
|
+
image component would stop them loading. They are catalog-external and not
|
|
45
|
+
crawlable.
|
|
46
|
+
- **`npm run check:img` fails the build on a raw `<img>`.** The seam only holds
|
|
47
|
+
if new components use it, and a raw `<img>` opts a surface out silently.
|
|
48
|
+
Wired into `validate` and `prepublishOnly`.
|
|
49
|
+
|
|
50
|
+
### Fixed
|
|
51
|
+
|
|
52
|
+
- **The "no image" placeholder was two different icons.** Cards, favourites and
|
|
53
|
+
`DefaultProductImage` drew one glyph; cart rows, the cart drawer, bundles, the
|
|
54
|
+
add-to-cart modal and the checkout overview drew another, at a heavier stroke
|
|
55
|
+
weight — so the same missing-image product looked like two different states
|
|
56
|
+
depending on which surface showed it. All of them now use the card icon at a
|
|
57
|
+
consistent stroke weight. The machine card keeps its own glyph, which is
|
|
58
|
+
deliberate.
|
|
59
|
+
- **The cart drawer’s image box did not centre its contents.** It overrides
|
|
60
|
+
`CartItem.Image`’s class, and the override dropped the flex centring, so the
|
|
61
|
+
placeholder sat top-left at its natural size instead of filling the box.
|
|
62
|
+
- **Placeholder icons were exposed to screen readers.** They carry no
|
|
63
|
+
information the row does not already state in text, so they now set
|
|
64
|
+
`aria-hidden`, matching what `DefaultProductImage` already did.
|
|
65
|
+
---
|
|
66
|
+
|
|
67
|
+
## [0.27.0] - 2026-09-28
|
|
68
|
+
|
|
69
|
+
### Fixed
|
|
70
|
+
|
|
71
|
+
- **A quantity field could not be cleared and retyped.** The typed-input handler
|
|
72
|
+
only committed a value once it was at or above the minimum, so with a minimum
|
|
73
|
+
of 2, backspacing to empty or typing "1" was ignored and the previous number
|
|
74
|
+
stayed stuck in the box. The field now accepts any keystroke while editing and
|
|
75
|
+
resolves to a valid quantity on blur. (PWP-970)
|
|
76
|
+
|
|
77
|
+
- **Incrementing an off-grid quantity kept it off-grid.** `increment()` added the
|
|
78
|
+
step without first snapping to the `min + n*step` grid, so a quantity that was
|
|
79
|
+
already off it never returned. Both steppers now snap first. (PWP-970)
|
|
80
|
+
|
|
81
|
+
- **Quick order ignored the order step.** Its quantity input was hardcoded to
|
|
82
|
+
`step={1}` and nothing snapped, while bulk paste and spreadsheet upload are the
|
|
83
|
+
primary ordering route for a wholesale account. `QuickOrderMatch` now carries
|
|
84
|
+
`step` alongside `minQuantity`, and typed quantities snap to it. (PWP-970)
|
|
85
|
+
|
|
86
|
+
- **`OrderItemCard` accepted a misconfiguration in silence.** It ships from the
|
|
87
|
+
RSC-safe `/pure` entry and reads no context, so the host must supply `language`
|
|
88
|
+
and `configuration.urls` — but both are optional, nothing warned, and the
|
|
89
|
+
failure only showed as a wrong-language name or a link that dropped the locale
|
|
90
|
+
prefix two clicks later. A development-only warning now names each omission
|
|
91
|
+
once. `titleLinkable` defaults to true, so the link case applies unless a host
|
|
92
|
+
opts out. (PWP-972)
|
|
93
|
+
|
|
11
94
|
## [0.26.1] - 2026-09-28
|
|
12
95
|
|
|
13
96
|
### Fixed
|