@propeller-commerce/propeller-v2-vue-ui 0.3.14 → 0.3.16
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 +58 -0
- package/dist/components/CartItem.vue.d.ts +2 -0
- package/dist/components/ClusterCard.vue.d.ts +0 -2
- package/dist/components/ProductCard.vue.d.ts +13 -2
- package/dist/index.cjs +378 -276
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +399 -297
- package/dist/index.js.map +1 -1
- package/dist/styles.css +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -8,6 +8,64 @@ 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.3.16] - 2026-06-19
|
|
12
|
+
|
|
13
|
+
### Changed
|
|
14
|
+
|
|
15
|
+
- **Mobile product card layout (below 768px).** On narrow viewports the
|
|
16
|
+
`ProductCard` action area no longer overflows the card edge — the quantity
|
|
17
|
+
stepper and "Add to cart" button were clipped. Below `md` (768px):
|
|
18
|
+
- **List view** (`columns === 1`): the footer becomes two rows — stock and
|
|
19
|
+
price share the first row (`justify-between`), and the full-width
|
|
20
|
+
`AddToCart` (stepper + button) sits on the second row.
|
|
21
|
+
- **Grid view** (`columns > 1`): the footer becomes three rows — stock ↔
|
|
22
|
+
price, then a full-width stepper, then a full-width button.
|
|
23
|
+
|
|
24
|
+
At `md` and up the previous desktop layout is unchanged. This flows through
|
|
25
|
+
every surface that renders `ProductCard` / `ProductGrid` (catalog, search,
|
|
26
|
+
product slider). Implemented purely with responsive Tailwind classes — no
|
|
27
|
+
JavaScript width detection.
|
|
28
|
+
|
|
29
|
+
### Added
|
|
30
|
+
|
|
31
|
+
- **Cart icon in the `AddToCart` button.** The submit button now renders a
|
|
32
|
+
built-in cart glyph (`.propeller-add-to-cart__icon`) before its label, drawn
|
|
33
|
+
with `currentColor` and `em` sizing so consumers can restyle its size,
|
|
34
|
+
colour and stroke via CSS.
|
|
35
|
+
|
|
36
|
+
### Fixed
|
|
37
|
+
|
|
38
|
+
- **`CartItem` lost its card border and delete button.** Vue coerces an
|
|
39
|
+
unpassed `Boolean` prop to `false`, so the on-by-default `cardFrame` and
|
|
40
|
+
`showDelete` props evaluated to `false` and hid the card frame and the
|
|
41
|
+
delete (trash) button. Both now default to `true` explicitly via
|
|
42
|
+
`withDefaults`.
|
|
43
|
+
|
|
44
|
+
## [0.3.15] - 2026-06-11
|
|
45
|
+
|
|
46
|
+
### Fixed
|
|
47
|
+
|
|
48
|
+
- **VAT toggle (incl./excl. tax) had no effect on catalog cards.** `ProductGrid`,
|
|
49
|
+
`ProductCard` and `ClusterCard` ignored the `<PropellerProvider>` `includeTax`
|
|
50
|
+
flag, so prices stayed gross (excl. VAT) regardless of the toggle. Two stacked
|
|
51
|
+
causes:
|
|
52
|
+
- **Vue Boolean-prop coercion** — an absent `includeTax?: boolean` prop is cast
|
|
53
|
+
to `false` (never `undefined`), so `useInfraProps`' "explicit prop wins"
|
|
54
|
+
precedence treated the coerced `false` as an override and never consulted the
|
|
55
|
+
provider. The grid now resolves `includeTax` from the provider context
|
|
56
|
+
directly (`usePropellerContext()`), treating only an explicit `true` as a host
|
|
57
|
+
opt-in, and passes the resolved value down to every card.
|
|
58
|
+
- **`inject()` inside a `computed`** — `ProductCard` / `ClusterCard` resolved
|
|
59
|
+
props via `computed(() => useResolvedProps(...))`, where `inject()` returns a
|
|
60
|
+
null context (it is setup-only). Infra is now resolved once at setup via
|
|
61
|
+
`useInfraProps(props)`, so the reactive provider value (the VAT toggle) is
|
|
62
|
+
honoured. Same class of bug as the 0.3.1 provider fix.
|
|
63
|
+
|
|
64
|
+
Brings the Vue cards to parity with `propeller-v2-react-ui`, whose `ProductCard`
|
|
65
|
+
already resolves `includeTax` from infra. Standalone `ProductPrice` /
|
|
66
|
+
`ProductBulkPrices` / `ProductInfo` keep the React contract (the consumer passes
|
|
67
|
+
`includeTax`); the propeller-vue PDP / cluster views were updated accordingly.
|
|
68
|
+
|
|
11
69
|
## [0.3.14] - 2026-06-09
|
|
12
70
|
|
|
13
71
|
### Fixed
|
|
@@ -168,6 +168,8 @@ declare const __VLS_component: import('vue').DefineComponent<CartItemProps, {},
|
|
|
168
168
|
titleLinkable: boolean;
|
|
169
169
|
showSku: boolean;
|
|
170
170
|
enableIncrementDecrement: boolean;
|
|
171
|
+
cardFrame: boolean;
|
|
172
|
+
showDelete: boolean;
|
|
171
173
|
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
|
|
172
174
|
declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
|
|
173
175
|
export default _default;
|
|
@@ -171,8 +171,6 @@ export interface ProductCardProps {
|
|
|
171
171
|
}
|
|
172
172
|
interface ProductCardState {
|
|
173
173
|
isFavorite: boolean;
|
|
174
|
-
includeTax: boolean;
|
|
175
|
-
priceListener: any;
|
|
176
174
|
getProductName: () => string;
|
|
177
175
|
getProductSku: () => string;
|
|
178
176
|
getProductImageUrl: () => string;
|
|
@@ -282,6 +280,19 @@ declare function __VLS_template(): {
|
|
|
282
280
|
showAvailability: boolean;
|
|
283
281
|
labels: Record<string, string> | undefined;
|
|
284
282
|
}): any;
|
|
283
|
+
stock?(_: {
|
|
284
|
+
product: Product;
|
|
285
|
+
inventory: import('@propeller-commerce/propeller-sdk-v2').ProductInventory | undefined;
|
|
286
|
+
showAvailability: boolean;
|
|
287
|
+
labels: Record<string, string> | undefined;
|
|
288
|
+
}): any;
|
|
289
|
+
price?(_: {
|
|
290
|
+
product: Product;
|
|
291
|
+
price: import('@propeller-commerce/propeller-sdk-v2').ProductPrice;
|
|
292
|
+
includeTax: boolean;
|
|
293
|
+
currency: string | undefined;
|
|
294
|
+
labels: Record<string, string> | undefined;
|
|
295
|
+
}): any;
|
|
285
296
|
price?(_: {
|
|
286
297
|
product: Product;
|
|
287
298
|
price: import('@propeller-commerce/propeller-sdk-v2').ProductPrice;
|