@stapel/listings-react 0.27.0 → 0.28.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 +78 -0
- package/README.md +56 -7
- package/dist/default/ListingActions.d.ts +8 -1
- package/dist/default/ListingActions.d.ts.map +1 -1
- package/dist/default/ListingActions.js +1 -1
- package/dist/default/ListingActions.js.map +1 -1
- package/dist/default/ListingDetailPane.d.ts +52 -1
- package/dist/default/ListingDetailPane.d.ts.map +1 -1
- package/dist/default/ListingDetailPane.js +4 -2
- package/dist/default/ListingDetailPane.js.map +1 -1
- package/dist/default/ShareAction.d.ts +16 -1
- package/dist/default/ShareAction.d.ts.map +1 -1
- package/dist/default/ShareAction.js +16 -9
- package/dist/default/ShareAction.js.map +1 -1
- package/dist/default/actionRow.d.ts +24 -0
- package/dist/default/actionRow.d.ts.map +1 -1
- package/dist/default/actionRow.js +50 -7
- package/dist/default/actionRow.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/headless/Share.d.ts +60 -2
- package/dist/headless/Share.d.ts.map +1 -1
- package/dist/headless/Share.js +55 -3
- package/dist/headless/Share.js.map +1 -1
- package/dist/index.d.ts +4 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/model/cardBadges.d.ts +25 -0
- package/dist/model/cardBadges.d.ts.map +1 -1
- package/dist/model/cardBadges.js +41 -5
- package/dist/model/cardBadges.js.map +1 -1
- package/dist/model/draft.d.ts +42 -1
- package/dist/model/draft.d.ts.map +1 -1
- package/dist/model/draft.js +40 -3
- package/dist/model/draft.js.map +1 -1
- package/llms.txt +1 -1
- package/manifest.json +8 -1
- package/nav-manifest.json +1 -1
- package/package.json +1 -1
- package/src/analytics/generated/events.json +1 -1
- package/src/default/ListingActions.tsx +9 -1
- package/src/default/ListingDetailPane.tsx +57 -3
- package/src/default/ShareAction.tsx +36 -10
- package/src/default/actionRow.ts +55 -7
- package/src/default/index.ts +1 -0
- package/src/headless/Share.tsx +98 -5
- package/src/index.ts +7 -0
- package/src/model/cardBadges.ts +42 -5
- package/src/model/draft.ts +61 -3
|
@@ -82,13 +82,57 @@ export const LISTING_ACTION_HIT = controls["height-phone"];
|
|
|
82
82
|
* is no such thing as a small touch target.
|
|
83
83
|
*/
|
|
84
84
|
export const LISTING_CARD_ACTION_HIT = 36;
|
|
85
|
+
/**
|
|
86
|
+
* HOW MANY TIMES THE HIT-TARGET CLASS IS REPEATED IN ITS OWN SELECTOR — and
|
|
87
|
+
* why a repeat rather than a number typed once (D450).
|
|
88
|
+
*
|
|
89
|
+
* Measured on the live listing page: the heart and the share glyph were
|
|
90
|
+
* **32 × 44**, not 44 × 44. The block axis survived and the inline one did
|
|
91
|
+
* not, because antd's circle shape ships
|
|
92
|
+
*
|
|
93
|
+
* `:where(…).ant-btn.ant-btn-circle.ant-btn{min-width:var(--ant-control-height)}`
|
|
94
|
+
*
|
|
95
|
+
* — three classes, specificity (0,3,0), against this sheet's single class
|
|
96
|
+
* (0,1,0). `:where()` adds nothing, and a media query adds nothing either, so
|
|
97
|
+
* the only thing that decides is the class count: antd's 32 won and there was
|
|
98
|
+
* no viewport at which it did not.
|
|
99
|
+
*
|
|
100
|
+
* A repeated class is the one way to outrank it without `!important`. Four
|
|
101
|
+
* repeats — (0,4,0) — clear antd's three with one to spare, and the selector
|
|
102
|
+
* still matches exactly the same element, so nothing about WHAT the rule
|
|
103
|
+
* applies to changes. `!important` was refused deliberately: a host that
|
|
104
|
+
* genuinely wants a different target must be able to say so with a selector,
|
|
105
|
+
* and this sheet's whole argument (see `movableCluster.tsx`) is that a pair's
|
|
106
|
+
* geometry should never force one on somebody else.
|
|
107
|
+
*/
|
|
108
|
+
export const LISTING_ACTION_SPECIFICITY = 4;
|
|
109
|
+
/** A class name repeated {@link LISTING_ACTION_SPECIFICITY} times — the
|
|
110
|
+
* selector that beats antd's circle. */
|
|
111
|
+
function outranking(className) {
|
|
112
|
+
return `.${className}`.repeat(LISTING_ACTION_SPECIFICITY);
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* The floor, in BOTH spellings of the same axis.
|
|
116
|
+
*
|
|
117
|
+
* A browser cascades `min-inline-size` and `min-width` together and keeps the
|
|
118
|
+
* winner, so in a browser the logical pair alone would be enough once the
|
|
119
|
+
* selector outranks antd's. The physical pair is written beside it because
|
|
120
|
+
* the declaration being beaten is spelled physically, and an engine that does
|
|
121
|
+
* NOT merge the two names (jsdom, where this rule is asserted) would leave
|
|
122
|
+
* antd's `min-width:32px` standing beside our `min-inline-size:44px` and call
|
|
123
|
+
* that a pass. Two spellings of one number, and the number has one source.
|
|
124
|
+
*/
|
|
125
|
+
function floor(size) {
|
|
126
|
+
const px = `${String(size)}px`;
|
|
127
|
+
return (`min-inline-size:${px};min-block-size:${px};` +
|
|
128
|
+
`min-width:${px};min-height:${px}`);
|
|
129
|
+
}
|
|
85
130
|
export function actionRowCss() {
|
|
86
|
-
const action =
|
|
87
|
-
const cardAction =
|
|
131
|
+
const action = outranking(LISTING_ACTION_CLASS);
|
|
132
|
+
const cardAction = outranking(LISTING_CARD_ACTION_CLASS);
|
|
88
133
|
const row = `.${LISTING_ACTIONS_CLASS}`;
|
|
89
134
|
const over = `.${LISTING_ACTIONS_OVERLAY_CLASS}`;
|
|
90
135
|
const label = `.${LISTING_ACTION_LABEL_CLASS}`;
|
|
91
|
-
const hit = String(LISTING_ACTION_HIT);
|
|
92
136
|
const phone = `(max-width:${String(breakpoints.tablet - 1)}px)`;
|
|
93
137
|
return [
|
|
94
138
|
// The floor. `min-*` rather than `width`/`height`: a share button with a
|
|
@@ -96,14 +140,13 @@ export function actionRowCss() {
|
|
|
96
140
|
// `controlHeight` already reaches the height on a phone — this is the
|
|
97
141
|
// guarantee for every OTHER viewport and for a host-registered button
|
|
98
142
|
// that never read the antd token at all.
|
|
99
|
-
`${action}{
|
|
143
|
+
`${action}{${floor(LISTING_ACTION_HIT)};` +
|
|
100
144
|
`display:inline-flex;align-items:center;justify-content:center}`,
|
|
101
145
|
// A card's control: one tier smaller where there is a cursor, the same
|
|
102
146
|
// 44px where there is a thumb. See LISTING_CARD_ACTION_HIT.
|
|
103
|
-
`${cardAction}{
|
|
104
|
-
`min-block-size:${String(LISTING_CARD_ACTION_HIT)}px;` +
|
|
147
|
+
`${cardAction}{${floor(LISTING_CARD_ACTION_HIT)};` +
|
|
105
148
|
`display:inline-flex;align-items:center;justify-content:center}`,
|
|
106
|
-
`@media ${phone}{${cardAction}{
|
|
149
|
+
`@media ${phone}{${cardAction}{${floor(LISTING_ACTION_HIT)}}}`,
|
|
107
150
|
// The cluster. `align-items:flex-end` so a blocked heart's reason — the
|
|
108
151
|
// one thing here that can be two lines — stacks against the same edge
|
|
109
152
|
// instead of pushing the controls inwards (the arrangement
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"actionRow.js","sourceRoot":"","sources":["../../src/default/actionRow.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAEvE,2EAA2E;AAC3E,MAAM,CAAC,MAAM,oBAAoB,GAAG,uBAAuB,CAAC;AAC5D;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,4BAA4B,CAAC;AACtE,2CAA2C;AAC3C,MAAM,CAAC,MAAM,qBAAqB,GAAG,wBAAwB,CAAC;AAC9D;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,6BAA6B,GAAG,6BAA6B,CAAC;AAC3E;wEACwE;AACxE,MAAM,CAAC,MAAM,0BAA0B,GAAG,6BAA6B,CAAC;AACxE,uEAAuE;AACvE,MAAM,CAAC,MAAM,0BAA0B,GAAG,4BAA4B,CAAC;AAEvE;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAW,QAAQ,CAAC,cAAc,CAAC,CAAC;AAEnE;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,EAAE,CAAC;AAE1C,MAAM,UAAU,YAAY;IAC1B,MAAM,MAAM,GAAG,
|
|
1
|
+
{"version":3,"file":"actionRow.js","sourceRoot":"","sources":["../../src/default/actionRow.ts"],"names":[],"mappings":"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"}
|
package/dist/default/index.d.ts
CHANGED
|
@@ -65,7 +65,7 @@ export { ListingActions } from "./ListingActions.js";
|
|
|
65
65
|
export type { ListingActionsConfig, ListingActionsProps, } from "./ListingActions.js";
|
|
66
66
|
export { ShareAction } from "./ShareAction.js";
|
|
67
67
|
export type { ShareActionProps } from "./ShareAction.js";
|
|
68
|
-
export { LISTING_ACTIONS_CLASS, LISTING_ACTIONS_OVERLAY_CLASS, LISTING_ACTIONS_STYLE_HREF, LISTING_ACTION_CLASS, LISTING_ACTION_HIT, LISTING_ACTION_LABEL_CLASS, LISTING_CARD_ACTION_CLASS, LISTING_CARD_ACTION_HIT, actionRowCss, } from "./actionRow.js";
|
|
68
|
+
export { LISTING_ACTIONS_CLASS, LISTING_ACTIONS_OVERLAY_CLASS, LISTING_ACTIONS_STYLE_HREF, LISTING_ACTION_CLASS, LISTING_ACTION_HIT, LISTING_ACTION_LABEL_CLASS, LISTING_ACTION_SPECIFICITY, LISTING_CARD_ACTION_CLASS, LISTING_CARD_ACTION_HIT, actionRowCss, } from "./actionRow.js";
|
|
69
69
|
export { NOTICE_SECONDS, useNotice } from "./notice.js";
|
|
70
70
|
export type { Notice } from "./notice.js";
|
|
71
71
|
export { SignInLink } from "./SignInLink.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/default/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,OAAO,EACL,WAAW,EAGX,oBAAoB,EACpB,sBAAsB,EAGtB,iBAAiB,EACjB,sBAAsB,GACvB,MAAM,kBAAkB,CAAC;AAC1B,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,EACL,iBAAiB,EACjB,cAAc,EAGd,oBAAoB,EACpB,kBAAkB,EAClB,gBAAgB,EAChB,qBAAqB,GACtB,MAAM,wBAAwB,CAAC;AAChC,YAAY,EACV,sBAAsB,EACtB,uBAAuB,GACxB,MAAM,wBAAwB,CAAC;AAIhC,OAAO,EACL,sBAAsB,EACtB,2BAA2B,EAC3B,4BAA4B,EAC5B,gBAAgB,GACjB,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,EACL,mBAAmB,EACnB,0BAA0B,EAC1B,gBAAgB,EAChB,eAAe,GAChB,MAAM,0BAA0B,CAAC;AAClC,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,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACjF,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACvE,YAAY,EACV,kBAAkB,EAClB,sBAAsB,EACtB,gBAAgB,GACjB,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,EACL,YAAY,EACZ,iBAAiB,EACjB,oBAAoB,GACrB,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAG3D,OAAO,EACL,kBAAkB,EAClB,eAAe,EACf,WAAW,GACZ,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC3D,YAAY,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAGvD,OAAO,EACL,gBAAgB,EAChB,YAAY,EACZ,cAAc,EACd,cAAc,EACd,YAAY,EACZ,SAAS,EACT,cAAc,GACf,MAAM,kBAAkB,CAAC;AAC1B,YAAY,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAEpD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,YAAY,EACV,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,YAAY,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,EACL,qBAAqB,EACrB,6BAA6B,EAC7B,0BAA0B,EAC1B,oBAAoB,EACpB,kBAAkB,EAClB,0BAA0B,EAC1B,yBAAyB,EACzB,uBAAuB,EACvB,YAAY,GACb,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxD,YAAY,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAE1C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,YAAY,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACvD,YAAY,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/default/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,OAAO,EACL,WAAW,EAGX,oBAAoB,EACpB,sBAAsB,EAGtB,iBAAiB,EACjB,sBAAsB,GACvB,MAAM,kBAAkB,CAAC;AAC1B,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,EACL,iBAAiB,EACjB,cAAc,EAGd,oBAAoB,EACpB,kBAAkB,EAClB,gBAAgB,EAChB,qBAAqB,GACtB,MAAM,wBAAwB,CAAC;AAChC,YAAY,EACV,sBAAsB,EACtB,uBAAuB,GACxB,MAAM,wBAAwB,CAAC;AAIhC,OAAO,EACL,sBAAsB,EACtB,2BAA2B,EAC3B,4BAA4B,EAC5B,gBAAgB,GACjB,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,EACL,mBAAmB,EACnB,0BAA0B,EAC1B,gBAAgB,EAChB,eAAe,GAChB,MAAM,0BAA0B,CAAC;AAClC,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,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACjF,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACvE,YAAY,EACV,kBAAkB,EAClB,sBAAsB,EACtB,gBAAgB,GACjB,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,EACL,YAAY,EACZ,iBAAiB,EACjB,oBAAoB,GACrB,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAG3D,OAAO,EACL,kBAAkB,EAClB,eAAe,EACf,WAAW,GACZ,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC3D,YAAY,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAGvD,OAAO,EACL,gBAAgB,EAChB,YAAY,EACZ,cAAc,EACd,cAAc,EACd,YAAY,EACZ,SAAS,EACT,cAAc,GACf,MAAM,kBAAkB,CAAC;AAC1B,YAAY,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAEpD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,YAAY,EACV,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,YAAY,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,EACL,qBAAqB,EACrB,6BAA6B,EAC7B,0BAA0B,EAC1B,oBAAoB,EACpB,kBAAkB,EAClB,0BAA0B,EAC1B,0BAA0B,EAC1B,yBAAyB,EACzB,uBAAuB,EACvB,YAAY,GACb,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxD,YAAY,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAE1C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,YAAY,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACvD,YAAY,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC"}
|
package/dist/default/index.js
CHANGED
|
@@ -64,7 +64,7 @@ export { SWIPE_AXIS_RATIO, SWIPE_MIN_PX, cardGalleryCss, hasFinePointer, segment
|
|
|
64
64
|
// ── the reader's two actions: save it, or send it to somebody ───────────────
|
|
65
65
|
export { ListingActions } from "./ListingActions.js";
|
|
66
66
|
export { ShareAction } from "./ShareAction.js";
|
|
67
|
-
export { LISTING_ACTIONS_CLASS, LISTING_ACTIONS_OVERLAY_CLASS, LISTING_ACTIONS_STYLE_HREF, LISTING_ACTION_CLASS, LISTING_ACTION_HIT, LISTING_ACTION_LABEL_CLASS, LISTING_CARD_ACTION_CLASS, LISTING_CARD_ACTION_HIT, actionRowCss, } from "./actionRow.js";
|
|
67
|
+
export { LISTING_ACTIONS_CLASS, LISTING_ACTIONS_OVERLAY_CLASS, LISTING_ACTIONS_STYLE_HREF, LISTING_ACTION_CLASS, LISTING_ACTION_HIT, LISTING_ACTION_LABEL_CLASS, LISTING_ACTION_SPECIFICITY, LISTING_CARD_ACTION_CLASS, LISTING_CARD_ACTION_HIT, actionRowCss, } from "./actionRow.js";
|
|
68
68
|
export { NOTICE_SECONDS, useNotice } from "./notice.js";
|
|
69
69
|
export { SignInLink } from "./SignInLink.js";
|
|
70
70
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/default/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,OAAO,EACL,WAAW;AACX,6EAA6E;AAC7E,6EAA6E;AAC7E,oBAAoB,EACpB,sBAAsB;AACtB,0EAA0E;AAC1E,4EAA4E;AAC5E,iBAAiB,EACjB,sBAAsB,GACvB,MAAM,kBAAkB,CAAC;AAO1B,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,EACL,iBAAiB,EACjB,cAAc;AACd,wEAAwE;AACxE,+DAA+D;AAC/D,oBAAoB,EACpB,kBAAkB,EAClB,gBAAgB,EAChB,qBAAqB,GACtB,MAAM,wBAAwB,CAAC;AAKhC,8EAA8E;AAC9E,+EAA+E;AAC/E,oBAAoB;AACpB,OAAO,EACL,sBAAsB,EACtB,2BAA2B,EAC3B,4BAA4B,EAC5B,gBAAgB,GACjB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,mBAAmB,EACnB,0BAA0B,EAC1B,gBAAgB,EAChB,eAAe,GAChB,MAAM,0BAA0B,CAAC;AASlC,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAOvE,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEnF,OAAO,EACL,YAAY,EACZ,iBAAiB,EACjB,oBAAoB,GACrB,MAAM,mBAAmB,CAAC;AAG3B,gFAAgF;AAChF,OAAO,EACL,kBAAkB,EAClB,eAAe,EACf,WAAW,GACZ,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAG3D,+EAA+E;AAC/E,OAAO,EACL,gBAAgB,EAChB,YAAY,EACZ,cAAc,EACd,cAAc,EACd,YAAY,EACZ,SAAS,EACT,cAAc,GACf,MAAM,kBAAkB,CAAC;AAE1B,+EAA+E;AAC/E,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAKrD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,OAAO,EACL,qBAAqB,EACrB,6BAA6B,EAC7B,0BAA0B,EAC1B,oBAAoB,EACpB,kBAAkB,EAClB,0BAA0B,EAC1B,yBAAyB,EACzB,uBAAuB,EACvB,YAAY,GACb,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAGxD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/default/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,OAAO,EACL,WAAW;AACX,6EAA6E;AAC7E,6EAA6E;AAC7E,oBAAoB,EACpB,sBAAsB;AACtB,0EAA0E;AAC1E,4EAA4E;AAC5E,iBAAiB,EACjB,sBAAsB,GACvB,MAAM,kBAAkB,CAAC;AAO1B,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,EACL,iBAAiB,EACjB,cAAc;AACd,wEAAwE;AACxE,+DAA+D;AAC/D,oBAAoB,EACpB,kBAAkB,EAClB,gBAAgB,EAChB,qBAAqB,GACtB,MAAM,wBAAwB,CAAC;AAKhC,8EAA8E;AAC9E,+EAA+E;AAC/E,oBAAoB;AACpB,OAAO,EACL,sBAAsB,EACtB,2BAA2B,EAC3B,4BAA4B,EAC5B,gBAAgB,GACjB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,mBAAmB,EACnB,0BAA0B,EAC1B,gBAAgB,EAChB,eAAe,GAChB,MAAM,0BAA0B,CAAC;AASlC,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAOvE,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEnF,OAAO,EACL,YAAY,EACZ,iBAAiB,EACjB,oBAAoB,GACrB,MAAM,mBAAmB,CAAC;AAG3B,gFAAgF;AAChF,OAAO,EACL,kBAAkB,EAClB,eAAe,EACf,WAAW,GACZ,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAG3D,+EAA+E;AAC/E,OAAO,EACL,gBAAgB,EAChB,YAAY,EACZ,cAAc,EACd,cAAc,EACd,YAAY,EACZ,SAAS,EACT,cAAc,GACf,MAAM,kBAAkB,CAAC;AAE1B,+EAA+E;AAC/E,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAKrD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,OAAO,EACL,qBAAqB,EACrB,6BAA6B,EAC7B,0BAA0B,EAC1B,oBAAoB,EACpB,kBAAkB,EAClB,0BAA0B,EAC1B,0BAA0B,EAC1B,yBAAyB,EACzB,uBAAuB,EACvB,YAAY,GACb,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAGxD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC"}
|
package/dist/headless/Share.d.ts
CHANGED
|
@@ -51,6 +51,53 @@ export declare function shareLinks(target: ShareTarget): readonly ShareLink[];
|
|
|
51
51
|
export declare function resolveShareUrl(url: string | undefined): string | undefined;
|
|
52
52
|
/** Is this environment able to open the platform's own share sheet? */
|
|
53
53
|
export declare function hasNativeShare(): boolean;
|
|
54
|
+
/**
|
|
55
|
+
* The media query that asks "is this a thumb" — the second half of the arm
|
|
56
|
+
* decision (§25).
|
|
57
|
+
*
|
|
58
|
+
* `(pointer: coarse)` describes the PRIMARY input device, which is exactly the
|
|
59
|
+
* question: a phone and a tablet match, a mouse and a trackpad do not, and a
|
|
60
|
+
* touchscreen laptop being driven with its trackpad reports the trackpad.
|
|
61
|
+
*/
|
|
62
|
+
export declare const SHARE_COARSE_MEDIA = "(pointer: coarse)";
|
|
63
|
+
/** Does the primary pointer look like a finger? `false` wherever the question
|
|
64
|
+
* cannot be asked — a server, an engine without `matchMedia` — because the
|
|
65
|
+
* fallback arm is the one that draws something. */
|
|
66
|
+
export declare function hasCoarsePointer(): boolean;
|
|
67
|
+
/**
|
|
68
|
+
* WHICH ARM A SURFACE WANTS, and why `navigator.share` alone was the wrong
|
|
69
|
+
* question.
|
|
70
|
+
*
|
|
71
|
+
* The capability probe is true on desktop Chrome on macOS — measured on the
|
|
72
|
+
* stand (§25), where every share on the storefront opened the OS sheet and the
|
|
73
|
+
* copy-link menu was therefore unreachable on the platform it was BUILT for.
|
|
74
|
+
* "Has a share sheet" and "is a device whose share sheet is the better answer"
|
|
75
|
+
* turned out to be two questions, and the pair was only asking the first.
|
|
76
|
+
*
|
|
77
|
+
* `"auto"` (default) the platform sheet only where the primary pointer is
|
|
78
|
+
* COARSE and the API exists; a mouse gets the menu, with its
|
|
79
|
+
* copy-link row and its three networks.
|
|
80
|
+
* `"menu"` always this pair's menu, whatever the device offers. For a
|
|
81
|
+
* host whose desktop and mobile web are one build and which
|
|
82
|
+
* wants one answer.
|
|
83
|
+
* `"native"` the platform sheet wherever the API exists, pointer ignored —
|
|
84
|
+
* the behaviour every version before this one had, kept
|
|
85
|
+
* reachable by name rather than deleted.
|
|
86
|
+
*
|
|
87
|
+
* In all three, a missing `navigator.share` is the menu: an arm that cannot
|
|
88
|
+
* open is not an arm.
|
|
89
|
+
*/
|
|
90
|
+
export type SharePreference = "auto" | "menu" | "native";
|
|
91
|
+
/**
|
|
92
|
+
* Resolve the arm from the preference and what the device actually answered.
|
|
93
|
+
*
|
|
94
|
+
* Pure, and separate from the hook, so the decision is a thing a test reads
|
|
95
|
+
* rather than a thing a rendered `data-share-mode` implies.
|
|
96
|
+
*/
|
|
97
|
+
export declare function preferNativeShare(prefer: SharePreference, capability: {
|
|
98
|
+
readonly native: boolean;
|
|
99
|
+
readonly coarse: boolean;
|
|
100
|
+
}): boolean;
|
|
54
101
|
export interface UseShareOptions {
|
|
55
102
|
/** The canonical address, absolute or a path. Absent: the address bar,
|
|
56
103
|
* which is the honest answer only for a host with no route seam. */
|
|
@@ -63,12 +110,23 @@ export interface UseShareOptions {
|
|
|
63
110
|
* through; `"native"` never says which app, because the sheet does not
|
|
64
111
|
* tell the page. */
|
|
65
112
|
readonly onShared?: ((channel: ShareChannel) => void) | undefined;
|
|
113
|
+
/**
|
|
114
|
+
* Which arm this surface wants — see {@link SharePreference}. Default
|
|
115
|
+
* `"auto"`: the platform sheet on a coarse pointer, this pair's menu on a
|
|
116
|
+
* mouse, the menu wherever `navigator.share` is missing.
|
|
117
|
+
*/
|
|
118
|
+
readonly prefer?: SharePreference | undefined;
|
|
66
119
|
}
|
|
67
120
|
export interface ShareBag {
|
|
68
121
|
/** The absolute address every arm shares. `undefined` only on a server. */
|
|
69
122
|
readonly url: string | undefined;
|
|
70
|
-
/**
|
|
71
|
-
*
|
|
123
|
+
/**
|
|
124
|
+
* IS THE PLATFORM SHEET THE ARM ON SCREEN — the resolved answer, not the
|
|
125
|
+
* raw capability. `prefer` and the primary pointer are both in it (see
|
|
126
|
+
* {@link SharePreference}); `hasNativeShare()` is the capability alone, for
|
|
127
|
+
* a caller that wants to ask that question itself. Settles in an effect —
|
|
128
|
+
* see the file header.
|
|
129
|
+
*/
|
|
72
130
|
readonly native: boolean;
|
|
73
131
|
/** The three networks' links, already encoded. */
|
|
74
132
|
readonly links: readonly ShareLink[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Share.d.ts","sourceRoot":"","sources":["../../src/headless/Share.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Share.d.ts","sourceRoot":"","sources":["../../src/headless/Share.tsx"],"names":[],"mappings":"AAyDA,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAErD;;;;;GAKG;AACH,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,MAAM,GAAG,UAAU,GAAG,UAAU,GAAG,IAAI,CAAC;AAE9E,4DAA4D;AAC5D,eAAO,MAAM,cAAc,yCAA0C,CAAC;AAEtE,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,CAAC,CAAC;AAE3D,qCAAqC;AACrC,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,OAAO,EAAE,YAAY,CAAC;IAC/B;yEACqE;IACrE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,WAAW;IAC1B,+DAA+D;IAC/D,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB;uEACmE;IACnE,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACrC;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,WAAW,GAAG,SAAS,SAAS,EAAE,CAcpE;AAED;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAS3E;AAED,uEAAuE;AACvE,wBAAgB,cAAc,IAAI,OAAO,CAGxC;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,kBAAkB,sBAAsB,CAAC;AAEtD;;mDAEmD;AACnD,wBAAgB,gBAAgB,IAAI,OAAO,CAS1C;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,MAAM,GAAG,QAAQ,CAAC;AAEzD;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,eAAe,EACvB,UAAU,EAAE;IAAE,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAA;CAAE,GACjE,OAAO,CAIT;AAED,MAAM,WAAW,eAAe;IAC9B;wEACoE;IACpE,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,wEAAwE;IACxE,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,yEAAyE;IACzE,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC;;wBAEoB;IACpB,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,YAAY,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IAClE;;;;OAIG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,eAAe,GAAG,SAAS,CAAC;CAC/C;AAED,MAAM,WAAW,QAAQ;IACvB,2EAA2E;IAC3E,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC;;;;;;OAMG;IACH,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,kDAAkD;IAClD,QAAQ,CAAC,KAAK,EAAE,SAAS,SAAS,EAAE,CAAC;IACrC;;;;OAIG;IACH,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB;;mEAE+D;IAC/D,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B;kEAC8D;IAC9D,aAAa,IAAI,IAAI,CAAC;IACtB,0CAA0C;IAC1C,IAAI,IAAI,IAAI,CAAC;IACb;iDAC6C;IAC7C,MAAM,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI,CAAC;CACrC;AAED;0DAC0D;AAC1D,eAAO,MAAM,eAAe,OAAO,CAAC;AAEpC,wBAAgB,QAAQ,CAAC,OAAO,GAAE,eAAoB,GAAG,QAAQ,CA6FhE;AAED;mCACmC;AACnC,wBAAgB,KAAK,CACnB,KAAK,EAAE,eAAe,GAAG;IACvB,QAAQ,EAAE,CAAC,GAAG,EAAE,QAAQ,KAAK,SAAS,CAAC;CACxC,GACA,YAAY,CAGd"}
|
package/dist/headless/Share.js
CHANGED
|
@@ -18,6 +18,15 @@ import { Fragment as _Fragment, jsx as _jsx } from "react/jsx-runtime";
|
|
|
18
18
|
* menu with "copy the link" and the three networks a Russian-speaking
|
|
19
19
|
* marketplace actually gets traffic from.
|
|
20
20
|
*
|
|
21
|
+
* ── …AND "HAS A SHEET" IS NOT "SHOULD USE THE SHEET" (§25) ───────────────
|
|
22
|
+
*
|
|
23
|
+
* `navigator.share` is true on desktop Chrome on macOS. Measured on the stand:
|
|
24
|
+
* every share on the storefront opened the OS sheet and the copy-link menu —
|
|
25
|
+
* three networks and a clipboard row, built for exactly that platform — was
|
|
26
|
+
* unreachable there. So the decision takes a second reading, the primary
|
|
27
|
+
* POINTER, and {@link UseShareOptions.prefer} lets a surface state the answer
|
|
28
|
+
* outright. See {@link SharePreference}.
|
|
29
|
+
*
|
|
21
30
|
* `native` is resolved in an EFFECT rather than during render, for the reason
|
|
22
31
|
* `cardGallery.ts`'s `useFinePointer` gives at length: a server render has no
|
|
23
32
|
* `navigator`, and a first client render that disagreed with it is a
|
|
@@ -105,19 +114,62 @@ export function hasNativeShare() {
|
|
|
105
114
|
return false;
|
|
106
115
|
return typeof navigator.share === "function";
|
|
107
116
|
}
|
|
117
|
+
/**
|
|
118
|
+
* The media query that asks "is this a thumb" — the second half of the arm
|
|
119
|
+
* decision (§25).
|
|
120
|
+
*
|
|
121
|
+
* `(pointer: coarse)` describes the PRIMARY input device, which is exactly the
|
|
122
|
+
* question: a phone and a tablet match, a mouse and a trackpad do not, and a
|
|
123
|
+
* touchscreen laptop being driven with its trackpad reports the trackpad.
|
|
124
|
+
*/
|
|
125
|
+
export const SHARE_COARSE_MEDIA = "(pointer: coarse)";
|
|
126
|
+
/** Does the primary pointer look like a finger? `false` wherever the question
|
|
127
|
+
* cannot be asked — a server, an engine without `matchMedia` — because the
|
|
128
|
+
* fallback arm is the one that draws something. */
|
|
129
|
+
export function hasCoarsePointer() {
|
|
130
|
+
if (typeof window === "undefined" || typeof window.matchMedia !== "function") {
|
|
131
|
+
return false;
|
|
132
|
+
}
|
|
133
|
+
try {
|
|
134
|
+
return window.matchMedia(SHARE_COARSE_MEDIA).matches;
|
|
135
|
+
}
|
|
136
|
+
catch {
|
|
137
|
+
return false;
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
/**
|
|
141
|
+
* Resolve the arm from the preference and what the device actually answered.
|
|
142
|
+
*
|
|
143
|
+
* Pure, and separate from the hook, so the decision is a thing a test reads
|
|
144
|
+
* rather than a thing a rendered `data-share-mode` implies.
|
|
145
|
+
*/
|
|
146
|
+
export function preferNativeShare(prefer, capability) {
|
|
147
|
+
if (prefer === "menu")
|
|
148
|
+
return false;
|
|
149
|
+
if (!capability.native)
|
|
150
|
+
return false;
|
|
151
|
+
return prefer === "native" || capability.coarse;
|
|
152
|
+
}
|
|
108
153
|
/** How long the "copied" confirmation stands. Long enough to read, short
|
|
109
154
|
* enough that a reopened menu is not still showing it. */
|
|
110
155
|
export const SHARE_COPIED_MS = 2400;
|
|
111
156
|
export function useShare(options = {}) {
|
|
112
157
|
const { url: given, title, text, onShared } = options;
|
|
158
|
+
const prefer = options.prefer ?? "auto";
|
|
113
159
|
const [native, setNative] = useState(false);
|
|
114
160
|
const [copied, setCopied] = useState(false);
|
|
115
161
|
const [copyFailed, setCopyFailed] = useState(false);
|
|
116
162
|
// See the header: resolved in an effect so a server render and the
|
|
117
|
-
// hydration pass that must agree with it draw the same arm.
|
|
163
|
+
// hydration pass that must agree with it draw the same arm. Both halves of
|
|
164
|
+
// the question are asked in the SAME effect — the capability and the
|
|
165
|
+
// pointer — so there is never a frame in which one has landed and the
|
|
166
|
+
// other has not and the button changes arm twice.
|
|
118
167
|
useEffect(() => {
|
|
119
|
-
setNative(
|
|
120
|
-
|
|
168
|
+
setNative(preferNativeShare(prefer, {
|
|
169
|
+
native: hasNativeShare(),
|
|
170
|
+
coarse: hasCoarsePointer(),
|
|
171
|
+
}));
|
|
172
|
+
}, [prefer]);
|
|
121
173
|
const url = useMemo(() => resolveShareUrl(given), [given]);
|
|
122
174
|
const links = useMemo(() => (url === undefined ? [] : shareLinks({ url, title })), [url, title]);
|
|
123
175
|
useEffect(() => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Share.js","sourceRoot":"","sources":["../../src/headless/Share.tsx"],"names":[],"mappings":";AAAA
|
|
1
|
+
{"version":3,"file":"Share.js","sourceRoot":"","sources":["../../src/headless/Share.tsx"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -73,11 +73,11 @@ export { MY_LISTINGS_TAB_PARAM, NO_ADDRESS, browserAddress, searchWithTab, tabFr
|
|
|
73
73
|
export type { MyListingsAddress } from "./model/tabAddress.js";
|
|
74
74
|
export { myListingImages, myListingPrice, myListingTitle, showsDraft, } from "./model/mine.js";
|
|
75
75
|
export { EMPTY_LOCATION, createDraftBody, draftPatchFromValues, draftValuesFromDetail, draftValuesFromWire, droppedFeatureSlugs, emptyDraftValues, retainKnownFeatureValues, } from "./model/draft.js";
|
|
76
|
-
export type { EmptyDraftOptions, ListingDraftValues, ListingLocation, } from "./model/draft.js";
|
|
76
|
+
export type { DraftPatchOptions, EmptyDraftOptions, ListingDraftField, ListingDraftValues, ListingLocation, } from "./model/draft.js";
|
|
77
77
|
export { asFeatureDaoList, featureFromDao, featureValuesForDisplay, featuresDtoFromDaoList, featuresFromDaoList, unreadableFeatureCount, } from "./model/features.js";
|
|
78
78
|
export type { FeatureCopySource } from "./model/features.js";
|
|
79
79
|
export { featureUnit, formatSpecValue } from "./model/featureText.js";
|
|
80
|
-
export { badgePresentation, badgeValueText, cardBadgeText, cardBadgeTexts, hasCardBadgeContract, } from "./model/cardBadges.js";
|
|
80
|
+
export { badgePresentation, badgeValueText, captionName, cardBadgeText, cardBadgeTexts, hasCardBadgeContract, } from "./model/cardBadges.js";
|
|
81
81
|
export type { CardBadgeContract, CardBadgePresentation, CardBadgeRow, CardBadgeStyle, } from "./model/cardBadges.js";
|
|
82
82
|
export { engagementFor, isListingViewed, listingViewCount, withEngagement, } from "./model/engagement.js";
|
|
83
83
|
export { CATEGORY_FIELD, DEFAULT_DRAFT_LIMITS, DESCRIPTION_FIELD, IMAGES_FIELD, LOCATION_FIELD, PRICE_FIELD, TITLE_FIELD, envelopeFieldErrors, failedResults, isBatchValid, listingFieldErrors, mirrorDraft, mirrorListingFields, publishRefusal, } from "./model/validation.js";
|
|
@@ -104,8 +104,8 @@ export { ListingEngagementContext, ListingEngagementScope, useEngagedListing, us
|
|
|
104
104
|
export type { ListingEngagementBag, ListingEngagementScopeProps, UseListingEngagementOverlayOptions, } from "./headless/Engagement.js";
|
|
105
105
|
export { Favorites, useFavorites, useFavoriteToggle } from "./headless/Favorites.js";
|
|
106
106
|
export type { FavoriteToggleBag, FavoritesBag, UseFavoritesOptions, } from "./headless/Favorites.js";
|
|
107
|
-
export { SHARE_COPIED_MS, SHARE_NETWORKS, Share, hasNativeShare, resolveShareUrl, shareLinks, useShare, } from "./headless/Share.js";
|
|
108
|
-
export type { ShareBag, ShareChannel, ShareLink, ShareNetwork, ShareTarget, UseShareOptions, } from "./headless/Share.js";
|
|
107
|
+
export { SHARE_COARSE_MEDIA, SHARE_COPIED_MS, SHARE_NETWORKS, Share, hasCoarsePointer, hasNativeShare, preferNativeShare, resolveShareUrl, shareLinks, useShare, } from "./headless/Share.js";
|
|
108
|
+
export type { ShareBag, ShareChannel, ShareLink, ShareNetwork, SharePreference, ShareTarget, UseShareOptions, } from "./headless/Share.js";
|
|
109
109
|
export { useListingActions } from "./headless/ListingActions.js";
|
|
110
110
|
export type { ListingActionsBag, ListingMove, UseListingActionsOptions, } from "./headless/ListingActions.js";
|
|
111
111
|
export { ACCOUNT_ROOT_ID, navEntries } from "./nav/manifest.js";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -76,7 +76,7 @@ export { EMPTY_LOCATION, createDraftBody, draftPatchFromValues, draftValuesFromD
|
|
|
76
76
|
export { asFeatureDaoList, featureFromDao, featureValuesForDisplay, featuresDtoFromDaoList, featuresFromDaoList, unreadableFeatureCount, } from "./model/features.js";
|
|
77
77
|
export { featureUnit, formatSpecValue } from "./model/featureText.js";
|
|
78
78
|
// ── model: the card badge contract (stapel-listings 0.21.3) ──────────────────
|
|
79
|
-
export { badgePresentation, badgeValueText, cardBadgeText, cardBadgeTexts, hasCardBadgeContract, } from "./model/cardBadges.js";
|
|
79
|
+
export { badgePresentation, badgeValueText, captionName, cardBadgeText, cardBadgeTexts, hasCardBadgeContract, } from "./model/cardBadges.js";
|
|
80
80
|
// ── model: the engagement axis (already-seen / view count / the overlay) ─────
|
|
81
81
|
export { engagementFor, isListingViewed, listingViewCount, withEngagement, } from "./model/engagement.js";
|
|
82
82
|
// ── model: validation, the mirror and the publish-400 split ──────────────────
|
|
@@ -97,7 +97,7 @@ export { ListingComposer, useListingComposer } from "./headless/ListingComposer.
|
|
|
97
97
|
export { MyListings, useMyListings } from "./headless/MyListings.js";
|
|
98
98
|
export { ListingEngagementContext, ListingEngagementScope, useEngagedListing, useEngagementOverlay, useListingEngagementOverlay, useListingEngagementScope, } from "./headless/Engagement.js";
|
|
99
99
|
export { Favorites, useFavorites, useFavoriteToggle } from "./headless/Favorites.js";
|
|
100
|
-
export { SHARE_COPIED_MS, SHARE_NETWORKS, Share, hasNativeShare, resolveShareUrl, shareLinks, useShare, } from "./headless/Share.js";
|
|
100
|
+
export { SHARE_COARSE_MEDIA, SHARE_COPIED_MS, SHARE_NETWORKS, Share, hasCoarsePointer, hasNativeShare, preferNativeShare, resolveShareUrl, shareLinks, useShare, } from "./headless/Share.js";
|
|
101
101
|
export { useListingActions } from "./headless/ListingActions.js";
|
|
102
102
|
// ── nav manifest (the pair's public surface declaration) ─────────────────────
|
|
103
103
|
export { ACCOUNT_ROOT_ID, navEntries } from "./nav/manifest.js";
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6DG;AAEH,gFAAgF;AAChF,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAEzD,OAAO,EACL,wBAAwB,EACxB,gBAAgB,EAChB,+BAA+B,EAC/B,mBAAmB,EACnB,aAAa,GACd,MAAM,gBAAgB,CAAC;AAiCxB,gFAAgF;AAChF,OAAO,EACL,wBAAwB,EACxB,uBAAuB,EACvB,gBAAgB,EAChB,wBAAwB,EACxB,6BAA6B,EAC7B,YAAY,EACZ,iBAAiB,EACjB,gBAAgB,EAChB,iBAAiB,EACjB,gBAAgB,EAChB,KAAK,GACN,MAAM,mBAAmB,CAAC;AAS3B,OAAO,EACL,mBAAmB,EACnB,iBAAiB,EACjB,SAAS,EACT,aAAa,EACb,UAAU,GACX,MAAM,wBAAwB,CAAC;AAEhC,gFAAgF;AAChF,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAEhE,OAAO,EACL,qBAAqB,EACrB,UAAU,EACV,cAAc,EACd,aAAa,EACb,aAAa,GACd,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACL,eAAe,EACf,cAAc,EACd,cAAc,EACd,UAAU,GACX,MAAM,iBAAiB,CAAC;AAEzB,gFAAgF;AAChF,OAAO,EACL,cAAc,EACd,eAAe,EACf,oBAAoB,EACpB,qBAAqB,EACrB,mBAAmB,EACnB,mBAAmB,EACnB,gBAAgB,EAChB,wBAAwB,GACzB,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -162,6 +162,31 @@ export declare function badgeValueText(row: CardBadgeRow, locale?: string): stri
|
|
|
162
162
|
* where a caption needs punctuation to be read as one.
|
|
163
163
|
*/
|
|
164
164
|
export type CardBadgeStyle = "badge" | "line";
|
|
165
|
+
/**
|
|
166
|
+
* A CAPTION AS THIS PAIR WILL PUNCTUATE IT — the catalogue's own trailing
|
|
167
|
+
* colon stripped (D455).
|
|
168
|
+
*
|
|
169
|
+
* Measured on a live feed, translated: one card in twenty-four read
|
|
170
|
+
* "HONOR · **Model:: 90** · 256 GB". The catalogue row for that leaf spells
|
|
171
|
+
* the feature's name "Model:" — with the colon IN the name — and presents it
|
|
172
|
+
* `name_value`, while the neighbouring listing's row for the same slug spells
|
|
173
|
+
* it "Model" and presents it `value`. So the content is inconsistent and only
|
|
174
|
+
* one half of that is ours; what is ours is that {@link caption} then adds a
|
|
175
|
+
* second colon to a name that already ended in one.
|
|
176
|
+
*
|
|
177
|
+
* Punctuation between a caption and its answer is the SURFACE's decision (see
|
|
178
|
+
* the module header) — which means it is not the catalogue's, and a name that
|
|
179
|
+
* arrives carrying its own is a name with a separator baked into it. It is
|
|
180
|
+
* taken off here, once, so both styles are unaffected by which of the two
|
|
181
|
+
* spellings a row happens to use: the chip draws "Model 90" and the line
|
|
182
|
+
* "Model: 90" either way.
|
|
183
|
+
*
|
|
184
|
+
* Only a TRAILING colon, and only the colon: a name is otherwise printed
|
|
185
|
+
* exactly as the catalogue wrote it. "Model: year:" is not a shape anybody
|
|
186
|
+
* sends, and a rule that chewed punctuation off the end of every caption
|
|
187
|
+
* would eventually eat a name that meant it.
|
|
188
|
+
*/
|
|
189
|
+
export declare function captionName(name: string): string;
|
|
165
190
|
/**
|
|
166
191
|
* One badge element → the text a card prints, or `undefined` for an element
|
|
167
192
|
* that has nothing to say (a false boolean, a blank value).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cardBadges.d.ts","sourceRoot":"","sources":["../../src/model/cardBadges.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgGG;AACH,OAAO,KAAK,EAAE,uBAAuB,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAElF;;;;;;;GAOG;AACH,MAAM,MAAM,qBAAqB,GAAG,uBAAuB,CAAC,cAAc,CAAC,CAAC;AAE5E;;;;;;;;;GASG;AACH,MAAM,MAAM,iBAAiB,GAAG;IAC9B;;gEAE4D;IAC5D,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;CAC1B,GAAG;IACF,QAAQ,EAAE,CAAC,IAAI,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC,CAAC,EAAE,uBAAuB,CAAC,CAAC,CAAC,GAAG,IAAI;CAC9E,GAAG;IACF;;;+BAG2B;IAC3B,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACvC,CAAC;AAEF,gFAAgF;AAChF,MAAM,MAAM,YAAY,GAAG,iBAAiB,GAAG,iBAAiB,CAAC;AAEjE;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,YAAY,GAAG,qBAAqB,GAAG,SAAS,CAYtF;AAED;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,SAAS,YAAY,EAAE,GAAG,OAAO,CAE3E;AAqBD;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,YAAY,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAmBzE;AAOD;;;;;;GAMG;AACH,MAAM,MAAM,cAAc,GAAG,OAAO,GAAG,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"cardBadges.d.ts","sourceRoot":"","sources":["../../src/model/cardBadges.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgGG;AACH,OAAO,KAAK,EAAE,uBAAuB,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAElF;;;;;;;GAOG;AACH,MAAM,MAAM,qBAAqB,GAAG,uBAAuB,CAAC,cAAc,CAAC,CAAC;AAE5E;;;;;;;;;GASG;AACH,MAAM,MAAM,iBAAiB,GAAG;IAC9B;;gEAE4D;IAC5D,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;CAC1B,GAAG;IACF,QAAQ,EAAE,CAAC,IAAI,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC,CAAC,EAAE,uBAAuB,CAAC,CAAC,CAAC,GAAG,IAAI;CAC9E,GAAG;IACF;;;+BAG2B;IAC3B,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACvC,CAAC;AAEF,gFAAgF;AAChF,MAAM,MAAM,YAAY,GAAG,iBAAiB,GAAG,iBAAiB,CAAC;AAEjE;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,YAAY,GAAG,qBAAqB,GAAG,SAAS,CAYtF;AAED;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,SAAS,YAAY,EAAE,GAAG,OAAO,CAE3E;AAqBD;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,YAAY,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAmBzE;AAOD;;;;;;GAMG;AACH,MAAM,MAAM,cAAc,GAAG,OAAO,GAAG,MAAM,CAAC;AAE9C;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEhD;AAWD;;;;;;;;GAQG;AACH,wBAAgB,aAAa,CAC3B,GAAG,EAAE,YAAY,EACjB,MAAM,CAAC,EAAE,MAAM,EACf,KAAK,GAAE,cAAwB,GAC9B,MAAM,GAAG,SAAS,CAkCpB;AAuBD;;;GAGG;AACH,wBAAgB,cAAc,CAC5B,IAAI,EAAE,SAAS,YAAY,EAAE,EAC7B,MAAM,CAAC,EAAE,MAAM,EACf,KAAK,GAAE,cAAwB,GAC9B,SAAS;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EAAE,CAyC7D"}
|
package/dist/model/cardBadges.js
CHANGED
|
@@ -80,12 +80,40 @@ export function badgeValueText(row, locale) {
|
|
|
80
80
|
function isTrue(raw) {
|
|
81
81
|
return raw === true || raw === 1 || raw === "true";
|
|
82
82
|
}
|
|
83
|
+
/**
|
|
84
|
+
* A CAPTION AS THIS PAIR WILL PUNCTUATE IT — the catalogue's own trailing
|
|
85
|
+
* colon stripped (D455).
|
|
86
|
+
*
|
|
87
|
+
* Measured on a live feed, translated: one card in twenty-four read
|
|
88
|
+
* "HONOR · **Model:: 90** · 256 GB". The catalogue row for that leaf spells
|
|
89
|
+
* the feature's name "Model:" — with the colon IN the name — and presents it
|
|
90
|
+
* `name_value`, while the neighbouring listing's row for the same slug spells
|
|
91
|
+
* it "Model" and presents it `value`. So the content is inconsistent and only
|
|
92
|
+
* one half of that is ours; what is ours is that {@link caption} then adds a
|
|
93
|
+
* second colon to a name that already ended in one.
|
|
94
|
+
*
|
|
95
|
+
* Punctuation between a caption and its answer is the SURFACE's decision (see
|
|
96
|
+
* the module header) — which means it is not the catalogue's, and a name that
|
|
97
|
+
* arrives carrying its own is a name with a separator baked into it. It is
|
|
98
|
+
* taken off here, once, so both styles are unaffected by which of the two
|
|
99
|
+
* spellings a row happens to use: the chip draws "Model 90" and the line
|
|
100
|
+
* "Model: 90" either way.
|
|
101
|
+
*
|
|
102
|
+
* Only a TRAILING colon, and only the colon: a name is otherwise printed
|
|
103
|
+
* exactly as the catalogue wrote it. "Model: year:" is not a shape anybody
|
|
104
|
+
* sends, and a rule that chewed punctuation off the end of every caption
|
|
105
|
+
* would eventually eat a name that meant it.
|
|
106
|
+
*/
|
|
107
|
+
export function captionName(name) {
|
|
108
|
+
return name.replace(/\s*:+$/u, "");
|
|
109
|
+
}
|
|
83
110
|
/** A caption and its answer, joined the way this surface separates them. */
|
|
84
111
|
function caption(name, body, style) {
|
|
85
112
|
// A SPACE in a chip and a COLON in a line. "Floor 3" is a caption inside a
|
|
86
113
|
// border; "Floor: 3" is what the same pair has to become when the border is
|
|
87
114
|
// gone and the neighbours are a dot away.
|
|
88
|
-
|
|
115
|
+
const head = captionName(name);
|
|
116
|
+
return style === "line" ? `${head}: ${body}` : `${head} ${body}`;
|
|
89
117
|
}
|
|
90
118
|
/**
|
|
91
119
|
* One badge element → the text a card prints, or `undefined` for an element
|
|
@@ -98,10 +126,15 @@ function caption(name, body, style) {
|
|
|
98
126
|
*/
|
|
99
127
|
export function cardBadgeText(row, locale, style = "badge") {
|
|
100
128
|
const presentation = badgePresentation(row);
|
|
101
|
-
|
|
129
|
+
// Normalised ONCE, here (D455): every arm below asks "is there a name to
|
|
130
|
+
// print", and the answer has to be about the name this pair will actually
|
|
131
|
+
// draw — a row whose whole name is ":" has none.
|
|
132
|
+
const name = captionName(text(row.name));
|
|
102
133
|
const unit = text(row.unit);
|
|
103
134
|
if (presentation === "name") {
|
|
104
|
-
// The name IS the badge, and only while the answer is yes.
|
|
135
|
+
// The name IS the badge, and only while the answer is yes. Normalised by
|
|
136
|
+
// the same rule as a caption: a lone "Brick:" is a colon with nothing
|
|
137
|
+
// after it, which is the defect in its plainest form.
|
|
105
138
|
return isTrue(row.value) && name.length > 0 ? name : undefined;
|
|
106
139
|
}
|
|
107
140
|
const value = badgeValueText(row, locale);
|
|
@@ -133,7 +166,7 @@ function alreadyCaptioned(row) {
|
|
|
133
166
|
const presentation = badgePresentation(row);
|
|
134
167
|
if (presentation === "name")
|
|
135
168
|
return true;
|
|
136
|
-
return presentation === "name_value" && text(row.name).length > 0;
|
|
169
|
+
return presentation === "name_value" && captionName(text(row.name)).length > 0;
|
|
137
170
|
}
|
|
138
171
|
/**
|
|
139
172
|
* How a bare answer could be MISTAKEN for its neighbour: by measuring the
|
|
@@ -172,7 +205,10 @@ export function cardBadgeTexts(rows, locale, style = "badge") {
|
|
|
172
205
|
for (const positions of groups.values()) {
|
|
173
206
|
if (positions.length < 2)
|
|
174
207
|
continue;
|
|
175
|
-
|
|
208
|
+
// The names as they will be DRAWN (D455) — so a catalogue row spelling
|
|
209
|
+
// one axis "Floor:" and the other "Floor" is two spellings of one word
|
|
210
|
+
// here rather than two distinct captions that tell a reader nothing apart.
|
|
211
|
+
const names = positions.map((at) => captionName(text(printedRows[at]?.name)));
|
|
176
212
|
// Nothing to caption with, or one word for both axes: leave the line as
|
|
177
213
|
// the server wrote it rather than adding a caption that tells a reader
|
|
178
214
|
// nothing they did not already have.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cardBadges.js","sourceRoot":"","sources":["../../src/model/cardBadges.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"cardBadges.js","sourceRoot":"","sources":["../../src/model/cardBadges.ts"],"names":[],"mappings":"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"}
|