@propeller-commerce/propeller-v2-vue-ui 0.3.25 → 0.3.27
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 +28 -0
- package/dist/components/ProductCard.vue.d.ts +15 -0
- package/dist/components/ProductGrid.vue.d.ts +7 -0
- package/dist/components/ProductSpecifications.vue.d.ts +39 -1
- package/dist/components/ProductTabs.vue.d.ts +19 -1
- package/dist/context/ProductGridContext.d.ts +7 -0
- package/dist/index.cjs +471 -367
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +472 -368
- 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,34 @@ 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.27] - 2026-07-10
|
|
12
|
+
|
|
13
|
+
### Added
|
|
14
|
+
|
|
15
|
+
- `ProductSpecifications`: new `#beforeSpecs` / `#afterSpecs` scoped slots. Each
|
|
16
|
+
receives `{ layout: 'table' | 'list' }` and renders arbitrary content at the
|
|
17
|
+
start / end of the specifications — inside `<tbody>` for the table layout
|
|
18
|
+
(return a `<tr>`, e.g. a labelled "Unit of measure" row) or in the list stack
|
|
19
|
+
for the list layout (return a block). In grouped mode they render once, above
|
|
20
|
+
the first group / below the last. General replacement for hardcoding extra
|
|
21
|
+
rows; the existing `packageDescription` prop is unchanged. Mirrors the React
|
|
22
|
+
`beforeSpecs` / `afterSpecs` render props.
|
|
23
|
+
- `ProductTabs`: `#specificationsBefore` / `#specificationsAfter` scoped slots
|
|
24
|
+
that forward to the specifications section's new slots.
|
|
25
|
+
|
|
26
|
+
## [0.3.26] - 2026-07-09
|
|
27
|
+
|
|
28
|
+
### Added
|
|
29
|
+
|
|
30
|
+
- `ProductCard` / `ProductGrid`: new `belowNameComponent?: Component` prop plus a
|
|
31
|
+
`#belowName` scoped slot on `ProductCard`. Renders arbitrary host-supplied
|
|
32
|
+
content directly below the product name (and above the short description /
|
|
33
|
+
price) in both the grid and row layouts, without forking the card — e.g.
|
|
34
|
+
package descriptions or custom badges. On `ProductGrid` the component cascades
|
|
35
|
+
to every card via `ProductGridConfig`; on `ProductCard` it can also be set
|
|
36
|
+
per-card (explicit prop wins over grid context) or overridden via the
|
|
37
|
+
`#belowName` slot. Mirrors the React `belowName` render prop.
|
|
38
|
+
|
|
11
39
|
## [0.3.25] - 2026-07-09
|
|
12
40
|
|
|
13
41
|
### Added
|
|
@@ -168,6 +168,15 @@ export interface ProductCardProps {
|
|
|
168
168
|
imageComponent?: Component;
|
|
169
169
|
badgesComponent?: Component;
|
|
170
170
|
favoriteComponent?: Component;
|
|
171
|
+
/**
|
|
172
|
+
* Render arbitrary content directly below the product name (and above the
|
|
173
|
+
* short description / price), in both the grid and row layouts. Receives the
|
|
174
|
+
* product as a prop so hosts can surface extra info — e.g. package
|
|
175
|
+
* descriptions, custom badges — without forking the card. Consumers can also
|
|
176
|
+
* use the `#belowName` scoped slot directly; this prop is the cascadable
|
|
177
|
+
* (grid-wide) equivalent.
|
|
178
|
+
*/
|
|
179
|
+
belowNameComponent?: Component;
|
|
171
180
|
}
|
|
172
181
|
interface ProductCardState {
|
|
173
182
|
isFavorite: boolean;
|
|
@@ -238,6 +247,12 @@ declare function __VLS_template(): {
|
|
|
238
247
|
name: string;
|
|
239
248
|
onNavigate: typeof handleNavigate;
|
|
240
249
|
}): any;
|
|
250
|
+
belowName?(_: {
|
|
251
|
+
product: Product;
|
|
252
|
+
}): any;
|
|
253
|
+
belowName?(_: {
|
|
254
|
+
product: Product;
|
|
255
|
+
}): any;
|
|
241
256
|
textLabels?(_: {
|
|
242
257
|
product: Product;
|
|
243
258
|
values: {
|
|
@@ -264,6 +264,13 @@ export interface ProductGridProps {
|
|
|
264
264
|
favoriteComponent?: Component;
|
|
265
265
|
productCardComponent?: Component;
|
|
266
266
|
clusterCardComponent?: Component;
|
|
267
|
+
/**
|
|
268
|
+
* Render arbitrary content directly below each card's product name. Receives
|
|
269
|
+
* the product as a prop; cascades to every ProductCard via ProductGridConfig.
|
|
270
|
+
* Lets hosts surface extra per-product info (e.g. package descriptions)
|
|
271
|
+
* across the whole grid without swapping the entire card.
|
|
272
|
+
*/
|
|
273
|
+
belowNameComponent?: Component;
|
|
267
274
|
}
|
|
268
275
|
declare function __VLS_template(): {
|
|
269
276
|
attrs: Partial<{}>;
|
|
@@ -38,5 +38,43 @@ export interface ProductSpecificationsProps {
|
|
|
38
38
|
/** Extra CSS class applied to the root element. */
|
|
39
39
|
className?: string;
|
|
40
40
|
}
|
|
41
|
-
declare
|
|
41
|
+
declare function __VLS_template(): {
|
|
42
|
+
attrs: Partial<{}>;
|
|
43
|
+
slots: {
|
|
44
|
+
beforeSpecs?(_: {
|
|
45
|
+
layout: "table" | "list";
|
|
46
|
+
}): any;
|
|
47
|
+
beforeSpecs?(_: {
|
|
48
|
+
layout: "table" | "list";
|
|
49
|
+
}): any;
|
|
50
|
+
beforeSpecs?(_: {
|
|
51
|
+
layout: "table";
|
|
52
|
+
}): any;
|
|
53
|
+
beforeSpecs?(_: {
|
|
54
|
+
layout: "list";
|
|
55
|
+
}): any;
|
|
56
|
+
afterSpecs?(_: {
|
|
57
|
+
layout: "table" | "list";
|
|
58
|
+
}): any;
|
|
59
|
+
afterSpecs?(_: {
|
|
60
|
+
layout: "table" | "list";
|
|
61
|
+
}): any;
|
|
62
|
+
afterSpecs?(_: {
|
|
63
|
+
layout: "table";
|
|
64
|
+
}): any;
|
|
65
|
+
afterSpecs?(_: {
|
|
66
|
+
layout: "list";
|
|
67
|
+
}): any;
|
|
68
|
+
};
|
|
69
|
+
refs: {};
|
|
70
|
+
rootEl: any;
|
|
71
|
+
};
|
|
72
|
+
type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
|
|
73
|
+
declare const __VLS_component: import('vue').DefineComponent<ProductSpecificationsProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<ProductSpecificationsProps> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
|
|
74
|
+
declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
|
|
42
75
|
export default _default;
|
|
76
|
+
type __VLS_WithTemplateSlots<T, S> = T & {
|
|
77
|
+
new (): {
|
|
78
|
+
$slots: S;
|
|
79
|
+
};
|
|
80
|
+
};
|
|
@@ -80,10 +80,28 @@ export interface ProductTabsProps {
|
|
|
80
80
|
productDownloadsComponent?: Component;
|
|
81
81
|
productVideosComponent?: Component;
|
|
82
82
|
}
|
|
83
|
-
declare
|
|
83
|
+
declare function __VLS_template(): {
|
|
84
|
+
attrs: Partial<{}>;
|
|
85
|
+
slots: {
|
|
86
|
+
specificationsBefore?(_: any): any;
|
|
87
|
+
specificationsBefore?(_: any): any;
|
|
88
|
+
specificationsAfter?(_: any): any;
|
|
89
|
+
specificationsAfter?(_: any): any;
|
|
90
|
+
};
|
|
91
|
+
refs: {};
|
|
92
|
+
rootEl: any;
|
|
93
|
+
};
|
|
94
|
+
type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
|
|
95
|
+
declare const __VLS_component: import('vue').DefineComponent<ProductTabsProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<ProductTabsProps> & Readonly<{}>, {
|
|
84
96
|
showDescription: boolean;
|
|
85
97
|
showSpecifications: boolean;
|
|
86
98
|
showDownloads: boolean;
|
|
87
99
|
showVideos: boolean;
|
|
88
100
|
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
|
|
101
|
+
declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
|
|
89
102
|
export default _default;
|
|
103
|
+
type __VLS_WithTemplateSlots<T, S> = T & {
|
|
104
|
+
new (): {
|
|
105
|
+
$slots: S;
|
|
106
|
+
};
|
|
107
|
+
};
|
|
@@ -43,6 +43,13 @@ export interface ProductGridConfig {
|
|
|
43
43
|
surchargesComponent?: Component;
|
|
44
44
|
productCardComponent?: Component;
|
|
45
45
|
clusterCardComponent?: Component;
|
|
46
|
+
/**
|
|
47
|
+
* Render arbitrary content directly below each card's product name. Receives
|
|
48
|
+
* the product as a prop; cascades to every ProductCard. Lets hosts surface
|
|
49
|
+
* extra per-product info (e.g. package descriptions) across the whole grid
|
|
50
|
+
* without swapping the entire card.
|
|
51
|
+
*/
|
|
52
|
+
belowNameComponent?: Component;
|
|
46
53
|
}
|
|
47
54
|
/** Injection key for the Tier 2 grid config. Symbol-keyed, collision-free. */
|
|
48
55
|
export declare const ProductGridInjectionKey: InjectionKey<ProductGridConfig>;
|