@stapel/listings-react 0.12.0 → 0.14.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.
@@ -1,87 +1,8 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
- /**
3
- * `<ListingComposerPage>` — the submission screen.
4
- *
5
- * Five contracts meet on this page and each arrives through its own seam, so
6
- * the component can be read top to bottom without knowing any of the other
7
- * pairs:
8
- *
9
- * category `renderCategoryPicker` — the container's `<CategoryPickerField>`,
10
- * given `setCategory` to call
11
- * where `locationPicker` — the container's `<LocationField>`
12
- * (`@stapel/geo-react`)
13
- * currency `renderCurrencyPicker` — whatever vocabulary the deployment sells in
14
- * details `features` — the schema, drawn by `<FeatureFields>` (L0)
15
- * photos `gallerySlot` — the container's `<MediaGalleryField bag>`,
16
- * whose bag is handed here as `images`
17
- * the draft this pair
18
- *
19
- * ── An unfilled slot is NAMED, never improvised ────────────────────────────
20
- *
21
- * Every one of those four slots used to degrade into a control this pair could
22
- * write on its own, and every one of those controls asked a question no seller
23
- * can answer: a numeric category id typed into a text box, a currency CODE
24
- * typed into a text box, and — the defect the owner named — two decimal boxes
25
- * labelled Latitude and Longitude. A gallery heading with nothing under it was
26
- * the same defect with the improvisation left out.
27
- *
28
- * So an unfilled slot renders `<SlotPlaceholder name="…"/>`: a labelled dashed
29
- * region in a dev build, nothing at all in production. The rule is the one the
30
- * rest of this codebase already lives by — `matchList`'s required empty arm,
31
- * `ActionAvailability` with no "disabled for unknown reasons", `LoadState`
32
- * refusing to fold failed into empty. A slot was the last place absence could
33
- * still be silent, and `stapel/no-silent-slot` now says so at lint time.
34
- *
35
- * ── …and its LABEL goes with it ────────────────────────────────────────────
36
- *
37
- * The placeholder is nothing in production — but the `Form.Item` around it
38
- * still drew its label, so a production composer with three unfilled slots
39
- * rendered three labelled voids: "Category", "Currency", "Where it is" over
40
- * empty space, and a "Photos" heading over air. A label is a promise that a
41
- * control follows it. {@link SlotField} therefore renders the WHOLE field —
42
- * label, help text and control — or nothing at all, and the `Photos` section
43
- * does the same with its heading. `slotVisibility` pins the dev view on so a
44
- * production-built showcase can still photograph the named placeholders.
45
- *
46
- * ── Why the pickers are slots and not dependencies ─────────────────────────
47
- *
48
- * A category tree, a geocoder and a currency vocabulary are all DEPLOYMENT
49
- * knowledge, and all three live in sibling L2 pairs
50
- * (`@stapel/categories-react`, `@stapel/geo-react`, the host's own). L2 pairs
51
- * do not import each other; the container is the seam. A library that picked
52
- * one would pick it for every host.
53
- *
54
- * ── On a narrow form the CHARACTERISTICS come before the photos ────────────
55
- *
56
- * The details of the chosen category are the questions only that category
57
- * asks, and they are the reason a category is chosen at all. On a wide form
58
- * they can sit after the photos, because the whole form is one screen. On a
59
- * 390px one they cannot: measured on a live classified deployment, choosing
60
- * Mobile phones grew the page to 7292px and put the first attribute control at
61
- * y=1596 — nearly two viewports below the fold, behind a ~700px photo dropzone
62
- * — while the footer said "10 required details not filled in" with none of
63
- * them on screen. So on a narrow form the section moves directly under the
64
- * category that produced it, and the photo dropzone follows it.
65
- *
66
- * The measurement is the FORM's own width (`useElementWidth`, the fleet's one
67
- * observer), not the viewport's: a composer is not a viewport, and a viewport
68
- * query would call a 360px pane on a desktop "wide".
69
- *
70
- * ── Every blocked control says which of six reasons it is ──────────────────
71
- *
72
- * The publish button is the most-gated control in the fleet, and that is the
73
- * point: "sign in", "choose a category", "we could not load what this
74
- * category asks for", "this build cannot draw one of these details", "wait
75
- * for the photos", "fix the highlighted fields" are six different problems
76
- * with six different next actions. `firstBlock` orders them the way a person
77
- * would be told, and `<GatedButton>` renders the reason beside the button —
78
- * never a grey rectangle, never a hover.
79
- */
80
- import { useRef } from "react";
81
2
  import { Alert, Button, Checkbox, Divider, Flex, Form, Input, InputNumber, Typography, } from "antd";
82
- import { ErrorAlert, GatedButton, PaneGate, SkinTheme, useElementWidth, } from "@stapel/tokens-antd/skin";
3
+ import { ErrorAlert, GatedButton, PaneGate, SkinTheme, } from "@stapel/tokens-antd/skin";
83
4
  import { SlotPlaceholder, actionAvailable, isDevBuild, useDescribeFlowError, useI18n, useT, } from "@stapel/core";
84
- import { breakpoints, spacing } from "@stapel/tokens";
5
+ import { spacing } from "@stapel/tokens";
85
6
  import { BUILTIN_VALUE_EDITOR_TYPES, FeatureFields, featureControlId, } from "@stapel/attributes-react/default";
86
7
  import { useListingComposer } from "../headless/ListingComposer.js";
87
8
  import { CATEGORY_FIELD, DESCRIPTION_FIELD, IMAGES_FIELD, LOCATION_FIELD, PRICE_FIELD, TITLE_FIELD, envelopeFieldErrors, failedResults, } from "../model/validation.js";
@@ -93,16 +14,14 @@ import { LISTINGS_I18N_KEYS } from "../i18n/keys.js";
93
14
  */
94
15
  export const COMPOSER_MEASURE = "44rem";
95
16
  /**
96
- * Below this FORM width the composer is a one-thumb column, and the order of
97
- * its sections has to change — see {@link ListingComposerPage}'s header on why
98
- * the characteristics move up.
17
+ * What `data-placement` says on the characteristics region.
99
18
  *
100
- * The `tablet` breakpoint, which is what "narrow" means everywhere else in the
101
- * skin, measured against the form's OWN width and never the viewport's (§83).
102
- * A composer drawn in a 360px settings pane on a 1440px desktop is narrow; a
103
- * viewport query would call it wide and bury its questions.
19
+ * A constant, and deliberately so: the order is the composer's and does not
20
+ * depend on the width any more (see the header). The attribute stays because
21
+ * an e2e suite measured the regression through it and needs a reading that is
22
+ * not a pixel count.
104
23
  */
