@propeller-commerce/propeller-v2-react-ui 0.25.0 → 0.26.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 +44 -0
- package/dist/index.cjs +361 -36
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +168 -6
- package/dist/index.d.ts +168 -6
- package/dist/index.js +356 -40
- package/dist/index.js.map +1 -1
- package/dist/pure.cjs +2 -1
- package/dist/pure.cjs.map +1 -1
- package/dist/pure.d.cts +11 -3
- package/dist/pure.d.ts +11 -3
- package/dist/pure.js +2 -1
- package/dist/pure.js.map +1 -1
- package/dist/styles.css +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -8,6 +8,50 @@ 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.26.0] - 2026-09-28
|
|
12
|
+
|
|
13
|
+
### Added
|
|
14
|
+
|
|
15
|
+
- **Price-on-request is now a first-class state.** A product whose
|
|
16
|
+
`priceData.display` is `ON_REQUEST` carries no price the customer may be
|
|
17
|
+
quoted, but `price.gross`/`price.net` are still populated — almost always
|
|
18
|
+
with 0 — so every surface that rendered them unguarded showed a real-looking
|
|
19
|
+
"€ 0,00" beside a working add-to-cart button. `isPriceOnRequest()` (exported)
|
|
20
|
+
detects it, resolving a cluster through its default product, and
|
|
21
|
+
`ProductPrice`, `ProductCard`, `ClusterCard` and `SearchBar` render a
|
|
22
|
+
translatable `priceOnRequest` label instead of an amount.
|
|
23
|
+
|
|
24
|
+
- **`RequestPriceButton` + `usePriceRequest` + `PriceRequestList`** — the
|
|
25
|
+
quote funnel these products need. The button replaces add-to-cart on the PDP;
|
|
26
|
+
the list is a parallel basket in `localStorage`, backed by
|
|
27
|
+
`useSyncExternalStore` so the server snapshot is empty and hydration matches;
|
|
28
|
+
the component renders it as an editable SKU/quantity table with one comment
|
|
29
|
+
field. Deliberately NOT the cart: a quoted product cannot be paid for, and
|
|
30
|
+
mixing the two would put an unpriced line into a payable order.
|
|
31
|
+
|
|
32
|
+
There is no SDK mutation for this, so delivery is the host's, supplied as
|
|
33
|
+
`onSubmit`. Without it the list still works and `submit` reports the omission
|
|
34
|
+
rather than reporting a success that never left the browser.
|
|
35
|
+
|
|
36
|
+
- `ProductInfoProps.onRequestPrice` / `priceRequestAdded`, and
|
|
37
|
+
`QuickOrderMatch.priceOnRequest`.
|
|
38
|
+
|
|
39
|
+
### Changed
|
|
40
|
+
|
|
41
|
+
- **`ProductPriceProps.price` is now optional.** It is unread when
|
|
42
|
+
`priceOnRequest` renders in its place, and a card for such a product may
|
|
43
|
+
carry no price object at all. Existing callers are unaffected.
|
|
44
|
+
|
|
45
|
+
- **The PDP gates add-to-cart in the WordPress plugin's order**: `orderable`
|
|
46
|
+
first, then the display mode. A non-orderable product gets neither control, a
|
|
47
|
+
quoted one gets the request button, and an anonymous visitor gets the log-in
|
|
48
|
+
action rather than a list they cannot be quoted from.
|
|
49
|
+
|
|
50
|
+
- **Quick order excludes quoted products.** A bulk upload reports the code as
|
|
51
|
+
unresolved instead of adding a line priced at 0; picking one from the
|
|
52
|
+
typeahead clears the row with a notice. Matches the plugin, which drops them
|
|
53
|
+
from quick-order search results server-side.
|
|
54
|
+
|
|
11
55
|
## [0.25.0] - 2026-09-25
|
|
12
56
|
|
|
13
57
|
### Added
|