@vkzstudio/muza-ui 1.8.0 → 1.9.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.
Files changed (61) hide show
  1. package/dist/components/Breadcrumb/Breadcrumb.d.ts +146 -4
  2. package/dist/components/Breadcrumb/Breadcrumb.d.ts.map +1 -1
  3. package/dist/components/Breadcrumb/Breadcrumb.js +241 -84
  4. package/dist/components/Breadcrumb/Breadcrumb.stories.d.ts +4 -0
  5. package/dist/components/Breadcrumb/Breadcrumb.stories.d.ts.map +1 -1
  6. package/dist/components/Breadcrumb/index.js +10 -7
  7. package/dist/components/Card/Card.d.ts +36 -27
  8. package/dist/components/Card/Card.d.ts.map +1 -1
  9. package/dist/components/Card/Card.js +41 -40
  10. package/dist/components/Carousel/Carousel.d.ts +16 -0
  11. package/dist/components/Carousel/Carousel.d.ts.map +1 -1
  12. package/dist/components/Carousel/Carousel.js +56 -55
  13. package/dist/components/CarouselSection/CarouselSection.examples.d.ts +15 -6
  14. package/dist/components/CarouselSection/CarouselSection.examples.d.ts.map +1 -1
  15. package/dist/components/CarouselSection/CarouselSection.stories.d.ts +2 -0
  16. package/dist/components/CarouselSection/CarouselSection.stories.d.ts.map +1 -1
  17. package/dist/components/CategoryIcon/CategoryIcon.d.ts.map +1 -1
  18. package/dist/components/CategoryIcon/CategoryIcon.js +25 -23
  19. package/dist/components/ExpandableTable/ExpandableTable.d.ts +1 -1
  20. package/dist/components/ExpandableTable/ExpandableTable.d.ts.map +1 -1
  21. package/dist/components/Flex/Flex.d.ts +42 -25
  22. package/dist/components/Flex/Flex.d.ts.map +1 -1
  23. package/dist/components/Flex/Flex.js +52 -53
  24. package/dist/components/OfferCard/OfferCard.d.ts +19 -5
  25. package/dist/components/OfferCard/OfferCard.d.ts.map +1 -1
  26. package/dist/components/OfferCard/OfferCard.js +181 -150
  27. package/dist/components/OfferCard/OfferCard.stories.d.ts +1 -0
  28. package/dist/components/OfferCard/OfferCard.stories.d.ts.map +1 -1
  29. package/dist/components/ResponsiveLayoutTable/ResponsiveLayoutTable.d.ts +1 -1
  30. package/dist/components/ResponsiveLayoutTable/ResponsiveLayoutTable.d.ts.map +1 -1
  31. package/dist/components/internal/CardCompactShell.d.ts +7 -1
  32. package/dist/components/internal/CardCompactShell.d.ts.map +1 -1
  33. package/dist/components/internal/CardCompactShell.js +57 -51
  34. package/dist/components/internal/CardImageSlot.d.ts.map +1 -1
  35. package/dist/components/internal/CardImageSlot.js +36 -37
  36. package/dist/hooks/use-is-breakpoint.d.ts +1 -4
  37. package/dist/hooks/use-is-breakpoint.d.ts.map +1 -1
  38. package/dist/index.js +448 -437
  39. package/dist/muza-ui.css +1 -1
  40. package/dist/styles/breakpoints.css +1 -0
  41. package/dist/translations/locales/cs.d.ts.map +1 -1
  42. package/dist/translations/locales/cs.js +3 -0
  43. package/dist/translations/locales/en.d.ts.map +1 -1
  44. package/dist/translations/locales/en.js +3 -0
  45. package/dist/translations/locales/sk.d.ts.map +1 -1
  46. package/dist/translations/locales/sk.js +3 -0
  47. package/dist/translations/types.d.ts +8 -0
  48. package/dist/translations/types.d.ts.map +1 -1
  49. package/dist/utils/breakpoints.d.ts +43 -0
  50. package/dist/utils/breakpoints.d.ts.map +1 -0
  51. package/dist/utils/breakpoints.js +65 -0
  52. package/dist/utils/index.d.ts +3 -0
  53. package/dist/utils/index.d.ts.map +1 -1
  54. package/dist/utils/index.js +19 -11
  55. package/dist/utils/polymorphic.d.ts +44 -0
  56. package/dist/utils/polymorphic.d.ts.map +1 -0
  57. package/dist/utils/polymorphic.js +7 -0
  58. package/dist/utils/warnOnce.d.ts +37 -0
  59. package/dist/utils/warnOnce.d.ts.map +1 -0
  60. package/dist/utils/warnOnce.js +6 -0
  61. package/package.json +1 -1