105
- export const COMPOSER_STACKED_BELOW = breakpoints.tablet;
24
+ export const COMPOSER_DETAILS_PLACEMENT = "after-core-fields";
106
25
  /**
107
26
  * The DOM id of the control that answers one of the composer's own fields —
108
27
  * the names `mirrorListingFields` refuses by (`title`, `description`, …).
@@ -121,11 +40,18 @@ export function composerFieldId(field) {
121
40
  * descendant rather than assumed to be an `<input>`. */
122
41
  const FOCUSABLE = "input,select,textarea,button,[href],[tabindex]:not([tabindex='-1'])";
123
42
  /**
124
- * Put the person in front of one field: bring it into view, and focus what
125
- * they are meant to answer.
126
- *
127
- * Both halves are guarded rather than assumed. `scrollIntoView` does not exist
128
- * in every environment this renders in (jsdom, older embedded engines), and a
43
+ * Put the person in front of one field: open whatever it is folded inside,
44
+ * bring it into view, and focus what they are meant to answer.
45
+ *
46
+ * The disclosure step is the one that is easy to forget. A characteristic
47
+ * lives in a `<details>` section that may be closed (`groupCollapse="auto"`),
48
+ * and scrolling to a control inside a closed disclosure scrolls to nothing —
49
+ * the "take me to the first empty field" button would report success and move
50
+ * the page nowhere. Any depth of nesting is opened, because the answer to
51
+ * "where is it" must not depend on how the section was drawn.
52
+ *
53
+ * The rest is guarded rather than assumed. `scrollIntoView` does not exist in
54
+ * every environment this renders in (jsdom, older embedded engines), and a
129
55
  * field whose control came from a slot may have nothing focusable in it at
130
56
  * all — in which case scrolling to it is still the whole of the help that can
131
57
  * honestly be given.
@@ -136,6 +62,9 @@ function revealField(id) {
136
62
  const anchor = document.getElementById(id);
137
63
  if (anchor === null)
138
64
  return;
65
+ for (let folded = anchor.closest("details"); folded !== null; folded = folded.parentElement?.closest("details") ?? null) {
66
+ folded.open = true;
67
+ }
139
68
  if (typeof anchor.scrollIntoView === "function") {
140
69
  anchor.scrollIntoView({ block: "center", behavior: "smooth" });
141
70
  }
@@ -223,15 +152,6 @@ export function ListingComposerPage(props) {
223
152
  ? LISTINGS_I18N_KEYS.composeRepublish
224
153
  : LISTINGS_I18N_KEYS.composePublish);
225
154
  const LocationPicker = props.locationPicker;
226
- // The FORM's width, which is what decides the section order — see the
227
- // header. `?? false` because an unmeasured box is not a narrow one (the rule
228
- // `useElementWidth` states for every caller): the wide order is the one that
229
- // reflows gracefully, so it is what the first frame draws.
230
- const form = useRef(null);
231
- const { below } = useElementWidth(form, {
232
- thresholds: { stacked: COMPOSER_STACKED_BELOW },
233
- });
234
- const stacked = below.stacked ?? false;
235
155
  /**
236
156
  * The characteristics of the chosen category — built once and rendered in
237
157
  * exactly one of two places, so neither arm can drift from the other.
@@ -242,7 +162,12 @@ export function ListingComposerPage(props) {
242
162
  * was simply untrue — a spinner-shaped sentence over a form that was waiting
243
163
  * for the person, not for the network.
244
164
  */
245
- const details = (_jsxs("div", { "data-testid": "listings-composer-details", "data-placement": stacked ? "after-category" : "after-photos", children: [_jsx(Divider, {}), _jsx(Typography.Title, { level: 5, children: t(LISTINGS_I18N_KEYS.composeDetails) }), props.featuresError !== undefined ? (_jsx(ErrorAlert, { testId: "listings-composer-features-failed", message: t(LISTINGS_I18N_KEYS.composeDetailsFailed) })) : bag.values.categoryId.length === 0 ? (_jsx(Typography.Text, { type: "secondary", "data-testid": "listings-composer-features-no-category", children: t(LISTINGS_I18N_KEYS.composeDetailsNoCategory) })) : props.featuresLoading === true ? (_jsx(Typography.Text, { type: "secondary", "data-testid": "listings-composer-features-loading", children: t(LISTINGS_I18N_KEYS.composeDetailsLoading) })) : props.features.length === 0 ? (_jsx(Typography.Text, { type: "secondary", "data-testid": "listings-composer-features-empty", children: t(LISTINGS_I18N_KEYS.composeDetailsEmpty) })) : (_jsx(FeatureFields, { features: props.features, values: bag.values.features, errors: bag.fieldErrors, disabled: bag.publishing, onChange: bag.setFeature }))] }));
165
+ const details = (_jsxs("div", { "data-testid": "listings-composer-details", "data-placement": COMPOSER_DETAILS_PLACEMENT, children: [_jsx(Divider, {}), _jsx(Typography.Title, { level: 5, children: t(LISTINGS_I18N_KEYS.composeDetails) }), props.featuresError !== undefined ? (_jsx(ErrorAlert, { testId: "listings-composer-features-failed", message: t(LISTINGS_I18N_KEYS.composeDetailsFailed) })) : bag.values.categoryId.length === 0 ? (_jsx(Typography.Text, { type: "secondary", "data-testid": "listings-composer-features-no-category", children: t(LISTINGS_I18N_KEYS.composeDetailsNoCategory) })) : props.featuresLoading === true ? (_jsx(Typography.Text, { type: "secondary", "data-testid": "listings-composer-features-loading", children: t(LISTINGS_I18N_KEYS.composeDetailsLoading) })) : props.features.length === 0 ? (_jsx(Typography.Text, { type: "secondary", "data-testid": "listings-composer-features-empty", children: t(LISTINGS_I18N_KEYS.composeDetailsEmpty) })) : (_jsx(FeatureFields, { features: props.features, values: bag.values.features, errors: bag.fieldErrors, disabled: bag.publishing, onChange: bag.setFeature,
166
+ // An imported leaf is mostly plumbing: 32 fields across seven
167
+ // headings, four of them parcel dimensions. Open what is required or
168
+ // already answered, leave the rest one tap away under its own
169
+ // heading — see `FeatureGroupCollapse`.
170
+ groupCollapse: "auto" }))] }));
246
171
  // Where the "take me to it" control aims. A feature answers at its own
