@stapel/listings-react 0.30.2 → 0.30.4
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 +64 -0
- package/dist/default/ListingCard.d.ts.map +1 -1
- package/dist/default/ListingCard.js +3 -2
- package/dist/default/ListingCard.js.map +1 -1
- package/dist/default/ListingFeedCard.d.ts +14 -12
- package/dist/default/ListingFeedCard.d.ts.map +1 -1
- package/dist/default/ListingFeedCard.js +17 -19
- package/dist/default/ListingFeedCard.js.map +1 -1
- package/dist/default/cardGallery.d.ts +67 -4
- package/dist/default/cardGallery.d.ts.map +1 -1
- package/dist/default/cardGallery.js +197 -18
- package/dist/default/cardGallery.js.map +1 -1
- package/dist/default/detailGallery.d.ts.map +1 -1
- package/dist/default/detailGallery.js +9 -0
- package/dist/default/detailGallery.js.map +1 -1
- package/dist/default/index.d.ts +1 -1
- package/dist/default/index.d.ts.map +1 -1
- package/dist/default/index.js +1 -1
- package/dist/default/index.js.map +1 -1
- package/dist/default/titleClamp.d.ts +47 -0
- package/dist/default/titleClamp.d.ts.map +1 -0
- package/dist/default/titleClamp.js +51 -0
- package/dist/default/titleClamp.js.map +1 -0
- package/llms.txt +1 -1
- package/manifest.json +1 -1
- package/nav-manifest.json +1 -1
- package/package.json +3 -3
- package/src/analytics/generated/events.json +1 -1
- package/src/default/ListingCard.tsx +19 -1
- package/src/default/ListingFeedCard.tsx +26 -25
- package/src/default/cardGallery.ts +222 -18
- package/src/default/detailGallery.ts +9 -0
- package/src/default/index.ts +4 -0
- package/src/default/titleClamp.ts +56 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,69 @@
|
|
|
1
1
|
# @stapel/listings-react
|
|
2
2
|
|
|
3
|
+
## 0.30.4
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- 4b2323b: A card title is two lines, and the cut is never inside a word
|
|
8
|
+
|
|
9
|
+
`ListingFeedCard` (the tile) clamped its title to two lines. `ListingCard` (the
|
|
10
|
+
grid card) used antd's `<Typography.Text ellipsis>`, which is ONE line and puts
|
|
11
|
+
the cut wherever the line happens to end — in the middle of a word for any real
|
|
12
|
+
title. On a live storefront's home grid that drew job titles cut mid-word,
|
|
13
|
+
while the tile beside it wrapped the same string over two lines.
|
|
14
|
+
|
|
15
|
+
Two cards, two different answers to one question, and the wrong one was on the
|
|
16
|
+
busiest surface. The answer now lives once, in `titleClamp.ts`, and both cards
|
|
17
|
+
read it: `-webkit-line-clamp: 2` (so the browser puts its own ellipsis at the
|
|
18
|
+
end of the second line) plus `overflow-wrap: normal` (so a long word moves to
|
|
19
|
+
the next line whole instead of being broken to fill the current one — the same
|
|
20
|
+
defect one level down).
|
|
21
|
+
|
|
22
|
+
It stays a hoisted stylesheet rather than a style object, because
|
|
23
|
+
`-webkit-line-clamp` and `-webkit-box-orient` are dropped silently by every
|
|
24
|
+
style serializer outside a browser: a card written that way clamps in Chrome,
|
|
25
|
+
does not clamp in a test, and nothing says which.
|
|
26
|
+
|
|
27
|
+
`FEED_TITLE_CLASS`, `FEED_CARD_STYLE_HREF` and `feedCardCss` remain as aliases.
|
|
28
|
+
Both cards now emit the sheet under the same `href`, so React hoists one copy
|
|
29
|
+
for a page showing both card shapes.
|
|
30
|
+
|
|
31
|
+
## 0.30.3
|
|
32
|
+
|
|
33
|
+
### Patch Changes
|
|
34
|
+
|
|
35
|
+
- bbb8454: A swipe advances exactly one photo, and only past a real threshold
|
|
36
|
+
|
|
37
|
+
The card gallery committed an advance after a fixed `SWIPE_MIN_PX = 32` of
|
|
38
|
+
travel, whatever the photo's size — 9.1% of a slide on a one-column phone card
|
|
39
|
+
and 18.8% on a two-column feed tile. Worse, the gesture's origin was reset on
|
|
40
|
+
every commit, so one continuous drag committed once per 32px travelled: a drag
|
|
41
|
+
across three slide widths advanced three photos, and a fling advanced as many
|
|
42
|
+
as there were. The middle photo flew past on a light gesture.
|
|
43
|
+
|
|
44
|
+
`swipeStep(dx, dy, slideWidth, velocity)` now commits on either:
|
|
45
|
+
|
|
46
|
+
- **distance** — at least `SWIPE_COMMIT_FRACTION` (0.3) of the SLIDE's own
|
|
47
|
+
measured width, via `measureSlideWidth()` (the first slide's box, taken once
|
|
48
|
+
at pointerdown; the media well is 8% too generous because of the carousel's
|
|
49
|
+
peek, and the viewport is not the geometry that matters), or
|
|
50
|
+
- **velocity** — at least `SWIPE_FLICK_VELOCITY` (0.5 px/ms) over a
|
|
51
|
+
`SWIPE_VELOCITY_WINDOW_MS` (100ms) moving window, so a gesture that crawls
|
|
52
|
+
and is then thrown is read as the throw the person meant.
|
|
53
|
+
|
|
54
|
+
It returns only `-1 | 0 | 1`, and a per-gesture latch means one press can never
|
|
55
|
+
move more than one photo. A horizontal gesture that falls short snaps back to
|
|
56
|
+
the active slide. `SWIPE_MIN_PX` stays as a tap-wobble floor and is documented
|
|
57
|
+
as a floor rather than as the price.
|
|
58
|
+
|
|
59
|
+
The detail gallery's strip is native scroll-snap; it gains
|
|
60
|
+
`scroll-snap-stop: always`, so a fling comes to rest on the next photograph
|
|
61
|
+
instead of flying past however many its momentum carried.
|
|
62
|
+
|
|
63
|
+
`measureSlideWidth` returns `0` when nothing is laid out, and `swipeStep` then
|
|
64
|
+
falls back to the pixel floor rather than inventing a width. The extra
|
|
65
|
+
parameters are additive, so an existing two-argument caller is unchanged.
|
|
66
|
+
|
|
3
67
|
## 0.30.2
|
|
4
68
|
|
|
5
69
|
### Patch Changes
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ListingCard.d.ts","sourceRoot":"","sources":["../../src/default/ListingCard.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyGG;AACH,OAAO,KAAK,EAAiB,YAAY,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAIpE,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAEjE,OAAO,KAAK,EAAE,WAAW,IAAI,eAAe,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"ListingCard.d.ts","sourceRoot":"","sources":["../../src/default/ListingCard.tsx"],"names":[],"mappings":"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"}
|
|
@@ -15,6 +15,7 @@ import { CardBadges, CardSpecLine } from "./CardBadges.js";
|
|
|
15
15
|
import { SignInLink } from "./SignInLink.js";
|
|
16
16
|
import { PHOTO_LINK_CLASS, ListingPhotoStrip } from "./ListingPhoto.js";
|
|
17
17
|
import { ListingPrice } from "./ListingPrice.js";
|
|
18
|
+
import { TITLE_CLAMP_CLASS, TITLE_CLAMP_STYLE_HREF, titleClampCss, } from "./titleClamp.js";
|
|
18
19
|
/** The class the whole-card target carries, for {@link cardTargetCss}. */
|
|
19
20
|
export const CARD_TARGET_CLASS = "stapel-listing-card-target";
|
|
20
21
|
/** The class the card's OUTER box carries — the size container the row layout
|
|
@@ -298,9 +299,9 @@ export function ListingCard(props) {
|
|
|
298
299
|
* all of them absent. That is why the photo and the price carry the layout:
|
|
299
300
|
* they are the two fields a result always has.
|
|
300
301
|
*/
|
|
301
|
-
const content = (_jsxs(Flex, { vertical: true, gap: spacing[1], style: { minWidth: 0, padding: token.paddingSM }, children: [props.badge, _jsx(Typography.Text, { strong: true, "data-testid": "listings-card-price", children: _jsx(ListingPrice, { amount: listing.price, ...(listing.currency !== undefined ? { currency: listing.currency } : {}) }) }), _jsx(Typography.Text, {
|
|
302
|
+
const content = (_jsxs(Flex, { vertical: true, gap: spacing[1], style: { minWidth: 0, padding: token.paddingSM }, children: [props.badge, _jsx(Typography.Text, { strong: true, "data-testid": "listings-card-price", children: _jsx(ListingPrice, { amount: listing.price, ...(listing.currency !== undefined ? { currency: listing.currency } : {}) }) }), _jsx(Typography.Text, { className: TITLE_CLAMP_CLASS, "data-testid": "listings-card-title", children: title }), _jsx(CardSpecLine, { rows: titleDaos, copy: copy, testId: "listings-card-specs" }), _jsx(CardBadges, { rows: badgeDaos, copy: copy, variant: "badges" }), listing.location_label !== undefined &&
|
|
302
303
|
listing.location_label.length > 0 ? (_jsx(Typography.Text, { type: "secondary", ellipsis: { tooltip: listing.location_label }, "data-testid": "listings-card-location", children: listing.location_label })) : null] }));
|
|
303
|
-
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-card", "data-listing-id": listing.id, ...(status !== undefined
|
|
304
|
+
return (_jsxs(SkinTheme, { surface: "bare", ...(props.mode !== undefined ? { mode: props.mode } : {}), children: [_jsx("style", { href: CARD_TARGET_STYLE_HREF, precedence: "default", children: cardTargetCss() }), _jsx("style", { href: TITLE_CLAMP_STYLE_HREF, precedence: "default", children: titleClampCss() }), _jsx(Card, { size: "small", "data-testid": "listings-card", "data-listing-id": listing.id, ...(status !== undefined
|
|
304
305
|
? { "data-listing-status": status.status }
|
|
305
306
|
: {}),
|
|
306
307
|
// `viewed` only when the server actually said so: absent and `null`
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ListingCard.js","sourceRoot":"","sources":["../../src/default/ListingCard.tsx"],"names":[],"mappings":";AA2GA,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,IAAI,SAAS,EAAE,MAAM,MAAM,CAAC;AAClE,OAAO,EAAE,yBAAyB,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAChF,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAEnD,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAEzC,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAExD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EACL,qBAAqB,EACrB,6BAA6B,EAC7B,yBAAyB,GAC1B,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACxE,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"ListingCard.js","sourceRoot":"","sources":["../../src/default/ListingCard.tsx"],"names":[],"mappings":"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"}
|
|
@@ -59,21 +59,23 @@ import type { SignInCta } from "@stapel/core";
|
|
|
59
59
|
import type { ListingCard as ListingCardData } from "../api/types.js";
|
|
60
60
|
import type { ListingCardOpenProps } from "./ListingCard.js";
|
|
61
61
|
import type { ThemeModeProp } from "./types.js";
|
|
62
|
-
/** The class the clamped title carries, for {@link feedCardCss}. */
|
|
63
|
-
export declare const FEED_TITLE_CLASS = "stapel-listing-feed-title";
|
|
64
|
-
/** The `href` the hoisted feed stylesheet is deduplicated by. */
|
|
65
|
-
export declare const FEED_CARD_STYLE_HREF = "stapel-listings-feed-card";
|
|
66
62
|
/**
|
|
67
|
-
* The clamp
|
|
63
|
+
* The title clamp is `titleClamp.ts`'s, not this file's.
|
|
68
64
|
*
|
|
69
|
-
*
|
|
70
|
-
*
|
|
71
|
-
*
|
|
72
|
-
*
|
|
73
|
-
*
|
|
74
|
-
*
|
|
65
|
+
* It lived here, and the grid card (`ListingCard`) answered the same question
|
|
66
|
+
* with antd's one-line `ellipsis` — which is how the busiest surface on the
|
|
67
|
+
* storefront ended up cutting job titles mid-word while the tile beside it
|
|
68
|
+
* wrapped them over two lines. One answer, one module, both cards.
|
|
69
|
+
*
|
|
70
|
+
* These three names stay as aliases because this file's tests and a reader
|
|
71
|
+
* looking for "the feed card's clamp" both expect them here.
|
|
72
|
+
*
|
|
73
|
+
* They are re-export bindings rather than `const` copies: under
|
|
74
|
+
* `--isolatedDeclarations` the declaration emitter types each export from that
|
|
75
|
+
* export alone, and `const FEED_TITLE_CLASS = TITLE_CLAMP_CLASS` gives it
|
|
76
|
+
* nothing to go on. An aliased re-export carries the original's type with it.
|
|
75
77
|
*/
|
|
76
|
-
export
|
|
78
|
+
export { TITLE_CLAMP_CLASS as FEED_TITLE_CLASS, TITLE_CLAMP_STYLE_HREF as FEED_CARD_STYLE_HREF, titleClampCss as feedCardCss, } from "./titleClamp.js";
|
|
77
79
|
export interface ListingFeedCardBaseProps extends ThemeModeProp {
|
|
78
80
|
readonly listing: ListingCardData;
|
|
79
81
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ListingFeedCard.d.ts","sourceRoot":"","sources":["../../src/default/ListingFeedCard.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuDG;AACH,OAAO,KAAK,EAAiB,YAAY,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAGpE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAG9C,OAAO,KAAK,EAAE,WAAW,IAAI,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAatE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"ListingFeedCard.d.ts","sourceRoot":"","sources":["../../src/default/ListingFeedCard.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuDG;AACH,OAAO,KAAK,EAAiB,YAAY,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAGpE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAG9C,OAAO,KAAK,EAAE,WAAW,IAAI,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAatE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAQ7D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD;;;;;;;;;;;;;;;GAeG;AACH,OAAO,EACL,iBAAiB,IAAI,gBAAgB,EACrC,sBAAsB,IAAI,oBAAoB,EAC9C,aAAa,IAAI,WAAW,GAC7B,MAAM,iBAAiB,CAAC;AAuBzB,MAAM,WAAW,wBAAyB,SAAQ,aAAa;IAC7D,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAC;IAClC;;;;;OAKG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,CAAC;IAClC;6CACyC;IACzC,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,CAAC;IAChC;;;;;OAKG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5C;gDAC4C;IAC5C,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,CAAC;CAC7B;AAED,MAAM,MAAM,oBAAoB,GAAG,wBAAwB,GAAG,oBAAoB,CAAC;AAEnF,wBAAgB,eAAe,CAAC,KAAK,EAAE,oBAAoB,GAAG,YAAY,CAyGzE"}
|
|
@@ -12,26 +12,24 @@ import { LISTING_CARD_ACTION_CLASS } from "./actionRow.js";
|
|
|
12
12
|
import { CARD_TARGET_STYLE_HREF, CARD_VIEWED_CLASS, CardTarget, cardTargetCss, } from "./ListingCard.js";
|
|
13
13
|
import { ListingPhoto } from "./ListingPhoto.js";
|
|
14
14
|
import { ListingPrice } from "./ListingPrice.js";
|
|
15
|
-
|
|
16
|
-
const TITLE_LINES = 2;
|
|
17
|
-
/** The class the clamped title carries, for {@link feedCardCss}. */
|
|
18
|
-
export const FEED_TITLE_CLASS = "stapel-listing-feed-title";
|
|
19
|
-
/** The `href` the hoisted feed stylesheet is deduplicated by. */
|
|
20
|
-
export const FEED_CARD_STYLE_HREF = "stapel-listings-feed-card";
|
|
15
|
+
import { TITLE_CLAMP_CLASS, TITLE_CLAMP_STYLE_HREF, titleClampCss, } from "./titleClamp.js";
|
|
21
16
|
/**
|
|
22
|
-
* The clamp
|
|
17
|
+
* The title clamp is `titleClamp.ts`'s, not this file's.
|
|
23
18
|
*
|
|
24
|
-
*
|
|
25
|
-
*
|
|
26
|
-
*
|
|
27
|
-
*
|
|
28
|
-
*
|
|
29
|
-
*
|
|
19
|
+
* It lived here, and the grid card (`ListingCard`) answered the same question
|
|
20
|
+
* with antd's one-line `ellipsis` — which is how the busiest surface on the
|
|
21
|
+
* storefront ended up cutting job titles mid-word while the tile beside it
|
|
22
|
+
* wrapped them over two lines. One answer, one module, both cards.
|
|
23
|
+
*
|
|
24
|
+
* These three names stay as aliases because this file's tests and a reader
|
|
25
|
+
* looking for "the feed card's clamp" both expect them here.
|
|
26
|
+
*
|
|
27
|
+
* They are re-export bindings rather than `const` copies: under
|
|
28
|
+
* `--isolatedDeclarations` the declaration emitter types each export from that
|
|
29
|
+
* export alone, and `const FEED_TITLE_CLASS = TITLE_CLAMP_CLASS` gives it
|
|
30
|
+
* nothing to go on. An aliased re-export carries the original's type with it.
|
|
30
31
|
*/
|
|
31
|
-
export
|
|
32
|
-
return (`.${FEED_TITLE_CLASS}{display:-webkit-box;-webkit-box-orient:vertical;` +
|
|
33
|
-
`-webkit-line-clamp:${String(TITLE_LINES)};overflow:hidden}`);
|
|
34
|
-
}
|
|
32
|
+
export { TITLE_CLAMP_CLASS as FEED_TITLE_CLASS, TITLE_CLAMP_STYLE_HREF as FEED_CARD_STYLE_HREF, titleClampCss as feedCardCss, } from "./titleClamp.js";
|
|
35
33
|
/** The tile. `position: relative` is what the heart and the badge overlay are
|
|
36
34
|
* pinned to; `minWidth: 0` keeps a long word inside its grid track. */
|
|
37
35
|
const TILE = { position: "relative", minWidth: 0 };
|
|
@@ -60,11 +58,11 @@ export function ListingFeedCard(props) {
|
|
|
60
58
|
const targetLabel = title.length > 0 ? title : t(LISTINGS_I18N_KEYS.cardUntitled);
|
|
61
59
|
// Already seen — `false` for every response that carries no such field.
|
|
62
60
|
const viewed = isListingViewed(listing);
|
|
63
|
-
return (_jsxs(SkinTheme, { surface: "bare", ...(props.mode !== undefined ? { mode: props.mode } : {}), children: [_jsx("style", { href: CARD_TARGET_STYLE_HREF, precedence: "default", children: cardTargetCss() }), _jsx("style", { href:
|
|
61
|
+
return (_jsxs(SkinTheme, { surface: "bare", ...(props.mode !== undefined ? { mode: props.mode } : {}), children: [_jsx("style", { href: CARD_TARGET_STYLE_HREF, precedence: "default", children: cardTargetCss() }), _jsx("style", { href: TITLE_CLAMP_STYLE_HREF, precedence: "default", children: titleClampCss() }), _jsxs("div", { style: TILE, "data-testid": "listings-feed-card", "data-listing-id": listing.id, ...(status !== undefined
|
|
64
62
|
? { "data-listing-status": status.status }
|
|
65
63
|
: {}), ...(viewed
|
|
66
64
|
? { className: CARD_VIEWED_CLASS, "data-listing-viewed": "true" }
|
|
67
|
-
: {}), children: [_jsx(CardTarget, { ...openProps(props), listingId: listing.id, label: targetLabel, testId: "listings-feed-open", bodyTestId: "listings-feed-body", children: _jsxs(Flex, { vertical: true, gap: spacing[1], children: [_jsx(ListingPhoto, { imageRef: listing.images?.[0], alt: title.length > 0 ? title : String(listing.id), style: { borderRadius: radii.lg } }), _jsx(Typography.Text, { className:
|
|
65
|
+
: {}), children: [_jsx(CardTarget, { ...openProps(props), listingId: listing.id, label: targetLabel, testId: "listings-feed-open", bodyTestId: "listings-feed-body", children: _jsxs(Flex, { vertical: true, gap: spacing[1], children: [_jsx(ListingPhoto, { imageRef: listing.images?.[0], alt: title.length > 0 ? title : String(listing.id), style: { borderRadius: radii.lg } }), _jsx(Typography.Text, { className: TITLE_CLAMP_CLASS, "data-testid": "listings-feed-title", children: title }), _jsx(Typography.Text, { strong: true, "data-testid": "listings-feed-price", children: _jsx(ListingPrice, { amount: listing.price, ...(listing.currency !== undefined
|
|
68
66
|
? { currency: listing.currency }
|
|
69
67
|
: {}) }) }), listing.location_label !== undefined &&
|
|
70
68
|
listing.location_label.length > 0 ? (_jsx(Typography.Text, { type: "secondary", ellipsis: true, "data-testid": "listings-feed-location", children: listing.location_label })) : null] }) }), props.badgeOverlay !== undefined && (_jsx("div", { style: BADGE, "data-testid": "listings-feed-badge", children: props.badgeOverlay })), props.showFavorite === false ? null : (_jsx(FavoriteHeart, { listingId: listing.id, favorited: listing.is_favorited, testId: "listings-feed-favorite", className: LISTING_CARD_ACTION_CLASS, blockedReason: props.blockedReason ?? "popover", ...(props.signIn !== undefined ? { signIn: props.signIn } : {}), style: HEART }))] })] }));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ListingFeedCard.js","sourceRoot":"","sources":["../../src/default/ListingFeedCard.tsx"],"names":[],"mappings":";AAyDA,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAErD,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AACpC,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAEhD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,yBAAyB,EAAE,MAAM,gBAAgB,CAAC;AAC3D,OAAO,EACL,sBAAsB,EACtB,iBAAiB,EACjB,UAAU,EACV,aAAa,GACd,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"ListingFeedCard.js","sourceRoot":"","sources":["../../src/default/ListingFeedCard.tsx"],"names":[],"mappings":"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"}
|
|
@@ -8,13 +8,52 @@ export declare const CARD_GALLERY_STYLE_HREF = "stapel-listings-card-gallery";
|
|
|
8
8
|
/** The environment a hover scrub is allowed in, and the only one. */
|
|
9
9
|
export declare const SCRUB_MEDIA = "(hover: hover) and (pointer: fine)";
|
|
10
10
|
/**
|
|
11
|
-
* How far a finger travels before it
|
|
11
|
+
* How far a finger travels before it is a GESTURE at all, in CSS pixels.
|
|
12
12
|
*
|
|
13
13
|
* Under this, a drag is a tap that wobbled — and a tap on a card is a
|
|
14
14
|
* navigation, so a low threshold does not change a photograph, it changes one
|
|
15
15
|
* and then leaves the listing.
|
|
16
|
+
*
|
|
17
|
+
* This is the floor, not the price: what actually buys a photograph is
|
|
18
|
+
* {@link SWIPE_COMMIT_FRACTION} of the slide, or a flick above
|
|
19
|
+
* {@link SWIPE_FLICK_VELOCITY}. A pixel count cannot be the price, because
|
|
20
|
+
* the same 32px is a third of a card in a four-column desktop grid and a
|
|
21
|
+
* twelfth of one on a phone.
|
|
16
22
|
*/
|
|
17
23
|
export declare const SWIPE_MIN_PX = 32;
|
|
24
|
+
/**
|
|
25
|
+
* How much of ONE PHOTOGRAPH a slow drag must cover to turn it, as a fraction
|
|
26
|
+
* of that photograph's own measured width.
|
|
27
|
+
*
|
|
28
|
+
* The owner's ruling, third pass: "maybe not 75, maybe 30 — right now it
|
|
29
|
+
* feels like 10%". 10% is what the old fixed 32px came to on a phone slide of
|
|
30
|
+
* ~350px, and it is why a middle photograph flew past on a gesture aimed at
|
|
31
|
+
* the feed. 0.3 is far enough that the drag is unmistakably a drag and short
|
|
32
|
+
* enough that a thumb can make it without crossing the whole card.
|
|
33
|
+
*/
|
|
34
|
+
export declare const SWIPE_COMMIT_FRACTION = 0.3;
|
|
35
|
+
/**
|
|
36
|
+
* The speed, in CSS pixels per millisecond, at which a SHORT drag still turns
|
|
37
|
+
* the photograph.
|
|
38
|
+
*
|
|
39
|
+
* 0.5 px/ms — 500 px/s — is the owner's number and sits in the empty band
|
|
40
|
+
* between the two gestures it has to tell apart: a deliberate slow drag runs
|
|
41
|
+
* at 100–300 px/s (a thumb crossing a 350px card in one to three seconds),
|
|
42
|
+
* and a flick people expect to throw the strip runs at 800–2000 px/s. Nothing
|
|
43
|
+
* a person means as a careful drag arrives here, and nothing they mean as a
|
|
44
|
+
* flick falls under it.
|
|
45
|
+
*/
|
|
46
|
+
export declare const SWIPE_FLICK_VELOCITY = 0.5;
|
|
47
|
+
/**
|
|
48
|
+
* The window the speed is measured over, in milliseconds.
|
|
49
|
+
*
|
|
50
|
+
* A flick is what the finger was doing AS IT LEFT, not the average of the
|
|
51
|
+
* whole gesture: a drag that crawls for a second and is then thrown would
|
|
52
|
+
* average out to a crawl, and the throw is the part the person meant. One
|
|
53
|
+
* moving window of roughly six frames is long enough to survive a single
|
|
54
|
+
* jittery sample and short enough to still be about the end of the gesture.
|
|
55
|
+
*/
|
|
56
|
+
export declare const SWIPE_VELOCITY_WINDOW_MS = 100;
|
|
18
57
|
/**
|
|
19
58
|
* How much more horizontal than vertical a drag must be to count.
|
|
20
59
|
*
|
|
@@ -32,12 +71,36 @@ export declare const SWIPE_AXIS_RATIO = 1.2;
|
|
|
32
71
|
export declare function segmentIndex(offsetX: number, width: number, count: number): number;
|
|
33
72
|
/**
|
|
34
73
|
* A drag → the number of photographs it asks for: `1` forward, `-1` back, `0`
|
|
35
|
-
* for a drag that has not
|
|
74
|
+
* for a drag that has not earned one.
|
|
36
75
|
*
|
|
37
76
|
* Dragging LEFT advances, the direction the content moves under the finger —
|
|
38
|
-
* the same mapping the native scroller has.
|
|
77
|
+
* the same mapping the native scroller has. The answer is never outside
|
|
78
|
+
* `-1…1`: a gesture is worth one photograph however far it travelled, which
|
|
79
|
+
* is what stops a fling crossing the whole strip.
|
|
80
|
+
*
|
|
81
|
+
* @param dx Horizontal travel from the press, signed, in CSS pixels.
|
|
82
|
+
* @param dy Vertical travel from the press, signed.
|
|
83
|
+
* @param slideWidth The measured width of ONE slide. `0` means it could not
|
|
84
|
+
* be measured (an unlaid-out strip, a server render) — and an unknown width
|
|
85
|
+
* has no fraction, so the decision falls back to {@link SWIPE_MIN_PX}
|
|
86
|
+
* alone rather than to an invented number.
|
|
87
|
+
* @param velocity The finger's recent speed in CSS pixels per millisecond.
|
|
88
|
+
*/
|
|
89
|
+
export declare function swipeStep(dx: number, dy: number, slideWidth?: number, velocity?: number): -1 | 0 | 1;
|
|
90
|
+
/**
|
|
91
|
+
* The width of ONE slide inside this gallery's strip, in CSS pixels.
|
|
92
|
+
*
|
|
93
|
+
* Read off the SLIDE, which is the house rule (§83: geometry from the
|
|
94
|
+
* element's width, never the viewport's) and here also the only correct
|
|
95
|
+
* answer: a slide is the well less the carousel's peek, so the well's width
|
|
96
|
+
* is 8% too generous and a viewport-derived number is not about this card at
|
|
97
|
+
* all — the same card is full-bleed on a phone and a quarter of a row on a
|
|
98
|
+
* desktop grid.
|
|
99
|
+
*
|
|
100
|
+
* `0` when nothing can be measured. That is a refusal to guess, not a
|
|
101
|
+
* measurement: {@link swipeStep} falls back to the pixel floor for it.
|
|
39
102
|
*/
|
|
40
|
-
export declare function
|
|
103
|
+
export declare function measureSlideWidth(box: HTMLElement): number;
|
|
41
104
|
/** Does this environment have a real pointer? `false` where there is no
|
|
42
105
|
* `matchMedia` to ask (a server render, an old jsdom), which is the safe
|
|
43
106
|
* side: a scrub that does not happen costs a hover, a scrub on a phone is a
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cardGallery.d.ts","sourceRoot":"","sources":["../../src/default/cardGallery.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"cardGallery.d.ts","sourceRoot":"","sources":["../../src/default/cardGallery.ts"],"names":[],"mappings":"AAwEA,OAAO,KAAK,EAAE,YAAY,IAAI,iBAAiB,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAG1E,4EAA4E;AAC5E,eAAO,MAAM,kBAAkB,2BAA2B,CAAC;AAC3D,yEAAyE;AACzE,eAAO,MAAM,0BAA0B,iCAAiC,CAAC;AACzE,oEAAoE;AACpE,eAAO,MAAM,uBAAuB,iCAAiC,CAAC;AAEtE,qEAAqE;AACrE,eAAO,MAAM,WAAW,uCAAuC,CAAC;AAEhE;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,YAAY,KAAK,CAAC;AAE/B;;;;;;;;;GASG;AACH,eAAO,MAAM,qBAAqB,MAAM,CAAC;AAEzC;;;;;;;;;;GAUG;AACH,eAAO,MAAM,oBAAoB,MAAM,CAAC;AAExC;;;;;;;;GAQG;AACH,eAAO,MAAM,wBAAwB,MAAM,CAAC;AAE5C;;;;;;GAMG;AACH,eAAO,MAAM,gBAAgB,MAAM,CAAC;AAEpC;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAIlF;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,SAAS,CACvB,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,UAAU,SAAI,EACd,QAAQ,SAAI,GACX,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAWZ;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,WAAW,GAAG,MAAM,CAM1D;AAED;;;qDAGqD;AACrD,wBAAgB,cAAc,IAAI,OAAO,CAOxC;AAED;;;;;;;;GAQG;AACH,wBAAgB,cAAc,IAAI,OAAO,CA0BxC;AAED,yEAAyE;AACzE,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,GAAG,EAAE,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;IAC/C,0CAA0C;IAC1C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB;;;;;;;;;;;OAWG;IACH,QAAQ,CAAC,aAAa,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAChD;6DACyD;IACzD,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,aAAa,EAAE,CAAC,KAAK,EAAE,iBAAiB,CAAC,cAAc,CAAC,KAAK,IAAI,CAAC;IAC3E,QAAQ,CAAC,aAAa,EAAE,CAAC,KAAK,EAAE,iBAAiB,CAAC,cAAc,CAAC,KAAK,IAAI,CAAC;IAC3E,QAAQ,CAAC,WAAW,EAAE,CAAC,KAAK,EAAE,iBAAiB,CAAC,cAAc,CAAC,KAAK,IAAI,CAAC;IACzE,QAAQ,CAAC,eAAe,EAAE,CAAC,KAAK,EAAE,iBAAiB,CAAC,cAAc,CAAC,KAAK,IAAI,CAAC;IAC7E,QAAQ,CAAC,cAAc,EAAE,CAAC,KAAK,EAAE,iBAAiB,CAAC,cAAc,CAAC,KAAK,IAAI,CAAC;CAC7E;AA6ED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,CAsKzD;AAED;;;;GAIG;AACH,wBAAgB,cAAc,IAAI,MAAM,CA2CvC"}
|