@propeller-commerce/propeller-v2-vue-ui 0.3.16 → 0.3.19

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,58 @@ 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.19] - 2026-06-23
12
+
13
+ ### Fixed
14
+
15
+ - **`GridFiltersPanel` rendered full-width on desktop, pushing the product
16
+ grid off-screen.** The panel root carries `w-full lg:w-64 lg:flex-shrink-0`
17
+ in the markup, but a consumer's Tailwind sheet re-emits `.w-full`
18
+ (`width: 100%`) and — loading after this package's CSS — won the cascade on
19
+ equal specificity, leaving the panel at full width and causing horizontal
20
+ overflow on category/search pages. The desktop sidebar width is now restated
21
+ on the `.propeller-grid-filters-panel` BEM hook inside the `@media
22
+ (min-width: 64rem)` block (`width: 16rem; flex-shrink: 0`), so the package
23
+ stays authoritative for its own width regardless of sheet order. Same
24
+ cross-Tailwind cascade hardening already applied to the card row layouts in
25
+ 0.3.17 — the panel root was the one element it missed. Mirrors the
26
+ `propeller-v2-react-ui` 0.4.10 fix.
27
+
28
+ ## [0.3.18] - 2026-06-19
29
+
30
+ ### Added
31
+
32
+ - **`GridFiltersPanel`** — a responsive wrapper around `GridFilters`. At `lg`
33
+ (1024px) and up it renders the filters as the inline sidebar; below `lg` it
34
+ collapses them behind a "Filters" button that opens a left slide-in drawer
35
+ (dimmed backdrop, close button, "Show results" to dismiss). A single
36
+ `GridFilters` instance backs both layouts — no duplicate fetch or state.
37
+ Replaces the host's `<aside><GridFilters/></aside>`. New label keys:
38
+ `filtersButton`, `applyFilters`, `closeFilters`. Optional `activeFilterCount`
39
+ shows a badge on the button.
40
+
41
+ ## [0.3.17] - 2026-06-19
42
+
43
+ ### Fixed
44
+
45
+ - **Product card list view broke on desktop after the 0.3.16 mobile
46
+ redesign.** The mobile-first footer (`flex-col`, full-width `AddToCart`
47
+ controls) leaked into the desktop row layout because the `md:` overrides
48
+ lost the cross-Tailwind cascade. The desktop (≥768px) row intent is now
49
+ restated on the BEM hook classes in `styles.css` — footer back to a row,
50
+ `__footer-meta` to `display: contents`, and the `AddToCart` controls back to
51
+ a single nowrap row with a fixed-width quantity input.
52
+ - **Price clipped in the mobile grid card.** The stock + price meta row could
53
+ overflow a narrow (~190px) grid card. The row now wraps and the price is
54
+ allowed to shrink (`min-w-0`, right-aligned) instead of being cut off.
55
+
56
+ ### Changed
57
+
58
+ - **`ClusterCard` gets the same responsive footer as `ProductCard`.** Below
59
+ 768px the list view uses a 2-row footer (stock/price, then full-width "View
60
+ cluster" button) and the grid view pairs stock/price in a wrapping meta row;
61
+ desktop (≥768px) is unchanged.
62
+
11
63
  ## [0.3.16] - 2026-06-19
12
64
 
13
65
  ### Changed
@@ -198,6 +198,19 @@ declare function __VLS_template(): {
198
198
  showAvailability: boolean;
199
199
  labels: Record<string, string> | undefined;
200
200
  }): any;
201
+ stock?(_: {
202
+ cluster: Cluster;
203
+ inventory: import('@propeller-commerce/propeller-sdk-v2').ProductInventory;
204
+ showAvailability: boolean;
205
+ labels: Record<string, string> | undefined;
206
+ }): any;
207
+ price?(_: {
208
+ cluster: Cluster;
209
+ price: import('@propeller-commerce/propeller-sdk-v2').ProductPrice | undefined;
210
+ includeTax: boolean;
211
+ currency: string | undefined;
212
+ labels: Record<string, string> | undefined;
213
+ }): any;
201
214
  price?(_: {
202
215
  cluster: Cluster;
203
216
  price: import('@propeller-commerce/propeller-sdk-v2').ProductPrice | undefined;
@@ -0,0 +1,13 @@
1
+ import { GridFiltersProps } from './GridFilters.vue';
2
+ export interface GridFiltersPanelProps extends GridFiltersProps {
3
+ /**
4
+ * Number of active filters, shown as a badge on the mobile trigger button.
5
+ * The host computes this from its active filter state. Omit or 0 to hide
6
+ * the badge.
7
+ */
8
+ activeFilterCount?: number;
9
+ /** Extra CSS class on the outer panel root. */
10
+ wrapperClassName?: string;
11
+ }
12
+ declare const _default: import('vue').DefineComponent<GridFiltersPanelProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<GridFiltersPanelProps> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
13
+ export default _default;