@@ -1,23 +1,24 @@
1
- import { jsx as e, jsxs as r, Fragment as Z } from "react/jsx-runtime";
2
- import * as C from "react";
3
- import { cva as w } from "class-variance-authority";
1
+ import { jsx as e, jsxs as r, Fragment as re } from "react/jsx-runtime";
2
+ import * as k from "react";
3
+ import { cva as C } from "class-variance-authority";
4
4
  import { cn as i } from "../../utils/cn.js";
5
- import { disabledLinkProps as ee } from "../../utils/disabledLinkProps.js";
6
- import { DotDivider as ae } from "../DotDivider/DotDivider.js";
7
- import { Flex as g } from "../Flex/Flex.js";
8
- import { HeartButton as te } from "../HeartButton/HeartButton.js";
9
- import { PriceTag as re } from "../PriceTag/PriceTag.js";
10
- import { Rating as oe } from "../Rating/Rating.js";
11
- import { Skeleton as n } from "../Skeleton/Skeleton.js";
12
- import { Typography as d } from "../Typography/Typography.js";
13
- import { cardCompactFillClass as E, cardCompactContainerClass as ie, CardCompactShell as se, CardCompactSkeleton as ce } from "../internal/CardCompactShell.js";
14
- import { CardImageSlot as le, hasImageContent as ne } from "../internal/CardImageSlot.js";
15
- const de = w(
5
+ import { disabledLinkProps as E } from "../../utils/disabledLinkProps.js";
6
+ import { DotDivider as oe } from "../DotDivider/DotDivider.js";
7
+ import { Flex as v } from "../Flex/Flex.js";
8
+ import { HeartButton as ie } from "../HeartButton/HeartButton.js";
9
+ import { PriceTag as H } from "../PriceTag/PriceTag.js";
10
+ import { Rating as se } from "../Rating/Rating.js";
11
+ import { Skeleton as m } from "../Skeleton/Skeleton.js";
12
+ import { Typography as n } from "../Typography/Typography.js";
13
+ import { TypographyLink as le } from "../TypographyLink/TypographyLink.js";
14
+ import { cardCompactFillClass as B, cardCompactContainerClass as ne, CardCompactShell as ce, CardCompactSkeleton as de } from "../internal/CardCompactShell.js";
15
+ import { CardImageSlot as me, hasImageContent as fe } from "../internal/CardImageSlot.js";
16
+ const pe = C(
16
17
  "group relative inline-flex border border-solid transition-colors focus-visible:outline-none data-[disabled=true]:pointer-events-none",
17
18
  {
18
19
  variants: {
19
20
  variant: {
20
- compact: ie,
21
+ compact: ne,
21
22
  search: "flex-row gap-comp-offer-card-search-gap border-transparent"
22
23
  },
23
24
  isTinted: {
@@ -29,17 +30,17 @@ const de = w(
29
30
  {
30
31
  variant: "compact",
31
32
  isTinted: !1,
32
- class: E.default
33
+ class: B.default
33
34
  },
34
35
  {
35
36
  variant: "compact",
36
37
  isTinted: !0,
37
- class: E.tinted
38
+ class: B.tinted
38
39
  }
39
40
  ],
40
41
  defaultVariants: { variant: "compact", isTinted: !1 }
41
42
  }
42
- ), me = w("", {
43
+ ), ue = C("", {
43
44
  variants: {
44
45
  variant: {
45
46
  compact: "text-text-dark-primary-def group-has-[a:focus-visible]:text-text-brand-focused group-has-[a:hover]:text-text-brand-hover group-data-[disabled=true]:text-text-dark-disabled",
@@ -47,7 +48,7 @@ const de = w(
47
48
  }
48
49
  },
49
50
  defaultVariants: { variant: "compact" }
50
- }), fe = w("", {
51
+ }), he = C("", {
51
52
  variants: {
52
53
  variant: {
53
54
  compact: "mt-auto line-clamp-1 text-text-dark-secondary group-has-[a:focus-visible]:text-text-brand-focused group-data-[disabled=true]:text-text-dark-disabled",
@@ -55,10 +56,10 @@ const de = w(
55
56
  }
56
57
  },
57
58
  defaultVariants: { variant: "compact" }
58
- }), k = ({ rating: c, ratingCount: a, disabled: o }) => /* @__PURE__ */ r(g, { align: "center", gap: "2xs", children: [
59
- /* @__PURE__ */ e(oe, { value: c, allowHalf: !0, disabled: o }),
60
- a != null && /* @__PURE__ */ r(
61
- d,
59
+ }), w = ({ rating: c, ratingCount: t, disabled: o }) => /* @__PURE__ */ r(v, { align: "center", gap: "2xs", children: [
60
+ /* @__PURE__ */ e(se, { value: c, allowHalf: !0, disabled: o }),
61
+ t != null && /* @__PURE__ */ r(
62
+ n,
62
63
  {
63
64
  component: "span",
64
65
  variant: "body",
@@ -70,211 +71,241 @@ const de = w(
70
71
  ),
71
72
  children: [
72
73
  "(",
73
- a,
74
+ t,
74
75
  ")"
75
76
  ]
76
77
  }
77
78
  )
78
79
  ] });
79
- k.displayName = "OfferCard.RatingRow";
80
- const L = ({
80
+ w.displayName = "OfferCard.RatingRow";
81
+ const P = ({
81
82
  variant: c = "compact",
82
- color: a = "default",
83
+ color: t = "default",
83
84
  isTinted: o = !1,
84
- className: s,
85
- ...m
85
+ className: l,
86
+ ...f
86
87
  }) => c === "compact" ? /* @__PURE__ */ e(
87
- ce,
88
+ de,
88
89
  {
89
- color: a,
90
+ color: t,
90
91
  isTinted: o,
91
- className: s,
92
- ...m
92
+ className: l,
93
+ ...f
93
94
  }
94
95
  ) : /* @__PURE__ */ r(
95
96
  "div",
96
97
  {
97
98
  className: i(
98
99
  "inline-flex flex-row gap-comp-offer-card-search-gap",
99
- s
100
+ l
100
101
  ),
101
- ...m,
102
+ ...f,
102
103
  children: [
103
104
  /* @__PURE__ */ r("div", { className: "relative h-comp-offer-card-search-h-img w-comp-offer-card-search-w-img shrink-0 overflow-hidden rounded-comp-offer-card-search-radius-img", children: [
104
105
  /* @__PURE__ */ e(
105
- n,
106
+ m,
106
107
  {
107
- color: a,
108
+ color: t,
108
109
  className: "absolute inset-0 size-full rounded-none"
109
110
  }
110
111
  ),
111
112
  /* @__PURE__ */ e("div", { className: "absolute top-comp-offer-card-search-p-img left-comp-offer-card-search-p-img", children: /* @__PURE__ */ e(
112
- n,
113
+ m,
113
114
  {
114
- color: a,
115
+ color: t,
115
116
  className: "size-comp-button-h-xs rounded-full"
116
117
  }
117
118
  ) })
118
119
  ] }),
119
120
  /* @__PURE__ */ r(
120
- g,
121
+ v,
121
122
  {
122
123
  direction: "column",
123
124
  flex: 1,
124
125
  gap: "sm",
125
126
  className: "min-w-0 gap-comp-offer-card-search-gap-text pt-comp-offer-card-search-p-top-text",
126
127
  children: [
127
- /* @__PURE__ */ e(n, { color: a, className: "h-5 w-full" }),
128
- /* @__PURE__ */ e(n, { color: a, className: "h-4 w-40" }),
129
- /* @__PURE__ */ e(n, { color: a, className: "h-4 w-32" })
128
+ /* @__PURE__ */ e(m, { color: t, className: "h-5 w-full" }),
129
+ /* @__PURE__ */ e(m, { color: t, className: "h-4 w-40" }),
130
+ /* @__PURE__ */ e(m, { color: t, className: "h-4 w-32" })
130
131
  ]
131
132
  }
132
133
  )
133
134
  ]
134
135
  }
135
136
  );
136
- L.displayName = "OfferCard.Skeleton";
137
- const B = C.forwardRef(
138
- (c, a) => {
137
+ P.displayName = "OfferCard.Skeleton";
138
+ const W = k.forwardRef(
139
+ (c, t) => {
139
140
  const {
140
141
  name: o,
141
- image: s,
142
- imageAlt: m,
143
- placeholderIcon: y,
144
- placeholderColor: z,
145
- logo: l,
146
- logoAlt: H,
147
- category: P,
148
- description: f,
149
- vendor: p,
150
- rating: v,
151
- ratingCount: O,
152
- price: A,
153
- favorite: W,
154
- defaultFavorite: R,
155
- onFavoriteChange: u,
156
- favoriteAriaLabel: _,
157
- showFavorite: $ = !0,
158
- variant: h = "compact",
159
- isTinted: q = !1,
160
- disabled: t = !1,
161
- asChild: G = !1,
162
- href: J,
163
- className: K,
164
- children: x,
165
- ...M
166
- } = c, S = m ?? o, T = H ?? `${p ?? o} logo`, V = ne(s), Q = me({ variant: h }), F = fe({ variant: h }), b = v != null, U = i(
167
- de({ variant: h, isTinted: q }),
168
- K
169
- ), I = 'outline-none after:absolute after:inset-0 after:rounded-[inherit] after:content-[""] focus-visible:outline-none', j = /* @__PURE__ */ e(
170
- d,
142
+ image: l,
143
+ imageAlt: f,
144
+ placeholderIcon: z,
145
+ placeholderColor: T,
146
+ logo: d,
147
+ logoAlt: _,
148
+ category: $,
149
+ description: p,
150
+ vendor: s,
151
+ vendorHref: O,
152
+ rating: x,
153
+ ratingCount: V,
154
+ price: u,
155
+ favorite: q,
156
+ defaultFavorite: A,
157
+ onFavoriteChange: h,
158
+ favoriteAriaLabel: G,
159
+ showFavorite: J = !0,
160
+ variant: g = "compact",
161
+ isTinted: K = !1,
162
+ disabled: a = !1,
163
+ asChild: M = !1,
164
+ href: Q,
165
+ className: U,
166
+ children: b,
167
+ ...X
168
+ } = c, R = f ?? o, S = _ ?? `${s ?? o} logo`, F = fe(l), Z = ue({ variant: g }), I = he({ variant: g }), N = x != null, ee = i(
169
+ pe({ variant: g, isTinted: K }),
170
+ U
171
+ ), Y = 'outline-none after:absolute after:inset-0 after:rounded-[inherit] after:content-[""] focus-visible:outline-none', j = /* @__PURE__ */ e(
172
+ n,
171
173
  {
172
174
  component: "h3",
173
175
  variant: "title",
174
176
  size: "base",
175
177
  weight: "medium",
176
- className: i("line-clamp-2", Q),
178
+ className: i("line-clamp-2", Z),
177
179
  children: o
178
180
  }
179
- ), Y = G && C.isValidElement(x) ? C.cloneElement(
180
- x,
181
+ ), L = M && k.isValidElement(b) ? k.cloneElement(
182
+ b,
181
183
  {
182
- className: i(I, x.props.className),
183
- ...t ? ee : null
184
+ className: i(Y, b.props.className),
185
+ ...a ? E : null
184
186
  },
185
187
  j
186
- ) : /* @__PURE__ */ e("a", { href: t ? void 0 : J, className: I, children: j }), D = $ && /* @__PURE__ */ e(
187
- te,
188
+ ) : /* @__PURE__ */ e("a", { href: a ? void 0 : Q, className: Y, children: j }), D = J && /* @__PURE__ */ e(
189
+ ie,
188
190
  {
189
- active: W,
190
- defaultActive: R,
191
- onClick: u !== void 0 || R !== void 0 ? (he, X) => u == null ? void 0 : u(X) : void 0,
192
- "aria-label": _,
193
- disabled: t,
191
+ active: q,
192
+ defaultActive: A,
193
+ onClick: h !== void 0 || A !== void 0 ? (xe, te) => h == null ? void 0 : h(te) : void 0,
194
+ "aria-label": G,
195
+ disabled: a,
194
196
  className: i(
195
197
  "relative z-10",
196
198
  // Without a photo behind it the default invert (white) heart would
197
199
  // be invisible on the light placeholder tint, so switch to the
198
200
  // primary-ghost colour ramp.
199
- !V && [
201
+ !F && [
200
202
  "text-comp-button-primary-ghost-text-def hover:text-comp-button-primary-ghost-text-hover focus-visible:text-comp-button-primary-ghost-text-focused",
201
203
  "disabled:text-comp-button-primary-ghost-text-disabled data-[disabled=true]:text-comp-button-primary-ghost-text-disabled"
202
204
  ]
203
205
  )
204
206
  }
205
- );
206
- let N = null;
207
- return h === "compact" ? N = /* @__PURE__ */ r(
208
- se,
207
+ ), ae = s && /* @__PURE__ */ e("div", { className: "relative z-10 w-fit max-w-full", children: O ? /* @__PURE__ */ e(
208
+ le,
209
+ {
210
+ href: O,
211
+ size: "sm",
212
+ weight: "medium",
213
+ underline: !1,
214
+ disabled: a,
215
+ fixY: !0,
216
+ className: "line-clamp-1",
217
+ ...a ? E : null,
218
+ children: s
219
+ }
220
+ ) : /* @__PURE__ */ e(
221
+ n,
222
+ {
223
+ component: "span",
224
+ variant: "body",
225
+ size: "sm",
226
+ weight: "medium",
227
+ fixY: !0,
228
+ className: i(
229
+ "line-clamp-1",
230
+ a ? "text-comp-typography-link-brand-disabled" : "text-comp-typography-link-brand-def"
231
+ ),
232
+ children: s
233
+ }
234
+ ) });
235
+ let y = null;
236
+ return g === "compact" ? y = /* @__PURE__ */ r(
237
+ ce,
209
238
  {
210
- image: s,
211
- imageAlt: S,
212
- placeholderIcon: y,
213
- placeholderColor: z,
239
+ image: l,
240
+ imageAlt: R,
241
+ placeholderIcon: z,
242
+ placeholderColor: T,
214
243
  componentName: "OfferCard",
215
- category: P,
244
+ category: $,
216
245
  heartButton: D,
217
- logo: l,
218
- logoAlt: T,
219
- disabled: t,
246
+ logo: d,
247
+ logoAlt: S,
248
+ priceTag: u != null ? /* @__PURE__ */ e(H, { disabled: a, children: u }) : void 0,
249
+ disabled: a,
220
250
  children: [
221
- Y,
222
- b && /* @__PURE__ */ e(
223
- k,
251
+ ae,
252
+ L,
253
+ N && /* @__PURE__ */ e(
254
+ w,
224
255
  {
225
- rating: v,
226
- ratingCount: O,
227
- disabled: t
256
+ rating: x,
257
+ ratingCount: V,
258
+ disabled: a
228
259
  }
229
260
  ),
230
- f && /* @__PURE__ */ e(
231
- d,
261
+ p && /* @__PURE__ */ e(
262
+ n,
232
263
  {
233
264
  component: "span",
234
265
  variant: "body",
235
266
  size: "sm",
236
267
  weight: "regular",
237
268
  fixY: !0,
238
- className: F,
239
- children: f
269
+ className: I,
270
+ children: p
240
271
  }
241
272
  )
242
273
  ]
243
274
  }
244
- ) : N = /* @__PURE__ */ r(Z, { children: [
275
+ ) : y = /* @__PURE__ */ r(re, { children: [
245
276
  /* @__PURE__ */ r(
246
- le,
277
+ me,
247
278
  {
248
- image: s,
249
- alt: S,
250
- placeholderIcon: y,
251
- placeholderColor: z,
279
+ image: l,
280
+ alt: R,
281
+ placeholderIcon: z,
282
+ placeholderColor: T,
252
283
  componentName: "OfferCard",
253
284
  wrapperClassName: "relative shrink-0 overflow-hidden rounded-comp-offer-card-search-radius-img h-comp-offer-card-search-h-img w-comp-offer-card-search-w-img",
254
285
  children: [
255
- V && /* @__PURE__ */ e(
286
+ F && /* @__PURE__ */ e(
256
287
  "div",
257
288
  {
258
289
  "aria-hidden": "true",
259
290
  className: "absolute inset-0 bg-gradient-to-b from-black/50 to-black/0 to-50%"
260
291
  }
261
292
  ),
262
- l && /* @__PURE__ */ e("div", { className: "pointer-events-none absolute inset-0 flex items-center justify-center bg-surface-base-overlay", children: /* @__PURE__ */ e("div", { className: "size-comp-offer-card-search-logo-size overflow-hidden rounded-full border-(length:--spacing-comp-offer-card-search-logo-stroke) border-solid border-stroke-base-secondary group-data-[disabled=true]:grayscale [&>img]:size-full [&>img]:object-cover", children: typeof l == "string" ? /* @__PURE__ */ e("img", { src: l, alt: T }) : l }) }),
293
+ d && /* @__PURE__ */ e("div", { className: "pointer-events-none absolute inset-0 flex items-center justify-center bg-surface-base-overlay", children: /* @__PURE__ */ e("div", { className: "size-comp-offer-card-search-logo-size overflow-hidden rounded-full border-(length:--spacing-comp-offer-card-search-logo-stroke) border-solid border-stroke-base-secondary group-data-[disabled=true]:grayscale [&>img]:size-full [&>img]:object-cover", children: typeof d == "string" ? /* @__PURE__ */ e("img", { src: d, alt: S }) : d }) }),
263
294
  /* @__PURE__ */ e("div", { className: "absolute top-comp-offer-card-search-p-img left-comp-offer-card-search-p-img", children: D })
264
295
  ]
265
296
  }
266
297
  ),
267
298
  /* @__PURE__ */ r(
268
- g,
299
+ v,
269
300
  {
270
301
  direction: "column",
271
302
  flex: 1,
272
303
  className: "min-w-0 gap-comp-offer-card-search-gap-text pt-comp-offer-card-search-p-top-text",
273
304
  children: [
274
- Y,
275
- /* @__PURE__ */ r(g, { align: "center", gap: "sm", wrap: "wrap", children: [
276
- p && /* @__PURE__ */ e(
277
- d,
305
+ L,
306
+ /* @__PURE__ */ r(v, { align: "center", gap: "sm", wrap: "wrap", children: [
307
+ s && /* @__PURE__ */ e(
308
+ n,
278
309
  {
279
310
  component: "span",
280
311
  variant: "body",
@@ -282,32 +313,32 @@ const B = C.forwardRef(
282
313
  weight: "regular",
283
314
  fixY: !0,
284
315
  className: i(
285
- t ? "text-text-dark-disabled" : "text-text-dark-primary-def"
316
+ a ? "text-text-dark-disabled" : "text-text-dark-primary-def"
286
317
  ),
287
- children: p
318
+ children: s
288
319
  }
289
320
  ),
290
- p && b && /* @__PURE__ */ e(ae, {}),
291
- b && /* @__PURE__ */ e(
292
- k,
321
+ s && N && /* @__PURE__ */ e(oe, {}),
322
+ N && /* @__PURE__ */ e(
323
+ w,
293
324
  {
294
- rating: v,
295
- ratingCount: O,
296
- disabled: t
325
+ rating: x,
326
+ ratingCount: V,
327
+ disabled: a
297
328
  }
298
329
  )
299
330
  ] }),
300
- A != null && /* @__PURE__ */ e(re, { disabled: t, children: A }),
301
- f && /* @__PURE__ */ e(
302
- d,
331
+ u != null && /* @__PURE__ */ e(H, { disabled: a, children: u }),
332
+ p && /* @__PURE__ */ e(
333
+ n,
303
334
  {
304
335
  component: "span",
305
336
  variant: "body",
306
337
  size: "sm",
307
338
  weight: "regular",
308
339
  fixY: !0,
309
- className: F,
310
- children: f
340
+ className: I,
341
+ children: p
311
342
  }
312
343
  )
313
344
  ]
@@ -316,22 +347,22 @@ const B = C.forwardRef(
316
347
  ] }), /* @__PURE__ */ e(
317
348
  "div",
318
349
  {
319
- ref: a,
320
- className: U,
321
- "data-disabled": t || void 0,
322
- "aria-disabled": t || void 0,
323
- ...M,
324
- children: N
350
+ ref: t,
351
+ className: ee,
352
+ "data-disabled": a || void 0,
353
+ "aria-disabled": a || void 0,
354
+ ...X,
355
+ children: y
325
356
  }
326
357
  );
327
358
  }
328
359
  );
329
- B.displayName = "OfferCard";
330
- const pe = B;
331
- pe.Skeleton = L;
360
+ W.displayName = "OfferCard";
361
+ const ge = W;
362
+ ge.Skeleton = P;
332
363
  export {
333
- pe as OfferCard,
334
- fe as offerCardDescriptionVariants,
335
- me as offerCardTitleVariants,
336
- de as offerCardVariants
364
+ ge as OfferCard,
365
+ he as offerCardDescriptionVariants,
366
+ ue as offerCardTitleVariants,
367
+ pe as offerCardVariants
337
368
  };
@@ -4,6 +4,7 @@ declare const meta: Meta<typeof OfferCard>;
4
4
  export default meta;
5
5
  type Story = StoryObj<typeof OfferCard>;
6
6
  export declare const Compact: Story;
7
+ export declare const CompactWithPriceAndPartner: Story;
7
8
  export declare const CompactPlaceholder: Story;
8
9
  export declare const CompactSkeleton: Story;
9
10
  export declare const CompactTinted: Story;
@@ -1 +1 @@
1
- {"version":3,"file":"OfferCard.stories.d.ts","sourceRoot":"","sources":["../../../src/components/OfferCard/OfferCard.stories.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AAQ3D,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AA6IvC,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,SAAS,CAiDhC,CAAA;AAED,eAAe,IAAI,CAAA;AACnB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,SAAS,CAAC,CAAA;AAEvC,eAAO,MAAM,OAAO,EAAE,KA0BrB,CAAA;AAED,eAAO,MAAM,kBAAkB,EAAE,KA8ChC,CAAA;AAED,eAAO,MAAM,eAAe,EAAE,KAgB7B,CAAA;AAED,eAAO,MAAM,aAAa,EAAE,KA2B3B,CAAA;AAED,eAAO,MAAM,qBAAqB,EAAE,KAgBnC,CAAA;AAED,eAAO,MAAM,MAAM,EAAE,KA4BpB,CAAA;AAED,eAAO,MAAM,iBAAiB,EAAE,KAyD/B,CAAA;AAED,eAAO,MAAM,cAAc,EAAE,KAgB5B,CAAA;AAED,eAAO,MAAM,sBAAsB,EAAE,KAyBpC,CAAA;AAED,eAAO,MAAM,0BAA0B,EAAE,KAmBxC,CAAA;AAED,eAAO,MAAM,WAAW,EAAE,KAuBzB,CAAA;AAED,eAAO,MAAM,eAAe,EAAE,KAkB7B,CAAA"}
1
+ {"version":3,"file":"OfferCard.stories.d.ts","sourceRoot":"","sources":["../../../src/components/OfferCard/OfferCard.stories.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AAQ3D,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AA6IvC,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,SAAS,CAkDhC,CAAA;AAED,eAAe,IAAI,CAAA;AACnB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,SAAS,CAAC,CAAA;AAEvC,eAAO,MAAM,OAAO,EAAE,KA0BrB,CAAA;AAED,eAAO,MAAM,0BAA0B,EAAE,KA8CxC,CAAA;AAED,eAAO,MAAM,kBAAkB,EAAE,KA8ChC,CAAA;AAED,eAAO,MAAM,eAAe,EAAE,KAgB7B,CAAA;AAED,eAAO,MAAM,aAAa,EAAE,KA2B3B,CAAA;AAED,eAAO,MAAM,qBAAqB,EAAE,KAgBnC,CAAA;AAED,eAAO,MAAM,MAAM,EAAE,KA4BpB,CAAA;AAED,eAAO,MAAM,iBAAiB,EAAE,KAyD/B,CAAA;AAED,eAAO,MAAM,cAAc,EAAE,KAgB5B,CAAA;AAED,eAAO,MAAM,sBAAsB,EAAE,KAyBpC,CAAA;AAED,eAAO,MAAM,0BAA0B,EAAE,KAmBxC,CAAA;AAED,eAAO,MAAM,WAAW,EAAE,KAuBzB,CAAA;AAED,eAAO,MAAM,eAAe,EAAE,KAkB7B,CAAA"}
@@ -1,4 +1,4 @@
1
- import { ResponsiveBreakpoint } from '../../hooks/use-is-breakpoint';
1
+ import { ResponsiveBreakpoint } from '../../utils/breakpoints';
2
2
  import * as React from 'react';
3
3
  /**
4
4
  * Column definition for a single layout of the ResponsiveLayoutTable.
@@ -1 +1 @@
1
- {"version":3,"file":"ResponsiveLayoutTable.d.ts","sourceRoot":"","sources":["../../../src/components/ResponsiveLayoutTable/ResponsiveLayoutTable.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ResponsiveLayoutTable.d.ts","sourceRoot":"","sources":["../../../src/components/ResponsiveLayoutTable/ResponsiveLayoutTable.tsx"],"names":[],"mappings":"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"}
@@ -38,6 +38,12 @@ export interface CardCompactShellProps {
38
38
  logo?: string | React.ReactNode;
39
39
  /** Alt text for the built-in logo `<img>`. Ignored when `logo` is a React node. */
40
40
  logoAlt: string;
41
+ /**
42
+ * Price pill pinned to the bottom-left of the image. Occupies the same
43
+ * corner as `logo`, so passing both is a composition error — the price
44
+ * wins and a development warning is logged.
45
+ */
46
+ priceTag?: React.ReactNode;
41
47
  /** Whether the owning card is disabled — drops the category chip's tint. */
42
48
  disabled?: boolean;
43
49
  /** Text-column content: the title link, and whatever rows sit under it. */
@@ -55,7 +61,7 @@ export interface CardCompactShellProps {
55
61
  * Internal helper. Not part of the public API.
56
62
  */
57
63
  declare const CardCompactShell: {
58
- ({ image, imageAlt, placeholderIcon, placeholderColor, componentName, category, heartButton, logo, logoAlt, disabled, children, }: CardCompactShellProps): import("react/jsx-runtime").JSX.Element;
64
+ ({ image, imageAlt, placeholderIcon, placeholderColor, componentName, category, heartButton, logo, logoAlt, priceTag, disabled, children, }: CardCompactShellProps): import("react/jsx-runtime").JSX.Element;
59
65
  displayName: string;
60
66
  };
61
67
  export interface CardCompactSkeletonProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'children'> {
@@ -1 +1 @@
1
- {"version":3,"file":"CardCompactShell.d.ts","sourceRoot":"","sources":["../../../src/components/internal/CardCompactShell.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAO9B;;;;;;;;;GASG;AACH,eAAO,MAAM,yBAAyB,oRAC6O,CAAA;AAEnR;;;;GAIG;AACH,eAAO,MAAM,oBAAoB;;;CAKvB,CAAA;AAMV,MAAM,WAAW,qBAAqB;IACpC,qFAAqF;IACrF,KAAK,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC,SAAS,CAAA;IAChC,sEAAsE;IACtE,QAAQ,EAAE,MAAM,CAAA;IAChB,uEAAuE;IACvE,eAAe,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACjC,wEAAwE;IACxE,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,kEAAkE;IAClE,aAAa,EAAE,MAAM,CAAA;IACrB,+EAA+E;IAC/E,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,4DAA4D;IAC5D,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC7B,qFAAqF;IACrF,IAAI,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC,SAAS,CAAA;IAC/B,mFAAmF;IACnF,OAAO,EAAE,MAAM,CAAA;IACf,4EAA4E;IAC5E,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,2EAA2E;IAC3E,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAC1B;AAED;;;;;;;;;;GAUG;AACH,QAAA,MAAM,gBAAgB;uIAYnB,qBAAqB;;CAkEvB,CAAA;AAGD,MAAM,WAAW,wBACf,SAAQ,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,UAAU,CAAC;IAC9D,iEAAiE;IACjE,KAAK,CAAC,EAAE,SAAS,GAAG,OAAO,CAAA;IAC3B,4EAA4E;IAC5E,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB;AAED;;;;;;;GAOG;AACH,QAAA,MAAM,mBAAmB;+CAKtB,wBAAwB;;CAuC1B,CAAA;AAGD,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,CAAA"}
1
+ {"version":3,"file":"CardCompactShell.d.ts","sourceRoot":"","sources":["../../../src/components/internal/CardCompactShell.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAO9B;;;;;;;;;GASG;AACH,eAAO,MAAM,yBAAyB,oRAC6O,CAAA;AAEnR;;;;GAIG;AACH,eAAO,MAAM,oBAAoB;;;CAKvB,CAAA;AAMV,MAAM,WAAW,qBAAqB;IACpC,qFAAqF;IACrF,KAAK,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC,SAAS,CAAA;IAChC,sEAAsE;IACtE,QAAQ,EAAE,MAAM,CAAA;IAChB,uEAAuE;IACvE,eAAe,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACjC,wEAAwE;IACxE,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,kEAAkE;IAClE,aAAa,EAAE,MAAM,CAAA;IACrB,+EAA+E;IAC/E,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,4DAA4D;IAC5D,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC7B,qFAAqF;IACrF,IAAI,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC,SAAS,CAAA;IAC/B,mFAAmF;IACnF,OAAO,EAAE,MAAM,CAAA;IACf;;;;OAIG;IACH,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC1B,4EAA4E;IAC5E,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,2EAA2E;IAC3E,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAC1B;AAED;;;;;;;;;;GAUG;AACH,QAAA,MAAM,gBAAgB;iJAanB,qBAAqB;;CAkFvB,CAAA;AAGD,MAAM,WAAW,wBACf,SAAQ,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,UAAU,CAAC;IAC9D,iEAAiE;IACjE,KAAK,CAAC,EAAE,SAAS,GAAG,OAAO,CAAA;IAC3B,4EAA4E;IAC5E,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB;AAED;;;;;;;GAOG;AACH,QAAA,MAAM,mBAAmB;+CAKtB,wBAAwB;;CAuC1B,CAAA;AAGD,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,CAAA"}