247
172
  // control id; everything else at the composer's.
248
173
  const missing = bag.firstUnsatisfied;
@@ -258,54 +183,54 @@ export function ListingComposerPage(props) {
258
183
  ? LISTINGS_I18N_KEYS.composeNewTitle
259
184
  : LISTINGS_I18N_KEYS.composeEditTitle) }), bag.draftNotReadable ? (_jsx(Alert, { type: "warning", showIcon: true, "data-testid": "listings-composer-draft-unreadable", title: t(LISTINGS_I18N_KEYS.composeBlockedNoDraft) })) : null, bag.outcome !== undefined ? (_jsx(Alert, { type: "success", showIcon: true, "data-testid": "listings-composer-published", "data-outcome": bag.outcome, title: t(bag.outcome === "live_edit_under_review"
260
185
  ? LISTINGS_I18N_KEYS.composePublishedLive
261
- : LISTINGS_I18N_KEYS.composePublishedFirst) })) : null, _jsx("div", { ref: form, children: _jsxs(Form, { layout: "vertical", "data-testid": "listings-composer-form", children: [_jsx(SlotField, { label: t(LISTINGS_I18N_KEYS.composeCategory), extra: t(LISTINGS_I18N_KEYS.composeCategoryHelp), slot: "renderCategoryPicker", named: namedSlots, status: errorOf(CATEGORY_FIELD), testId: "listings-composer-category", anchorId: composerFieldId(CATEGORY_FIELD), control: props.renderCategoryPicker?.({
262
- value: bag.values.categoryId,
263
- setCategory: bag.setCategory,
264
- }) }), bag.droppedOnCategoryChange.length > 0 ? (_jsx(Alert, { type: "info", showIcon: true, "data-testid": "listings-composer-dropped", title: t(LISTINGS_I18N_KEYS.composeCategoryChangedDropped, {
265
- count: bag.droppedOnCategoryChange.length,
266
- }) })) : null, stacked ? details : null, _jsx(Form.Item, { label: t(LISTINGS_I18N_KEYS.composeTitleLabel), ...errorOf(TITLE_FIELD), children: _jsx(Input, { id: composerFieldId(TITLE_FIELD), value: bag.values.title, "aria-label": t(LISTINGS_I18N_KEYS.composeTitleLabel), "data-testid": "listings-composer-title", onChange: (event) => {
267
- bag.setValue("title", event.target.value);
268
- }, onBlur: bag.save }) }), _jsx(Form.Item, { label: t(LISTINGS_I18N_KEYS.composeDescriptionLabel), ...errorOf(DESCRIPTION_FIELD), children: _jsx(Input.TextArea, { id: composerFieldId(DESCRIPTION_FIELD), rows: 5, value: bag.values.description, "aria-label": t(LISTINGS_I18N_KEYS.composeDescriptionLabel), "data-testid": "listings-composer-description", onChange: (event) => {
269
- bag.setValue("description", event.target.value);
270
- }, onBlur: bag.save }) }), _jsx(Form.Item, { label: t(LISTINGS_I18N_KEYS.composePriceLabel), ...errorOf(PRICE_FIELD), children: _jsx(Input, { id: composerFieldId(PRICE_FIELD), inputMode: "decimal", value: bag.values.price, ...(props.renderCurrencyPicker === undefined
271
- ? { addonAfter: bag.values.currency }
272
- : {}), "aria-label": t(LISTINGS_I18N_KEYS.composePriceLabel), "data-testid": "listings-composer-price", onChange: (event) => {
273
- bag.setValue("price", event.target.value);
274
- }, onBlur: bag.save }) }), _jsx(SlotField, { label: t(LISTINGS_I18N_KEYS.composeCurrencyLabel), slot: "renderCurrencyPicker", named: namedSlots, status: {}, testId: "listings-composer-currency", anchorId: composerFieldId("currency"), control: props.renderCurrencyPicker?.({
275
- value: bag.values.currency,
276
- setCurrency: (code) => {
277
- bag.setValue("currency", code);
278
- bag.saveSoon();
186
+ : LISTINGS_I18N_KEYS.composePublishedFirst) })) : null, _jsxs(Form, { layout: "vertical", "data-testid": "listings-composer-form", children: [_jsx(SlotField, { label: t(LISTINGS_I18N_KEYS.composeCategory), extra: t(LISTINGS_I18N_KEYS.composeCategoryHelp), slot: "renderCategoryPicker", named: namedSlots, status: errorOf(CATEGORY_FIELD), testId: "listings-composer-category", anchorId: composerFieldId(CATEGORY_FIELD), control: props.renderCategoryPicker?.({
187
+ value: bag.values.categoryId,
188
+ setCategory: bag.setCategory,
189
+ }) }), bag.droppedOnCategoryChange.length > 0 ? (_jsx(Alert, { type: "info", showIcon: true, "data-testid": "listings-composer-dropped", title: t(LISTINGS_I18N_KEYS.composeCategoryChangedDropped, {
190
+ count: bag.droppedOnCategoryChange.length,
191
+ }) })) : null, _jsx(Form.Item, { label: t(LISTINGS_I18N_KEYS.composeTitleLabel), ...errorOf(TITLE_FIELD), children: _jsx(Input, { id: composerFieldId(TITLE_FIELD), value: bag.values.title, "aria-label": t(LISTINGS_I18N_KEYS.composeTitleLabel), "data-testid": "listings-composer-title", onChange: (event) => {
192
+ bag.setValue("title", event.target.value);
193
+ }, onBlur: bag.save }) }), _jsx(Form.Item, { label: t(LISTINGS_I18N_KEYS.composeDescriptionLabel), ...errorOf(DESCRIPTION_FIELD), children: _jsx(Input.TextArea, { id: composerFieldId(DESCRIPTION_FIELD), rows: 5, value: bag.values.description, "aria-label": t(LISTINGS_I18N_KEYS.composeDescriptionLabel), "data-testid": "listings-composer-description", onChange: (event) => {
194
+ bag.setValue("description", event.target.value);
195
+ }, onBlur: bag.save }) }), _jsx(Form.Item, { label: t(LISTINGS_I18N_KEYS.composePriceLabel), ...errorOf(PRICE_FIELD), children: _jsx(Input, { id: composerFieldId(PRICE_FIELD), inputMode: "decimal", value: bag.values.price, ...(props.renderCurrencyPicker === undefined
196
+ ? { addonAfter: bag.values.currency }
197
+ : {}), "aria-label": t(LISTINGS_I18N_KEYS.composePriceLabel), "data-testid": "listings-composer-price", onChange: (event) => {
198
+ bag.setValue("price", event.target.value);
199
+ }, onBlur: bag.save }) }), _jsx(SlotField, { label: t(LISTINGS_I18N_KEYS.composeCurrencyLabel), slot: "renderCurrencyPicker", named: namedSlots, status: {}, testId: "listings-composer-currency", anchorId: composerFieldId("currency"), control: props.renderCurrencyPicker?.({
200
+ value: bag.values.currency,
201
+ setCurrency: (code) => {
202
+ bag.setValue("currency", code);
203
+ bag.saveSoon();
204
+ },
205
+ }) }), _jsx(SlotField, { label: t(LISTINGS_I18N_KEYS.composeLocationLabel), extra: t(LISTINGS_I18N_KEYS.composeLocationHelp), slot: "locationPicker", named: namedSlots, status: errorOf(LOCATION_FIELD), testId: "listings-composer-location", anchorId: composerFieldId(LOCATION_FIELD), control: props.renderLocationPicker !== undefined ? (_jsx("div", { "data-testid": "listings-composer-location-slot", children: props.renderLocationPicker({
206
+ value: bag.values.location,
207
+ setLocation: (location) => {
208
+ bag.setLocation(location);
279
209
  },
280
- }) }), _jsx(SlotField, { label: t(LISTINGS_I18N_KEYS.composeLocationLabel), extra: t(LISTINGS_I18N_KEYS.composeLocationHelp), slot: "locationPicker", named: namedSlots, status: errorOf(LOCATION_FIELD), testId: "listings-composer-location", anchorId: composerFieldId(LOCATION_FIELD), control: props.renderLocationPicker !== undefined ? (_jsx("div", { "data-testid": "listings-composer-location-slot", children: props.renderLocationPicker({
281
- value: bag.values.location,
282
- setLocation: (location) => {
283
- bag.setLocation(location);
284
- },
285
- save: bag.saveSoon,
286
- }) })) : LocationPicker !== undefined ? (_jsx("div", { "data-testid": "listings-composer-location-slot", children: _jsx(LocationPicker, { value: {
287
- lat: toNumber(bag.values.location.lat),
288
- lon: toNumber(bag.values.location.lon),
289
- ...(bag.values.location.locationLabel.length > 0
290
- ? { address: bag.values.location.locationLabel }
291
- : {}),
292
- }, onChange: (next) => {
293
- // Numbers in, decimal strings out the wire's spelling,
294
- // written at the seam so no other module has to know.
295
- bag.setLocation({
296
- ...bag.values.location,
297
- lat: next.lat === null ? null : String(next.lat),
298
- lon: next.lon === null ? null : String(next.lon),
299
- locationLabel: next.address ?? "",
300
- });
301
- bag.saveSoon();
302
- } }) })) : undefined }), props.gallerySlot !== undefined || namedSlots ? (_jsxs(_Fragment, { children: [_jsx(Divider, {}), _jsx(Typography.Title, { level: 5, children: t(LISTINGS_I18N_KEYS.composePhotos) }), _jsx("div", { id: composerFieldId(IMAGES_FIELD), children: props.gallerySlot ?? (_jsx(SlotPlaceholder, { name: "gallerySlot", visibility: "visible" })) }), bag.fieldErrors[IMAGES_FIELD] ? (_jsx(Typography.Text, { type: "danger", "data-testid": "listings-composer-images-error", children: describe(bag.fieldErrors[IMAGES_FIELD]).message })) : null] })) : null, stacked ? null : details, _jsx(Divider, {}), _jsx(Form.Item, { children: _jsx(Checkbox, { checked: bag.values.countable, "data-testid": "listings-composer-countable", onChange: (event) => {
303
- bag.setValue("countable", event.target.checked);
304
- }, children: t(LISTINGS_I18N_KEYS.composeCountable) }) }), bag.values.countable ? (_jsx(Form.Item, { label: t(LISTINGS_I18N_KEYS.composeStock), children: _jsx(InputNumber, { min: 0, value: bag.values.stockQuantity, "aria-label": t(LISTINGS_I18N_KEYS.composeStock), "data-testid": "listings-composer-stock", onChange: (value) => {
305
- bag.setValue("stockQuantity", value ?? null);
306
- } }) })) : null, _jsx(Form.Item, { children: _jsx(Checkbox, { checked: bag.values.autoRepublish, "data-testid": "listings-composer-auto-republish", onChange: (event) => {
307
- bag.setValue("autoRepublish", event.target.checked);
308
- }, children: t(LISTINGS_I18N_KEYS.composeAutoRepublish) }) })] }) }), bag.refusal?.kind === "invalid_draft" ? (_jsx(ErrorAlert, { testId: "listings-composer-invalid", message: t(LISTINGS_I18N_KEYS.composeInvalidSummary, {
210
+ save: bag.saveSoon,
211
+ }) })) : LocationPicker !== undefined ? (_jsx("div", { "data-testid": "listings-composer-location-slot", children: _jsx(LocationPicker, { value: {
212
+ lat: toNumber(bag.values.location.lat),
213
+ lon: toNumber(bag.values.location.lon),
214
+ ...(bag.values.location.locationLabel.length > 0
215
+ ? { address: bag.values.location.locationLabel }
216
+ : {}),
217
+ }, onChange: (next) => {
218
+ // Numbers in, decimal strings out — the wire's spelling,
219
+ // written at the seam so no other module has to know.
220
+ bag.setLocation({
221
+ ...bag.values.location,
222
+ lat: next.lat === null ? null : String(next.lat),
223
+ lon: next.lon === null ? null : String(next.lon),
224
+ locationLabel: next.address ?? "",
225
+ });
226
+ bag.saveSoon();
227
+ } }) })) : undefined }), props.gallerySlot !== undefined || namedSlots ? (_jsxs(_Fragment, { children: [_jsx(Divider, {}), _jsx(Typography.Title, { level: 5, children: t(LISTINGS_I18N_KEYS.composePhotos) }), _jsx("div", { id: composerFieldId(IMAGES_FIELD), children: props.gallerySlot ?? (_jsx(SlotPlaceholder, { name: "gallerySlot", visibility: "visible" })) }), bag.fieldErrors[IMAGES_FIELD] ? (_jsx(Typography.Text, { type: "danger", "data-testid": "listings-composer-images-error", children: describe(bag.fieldErrors[IMAGES_FIELD]).message })) : null] })) : null, details, _jsx(Divider, {}), _jsx(Form.Item, { children: _jsx(Checkbox, { checked: bag.values.countable, "data-testid": "listings-composer-countable", onChange: (event) => {
228
+ bag.setValue("countable", event.target.checked);
229
+ }, children: t(LISTINGS_I18N_KEYS.composeCountable) }) }), bag.values.countable ? (_jsx(Form.Item, { label: t(LISTINGS_I18N_KEYS.composeStock), children: _jsx(InputNumber, { min: 0, value: bag.values.stockQuantity, "aria-label": t(LISTINGS_I18N_KEYS.composeStock), "data-testid": "listings-composer-stock", onChange: (value) => {
230
+ bag.setValue("stockQuantity", value ?? null);
231
+ } }) })) : null, _jsx(Form.Item, { children: _jsx(Checkbox, { checked: bag.values.autoRepublish, "data-testid": "listings-composer-auto-republish", onChange: (event) => {
232
+ bag.setValue("autoRepublish", event.target.checked);
233
+ }, children: t(LISTINGS_I18N_KEYS.composeAutoRepublish) }) })] }), bag.refusal?.kind === "invalid_draft" ? (_jsx(ErrorAlert, { testId: "listings-composer-invalid", message: t(LISTINGS_I18N_KEYS.composeInvalidSummary, {
309
234
  count: failedResults(bag.refusal.batch).length,
310
235
  }) })) : null, bag.refusal?.kind === "error" && !routedToAControl(bag.refusal.error) ? (_jsx(ErrorAlert, { testId: "listings-composer-error", error: describe({
311
236
  code: bag.refusal.error.code,
@@ -1 +1 @@
1
- {"version":3,"file":"ListingComposerPage.js","sourceRoot":"","sources":["../../src/default/ListingComposerPage.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ListingComposerPage.js","sourceRoot":"","sources":["../../src/default/ListingComposerPage.tsx"],"names":[],"mappings":"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"}
@@ -34,4 +34,34 @@ export interface ListingPhotoProps {
34
34
  readonly style?: CSSProperties;
35
35
  }
36
36
  export declare function ListingPhoto(props: ListingPhotoProps): ReactElement;
37
+ /**
38
+ * A listing's photos as ONE swipeable strip — the shape every card surface in
39
+ * this pair uses, so there is one gallery and not three.
40
+ *
41
+ * ── Why the strip is never inside a card's anchor ──────────────────────────
42
+ *
43
+ * A `<SkinCarousel>` is a scroll container with its own tab stop, and a
44
+ * horizontal swipe that ends inside an `<a>` is a swipe the browser may
45
+ * deliver as a click: every attempt to look at photo two would open the
46
+ * listing. A link may not contain a control, and a swipeable strip is a
47
+ * control. So a card renders this as a SIBLING of its anchor and keeps the
48
+ * anchor around everything a person READS — which is the arrangement
49
+ * `<ListingSerpCard>` has shipped since it existed, and the one the live phone
50
+ * SERP was measured correct on while the desktop card (a still `<img>` inside
51
+ * the anchor, one photo, no dots) was not.
52
+ *
53
+ * A listing with no photos still gets one slide, so a row's height does not
54
+ * depend on whether a seller uploaded anything, and a ONE-photo strip gets
55
+ * neither peek nor dots: the sliver of a next slide is an affordance for
56
+ * something that is there.
57
+ */
58
+ export declare function ListingPhotoStrip(props: {
59
+ /** The stored references, in the seller's order. */
60
+ readonly images: readonly string[];
61
+ /** The listing's title — the fallback alt for a single photo. */
62
+ readonly title: string;
63
+ /** The surface's own test id, so a screen holding two kinds of card does
64
+ * not hand a test two elements under one name. */
65
+ readonly testId: string;
66
+ }): ReactElement;
37
67
  //# sourceMappingURL=ListingPhoto.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ListingPhoto.d.ts","sourceRoot":"","sources":["../../src/default/ListingPhoto.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AASzD;;4BAE4B;AAC5B,eAAO,MAAM,oBAAoB,UAAU,CAAC;AAE5C,MAAM,WAAW,iBAAiB;IAChC,yEAAyE;IACzE,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IACtC,uEAAuE;IACvE,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,KAAK,CAAC,EAAE,aAAa,CAAC;CAChC;AAwBD,wBAAgB,YAAY,CAAC,KAAK,EAAE,iBAAiB,GAAG,YAAY,CAmEnE"}
1
+ {"version":3,"file":"ListingPhoto.d.ts","sourceRoot":"","sources":["../../src/default/ListingPhoto.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAUzD;;4BAE4B;AAC5B,eAAO,MAAM,oBAAoB,UAAU,CAAC;AAE5C,MAAM,WAAW,iBAAiB;IAChC,yEAAyE;IACzE,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IACtC,uEAAuE;IACvE,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,KAAK,CAAC,EAAE,aAAa,CAAC;CAChC;AAwBD,wBAAgB,YAAY,CAAC,KAAK,EAAE,iBAAiB,GAAG,YAAY,CAmEnE;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE;IACvC,oDAAoD;IACpD,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC,iEAAiE;IACjE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB;sDACkD;IAClD,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB,GAAG,YAAY,CAgCf"}
@@ -2,6 +2,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { useMemo } from "react";
3
3
  import { Typography, theme as antdTheme } from "antd";
4
4
  import { Image } from "@stapel/image";
5
+ import { SkinCarousel } from "@stapel/tokens-antd/skin";
5
6
  import { useT } from "@stapel/core";
6
7
  import { radii, spacing } from "@stapel/tokens";
7
8
  import { useListingsRuntime } from "../model/context.js";
@@ -55,4 +56,36 @@ export function ListingPhoto(props) {
55
56
  ...props.style,
56
57
  } }));
57
58
  }
59
+ /**
60
+ * A listing's photos as ONE swipeable strip — the shape every card surface in
61
+ * this pair uses, so there is one gallery and not three.
62
+ *
63
+ * ── Why the strip is never inside a card's anchor ──────────────────────────
64
+ *
65
+ * A `<SkinCarousel>` is a scroll container with its own tab stop, and a
66
+ * horizontal swipe that ends inside an `<a>` is a swipe the browser may
67
+ * deliver as a click: every attempt to look at photo two would open the
68
+ * listing. A link may not contain a control, and a swipeable strip is a
69
+ * control. So a card renders this as a SIBLING of its anchor and keeps the
70
+ * anchor around everything a person READS — which is the arrangement
71
+ * `<ListingSerpCard>` has shipped since it existed, and the one the live phone
72
+ * SERP was measured correct on while the desktop card (a still `<img>` inside
73
+ * the anchor, one photo, no dots) was not.
74
+ *
75
+ * A listing with no photos still gets one slide, so a row's height does not
76
+ * depend on whether a seller uploaded anything, and a ONE-photo strip gets
77
+ * neither peek nor dots: the sliver of a next slide is an affordance for
78
+ * something that is there.
79
+ */
80
+ export function ListingPhotoStrip(props) {
81
+ const t = useT();
82
+ const { images, title } = props;
83
+ const many = images.length > 1;
84
+ return (_jsx(SkinCarousel, { label: t(LISTINGS_I18N_KEYS.cardPhotos), aspectRatio: LISTING_PHOTO_ASPECT, peek: many, dots: many, "data-testid": props.testId, children: images.length === 0 ? (_jsx(ListingPhoto, { imageRef: undefined, alt: title })) : (images.map((reference, index) => (_jsx(ListingPhoto, { imageRef: reference, alt: many
85
+ ? t(LISTINGS_I18N_KEYS.detailPhotoAlt, {
86
+ index: index + 1,
87
+ total: images.length,
88
+ })
89
+ : title }, reference)))) }));
90
+ }
58
91
  //# sourceMappingURL=ListingPhoto.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ListingPhoto.js","sourceRoot":"","sources":["../../src/default/ListingPhoto.tsx"],"names":[],"mappings":";AAwBA,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAChC,OAAO,EAAE,UAAU,EAAE,KAAK,IAAI,SAAS,EAAE,MAAM,MAAM,CAAC;AACtD,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AACpC,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAErD;;4BAE4B;AAC5B,MAAM,CAAC,MAAM,oBAAoB,GAAG,OAAO,CAAC;AAU5C;;wEAEwE;AACxE,SAAS,WAAW;IAClB,OAAO,CACL,eACE,KAAK,EAAC,IAAI,EACV,MAAM,EAAC,IAAI,EACX,OAAO,EAAC,WAAW,EACnB,IAAI,EAAC,MAAM,EACX,MAAM,EAAC,cAAc,EACrB,WAAW,EAAC,KAAK,EACjB,aAAa,EAAC,OAAO,EACrB,cAAc,EAAC,OAAO,iBACV,MAAM,aAElB,eAAM,CAAC,EAAC,2HAA2H,GAAG,EACtI,iBAAQ,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,MAAM,EAAC,CAAC,EAAC,KAAK,GAAG,IAChC,CACP,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,KAAwB;IACnD,MAAM,CAAC,GAAG,IAAI,EAAE,CAAC;IACjB,MAAM,EAAE,KAAK,EAAE,GAAG,SAAS,CAAC,QAAQ,EAAE,CAAC;IACvC,MAAM,OAAO,GAAG,kBAAkB,EAAE,CAAC;IACrC,wEAAwE;IACxE,4EAA4E;IAC5E,wEAAwE;IACxE,2EAA2E;IAC3E,2EAA2E;IAC3E,mDAAmD;IACnD,MAAM,OAAO,GAAG,OAAO,CAAC,YAAY,CAAC;IACrC,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;IAChC,MAAM,IAAI,GAAG,OAAO,CAClB,GAAG,EAAE,CAAC,CAAC,QAAQ,KAAK,SAAS,IAAI,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,EACvF,CAAC,QAAQ,EAAE,OAAO,CAAC,CACpB,CAAC;IAEF,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACvB,MAAM,OAAO,GAAG,CAAC,CACf,KAAK,CAAC,QAAQ,KAAK,SAAS;YAC1B,CAAC,CAAC,kBAAkB,CAAC,WAAW;YAChC,CAAC,CAAC,kBAAkB,CAAC,oBAAoB,CAC5C,CAAC;QACF,OAAO,CACL,eACE,IAAI,EAAC,KAAK,gBACE,OAAO,iBACP,uBAAuB,EACnC,KAAK,EAAE;gBACL,OAAO,EAAE,MAAM;gBACf,aAAa,EAAE,QAAQ;gBACvB,UAAU,EAAE,QAAQ;gBACpB,cAAc,EAAE,QAAQ;gBACxB,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC;gBACf,KAAK,EAAE,MAAM;gBACb,WAAW,EAAE,oBAAoB;gBACjC,UAAU,EAAE,KAAK,CAAC,mBAAmB;gBACrC,KAAK,EAAE,KAAK,CAAC,mBAAmB;gBAChC,YAAY,EAAE,KAAK,CAAC,EAAE;gBACtB,GAAG,KAAK,CAAC,KAAK;aACf,aAED,KAAC,WAAW,KAAG,EACf,KAAC,UAAU,CAAC,IAAI,IACd,IAAI,EAAC,WAAW,EAChB,KAAK,EAAE,EAAE,QAAQ,EAAE,KAAK,CAAC,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,YAEzD,OAAO,GACQ,IACd,CACP,CAAC;IACJ,CAAC;IAED,OAAO,CACL,KAAC,KAAK,IACJ,IAAI,EAAE,IAAI,EACV,GAAG,EAAE,KAAK,CAAC,GAAG,iBACF,gBAAgB,EAC5B,KAAK,EAAE;YACL,KAAK,EAAE,MAAM;YACb,WAAW,EAAE,oBAAoB;YACjC,SAAS,EAAE,OAAO;YAClB,YAAY,EAAE,KAAK,CAAC,EAAE;YACtB,GAAG,KAAK,CAAC,KAAK;SACf,GACD,CACH,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"ListingPhoto.js","sourceRoot":"","sources":["../../src/default/ListingPhoto.tsx"],"names":[],"mappings":"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"}
@@ -34,6 +34,17 @@
34
34
  * covers the four things that identify the listing — price, title, specs,
35
35
  * badges — so the card opens from everything a person reads.
36
36
  *
37
+ * ── One column on a phone, one ROW on a desktop ───────────────────────────
38
+ *
39
+ * The card is still one per row; what changes with width is where the photo
40
+ * sits. Full-bleed above the text is right at 390px and wrong at 974px, where
41
+ * it makes the picture the whole screen and the offer a footnote — measured on
42
+ * the live desktop SERP as one card per scroll. Above
43
+ * {@link LISTING_CARD_ROW_MIN} the strip moves BESIDE the text at a fixed
44
+ * width, from the card's own `@container` query rather than a viewport
45
+ * breakpoint: this card knows how wide it is and has no business knowing how
46
+ * wide the window is.
47
+ *
37
48
  * ── The two slots, and what they are honestly for ─────────────────────────
38
49
  *
39
50
  * `sellerSlot` is the seller's name and rating. It is a SLOT because a rating
@@ -1 +1 @@
1
- {"version":3,"file":"ListingSerpCard.d.ts","sourceRoot":"","sources":["../../src/default/ListingSerpCard.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+DG;AACH,OAAO,KAAK,EAAiB,YAAY,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAMpE,OAAO,KAAK,EAAE,WAAW,IAAI,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAgBtE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAG7D,OAAO,KAAK,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEtE;;;;;;;GAOG;AACH,MAAM,WAAW,iBAAiB;IAChC,6EAA6E;IAC7E,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,yEAAyE;IACzE,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CACnC;AAED,MAAM,WAAW,wBACf,SAAQ,aAAa,EACnB,oBAAoB;IACtB,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAC;IAClC;;;;;;;;;;OAUG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,4EAA4E;IAC5E,QAAQ,CAAC,UAAU,CAAC,EAAE,iBAAiB,CAAC;IACxC;0CACsC;IACtC,QAAQ,CAAC,UAAU,CAAC,EAAE,SAAS,CAAC;IAChC;gEAC4D;IAC5D,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,CAAC;IACjC;wDACoD;IACpD,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,CAAC;IAC3B;oEACgE;IAChE,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,CAAC;CACjC;AAED,MAAM,MAAM,oBAAoB,GAAG,wBAAwB,GAAG,oBAAoB,CAAC;AAUnF,wBAAgB,eAAe,CAAC,KAAK,EAAE,oBAAoB,GAAG,YAAY,CAwNzE"}
1
+ {"version":3,"file":"ListingSerpCard.d.ts","sourceRoot":"","sources":["../../src/default/ListingSerpCard.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0EG;AACH,OAAO,KAAK,EAAiB,YAAY,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAMpE,OAAO,KAAK,EAAE,WAAW,IAAI,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAoBtE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAG7D,OAAO,KAAK,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEtE;;;;;;;GAOG;AACH,MAAM,WAAW,iBAAiB;IAChC,6EAA6E;IAC7E,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,yEAAyE;IACzE,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CACnC;AAED,MAAM,WAAW,wBACf,SAAQ,aAAa,EACnB,oBAAoB;IACtB,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAC;IAClC;;;;;;;;;;OAUG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,4EAA4E;IAC5E,QAAQ,CAAC,UAAU,CAAC,EAAE,iBAAiB,CAAC;IACxC;0CACsC;IACtC,QAAQ,CAAC,UAAU,CAAC,EAAE,SAAS,CAAC;IAChC;gEAC4D;IAC5D,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,CAAC;IACjC;wDACoD;IACpD,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,CAAC;IAC3B;oEACgE;IAChE,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,CAAC;CACjC;AAED,MAAM,MAAM,oBAAoB,GAAG,wBAAwB,GAAG,oBAAoB,CAAC;AAUnF,wBAAgB,eAAe,CAAC,KAAK,EAAE,oBAAoB,GAAG,YAAY,CAoMzE"}
@@ -1,6 +1,6 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { Card, Flex, Typography, theme as antdTheme } from "antd";
3
- import { SkinCarousel, SkinTheme } from "@stapel/tokens-antd/skin";
3
+ import { SkinTheme } from "@stapel/tokens-antd/skin";
4
4
  import { useT } from "@stapel/core";
5
5
  import { fontSize, spacing } from "@stapel/tokens";
6
6
  import { FeatureBadges } from "@stapel/attributes-react/default";
@@ -9,8 +9,8 @@ import { lifecycleCaption } from "../model/status.js";
9
9
  import { LISTINGS_I18N_KEYS } from "../i18n/keys.js";
10
10
  import { PriceTrendIcon } from "./icons.js";
11
11
  import { FavoriteHeart } from "./favorite.js";
12
- import { CARD_TARGET_STYLE_HREF, CardTarget, cardTargetCss, } from "./ListingCard.js";
13
- import { LISTING_PHOTO_ASPECT, ListingPhoto } from "./ListingPhoto.js";
12
+ import { CARD_FRAME_CLASS, CARD_MAIN_CLASS, CARD_MEDIA_CLASS, CARD_QUERY_CLASS, CARD_TARGET_STYLE_HREF, CardTarget, cardTargetCss, } from "./ListingCard.js";
13
+ import { ListingPhotoStrip } from "./ListingPhoto.js";
14
14
  import { ListingPrice } from "./ListingPrice.js";
15
15
  /** The trailing column. Fixed width contribution: it must not take room from
16
16
  * the text as the actions grow. */
@@ -40,21 +40,13 @@ export function ListingSerpCard(props) {
40
40
  const targetLabel = title.length > 0 ? title : t(LISTINGS_I18N_KEYS.cardUntitled);
41
41
  const photos = listing.images ?? [];
42
42
  const currency = listing.currency !== undefined ? { currency: listing.currency } : {};
43
- // A one-photo strip gets neither a peek nor dots: the sliver of a next slide
44
- // is an affordance for something that is there, and on a single photo it is
45
- // just a strip of dead space at the trailing edge (`SkinCarousel` says the
46
- // same thing from its own side).
47
- const many = photos.length > 1;
48
43
  const rail = props.actionsRail !== undefined || props.showFavorite !== false ? (_jsxs(Flex, { vertical: true, align: "flex-end", gap: spacing[2], style: RAIL, "data-testid": "listings-serp-actions", children: [props.actionsRail, props.showFavorite === false ? null : (_jsx(FavoriteHeart, { listingId: listing.id, favorited: listing.is_favorited, testId: "listings-serp-favorite" }))] })) : null;
49
44
  return (_jsxs(SkinTheme, { surface: "bare", ...(props.mode !== undefined ? { mode: props.mode } : {}), children: [_jsx("style", { href: CARD_TARGET_STYLE_HREF, precedence: "default", children: cardTargetCss() }), _jsx(Card, { size: "small", "data-testid": "listings-serp-card", "data-listing-id": listing.id, ...(status !== undefined
50
45
  ? { "data-listing-status": status.status }
51
- : {}), styles: { body: { minWidth: 0, padding: token.paddingSM } }, style: { ["--listing-card-focus"]: token.colorPrimary }, children: _jsxs(Flex, { vertical: true, gap: spacing[3], children: [_jsx(SkinCarousel, { label: t(LISTINGS_I18N_KEYS.cardPhotos), aspectRatio: LISTING_PHOTO_ASPECT, peek: many, dots: many, "data-testid": "listings-serp-photos", children: photos.length === 0 ? (_jsx(ListingPhoto, { imageRef: undefined, alt: title.length > 0 ? title : String(listing.id) })) : (photos.map((reference, index) => (_jsx(ListingPhoto, { imageRef: reference, alt: t(LISTINGS_I18N_KEYS.detailPhotoAlt, {
52
- index: index + 1,
53
- total: photos.length,
54
- }) }, reference)))) }), _jsxs(Flex, { gap: spacing[3], align: "flex-start", children: [_jsxs(Flex, { vertical: true, gap: spacing[1], style: BODY, children: [_jsxs(CardTarget, { ...openProps(props), listingId: listing.id, label: targetLabel, testId: "listings-serp-open", bodyTestId: "listings-serp-body", children: [props.badge, _jsxs(Flex, { align: "center", gap: spacing[2], wrap: true, children: [_jsx(Typography.Text, { strong: true, style: { fontSize: fontSize.xl.fontSize }, "data-testid": "listings-serp-price", children: _jsx(ListingPrice, { amount: listing.price, ...currency }) }), priceTrend !== undefined && (_jsx(PriceTrendIcon, { direction: priceTrend.direction, label: t(priceTrend.direction === "down"
55
- ? LISTINGS_I18N_KEYS.cardPriceDropped
56
- : LISTINGS_I18N_KEYS.cardPriceRaised) }))] }), priceTrend !== undefined && (_jsxs(Flex, { align: "baseline", gap: spacing[1], "data-testid": "listings-serp-old-price", children: [_jsx(Typography.Text, { type: "secondary", children: t(LISTINGS_I18N_KEYS.cardPriceWas) }), _jsx(Typography.Text, { type: "secondary", delete: true, children: _jsx(ListingPrice, { amount: priceTrend.oldPrice, ...currency }) })] })), _jsx(Typography.Text, { "data-testid": "listings-serp-title", children: title }), props.specsLine !== undefined && props.specsLine.length > 0 ? (_jsx(Typography.Text, { type: "secondary", ellipsis: true, "data-testid": "listings-serp-specs", children: props.specsLine })) : titleDaos.length > 0 ? (_jsx(Typography.Text, { type: "secondary", ellipsis: true, "data-testid": "listings-serp-specs", children: _jsx(FeatureBadges, { features: featuresFromDaoList(titleDaos, copy).map((view) => view.feature), values: featuresDtoFromDaoList(titleDaos) }) })) : null, badgeFeatures.length > 0 ? (_jsx(FeatureBadges, { features: badgeFeatures.map((view) => view.feature), values: badgeValues })) : null] }), props.sellerSlot ?? null, listing.location_label !== undefined &&
57
- listing.location_label.length > 0 ? (_jsx(Typography.Text, { type: "secondary", "data-testid": "listings-serp-location", children: listing.location_label })) : null] }), rail] })] }) })] }));
46
+ : {}), styles: { body: { minWidth: 0, padding: token.paddingSM } }, style: { ["--listing-card-focus"]: token.colorPrimary }, children: _jsx("div", { className: CARD_QUERY_CLASS, children: _jsxs("div", { className: CARD_FRAME_CLASS, style: { gap: spacing[3] }, children: [_jsx("div", { className: CARD_MEDIA_CLASS, children: _jsx(ListingPhotoStrip, { images: photos, title: title.length > 0 ? title : String(listing.id), testId: "listings-serp-photos" }) }), _jsx("div", { className: CARD_MAIN_CLASS, children: _jsxs(Flex, { gap: spacing[3], align: "flex-start", children: [_jsxs(Flex, { vertical: true, gap: spacing[1], style: BODY, children: [_jsxs(CardTarget, { ...openProps(props), listingId: listing.id, label: targetLabel, testId: "listings-serp-open", bodyTestId: "listings-serp-body", children: [props.badge, _jsxs(Flex, { align: "center", gap: spacing[2], wrap: true, children: [_jsx(Typography.Text, { strong: true, style: { fontSize: fontSize.xl.fontSize }, "data-testid": "listings-serp-price", children: _jsx(ListingPrice, { amount: listing.price, ...currency }) }), priceTrend !== undefined && (_jsx(PriceTrendIcon, { direction: priceTrend.direction, label: t(priceTrend.direction === "down"
47
+ ? LISTINGS_I18N_KEYS.cardPriceDropped
48
+ : LISTINGS_I18N_KEYS.cardPriceRaised) }))] }), priceTrend !== undefined && (_jsxs(Flex, { align: "baseline", gap: spacing[1], "data-testid": "listings-serp-old-price", children: [_jsx(Typography.Text, { type: "secondary", children: t(LISTINGS_I18N_KEYS.cardPriceWas) }), _jsx(Typography.Text, { type: "secondary", delete: true, children: _jsx(ListingPrice, { amount: priceTrend.oldPrice, ...currency }) })] })), _jsx(Typography.Text, { "data-testid": "listings-serp-title", children: title }), props.specsLine !== undefined && props.specsLine.length > 0 ? (_jsx(Typography.Text, { type: "secondary", ellipsis: true, "data-testid": "listings-serp-specs", children: props.specsLine })) : titleDaos.length > 0 ? (_jsx(Typography.Text, { type: "secondary", ellipsis: true, "data-testid": "listings-serp-specs", children: _jsx(FeatureBadges, { features: featuresFromDaoList(titleDaos, copy).map((view) => view.feature), values: featuresDtoFromDaoList(titleDaos) }) })) : null, badgeFeatures.length > 0 ? (_jsx(FeatureBadges, { features: badgeFeatures.map((view) => view.feature), values: badgeValues })) : null] }), props.sellerSlot ?? null, listing.location_label !== undefined &&
49
+ listing.location_label.length > 0 ? (_jsx(Typography.Text, { type: "secondary", "data-testid": "listings-serp-location", children: listing.location_label })) : null] }), rail] }) })] }) }) })] }));
58
50
  }
59
51
  /**
60
52
  * The three-armed open union, narrowed back out of this card's own props.
@@ -1 +1 @@
1
- {"version":3,"file":"ListingSerpCard.js","sourceRoot":"","sources":["../../src/default/ListingSerpCard.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ListingSerpCard.js","sourceRoot":"","sources":["../../src/default/ListingSerpCard.tsx"],"names":[],"mappings":"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"}