@stapel/listings-react 0.9.1 → 0.10.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.
- package/CHANGELOG.md +24 -0
- package/dist/default/FeedGrid.d.ts +42 -0
- package/dist/default/FeedGrid.d.ts.map +1 -0
- package/dist/default/FeedGrid.js +23 -0
- package/dist/default/FeedGrid.js.map +1 -0
- package/dist/default/ListingCard.d.ts +31 -0
- package/dist/default/ListingCard.d.ts.map +1 -1
- package/dist/default/ListingCard.js +12 -4
- package/dist/default/ListingCard.js.map +1 -1
- package/dist/default/ListingFeedCard.d.ts +77 -0
- package/dist/default/ListingFeedCard.d.ts.map +1 -0
- package/dist/default/ListingFeedCard.js +75 -0
- package/dist/default/ListingFeedCard.js.map +1 -0
- package/dist/default/ListingSerpCard.d.ts +114 -0
- package/dist/default/ListingSerpCard.d.ts.map +1 -0
- package/dist/default/ListingSerpCard.js +72 -0
- package/dist/default/ListingSerpCard.js.map +1 -0
- package/dist/default/favorite.d.ts +49 -0
- package/dist/default/favorite.d.ts.map +1 -0
- package/dist/default/favorite.js +25 -0
- package/dist/default/favorite.js.map +1 -0
- package/dist/default/icons.d.ts +17 -3
- package/dist/default/icons.d.ts.map +1 -1
- package/dist/default/icons.js +13 -1
- package/dist/default/icons.js.map +1 -1
- package/dist/default/index.d.ts +17 -1
- package/dist/default/index.d.ts.map +1 -1
- package/dist/default/index.js +14 -1
- package/dist/default/index.js.map +1 -1
- package/dist/i18n/es.d.ts.map +1 -1
- package/dist/i18n/es.js +4 -0
- package/dist/i18n/es.js.map +1 -1
- package/dist/i18n/keys.d.ts +11 -0
- package/dist/i18n/keys.d.ts.map +1 -1
- package/dist/i18n/keys.js +15 -0
- package/dist/i18n/keys.js.map +1 -1
- package/dist/i18n/ru.d.ts.map +1 -1
- package/dist/i18n/ru.js +4 -0
- package/dist/i18n/ru.js.map +1 -1
- package/llms.txt +3 -1
- package/manifest.json +45 -1
- package/nav-manifest.json +1 -1
- package/package.json +7 -7
- package/src/analytics/generated/events.json +1 -1
- package/src/default/FeedGrid.tsx +70 -0
- package/src/default/ListingCard.tsx +21 -5
- package/src/default/ListingFeedCard.tsx +232 -0
- package/src/default/ListingSerpCard.tsx +374 -0
- package/src/default/favorite.tsx +91 -0
- package/src/default/icons.tsx +37 -3
- package/src/default/index.ts +24 -1
- package/src/i18n/es.ts +4 -0
- package/src/i18n/keys.ts +15 -0
- package/src/i18n/ru.ts +4 -0
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The favourite heart, once — the control every card surface in this pair
|
|
3
|
+
* draws and none of them may draw differently.
|
|
4
|
+
*
|
|
5
|
+
* `<ListingCard>` had it inline, and the two phone cards added in the mobile
|
|
6
|
+
* wave (`<ListingSerpCard>`, `<ListingFeedCard>`) need exactly the same thing:
|
|
7
|
+
* the same hook, the same gate, the same `aria-pressed`, the same refusal
|
|
8
|
+
* printed as text rather than as a tooltip. Three copies of that is three
|
|
9
|
+
* places for the anonymous arm to drift apart in, and the anonymous arm is
|
|
10
|
+
* most of a storefront's traffic. So it lives here and the surfaces differ
|
|
11
|
+
* only in WHERE they put it.
|
|
12
|
+
*
|
|
13
|
+
* This module is deliberately NOT re-exported from `src/default/index.ts`: it
|
|
14
|
+
* is how this pair's own cards are built, not a control a host composes with.
|
|
15
|
+
* A host that wants a favourite button outside a card has `useFavoriteToggle`.
|
|
16
|
+
*
|
|
17
|
+
* ── The refusal, and why a grid needs a scope ──────────────────────────────
|
|
18
|
+
*
|
|
19
|
+
* `<GatedControl>` prints the gate's reason beside the control and wires
|
|
20
|
+
* `aria-describedby` to it. That is right for ONE card and wrong for forty:
|
|
21
|
+
* the same sentence forty times is the loudest thing on a results page. The
|
|
22
|
+
* substrate already answers this — `GateReasonScopeContext` (a `<PaneGate>`
|
|
23
|
+
* provides one) pools identical reasons and renders each once, and a
|
|
24
|
+
* `GatedControl` inside a scope renders no text of its own while keeping the
|
|
25
|
+
* `aria-describedby` pointed at the scope's single copy. A container drawing a
|
|
26
|
+
* list or a grid of these cards should wrap it in one.
|
|
27
|
+
*/
|
|
28
|
+
import type { CSSProperties, ReactElement } from "react";
|
|
29
|
+
export interface FavoriteHeartProps {
|
|
30
|
+
readonly listingId: number;
|
|
31
|
+
/** `is_favorited` off the row. `null` is the third state — a search hit
|
|
32
|
+
* never says whether you saved it — and reads as "not saved". */
|
|
33
|
+
readonly favorited: boolean | null | undefined;
|
|
34
|
+
/** Test id of the button; the gate wrapper takes `${testId}-gate`. */
|
|
35
|
+
readonly testId: string;
|
|
36
|
+
/** `"inline"` puts the reason beside the heart, `"stack"` (default) under
|
|
37
|
+
* it — the choice belongs to the surface, which knows its own geometry. */
|
|
38
|
+
readonly layout?: "stack" | "inline";
|
|
39
|
+
readonly style?: CSSProperties;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* The heart and its refusal. It is NEVER hidden from a visitor: it is blocked,
|
|
43
|
+
* the reason is on the page as ordinary text, and the container's sign-in door
|
|
44
|
+
* (`signIn`) is the surface's business, not this control's — a disabled antd
|
|
45
|
+
* button fires no pointer events, so a tooltip here would be a reason nobody
|
|
46
|
+
* could read on any device (`stapel/no-tooltip-in-skin`).
|
|
47
|
+
*/
|
|
48
|
+
export declare function FavoriteHeart(props: FavoriteHeartProps): ReactElement;
|
|
49
|
+
//# sourceMappingURL=favorite.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"favorite.d.ts","sourceRoot":"","sources":["../../src/default/favorite.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAQzD,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B;qEACiE;IACjE,QAAQ,CAAC,SAAS,EAAE,OAAO,GAAG,IAAI,GAAG,SAAS,CAAC;IAC/C,sEAAsE;IACtE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB;+EAC2E;IAC3E,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAC;IACrC,QAAQ,CAAC,KAAK,CAAC,EAAE,aAAa,CAAC;CAChC;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,kBAAkB,GAAG,YAAY,CAmCrE"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { Button } from "antd";
|
|
3
|
+
import { GatedControl } from "@stapel/tokens-antd/skin";
|
|
4
|
+
import { useT } from "@stapel/core";
|
|
5
|
+
import { useFavoriteToggle } from "../headless/Favorites.js";
|
|
6
|
+
import { LISTINGS_I18N_KEYS } from "../i18n/keys.js";
|
|
7
|
+
import { HeartIcon } from "./icons.js";
|
|
8
|
+
/**
|
|
9
|
+
* The heart and its refusal. It is NEVER hidden from a visitor: it is blocked,
|
|
10
|
+
* the reason is on the page as ordinary text, and the container's sign-in door
|
|
11
|
+
* (`signIn`) is the surface's business, not this control's — a disabled antd
|
|
12
|
+
* button fires no pointer events, so a tooltip here would be a reason nobody
|
|
13
|
+
* could read on any device (`stapel/no-tooltip-in-skin`).
|
|
14
|
+
*/
|
|
15
|
+
export function FavoriteHeart(props) {
|
|
16
|
+
const t = useT();
|
|
17
|
+
const favorite = useFavoriteToggle(props.listingId, props.favorited);
|
|
18
|
+
const label = t(favorite.favorited
|
|
19
|
+
? LISTINGS_I18N_KEYS.cardFavoriteRemove
|
|
20
|
+
: LISTINGS_I18N_KEYS.cardFavoriteAdd);
|
|
21
|
+
return (_jsx(GatedControl, { gate: favorite.gate, testId: `${props.testId}-gate`, ...(props.layout !== undefined ? { layout: props.layout } : {}), ...(props.style !== undefined ? { style: props.style } : {}), children: (bind) => (_jsx(Button, { shape: "circle", disabled: bind.disabled, "data-disabled-reason": "the enclosing <GatedControl> renders the gate's reason beside this button", ...(bind["aria-describedby"] !== undefined
|
|
22
|
+
? { "aria-describedby": bind["aria-describedby"] }
|
|
23
|
+
: {}), "aria-label": label, "aria-pressed": favorite.favorited, "data-testid": props.testId, "data-favorited": String(favorite.favorited), "data-analytics": "none", "data-analytics-reason": "business action \u2014 host app wraps with its own tracked()", onClick: favorite.toggle, icon: _jsx(HeartIcon, { filled: favorite.favorited }) })) }));
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=favorite.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"favorite.js","sourceRoot":"","sources":["../../src/default/favorite.tsx"],"names":[],"mappings":";AA4BA,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAC9B,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AACpC,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAevC;;;;;;GAMG;AACH,MAAM,UAAU,aAAa,CAAC,KAAyB;IACrD,MAAM,CAAC,GAAG,IAAI,EAAE,CAAC;IACjB,MAAM,QAAQ,GAAG,iBAAiB,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;IACrE,MAAM,KAAK,GAAG,CAAC,CACb,QAAQ,CAAC,SAAS;QAChB,CAAC,CAAC,kBAAkB,CAAC,kBAAkB;QACvC,CAAC,CAAC,kBAAkB,CAAC,eAAe,CACvC,CAAC;IACF,OAAO,CACL,KAAC,YAAY,IACX,IAAI,EAAE,QAAQ,CAAC,IAAI,EACnB,MAAM,EAAE,GAAG,KAAK,CAAC,MAAM,OAAO,KAC1B,CAAC,KAAK,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,KAC5D,CAAC,KAAK,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,YAE5D,CAAC,IAAI,EAAE,EAAE,CAAC,CACT,KAAC,MAAM,IACL,KAAK,EAAC,QAAQ,EACd,QAAQ,EAAE,IAAI,CAAC,QAAQ,0BACF,2EAA2E,KAC5F,CAAC,IAAI,CAAC,kBAAkB,CAAC,KAAK,SAAS;gBACzC,CAAC,CAAC,EAAE,kBAAkB,EAAE,IAAI,CAAC,kBAAkB,CAAC,EAAE;gBAClD,CAAC,CAAC,EAAE,CAAC,gBACK,KAAK,kBACH,QAAQ,CAAC,SAAS,iBACnB,KAAK,CAAC,MAAM,oBACT,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,oBAC3B,MAAM,2BACC,8DAAyD,EAC/E,OAAO,EAAE,QAAQ,CAAC,MAAM,EACxB,IAAI,EAAE,KAAC,SAAS,IAAC,MAAM,EAAE,QAAQ,CAAC,SAAS,GAAI,GAC/C,CACH,GACY,CAChB,CAAC;AACJ,CAAC"}
|
package/dist/default/icons.d.ts
CHANGED
|
@@ -1,16 +1,30 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* The pair's inline glyphs: the favourite heart, and the price-trend arrow.
|
|
3
3
|
*
|
|
4
4
|
* No `@ant-design/icons` dependency — the house convention (profiles-react's
|
|
5
5
|
* `icons.tsx`, shell-react's icon registry): a plain monochrome
|
|
6
6
|
* `currentColor` SVG, so it inherits the theme instead of carrying a colour
|
|
7
7
|
* of its own, and the pair stays one package lighter.
|
|
8
8
|
*
|
|
9
|
-
* `aria-hidden` on
|
|
10
|
-
* glyph announced beside its own label reads the action twice.
|
|
9
|
+
* `aria-hidden` on the heart: the button that holds it carries the label, and
|
|
10
|
+
* a glyph announced beside its own label reads the action twice. The TREND
|
|
11
|
+
* arrow is the opposite case — it is the only thing on the line saying which
|
|
12
|
+
* way the price moved, so it takes a name from the caller and is announced.
|
|
11
13
|
*/
|
|
12
14
|
import type { ReactElement } from "react";
|
|
13
15
|
export declare function HeartIcon(props: {
|
|
14
16
|
filled: boolean;
|
|
15
17
|
}): ReactElement;
|
|
18
|
+
/**
|
|
19
|
+
* Which way the asking price moved — an arrow, and a NAME for it.
|
|
20
|
+
*
|
|
21
|
+
* The arrow is the whole message ("this got cheaper"), so unlike the heart it
|
|
22
|
+
* is not `aria-hidden`: it carries `role="img"` and the sentence the caller
|
|
23
|
+
* resolved from its own key registry. A glyph that means something and is
|
|
24
|
+
* hidden from assistive tech means nothing to the people who need it stated.
|
|
25
|
+
*/
|
|
26
|
+
export declare function PriceTrendIcon(props: {
|
|
27
|
+
direction: "down" | "up";
|
|
28
|
+
label: string;
|
|
29
|
+
}): ReactElement;
|
|
16
30
|
//# sourceMappingURL=icons.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"icons.d.ts","sourceRoot":"","sources":["../../src/default/icons.tsx"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"icons.d.ts","sourceRoot":"","sources":["../../src/default/icons.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAE1C,wBAAgB,SAAS,CAAC,KAAK,EAAE;IAAE,MAAM,EAAE,OAAO,CAAA;CAAE,GAAG,YAAY,CAiBlE;AAED;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE;IACpC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,KAAK,EAAE,MAAM,CAAC;CACf,GAAG,YAAY,CAmBf"}
|
package/dist/default/icons.js
CHANGED
|
@@ -1,5 +1,17 @@
|
|
|
1
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
export function HeartIcon(props) {
|
|
3
3
|
return (_jsx("svg", { width: "16", height: "16", viewBox: "0 0 24 24", fill: props.filled ? "currentColor" : "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", role: "img", "aria-hidden": "true", children: _jsx("path", { d: "M20.8 4.6a5.5 5.5 0 0 0-7.8 0L12 5.7l-1-1.1a5.5 5.5 0 0 0-7.8 7.8l1.1 1L12 21l7.7-7.6 1.1-1a5.5 5.5 0 0 0 0-7.8z" }) }));
|
|
4
4
|
}
|
|
5
|
+
/**
|
|
6
|
+
* Which way the asking price moved — an arrow, and a NAME for it.
|
|
7
|
+
*
|
|
8
|
+
* The arrow is the whole message ("this got cheaper"), so unlike the heart it
|
|
9
|
+
* is not `aria-hidden`: it carries `role="img"` and the sentence the caller
|
|
10
|
+
* resolved from its own key registry. A glyph that means something and is
|
|
11
|
+
* hidden from assistive tech means nothing to the people who need it stated.
|
|
12
|
+
*/
|
|
13
|
+
export function PriceTrendIcon(props) {
|
|
14
|
+
const down = props.direction === "down";
|
|
15
|
+
return (_jsxs("svg", { width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", role: "img", "aria-label": props.label, children: [_jsx("path", { d: down ? "M12 5v14" : "M12 19V5" }), _jsx("path", { d: down ? "M6 13l6 6 6-6" : "M6 11l6-6 6 6" })] }));
|
|
16
|
+
}
|
|
5
17
|
//# sourceMappingURL=icons.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"icons.js","sourceRoot":"","sources":["../../src/default/icons.tsx"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"icons.js","sourceRoot":"","sources":["../../src/default/icons.tsx"],"names":[],"mappings":";AAeA,MAAM,UAAU,SAAS,CAAC,KAA0B;IAClD,OAAO,CACL,cACE,KAAK,EAAC,IAAI,EACV,MAAM,EAAC,IAAI,EACX,OAAO,EAAC,WAAW,EACnB,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,MAAM,EAC5C,MAAM,EAAC,cAAc,EACrB,WAAW,EAAC,GAAG,EACf,aAAa,EAAC,OAAO,EACrB,cAAc,EAAC,OAAO,EACtB,IAAI,EAAC,KAAK,iBACE,MAAM,YAElB,eAAM,CAAC,EAAC,kHAAkH,GAAG,GACzH,CACP,CAAC;AACJ,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,cAAc,CAAC,KAG9B;IACC,MAAM,IAAI,GAAG,KAAK,CAAC,SAAS,KAAK,MAAM,CAAC;IACxC,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,GAAG,EACf,aAAa,EAAC,OAAO,EACrB,cAAc,EAAC,OAAO,EACtB,IAAI,EAAC,KAAK,gBACE,KAAK,CAAC,KAAK,aAEvB,eAAM,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,GAAI,EAC3C,eAAM,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,eAAe,GAAI,IACjD,CACP,CAAC;AACJ,CAAC"}
|
package/dist/default/index.d.ts
CHANGED
|
@@ -1,7 +1,17 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* `@stapel/listings-react/default` — the antd skin: the
|
|
2
|
+
* `@stapel/listings-react/default` — the antd skin: the cards another pair
|
|
3
3
|
* renders, the listing page, the composer and the seller's dashboard.
|
|
4
4
|
*
|
|
5
|
+
* ── Three cards, because a classified has three shelves ────────────────────
|
|
6
|
+
*
|
|
7
|
+
* `ListingCard` is the grid card (a bordered surface, photo-led, twenty-four
|
|
8
|
+
* to a desktop catalogue). `ListingSerpCard` is the phone result row (one per
|
|
9
|
+
* line, a swipeable photo strip, PRICE first, a vertical action rail).
|
|
10
|
+
* `ListingFeedCard` + `FeedGrid` are the home feed (borderless, two across,
|
|
11
|
+
* the photo carried on the page's own ground). They are three components and
|
|
12
|
+
* not one with a `variant`, because they differ in READING ORDER and in what
|
|
13
|
+
* may live inside the card's anchor — not merely in size.
|
|
14
|
+
*
|
|
5
15
|
* A separate entry point (the convention every pair's `/default` follows) so
|
|
6
16
|
* a host rendering its own visuals over the bags never pulls `antd` into its
|
|
7
17
|
* bundle.
|
|
@@ -25,6 +35,12 @@
|
|
|
25
35
|
*/
|
|
26
36
|
export { ListingCard } from "./ListingCard.js";
|
|
27
37
|
export type { ListingCardProps, ListingCardBaseProps, ListingCardOpenProps, ListingCardBlockedReason, } from "./ListingCard.js";
|
|
38
|
+
export { ListingSerpCard } from "./ListingSerpCard.js";
|
|
39
|
+
export type { ListingSerpCardProps, ListingSerpCardBaseProps, ListingPriceTrend, } from "./ListingSerpCard.js";
|
|
40
|
+
export { ListingFeedCard } from "./ListingFeedCard.js";
|
|
41
|
+
export type { ListingFeedCardProps, ListingFeedCardBaseProps, } from "./ListingFeedCard.js";
|
|
42
|
+
export { FeedGrid, FEED_GRID_COLUMNS } from "./FeedGrid.js";
|
|
43
|
+
export type { FeedGridProps } from "./FeedGrid.js";
|
|
28
44
|
export { ListingDetailPane, DETAIL_MEASURE, DETAIL_PHOTO_MIN } from "./ListingDetailPane.js";
|
|
29
45
|
export type { ListingDetailPaneProps } from "./ListingDetailPane.js";
|
|
30
46
|
export { ListingComposerPage, COMPOSER_MEASURE } from "./ListingComposerPage.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/default/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/default/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,YAAY,EACV,gBAAgB,EAChB,oBAAoB,EACpB,oBAAoB,EACpB,wBAAwB,GACzB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,YAAY,EACV,oBAAoB,EACpB,wBAAwB,EACxB,iBAAiB,GAClB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,YAAY,EACV,oBAAoB,EACpB,wBAAwB,GACzB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAC5D,YAAY,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC7F,YAAY,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AACrE,OAAO,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AACjF,YAAY,EACV,wBAAwB,EACxB,oBAAoB,EACpB,oBAAoB,EACpB,oBAAoB,EACpB,qBAAqB,EACrB,2BAA2B,GAC5B,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,YAAY,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACvE,YAAY,EACV,kBAAkB,EAClB,sBAAsB,GACvB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACnF,YAAY,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AACvE,YAAY,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,YAAY,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACvD,YAAY,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC"}
|
package/dist/default/index.js
CHANGED
|
@@ -1,7 +1,17 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* `@stapel/listings-react/default` — the antd skin: the
|
|
2
|
+
* `@stapel/listings-react/default` — the antd skin: the cards another pair
|
|
3
3
|
* renders, the listing page, the composer and the seller's dashboard.
|
|
4
4
|
*
|
|
5
|
+
* ── Three cards, because a classified has three shelves ────────────────────
|
|
6
|
+
*
|
|
7
|
+
* `ListingCard` is the grid card (a bordered surface, photo-led, twenty-four
|
|
8
|
+
* to a desktop catalogue). `ListingSerpCard` is the phone result row (one per
|
|
9
|
+
* line, a swipeable photo strip, PRICE first, a vertical action rail).
|
|
10
|
+
* `ListingFeedCard` + `FeedGrid` are the home feed (borderless, two across,
|
|
11
|
+
* the photo carried on the page's own ground). They are three components and
|
|
12
|
+
* not one with a `variant`, because they differ in READING ORDER and in what
|
|
13
|
+
* may live inside the card's anchor — not merely in size.
|
|
14
|
+
*
|
|
5
15
|
* A separate entry point (the convention every pair's `/default` follows) so
|
|
6
16
|
* a host rendering its own visuals over the bags never pulls `antd` into its
|
|
7
17
|
* bundle.
|
|
@@ -24,6 +34,9 @@
|
|
|
24
34
|
* `<SkinTheme>` from the substrate instead — same props, plus a `surface`.
|
|
25
35
|
*/
|
|
26
36
|
export { ListingCard } from "./ListingCard.js";
|
|
37
|
+
export { ListingSerpCard } from "./ListingSerpCard.js";
|
|
38
|
+
export { ListingFeedCard } from "./ListingFeedCard.js";
|
|
39
|
+
export { FeedGrid, FEED_GRID_COLUMNS } from "./FeedGrid.js";
|
|
27
40
|
export { ListingDetailPane, DETAIL_MEASURE, DETAIL_PHOTO_MIN } from "./ListingDetailPane.js";
|
|
28
41
|
export { ListingComposerPage, COMPOSER_MEASURE } from "./ListingComposerPage.js";
|
|
29
42
|
export { MyListingsPane } from "./MyListingsPane.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/default/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/default/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAO/C,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAMvD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAKvD,OAAO,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAE5D,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE7F,OAAO,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AASjF,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAMvE,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEnF,OAAO,EAAE,YAAY,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAEvE,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC"}
|
package/dist/i18n/es.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"es.d.ts","sourceRoot":"","sources":["../../src/i18n/es.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAI/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAErE;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,oBAAoB,EAAE,
|
|
1
|
+
{"version":3,"file":"es.d.ts","sourceRoot":"","sources":["../../src/i18n/es.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAI/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAErE;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,oBAAoB,EAAE,cAyMlC,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI,CAG7D"}
|
package/dist/i18n/es.js
CHANGED
|
@@ -54,6 +54,10 @@ export const listingsI18nBundleEs = {
|
|
|
54
54
|
"listings.card.favorite_remove": "Quitar de favoritos",
|
|
55
55
|
"listings.card.untitled": "Anuncio sin título",
|
|
56
56
|
"listings.card.sign_in": "Iniciar sesión",
|
|
57
|
+
"listings.card.photos": "Fotos de este anuncio",
|
|
58
|
+
"listings.card.price_was": "Antes",
|
|
59
|
+
"listings.card.price_dropped": "El precio ha bajado",
|
|
60
|
+
"listings.card.price_raised": "El precio ha subido",
|
|
57
61
|
"listings.detail.loading": "Cargando el anuncio…",
|
|
58
62
|
"listings.detail.load_failed": "No pudimos cargar este anuncio",
|
|
59
63
|
"listings.detail.retry": "Reintentar",
|
package/dist/i18n/es.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"es.js","sourceRoot":"","sources":["../../src/i18n/es.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAC5E,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAErE,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAErE;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAmB;IAClD,GAAG,qBAAqB;IAExB,4EAA4E;IAC5E,6BAA6B,EAAE,8BAA8B;IAC7D,0BAA0B,EACxB,uDAAuD;IACzD,uCAAuC,EACrC,sDAAsD;IACxD,yCAAyC,EACvC,2CAA2C;IAC7C,qCAAqC,EACnC,gDAAgD;IAClD,yCAAyC,EACvC,2DAA2D;IAC7D,6BAA6B,EAAE,yBAAyB;IACxD,6BAA6B,EAAE,2BAA2B;IAC1D,6BAA6B,EAAE,iCAAiC;IAChE,sCAAsC,EACpC,4DAA4D;IAC9D,wCAAwC,EACtC,8DAA8D;IAEhE,wBAAwB,EAAE,iCAAiC;IAE3D,uBAAuB,EAAE,UAAU;IACnC,yBAAyB,EAAE,aAAa;IACxC,2BAA2B,EAAE,WAAW;IACxC,wBAAwB,EAAE,UAAU;IACpC,yBAAyB,EAAE,UAAU;IACrC,sBAAsB,EAAE,SAAS;IACjC,0BAA0B,EAAE,WAAW;IACvC,yBAAyB,EAAE,UAAU;IACrC,0BAA0B,EAAE,WAAW;IAEvC,kCAAkC,EAChC,uEAAuE;IACzE,uCAAuC,EACrC,yFAAyF;IAC3F,qCAAqC,EACnC,iEAAiE;IACnE,kCAAkC,EAChC,sCAAsC;IACxC,uCAAuC,EACrC,4DAA4D;IAC9D,8BAA8B,EAC5B,iEAAiE;IACnE,yCAAyC,EACvC,sEAAsE;IAExE,wBAAwB,EAAE,UAAU;IACpC,iCAAiC,EAAE,oBAAoB;IACvD,4BAA4B,EAAE,oBAAoB;IAClD,4BAA4B,EAAE,sBAAsB;IACpD,+BAA+B,EAAE,qBAAqB;IACtD,wBAAwB,EAAE,oBAAoB;IAC9C,uBAAuB,EAAE,gBAAgB;
|
|
1
|
+
{"version":3,"file":"es.js","sourceRoot":"","sources":["../../src/i18n/es.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAC5E,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAErE,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAErE;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAmB;IAClD,GAAG,qBAAqB;IAExB,4EAA4E;IAC5E,6BAA6B,EAAE,8BAA8B;IAC7D,0BAA0B,EACxB,uDAAuD;IACzD,uCAAuC,EACrC,sDAAsD;IACxD,yCAAyC,EACvC,2CAA2C;IAC7C,qCAAqC,EACnC,gDAAgD;IAClD,yCAAyC,EACvC,2DAA2D;IAC7D,6BAA6B,EAAE,yBAAyB;IACxD,6BAA6B,EAAE,2BAA2B;IAC1D,6BAA6B,EAAE,iCAAiC;IAChE,sCAAsC,EACpC,4DAA4D;IAC9D,wCAAwC,EACtC,8DAA8D;IAEhE,wBAAwB,EAAE,iCAAiC;IAE3D,uBAAuB,EAAE,UAAU;IACnC,yBAAyB,EAAE,aAAa;IACxC,2BAA2B,EAAE,WAAW;IACxC,wBAAwB,EAAE,UAAU;IACpC,yBAAyB,EAAE,UAAU;IACrC,sBAAsB,EAAE,SAAS;IACjC,0BAA0B,EAAE,WAAW;IACvC,yBAAyB,EAAE,UAAU;IACrC,0BAA0B,EAAE,WAAW;IAEvC,kCAAkC,EAChC,uEAAuE;IACzE,uCAAuC,EACrC,yFAAyF;IAC3F,qCAAqC,EACnC,iEAAiE;IACnE,kCAAkC,EAChC,sCAAsC;IACxC,uCAAuC,EACrC,4DAA4D;IAC9D,8BAA8B,EAC5B,iEAAiE;IACnE,yCAAyC,EACvC,sEAAsE;IAExE,wBAAwB,EAAE,UAAU;IACpC,iCAAiC,EAAE,oBAAoB;IACvD,4BAA4B,EAAE,oBAAoB;IAClD,4BAA4B,EAAE,sBAAsB;IACpD,+BAA+B,EAAE,qBAAqB;IACtD,wBAAwB,EAAE,oBAAoB;IAC9C,uBAAuB,EAAE,gBAAgB;IACzC,sBAAsB,EAAE,uBAAuB;IAC/C,yBAAyB,EAAE,OAAO;IAClC,6BAA6B,EAAE,qBAAqB;IACpD,4BAA4B,EAAE,qBAAqB;IAEnD,yBAAyB,EAAE,sBAAsB;IACjD,6BAA6B,EAAE,gCAAgC;IAC/D,uBAAuB,EAAE,YAAY;IACrC,2BAA2B,EAAE,yCAAyC;IACtE,yBAAyB,EAAE,4BAA4B;IACvD,+BAA+B,EAC7B,sFAAsF;IACxF,iCAAiC,EAC/B,8CAA8C;IAChD,6BAA6B,EAAE,aAAa;IAC5C,uBAAuB,EAAE,UAAU;IACnC,0BAA0B,EAAE,oCAAoC;IAChE,qCAAqC,EACnC,iDAAiD;IACnD,oCAAoC,EAClC,yEAAyE;IAC3E,2BAA2B,EAAE,yBAAyB;IACtD,8BAA8B,EAAE,qBAAqB;IACrD,4BAA4B,EAAE,4BAA4B;IAC1D,uBAAuB,EAAE,aAAa;IACtC,sBAAsB,EAAE,mBAAmB;IAC3C,2BAA2B,EAAE,WAAW;IAExC,4BAA4B,EAAE,eAAe;IAC7C,6BAA6B,EAAE,mBAAmB;IAClD,2BAA2B,EAAE,WAAW;IACxC,gCAAgC,EAC9B,0DAA0D;IAC5D,oCAAoC,EAAE,6BAA6B;IACnE,2CAA2C,EACzC,sEAAsE;IACxE,8BAA8B,EAAE,QAAQ;IACxC,iCAAiC,EAC/B,yDAAyD;IAC3D,oCAAoC,EAAE,aAAa;IACnD,8BAA8B,EAAE,QAAQ;IACxC,gCAAgC,EAC9B,gEAAgE;IAClE,iCAAiC,EAAE,QAAQ;IAC3C,iCAAiC,EAAE,YAAY;IAC/C,gCAAgC,EAC9B,sFAAsF;IACxF,iCAAiC,EAC/B,sFAAsF;IACxF,yBAAyB,EAAE,OAAO;IAClC,kCAAkC,EAChC,0CAA0C;IAC5C,0BAA0B,EAAE,UAAU;IACtC,kCAAkC,EAAE,sCAAsC;IAC1E,iCAAiC,EAC/B,8CAA8C;IAChD,gCAAgC,EAAE,qCAAqC;IACvE,4BAA4B,EAAE,4BAA4B;IAC1D,wBAAwB,EAAE,kBAAkB;IAC5C,iCAAiC,EAAE,kCAAkC;IACrE,uBAAuB,EAAE,kBAAkB;IAC3C,yBAAyB,EAAE,YAAY;IACvC,wBAAwB,EAAE,mBAAmB;IAC7C,0BAA0B,EAAE,UAAU;IACtC,4BAA4B,EAAE,oBAAoB;IAClD,6BAA6B,EAAE,WAAW;IAC1C,kCAAkC,EAChC,uEAAuE;IACzE,iCAAiC,EAC/B,sEAAsE;IACxE,kCAAkC,EAChC,mDAAmD;IAErD,sCAAsC,EACpC,+DAA+D;IACjE,2CAA2C,EACzC,iIAAiI;IACnI,yCAAyC,EACvC,4CAA4C;IAC9C,mCAAmC,EAAE,oCAAoC;IACzE,+BAA+B,EAC7B,iDAAiD;IACnD,qCAAqC,EAAE,mCAAmC;IAC1E,iCAAiC,EAAE,qCAAqC;IACxE,8CAA8C,EAC5C,wFAAwF;IAE1F,qBAAqB,EAAE,cAAc;IACrC,0BAA0B,EAAE,SAAS;IACrC,0BAA0B,EAAE,YAAY;IACxC,4BAA4B,EAAE,SAAS;IACvC,uBAAuB,EAAE,wBAAwB;IACjD,2BAA2B,EAAE,gCAAgC;IAC7D,qBAAqB,EAAE,0BAA0B;IACjD,qBAAqB,EAAE,YAAY;IACnC,+BAA+B,EAAE,gCAAgC;IACjE,4BAA4B,EAAE,yCAAyC;IACvE,4BAA4B,EAAE,gDAAgD;IAC9E,8BAA8B,EAAE,sDAAsD;IACtF,6BAA6B,EAC3B,2CAA2C;IAC7C,iCAAiC,EAAE,uCAAuC;IAC1E,mCAAmC,EAAE,2CAA2C;IAChF,mCAAmC,EACjC,6DAA6D;IAC/D,iCAAiC,EAAE,gCAAgC;IACnE,oBAAoB,EAAE,QAAQ;IAC9B,uBAAuB,EAAE,UAAU;IACnC,wBAAwB,EAAE,qBAAqB;IAC/C,sBAAsB,EAAE,QAAQ;IAChC,oCAAoC,EAAE,uBAAuB;IAC7D,mCAAmC,EACjC,yEAAyE;IAE3E,0BAA0B,EAAE,WAAW;IACvC,4BAA4B,EAAE,yBAAyB;IACvD,gCAAgC,EAAE,iCAAiC;IACnE,0BAA0B,EAAE,8BAA8B;IAC1D,+BAA+B,EAC7B,kEAAkE;IACpE,iCAAiC,EAC/B,8EAA8E;IAEhF,0BAA0B,EAAE,+BAA+B;IAC3D,wBAAwB,EACtB,wEAAwE;IAC1E,kCAAkC,EAChC,yEAAyE;IAC3E,6BAA6B,EAC3B,4DAA4D;IAC9D,gCAAgC,EAC9B,8DAA8D;IAChE,4BAA4B,EAAE,oCAAoC;IAClE,4BAA4B,EAC1B,sEAAsE;IAExE,oBAAoB,EAAE,UAAU;IAChC,oBAAoB,EAAE,WAAW;IACjC,yBAAyB,EAAE,eAAe;IAE1C,qBAAqB,EAAE,SAAS;IAChC,sBAAsB,EAAE,kBAAkB;IAC1C,mBAAmB,EAAE,cAAc;IACnC,wBAAwB,EAAE,WAAW;CACtC,CAAC;AAEF;;;;;GAKG;AACH,MAAM,UAAU,sBAAsB,CAAC,IAAgB;IACrD,wBAAwB,CAAC,IAAI,CAAC,CAAC;IAC/B,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,oBAAoB,CAAC,CAAC;AAClD,CAAC"}
|
package/dist/i18n/keys.d.ts
CHANGED
|
@@ -67,6 +67,17 @@ export declare const LISTINGS_I18N_KEYS: {
|
|
|
67
67
|
readonly cardUntitled: "listings.card.untitled";
|
|
68
68
|
/** The door beside a blocked favourite: the container supplies WHERE. */
|
|
69
69
|
readonly cardSignIn: "listings.card.sign_in";
|
|
70
|
+
/** The accessible name of `<ListingSerpCard>`'s photo strip. `SkinCarousel`
|
|
71
|
+
* requires one — an unnamed scrollable region is announced as nothing — and
|
|
72
|
+
* the token bridge owns no i18n engine, so the copy is this pair's. */
|
|
73
|
+
readonly cardPhotos: "listings.card.photos";
|
|
74
|
+
/** The label on the struck-through previous price. The strike is styling and
|
|
75
|
+
* a screen reader announces none of it, so the word is on the line. */
|
|
76
|
+
readonly cardPriceWas: "listings.card.price_was";
|
|
77
|
+
/** The name of the trend arrow — the whole message of a glyph that would
|
|
78
|
+
* otherwise be a decoration nobody can read. */
|
|
79
|
+
readonly cardPriceDropped: "listings.card.price_dropped";
|
|
80
|
+
readonly cardPriceRaised: "listings.card.price_raised";
|
|
70
81
|
readonly detailLoading: "listings.detail.loading";
|
|
71
82
|
readonly detailLoadFailed: "listings.detail.load_failed";
|
|
72
83
|
readonly detailRetry: "listings.detail.retry";
|
package/dist/i18n/keys.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"keys.d.ts","sourceRoot":"","sources":["../../src/i18n/keys.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAkB,UAAU,EAAE,MAAM,cAAc,CAAC;AAG/D;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,eAAO,MAAM,kBAAkB;;;;;;;;;;;IAe7B,+CAA+C;;IAE/C,qEAAqE;;IAErE,yEAAyE;;;;;IAKzE,oEAAoE;;;;;;;IASpE;;;;;;;;;OASG;;IAEH,yEAAyE
|
|
1
|
+
{"version":3,"file":"keys.d.ts","sourceRoot":"","sources":["../../src/i18n/keys.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAkB,UAAU,EAAE,MAAM,cAAc,CAAC;AAG/D;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,eAAO,MAAM,kBAAkB;;;;;;;;;;;IAe7B,+CAA+C;;IAE/C,qEAAqE;;IAErE,yEAAyE;;;;;IAKzE,oEAAoE;;;;;;;IASpE;;;;;;;;;OASG;;IAEH,yEAAyE;;IAEzE;;2EAEuE;;IAEvE;2EACuE;;IAEvE;oDACgD;;;;;;;IAShD,oEAAoE;;IAEpE,8EAA8E;;;;;;;;;;;IAW9E;;oDAEgD;;IAEhD,2DAA2D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA8C3D;;+CAE2C;;;;;;;;;;;;IAc3C;iEAC6D;;;;IAI7D;iEAC6D;;;;;;;;IAQ7D;6CACyC;;;;;;;;;;;;IAgBzC;yCACqC;;;;IAIrC;;wEAEoE;;;;;;;;;CAa5D,CAAC;AAEX,MAAM,MAAM,eAAe,GACzB,CAAC,OAAO,kBAAkB,CAAC,CAAC,MAAM,OAAO,kBAAkB,CAAC,CAAC;AAE/D;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CA2LvD,CAAC;AAEF;;;;;;;;;GASG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI,CAE3D"}
|
package/dist/i18n/keys.js
CHANGED
|
@@ -70,6 +70,17 @@ export const LISTINGS_I18N_KEYS = {
|
|
|
70
70
|
cardUntitled: "listings.card.untitled",
|
|
71
71
|
/** The door beside a blocked favourite: the container supplies WHERE. */
|
|
72
72
|
cardSignIn: "listings.card.sign_in",
|
|
73
|
+
/** The accessible name of `<ListingSerpCard>`'s photo strip. `SkinCarousel`
|
|
74
|
+
* requires one — an unnamed scrollable region is announced as nothing — and
|
|
75
|
+
* the token bridge owns no i18n engine, so the copy is this pair's. */
|
|
76
|
+
cardPhotos: "listings.card.photos",
|
|
77
|
+
/** The label on the struck-through previous price. The strike is styling and
|
|
78
|
+
* a screen reader announces none of it, so the word is on the line. */
|
|
79
|
+
cardPriceWas: "listings.card.price_was",
|
|
80
|
+
/** The name of the trend arrow — the whole message of a glyph that would
|
|
81
|
+
* otherwise be a decoration nobody can read. */
|
|
82
|
+
cardPriceDropped: "listings.card.price_dropped",
|
|
83
|
+
cardPriceRaised: "listings.card.price_raised",
|
|
73
84
|
// ── detail ───────────────────────────────────────────────────────────────
|
|
74
85
|
detailLoading: "listings.detail.loading",
|
|
75
86
|
detailLoadFailed: "listings.detail.load_failed",
|
|
@@ -230,6 +241,10 @@ export const listingsI18nBundleEn = {
|
|
|
230
241
|
"listings.card.favorite_remove": "Remove from favourites",
|
|
231
242
|
"listings.card.untitled": "Untitled listing",
|
|
232
243
|
"listings.card.sign_in": "Sign in",
|
|
244
|
+
"listings.card.photos": "Photos of this listing",
|
|
245
|
+
"listings.card.price_was": "Was",
|
|
246
|
+
"listings.card.price_dropped": "The price went down",
|
|
247
|
+
"listings.card.price_raised": "The price went up",
|
|
233
248
|
"listings.detail.loading": "Loading the listing…",
|
|
234
249
|
"listings.detail.load_failed": "We could not load this listing",
|
|
235
250
|
"listings.detail.retry": "Try again",
|
package/dist/i18n/keys.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"keys.js","sourceRoot":"","sources":["../../src/i18n/keys.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAElE;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,YAAY,EAAE,wBAAwB;IAEtC,4EAA4E;IAC5E,WAAW,EAAE,uBAAuB;IACpC,aAAa,EAAE,yBAAyB;IACxC,eAAe,EAAE,2BAA2B;IAC5C,YAAY,EAAE,wBAAwB;IACtC,aAAa,EAAE,yBAAyB;IACxC,UAAU,EAAE,sBAAsB;IAClC,cAAc,EAAE,0BAA0B;IAC1C,aAAa,EAAE,yBAAyB;IACxC,cAAc,EAAE,0BAA0B;IAE1C,4EAA4E;IAC5E,+CAA+C;IAC/C,qBAAqB,EAAE,kCAAkC;IACzD,qEAAqE;IACrE,yBAAyB,EAAE,uCAAuC;IAClE,yEAAyE;IACzE,wBAAwB,EAAE,qCAAqC;IAC/D,qBAAqB,EAAE,kCAAkC;IACzD,yBAAyB,EAAE,uCAAuC;IAClE,kBAAkB,EAAE,8BAA8B;IAClD,oEAAoE;IACpE,2BAA2B,EAAE,yCAAyC;IAEtE,4EAA4E;IAC5E,WAAW,EAAE,wBAAwB;IACrC,oBAAoB,EAAE,iCAAiC;IACvD,eAAe,EAAE,4BAA4B;IAC7C,eAAe,EAAE,4BAA4B;IAC7C,kBAAkB,EAAE,+BAA+B;IACnD;;;;;;;;;OASG;IACH,YAAY,EAAE,wBAAwB;IACtC,yEAAyE;IACzE,UAAU,EAAE,uBAAuB;
|
|
1
|
+
{"version":3,"file":"keys.js","sourceRoot":"","sources":["../../src/i18n/keys.ts"],"names":[],"mappings":"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"}
|
package/dist/i18n/ru.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ru.d.ts","sourceRoot":"","sources":["../../src/i18n/ru.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAI/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAErE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,eAAO,MAAM,oBAAoB,EAAE,
|
|
1
|
+
{"version":3,"file":"ru.d.ts","sourceRoot":"","sources":["../../src/i18n/ru.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAI/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAErE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,eAAO,MAAM,oBAAoB,EAAE,cA4MlC,CAAC;AAEF;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI,CAG7D"}
|
package/dist/i18n/ru.js
CHANGED
|
@@ -70,6 +70,10 @@ export const listingsI18nBundleRu = {
|
|
|
70
70
|
"listings.card.favorite_remove": "Убрать из избранного",
|
|
71
71
|
"listings.card.untitled": "Объявление без названия",
|
|
72
72
|
"listings.card.sign_in": "Войти",
|
|
73
|
+
"listings.card.photos": "Фотографии объявления",
|
|
74
|
+
"listings.card.price_was": "Было",
|
|
75
|
+
"listings.card.price_dropped": "Цена снизилась",
|
|
76
|
+
"listings.card.price_raised": "Цена выросла",
|
|
73
77
|
"listings.detail.loading": "Загружаем объявление…",
|
|
74
78
|
"listings.detail.load_failed": "Не удалось загрузить объявление",
|
|
75
79
|
"listings.detail.retry": "Повторить",
|
package/dist/i18n/ru.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ru.js","sourceRoot":"","sources":["../../src/i18n/ru.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAC5E,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAErE,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAErE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAmB;IAClD,GAAG,qBAAqB;IAExB,4EAA4E;IAC5E,6BAA6B,EAAE,yBAAyB;IACxD,0BAA0B,EACxB,2DAA2D;IAC7D,uCAAuC,EACrC,0DAA0D;IAC5D,yCAAyC,EACvC,2CAA2C;IAC7C,qCAAqC,EACnC,iDAAiD;IACnD,yCAAyC,EACvC,wDAAwD;IAC1D,6BAA6B,EAAE,wBAAwB;IACvD,6BAA6B,EAAE,uBAAuB;IACtD,6BAA6B,EAAE,4BAA4B;IAC3D,sCAAsC,EACpC,2DAA2D;IAC7D,wCAAwC,EACtC,mEAAmE;IAErE,wBAAwB,EAAE,wCAAwC;IAElE,uBAAuB,EAAE,UAAU;IACnC,yBAAyB,EAAE,aAAa;IACxC,2BAA2B,EAAE,cAAc;IAC3C,wBAAwB,EAAE,gBAAgB;IAC1C,yBAAyB,EAAE,YAAY;IACvC,sBAAsB,EAAE,SAAS;IACjC,0BAA0B,EAAE,WAAW;IACvC,yBAAyB,EAAE,mBAAmB;IAC9C,0BAA0B,EAAE,UAAU;IAEtC,kCAAkC,EAChC,mFAAmF;IACrF,uCAAuC,EACrC,mGAAmG;IACrG,qCAAqC,EACnC,0DAA0D;IAC5D,kCAAkC,EAChC,uCAAuC;IACzC,uCAAuC,EACrC,iDAAiD;IACnD,8BAA8B,EAC5B,6DAA6D;IAC/D,yCAAyC,EACvC,yEAAyE;IAE3E,wBAAwB,EAAE,UAAU;IACpC,iCAAiC,EAAE,iBAAiB;IACpD,4BAA4B,EAAE,iBAAiB;IAC/C,4BAA4B,EAAE,aAAa;IAC3C,+BAA+B,EAAE,sBAAsB;IACvD,wBAAwB,EAAE,yBAAyB;IACnD,uBAAuB,EAAE,OAAO;
|
|
1
|
+
{"version":3,"file":"ru.js","sourceRoot":"","sources":["../../src/i18n/ru.ts"],"names":[],"mappings":"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"}
|
package/llms.txt
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# @stapel/listings-react 0.
|
|
1
|
+
# @stapel/listings-react 0.10.0
|
|
2
2
|
|
|
3
3
|
Headless React flow pair for stapel-listings (contract >=0.10 <0.11) — business + state, zero visual opinion.
|
|
4
4
|
Built on @stapel/core: typed client + StapelApiError envelope, auth token refresh,
|
|
@@ -110,8 +110,10 @@ const { tracked } = useTracked();
|
|
|
110
110
|
- listings.composer → <ListingComposerPage> [default|unwired|photos-in-flight|unsupported-type] demo/ListingComposer.demo.tsx
|
|
111
111
|
- listings.detail → <ListingDetailPane> [default|contact-unwired|owner|not-found] demo/ListingDetail.demo.tsx
|
|
112
112
|
- listings.favorites → <FavoritesPane> [default|paged|empty|failed|visitor] demo/Favorites.demo.tsx
|
|
113
|
+
- listings.feed-card → <ListingFeedCard> [default|tile|visitor|wide] demo/ListingFeedCard.demo.tsx
|
|
113
114
|
- listings.mine → <MyListingsPane> [default|no-editor|taken-down|visitor|failed] demo/MyListings.demo.tsx
|
|
114
115
|
- listings.parts → <ListingStatusBlock> [default|tags|notes|media|door] demo/ListingParts.demo.tsx
|
|
116
|
+
- listings.serp-card → <ListingSerpCard> [default|trend|visitor|bare] demo/ListingSerpCard.demo.tsx
|
|
115
117
|
Each source file is the canonical usage snippet (open the default variant).
|
|
116
118
|
|
|
117
119
|
## Snippets
|
package/manifest.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$generated": "by scripts/gen-manifest.mjs — do not edit; drift-gated (pnpm gen:manifest:check)",
|
|
3
3
|
"package": "@stapel/listings-react",
|
|
4
|
-
"version": "0.
|
|
4
|
+
"version": "0.10.0",
|
|
5
5
|
"backend": {
|
|
6
6
|
"module": "stapel-listings",
|
|
7
7
|
"contract": ">=0.10 <0.11"
|
|
@@ -732,6 +732,26 @@
|
|
|
732
732
|
],
|
|
733
733
|
"source": "demo/Favorites.demo.tsx"
|
|
734
734
|
},
|
|
735
|
+
{
|
|
736
|
+
"id": "listings.feed-card",
|
|
737
|
+
"title": "Listing feed card",
|
|
738
|
+
"description": "The phone home feed: no border and no card surface, so the photo is the card and the rhythm of the grid is what separates one listing from the next. Two lines of title then a clamp, the price in bold, the place muted, and the favourite heart pinned over the photo's trailing corner — the one surface in this pair where the heart floats, because a two-column tile has no line to spare for a refusal. A container draws the grid inside a PaneGate so that refusal is said once for the whole feed.",
|
|
739
|
+
"component": "ListingFeedCard",
|
|
740
|
+
"covers": [
|
|
741
|
+
"FeedGrid",
|
|
742
|
+
"ListingsProvider"
|
|
743
|
+
],
|
|
744
|
+
"tokens": [
|
|
745
|
+
"text-muted"
|
|
746
|
+
],
|
|
747
|
+
"variants": [
|
|
748
|
+
"default",
|
|
749
|
+
"tile",
|
|
750
|
+
"visitor",
|
|
751
|
+
"wide"
|
|
752
|
+
],
|
|
753
|
+
"source": "demo/ListingFeedCard.demo.tsx"
|
|
754
|
+
},
|
|
735
755
|
{
|
|
736
756
|
"id": "listings.mine",
|
|
737
757
|
"title": "My listings",
|
|
@@ -774,6 +794,26 @@
|
|
|
774
794
|
"door"
|
|
775
795
|
],
|
|
776
796
|
"source": "demo/ListingParts.demo.tsx"
|
|
797
|
+
},
|
|
798
|
+
{
|
|
799
|
+
"id": "listings.serp-card",
|
|
800
|
+
"title": "Listing SERP card",
|
|
801
|
+
"description": "The one-column result card of a phone search page: a SkinCarousel photo strip that peeks, then the PRICE as the first and largest line, the title at regular weight, the seller's spec line, the stored badge projection, the seller slot and the place. The strip sits outside the card's anchor on purpose — a horizontal swipe that ends inside a link is a swipe the browser may deliver as a navigation — and the trailing rail carries the container's call and chat controls with the favourite heart at its end.",
|
|
802
|
+
"component": "ListingSerpCard",
|
|
803
|
+
"covers": [
|
|
804
|
+
"ListingsProvider"
|
|
805
|
+
],
|
|
806
|
+
"tokens": [
|
|
807
|
+
"surface-raised",
|
|
808
|
+
"text-muted"
|
|
809
|
+
],
|
|
810
|
+
"variants": [
|
|
811
|
+
"default",
|
|
812
|
+
"trend",
|
|
813
|
+
"visitor",
|
|
814
|
+
"bare"
|
|
815
|
+
],
|
|
816
|
+
"source": "demo/ListingSerpCard.demo.tsx"
|
|
777
817
|
}
|
|
778
818
|
],
|
|
779
819
|
"i18nKeys": [
|
|
@@ -854,7 +894,11 @@
|
|
|
854
894
|
"listings.card.favorite_remove",
|
|
855
895
|
"listings.card.no_photo",
|
|
856
896
|
"listings.card.photo_unavailable",
|
|
897
|
+
"listings.card.photos",
|
|
857
898
|
"listings.card.price_absent",
|
|
899
|
+
"listings.card.price_dropped",
|
|
900
|
+
"listings.card.price_raised",
|
|
901
|
+
"listings.card.price_was",
|
|
858
902
|
"listings.card.sign_in",
|
|
859
903
|
"listings.card.untitled",
|
|
860
904
|
"listings.compose.auto_republish",
|
package/nav-manifest.json
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@stapel/listings-react",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.10.0",
|
|
4
4
|
"description": "Headless React pair for stapel-listings: a typed client over the draft twin, the composer that turns a category schema into a submittable listing, and the owner's dashboard. Two independent axes are rendered as two — lifecycle `status` decides visibility and `moderation_status` decides nothing about it, so an edit to a live listing stays live and says 'under review' instead of vanishing. Feature values are drawn and mirrored by @stapel/attributes-react; photos arrive as an injected upload bag whose `refs` ARE `images_draft` and whose `settled` gates the submit; a publish refusal is routed onto the control that caused it by slug. Zero visual opinion in the main entry; an opt-in /default subpath ships the antd skin.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -53,9 +53,9 @@
|
|
|
53
53
|
"limit": "11.5 KB"
|
|
54
54
|
},
|
|
55
55
|
{
|
|
56
|
-
"name": "default — the antd skin (
|
|
56
|
+
"name": "default — the antd skin (three cards, detail, composer, dashboard, the named slots and the delete confirmation) must stay out of the main bundle. Raised 17 -> 19 KB for the mobile wave: <ListingSerpCard> (photo strip + price-first block + action rail), <ListingFeedCard> and <FeedGrid> are two more card surfaces on the same shared target/favourite/photo parts, not three copies of one",
|
|
57
57
|
"path": "dist/default/index.js",
|
|
58
|
-
"limit": "
|
|
58
|
+
"limit": "19 KB"
|
|
59
59
|
},
|
|
60
60
|
{
|
|
61
61
|
"name": "i18n/ru — the Russian bundle is opt-in, not carried by the main entry",
|
|
@@ -63,9 +63,9 @@
|
|
|
63
63
|
"limit": "5 KB"
|
|
64
64
|
},
|
|
65
65
|
{
|
|
66
|
-
"name": "i18n/es — the Spanish bundle is opt-in, not carried by the main entry",
|
|
66
|
+
"name": "i18n/es — the Spanish bundle is opt-in, not carried by the main entry. Raised 3.5 -> 4 KB: the mobile wave's four card keys landed the bundle exactly ON the old limit, and a budget a release passes by rounding is a budget that fails the next one",
|
|
67
67
|
"path": "dist/i18n/es.js",
|
|
68
|
-
"limit": "
|
|
68
|
+
"limit": "4 KB"
|
|
69
69
|
}
|
|
70
70
|
],
|
|
71
71
|
"peerDependencies": {
|
|
@@ -73,7 +73,7 @@
|
|
|
73
73
|
"@stapel/core": ">=0.19.0 <1.0.0",
|
|
74
74
|
"@stapel/currencies-react": ">=0.2.0",
|
|
75
75
|
"@stapel/image": ">=0.2.0",
|
|
76
|
-
"@stapel/tokens-antd": ">=0.
|
|
76
|
+
"@stapel/tokens-antd": ">=0.9.0",
|
|
77
77
|
"@tanstack/react-query": "^5.0.0",
|
|
78
78
|
"antd": ">=5.20.0 <7",
|
|
79
79
|
"react": ">=19"
|
|
@@ -108,7 +108,7 @@
|
|
|
108
108
|
"@stapel/image": "^0.4.2",
|
|
109
109
|
"@stapel/showcase": "^0.3.0",
|
|
110
110
|
"@stapel/tokens": "^0.6.0",
|
|
111
|
-
"@stapel/tokens-antd": "^0.
|
|
111
|
+
"@stapel/tokens-antd": "^0.9.0"
|
|
112
112
|
},
|
|
113
113
|
"engines": {
|
|
114
114
|
"node": ">=22"
|