@stapel/listings-react 0.4.0 → 0.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (107) hide show
  1. package/CHANGELOG.md +102 -0
  2. package/dist/api/generated/schema.d.ts +2 -2
  3. package/dist/api/generated/schema.d.ts.map +1 -1
  4. package/dist/default/FavoritesPane.d.ts +40 -3
  5. package/dist/default/FavoritesPane.d.ts.map +1 -1
  6. package/dist/default/FavoritesPane.js +30 -18
  7. package/dist/default/FavoritesPane.js.map +1 -1
  8. package/dist/default/ListingCard.d.ts +25 -4
  9. package/dist/default/ListingCard.d.ts.map +1 -1
  10. package/dist/default/ListingCard.js +19 -12
  11. package/dist/default/ListingCard.js.map +1 -1
  12. package/dist/default/ListingComposerPage.d.ts +163 -23
  13. package/dist/default/ListingComposerPage.d.ts.map +1 -1
  14. package/dist/default/ListingComposerPage.js +85 -43
  15. package/dist/default/ListingComposerPage.js.map +1 -1
  16. package/dist/default/ListingDetailPane.d.ts +41 -4
  17. package/dist/default/ListingDetailPane.d.ts.map +1 -1
  18. package/dist/default/ListingDetailPane.js +38 -25
  19. package/dist/default/ListingDetailPane.js.map +1 -1
  20. package/dist/default/ListingPhoto.d.ts +13 -1
  21. package/dist/default/ListingPhoto.d.ts.map +1 -1
  22. package/dist/default/ListingPhoto.js +47 -9
  23. package/dist/default/ListingPhoto.js.map +1 -1
  24. package/dist/default/ListingPrice.d.ts +13 -0
  25. package/dist/default/ListingPrice.d.ts.map +1 -0
  26. package/dist/default/ListingPrice.js +60 -0
  27. package/dist/default/ListingPrice.js.map +1 -0
  28. package/dist/default/MyListingsPane.d.ts +7 -28
  29. package/dist/default/MyListingsPane.d.ts.map +1 -1
  30. package/dist/default/MyListingsPane.js +136 -67
  31. package/dist/default/MyListingsPane.js.map +1 -1
  32. package/dist/default/SignInLink.js +8 -7
  33. package/dist/default/SignInLink.js.map +1 -1
  34. package/dist/default/StatusTags.d.ts +16 -5
  35. package/dist/default/StatusTags.d.ts.map +1 -1
  36. package/dist/default/StatusTags.js +19 -13
  37. package/dist/default/StatusTags.js.map +1 -1
  38. package/dist/default/index.d.ts +15 -9
  39. package/dist/default/index.d.ts.map +1 -1
  40. package/dist/default/index.js +13 -6
  41. package/dist/default/index.js.map +1 -1
  42. package/dist/headless/Favorites.d.ts +6 -0
  43. package/dist/headless/Favorites.d.ts.map +1 -1
  44. package/dist/headless/Favorites.js +4 -0
  45. package/dist/headless/Favorites.js.map +1 -1
  46. package/dist/headless/ListingActions.d.ts +12 -0
  47. package/dist/headless/ListingActions.d.ts.map +1 -1
  48. package/dist/headless/ListingActions.js +3 -0
  49. package/dist/headless/ListingActions.js.map +1 -1
  50. package/dist/headless/ListingComposer.d.ts +23 -0
  51. package/dist/headless/ListingComposer.d.ts.map +1 -1
  52. package/dist/headless/ListingComposer.js +33 -7
  53. package/dist/headless/ListingComposer.js.map +1 -1
  54. package/dist/i18n/es.d.ts +6 -1
  55. package/dist/i18n/es.d.ts.map +1 -1
  56. package/dist/i18n/es.js +21 -4
  57. package/dist/i18n/es.js.map +1 -1
  58. package/dist/i18n/keys.d.ts +19 -2
  59. package/dist/i18n/keys.d.ts.map +1 -1
  60. package/dist/i18n/keys.js +35 -5
  61. package/dist/i18n/keys.js.map +1 -1
  62. package/dist/i18n/ru.d.ts +16 -1
  63. package/dist/i18n/ru.d.ts.map +1 -1
  64. package/dist/i18n/ru.js +33 -4
  65. package/dist/i18n/ru.js.map +1 -1
  66. package/dist/model/draft.d.ts +9 -6
  67. package/dist/model/draft.d.ts.map +1 -1
  68. package/dist/model/draft.js +3 -1
  69. package/dist/model/draft.js.map +1 -1
  70. package/dist/model/features.d.ts +21 -7
  71. package/dist/model/features.d.ts.map +1 -1
  72. package/dist/model/features.js +26 -0
  73. package/dist/model/features.js.map +1 -1
  74. package/llms.txt +7 -6
  75. package/manifest.json +53 -11
  76. package/nav-manifest.json +1 -1
  77. package/package.json +17 -12
  78. package/src/analytics/generated/events.json +1 -1
  79. package/src/api/generated/schema.ts +2 -2
  80. package/src/default/FavoritesPane.tsx +156 -82
  81. package/src/default/ListingCard.tsx +88 -46
  82. package/src/default/ListingComposerPage.tsx +403 -187
  83. package/src/default/ListingDetailPane.tsx +200 -98
  84. package/src/default/ListingPhoto.tsx +89 -16
  85. package/src/default/ListingPrice.tsx +77 -0
  86. package/src/default/MyListingsPane.tsx +286 -228
  87. package/src/default/SignInLink.tsx +4 -4
  88. package/src/default/StatusTags.tsx +36 -18
  89. package/src/default/index.ts +18 -7
  90. package/src/headless/Favorites.tsx +10 -0
  91. package/src/headless/ListingActions.tsx +19 -0
  92. package/src/headless/ListingComposer.tsx +56 -5
  93. package/src/i18n/es.ts +26 -4
  94. package/src/i18n/keys.ts +42 -5
  95. package/src/i18n/ru.ts +38 -4
  96. package/src/model/draft.ts +12 -7
  97. package/src/model/features.ts +48 -7
  98. package/dist/default/ErrorAlert.d.ts +0 -9
  99. package/dist/default/ErrorAlert.d.ts.map +0 -1
  100. package/dist/default/ErrorAlert.js +0 -27
  101. package/dist/default/ErrorAlert.js.map +0 -1
  102. package/dist/default/theme.d.ts +0 -25
  103. package/dist/default/theme.d.ts.map +0 -1
  104. package/dist/default/theme.js +0 -40
  105. package/dist/default/theme.js.map +0 -1
  106. package/src/default/ErrorAlert.tsx +0 -46
  107. package/src/default/theme.tsx +0 -67
@@ -37,6 +37,7 @@ export function useFavoriteToggle(id, favorited) {
37
37
  export function useFavorites(options = {}) {
38
38
  const gate = useMandateGate();
39
39
  const [page, setPage] = useState(options.limit !== undefined ? { limit: options.limit } : {});
40
+ const [pageNumber, setPageNumber] = useState(1);
40
41
  const query = useMyFavorites(page, { enabled: gate.available });
41
42
  const envelope = query.data;
42
43
  return {
@@ -46,6 +47,7 @@ export function useFavorites(options = {}) {
46
47
  ? loadReady(envelope.items)
47
48
  : loadLoading(),
48
49
  page,
50
+ pageNumber,
49
51
  nextPage: envelope?.has_next === true && envelope.next_anchor != null
50
52
  ? actionAvailable()
51
53
  : actionBlocked(LISTINGS_I18N_KEYS.pageNext),
@@ -57,12 +59,14 @@ export function useFavorites(options = {}) {
57
59
  if (anchor == null)
58
60
  return;
59
61
  setPage((current) => ({ ...current, anchor, direction: "next" }));
62
+ setPageNumber((current) => current + 1);
60
63
  },
61
64
  goPrev: () => {
62
65
  const anchor = envelope?.prev_anchor;
63
66
  if (anchor == null)
64
67
  return;
65
68
  setPage((current) => ({ ...current, anchor, direction: "prev" }));
69
+ setPageNumber((current) => Math.max(1, current - 1));
66
70
  },
67
71
  gate,
68
72
  refetch: () => {
@@ -1 +1 @@
1
- {"version":3,"file":"Favorites.js","sourceRoot":"","sources":["../../src/headless/Favorites.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Favorites.js","sourceRoot":"","sources":["../../src/headless/Favorites.tsx"],"names":[],"mappings":"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"}
@@ -19,6 +19,18 @@ export interface ListingActionsBag {
19
19
  readonly archive: ActionAvailability;
20
20
  readonly complete: ActionAvailability;
21
21
  readonly remove: ActionAvailability;
22
+ /**
23
+ * Whether "edit this listing" is offerable — and if not, WHY.
24
+ *
25
+ * Editing is not an endpoint this pair calls: the composer is a screen, and
26
+ * whether the app has one is the container's fact, which is why it arrives
27
+ * as an argument rather than being derived. It is a gate all the same,
28
+ * because the alternative shipped for two releases: `<GatedButton gate={{
29
+ * available: true }}>` beside an absent `onEdit`, i.e. an enabled button
30
+ * that did nothing at all in the scripted scaffold (§83, "a control that
31
+ * offers something meaningless in the current state").
32
+ */
33
+ editGate(hasEditor: boolean): ActionAvailability;
22
34
  doArchive(): void;
23
35
  doComplete(): void;
24
36
  doRemove(): void;
@@ -1 +1 @@
1
- {"version":3,"file":"ListingActions.d.ts","sourceRoot":"","sources":["../../src/headless/ListingActions.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AACvD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAU9D;;;;;;;;;;;;;;GAcG;AACH,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,OAAO,EAAE,kBAAkB,CAAC;IACrC,QAAQ,CAAC,QAAQ,EAAE,kBAAkB,CAAC;IACtC,QAAQ,CAAC,MAAM,EAAE,kBAAkB,CAAC;IACpC,SAAS,IAAI,IAAI,CAAC;IAClB,UAAU,IAAI,IAAI,CAAC;IACnB,QAAQ,IAAI,IAAI,CAAC;IACjB,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,wEAAwE;IACxE,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;CACzB;AAED,wBAAgB,iBAAiB,CAC/B,EAAE,EAAE,MAAM,EACV,MAAM,EAAE,sBAAsB,GAAG,SAAS,GACzC,iBAAiB,CAsDnB"}
1
+ {"version":3,"file":"ListingActions.d.ts","sourceRoot":"","sources":["../../src/headless/ListingActions.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AACvD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAU9D;;;;;;;;;;;;;;GAcG;AACH,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,OAAO,EAAE,kBAAkB,CAAC;IACrC,QAAQ,CAAC,QAAQ,EAAE,kBAAkB,CAAC;IACtC,QAAQ,CAAC,MAAM,EAAE,kBAAkB,CAAC;IACpC;;;;;;;;;;OAUG;IACH,QAAQ,CAAC,SAAS,EAAE,OAAO,GAAG,kBAAkB,CAAC;IACjD,SAAS,IAAI,IAAI,CAAC;IAClB,UAAU,IAAI,IAAI,CAAC;IACnB,QAAQ,IAAI,IAAI,CAAC;IACjB,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,wEAAwE;IACxE,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;CACzB;AAED,wBAAgB,iBAAiB,CAC/B,EAAE,EAAE,MAAM,EACV,MAAM,EAAE,sBAAsB,GAAG,SAAS,GACzC,iBAAiB,CA6DnB"}
@@ -35,6 +35,9 @@ export function useListingActions(id, status) {
35
35
  archive: archiveGate,
36
36
  complete: completeGate,
37
37
  remove: removeGate,
38
+ editGate: (hasEditor) => firstBlock(mandate, hasEditor
39
+ ? actionAvailable()
40
+ : actionBlocked(LISTINGS_I18N_KEYS.blockedNoEditor)),
38
41
  doArchive: () => {
39
42
  if (archiveGate.available)
40
43
  archive.mutate(id);
@@ -1 +1 @@
1
- {"version":3,"file":"ListingActions.js","sourceRoot":"","sources":["../../src/headless/ListingActions.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EACf,aAAa,EACb,UAAU,GACX,MAAM,cAAc,CAAC;AAGtB,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,gBAAgB,GACjB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AA6BrD,MAAM,UAAU,iBAAiB,CAC/B,EAAU,EACV,MAA0C;IAE1C,MAAM,OAAO,GAAG,cAAc,EAAE,CAAC;IACjC,MAAM,OAAO,GAAG,iBAAiB,EAAE,CAAC;IACpC,MAAM,QAAQ,GAAG,kBAAkB,EAAE,CAAC;IACtC,MAAM,MAAM,GAAG,gBAAgB,EAAE,CAAC;IAElC,MAAM,QAAQ,GAAG,OAAO,CAAC,SAAS,IAAI,QAAQ,CAAC,SAAS,IAAI,MAAM,CAAC,SAAS,CAAC;IAC7E,MAAM,IAAI,GAAuB,QAAQ;QACvC,CAAC,CAAC,aAAa,CAAC,kBAAkB,CAAC,eAAe,CAAC;QACnD,CAAC,CAAC,eAAe,EAAE,CAAC;IAEtB,yEAAyE;IACzE,qEAAqE;IACrE,MAAM,KAAK,GACT,MAAM,KAAK,SAAS;QAClB,CAAC,CAAC,aAAa,CAAC,kBAAkB,CAAC,aAAa,CAAC;QACjD,CAAC,CAAC,eAAe,EAAE,CAAC;IAExB,SAAS,cAAc,CAAC,EAA0B;QAChD,IAAI,MAAM,KAAK,SAAS;YAAE,OAAO,KAAK,CAAC;QACvC,OAAO,aAAa,CAAC,MAAM,EAAE,EAAE,CAAC;YAC9B,CAAC,CAAC,eAAe,EAAE;YACnB,CAAC,CAAC,aAAa,CAAC,kBAAkB,CAAC,iBAAiB,EAAE;gBAClD,WAAW,EAAE,MAAM;aACpB,CAAC,CAAC;IACT,CAAC;IAED,MAAM,WAAW,GAAG,UAAU,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,cAAc,CAAC,UAAU,CAAC,CAAC,CAAC;IACjF,MAAM,YAAY,GAAG,UAAU,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC;IAC9E,MAAM,UAAU,GAAG,UAAU,CAC3B,OAAO,EACP,KAAK,EACL,IAAI,EACJ,MAAM,KAAK,SAAS,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;QACxC,CAAC,CAAC,aAAa,CAAC,kBAAkB,CAAC,mBAAmB,CAAC;QACvD,CAAC,CAAC,eAAe,EAAE,CACtB,CAAC;IAEF,OAAO;QACL,OAAO,EAAE,WAAW;QACpB,QAAQ,EAAE,YAAY;QACtB,MAAM,EAAE,UAAU;QAClB,SAAS,EAAE,GAAG,EAAE;YACd,IAAI,WAAW,CAAC,SAAS;gBAAE,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAChD,CAAC;QACD,UAAU,EAAE,GAAG,EAAE;YACf,IAAI,YAAY,CAAC,SAAS;gBAAE,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAClD,CAAC;QACD,QAAQ,EAAE,GAAG,EAAE;YACb,IAAI,UAAU,CAAC,SAAS;gBAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC9C,CAAC;QACD,QAAQ;QACR,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,QAAQ,CAAC,KAAK,IAAI,MAAM,CAAC,KAAK;KACvD,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"ListingActions.js","sourceRoot":"","sources":["../../src/headless/ListingActions.tsx"],"names":[],"mappings":"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"}
@@ -78,6 +78,18 @@ export interface UseListingComposerOptions {
78
78
  /** Value types the rendering half can draw — pass
79
79
  * `BUILTIN_VALUE_EDITOR_TYPES` from `@stapel/attributes-react/default`. */
80
80
  readonly editorTypes?: readonly string[];
81
+ /**
82
+ * The language a NEW draft is written in — the composer's own UI locale, in
83
+ * practice (`useI18n().locale`).
84
+ *
85
+ * `Listing.language` is sent on every save and was never settable: a blank
86
+ * value let the server's deployment default decide, so a Spanish seller's
87
+ * listing was filed as Russian because that is what the storefront defaults
88
+ * to. Seeding it from the locale the form is being READ in is the only
89
+ * honest guess a library can make, and a host that knows better passes
90
+ * `initialValues.language`, which still wins.
91
+ */
92
+ readonly language?: string;
81
93
  /** The upload queue. Absent: no gallery, and `images` is set through
82
94
  * `setValue` by whatever the host uses instead. */
83
95
  readonly images?: ListingImagesBag;
@@ -135,6 +147,17 @@ export interface ListingComposerBag {
135
147
  readonly saveGate: ActionAvailability;
136
148
  readonly publishGate: ActionAvailability;
137
149
  save(): void;
150
+ /**
151
+ * Save once the state written in this same handler has landed.
152
+ *
153
+ * `save()` closes over the values of the render it was created in, so a
154
+ * picker doing `setLocation(place); save()` in one click saved the draft as
155
+ * it was BEFORE the place was chosen — the plain fields never hit this
156
+ * because a blur is always a separate tick from the keystroke. A picker has
157
+ * no blur: choosing a suggestion IS the commit, so it needs a save that runs
158
+ * after the write it belongs to.
159
+ */
160
+ saveSoon(): void;
138
161
  publish(): void;
139
162
  readonly saving: boolean;
140
163
  readonly publishing: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"ListingComposer.d.ts","sourceRoot":"","sources":["../../src/headless/ListingComposer.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ListingComposer.d.ts","sourceRoot":"","sources":["../../src/headless/ListingComposer.tsx"],"names":[],"mappings":"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"}
@@ -16,7 +16,10 @@ export function useListingComposer(options) {
16
16
  const mandate = useMandateGate();
17
17
  const [listingId, setListingId] = useState(options.listingId);
18
18
  const [values, setValues] = useState(() => ({
19
- ...emptyDraftValues({ currency: runtime.currency }),
19
+ ...emptyDraftValues({
20
+ currency: runtime.currency,
21
+ ...(options.language !== undefined ? { language: options.language } : {}),
22
+ }),
20
23
  ...options.initialValues,
21
24
  }));
22
25
  const [showErrors, setShowErrors] = useState(false);
@@ -24,6 +27,9 @@ export function useListingComposer(options) {
24
27
  const [refusal, setRefusal] = useState(undefined);
25
28
  const [outcome, setOutcome] = useState(undefined);
26
29
  const [saved, setSaved] = useState(false);
30
+ // A counter rather than a boolean: two picks in a row are two saves, and a
31
+ // boolean that was already `true` would swallow the second.
32
+ const [saveRequest, setSaveRequest] = useState(0);
27
33
  const existing = useListing(options.listingId);
28
34
  const createDraft = useCreateDraft();
29
35
  const saveDraft = useSaveDraft();
@@ -116,14 +122,21 @@ export function useListingComposer(options) {
116
122
  // submission to be complete. Order is the order a person would be told:
117
123
  // may you act at all → is the form even answerable → are the photos in →
118
124
  // is the form itself clean.
119
- const publishGate = firstBlock(mandate, categoryGate, schemaGate, unsupported.length > 0
120
- ? actionBlocked(LISTINGS_I18N_KEYS.composeBlockedUnsupportedType, {
121
- types: unsupported.join(", "),
122
- })
125
+ const publishGate = firstBlock(mandate, categoryGate, schemaGate,
126
+ // The type names (`size_grid`) are this build's vocabulary, not copy: a
127
+ // seller can act on "finish it somewhere else", never on the identifier.
128
+ unsupported.length > 0
129
+ ? actionBlocked(LISTINGS_I18N_KEYS.composeBlockedUnsupportedType)
123
130
  : actionAvailable(), options.images?.settled ?? actionAvailable(), busyGate, publishListing.isPending
124
131
  ? actionBlocked(LISTINGS_I18N_KEYS.composeBlockedBusy)
125
- : actionAvailable(), Object.keys(mirror).length > 0
126
- ? actionBlocked(LISTINGS_I18N_KEYS.composeBlockedMirror)
132
+ : actionAvailable(),
133
+ // "Fix the highlighted fields first" is only true once something IS
134
+ // highlighted — the mirror reaches the fields only after `showErrors`.
135
+ // Before that the same block has to say what is actually missing.
136
+ Object.keys(mirror).length > 0
137
+ ? actionBlocked(showErrors
138
+ ? LISTINGS_I18N_KEYS.composeBlockedMirror
139
+ : LISTINGS_I18N_KEYS.composeBlockedIncomplete, showErrors ? undefined : { count: Object.keys(mirror).length })
127
140
  : actionAvailable());
128
141
  /** Create the row on demand: the id is what every other write needs. */
129
142
  const ensureListingId = useCallback(async () => {
@@ -161,6 +174,18 @@ export function useListingComposer(options) {
161
174
  // already reports.
162
175
  });
163
176
  }, [saveGate.available, persist]);
177
+ // `save` through a ref, so the effect below can run the CURRENT one without
178
+ // re-firing every time the form changes shape.
179
+ const saveRef = useRef(save);
180
+ saveRef.current = save;
181
+ useEffect(() => {
182
+ if (saveRequest === 0)
183
+ return;
184
+ saveRef.current();
185
+ }, [saveRequest]);
186
+ const saveSoon = useCallback(() => {
187
+ setSaveRequest((current) => current + 1);
188
+ }, []);
164
189
  const publish = useCallback(() => {
165
190
  setShowErrors(true);
166
191
  if (!publishGate.available)
@@ -246,6 +271,7 @@ export function useListingComposer(options) {
246
271
  saveGate,
247
272
  publishGate,
248
273
  save,
274
+ saveSoon,
249
275
  publish,
250
276
  saving: busy,
251
277
  publishing: publishListing.isPending,
@@ -1 +1 @@
1
- {"version":3,"file":"ListingComposer.js","sourceRoot":"","sources":["../../src/headless/ListingComposer.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAE1E,OAAO,EACL,eAAe,EACf,aAAa,EACb,UAAU,EACV,UAAU,EACV,WAAW,EACX,SAAS,GACV,MAAM,cAAc,CAAC;AAGtB,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAM3E,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EACL,cAAc,EACd,iBAAiB,EACjB,YAAY,GACb,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,eAAe,EACf,oBAAoB,EACpB,qBAAqB,EACrB,mBAAmB,EACnB,gBAAgB,EAChB,wBAAwB,GACzB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAErE,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AA6JrD,MAAM,UAAU,kBAAkB,CAChC,OAAkC;IAElC,MAAM,OAAO,GAAG,kBAAkB,EAAE,CAAC;IACrC,MAAM,OAAO,GAAG,cAAc,EAAE,CAAC;IAEjC,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CACxC,OAAO,CAAC,SAAS,CAClB,CAAC;IACF,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAqB,GAAG,EAAE,CAAC,CAAC;QAC9D,GAAG,gBAAgB,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC;QACnD,GAAG,OAAO,CAAC,aAAa;KACzB,CAAC,CAAC,CAAC;IACJ,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IACpD,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAoB,EAAE,CAAC,CAAC;IAC9D,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAA6B,SAAS,CAAC,CAAC;IAC9E,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAA6B,SAAS,CAAC,CAAC;IAC9E,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAE1C,MAAM,QAAQ,GAAG,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAC/C,MAAM,WAAW,GAAG,cAAc,EAAE,CAAC;IACrC,MAAM,SAAS,GAAG,YAAY,EAAE,CAAC;IACjC,MAAM,cAAc,GAAG,iBAAiB,EAAE,CAAC;IAE3C,2EAA2E;IAC3E,oEAAoE;IACpE,0EAA0E;IAC1E,qCAAqC;IACrC,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC7B,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,MAAM,CAAC,OAAO;YAAE,OAAO;QAC3B,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC;QAC7B,IAAI,MAAM,KAAK,SAAS;YAAE,OAAO;QACjC,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC;QACtB,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACxB,SAAS,CACP,qBAAqB,CACnB,MAAM,EACN,sBAAsB,CAAC,gBAAgB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAgB,EACxE,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,CAC/B,CACF,CAAC;IACJ,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEtC,qEAAqE;IACrE,uEAAuE;IACvE,uEAAuE;IACvE,0EAA0E;IAC1E,8CAA8C;IAC9C,MAAM,aAAa,GACjB,OAAO,CAAC,eAAe,KAAK,IAAI,IAAI,OAAO,CAAC,aAAa,KAAK,SAAS,CAAC;IAC1E,MAAM,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC;IAC7B,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,aAAa,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QACpD,SAAS,CAAC,CAAC,OAAO,EAAE,EAAE;YACpB,MAAM,IAAI,GAAG,mBAAmB,CAAC,OAAO,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;YAC7D,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,OAAO,CAAC;YACtC,UAAU,CAAC,IAAI,CAAC,CAAC;YACjB,OAAO;gBACL,GAAG,OAAO;gBACV,QAAQ,EAAE,wBAAwB,CAAC,OAAO,CAAC,QAAQ,EAAE,QAAQ,CAAC;aAC/D,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC,EAAE,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC,CAAC;IAE9B,yEAAyE;IACzE,4EAA4E;IAC5E,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC;IACrD,wEAAwE;IACxE,2EAA2E;IAC3E,4EAA4E;IAC5E,MAAM,kBAAkB,GAAG,OAAO,CAAC,QAAQ,CAAC;IAC5C,MAAM,eAAe,GAAuB,OAAO,CACjD,GAAG,EAAE,CAAC,CAAC;QACL,GAAG,MAAM;QACT,MAAM;QACN,GAAG,CAAC,kBAAkB,KAAK,SAAS;YAClC,CAAC,CAAC,EAAE,UAAU,EAAE,kBAAkB,EAAE;YACpC,CAAC,CAAC,EAAE,CAAC;KACR,CAAC,EACF,CAAC,MAAM,EAAE,MAAM,EAAE,kBAAkB,CAAC,CACrC,CAAC;IAEF,MAAM,WAAW,GAAG,OAAO,CACzB,GAAG,EAAE,CAAC,aAAa,CAAC,OAAO,CAAC,QAAQ,EAAE,eAAe,CAAC,QAAQ,CAAC,EAC/D,CAAC,OAAO,CAAC,QAAQ,EAAE,eAAe,CAAC,QAAQ,CAAC,CAC7C,CAAC;IAEF,MAAM,MAAM,GAAG,OAAO,CACpB,GAAG,EAAE,CACH,WAAW,CACT,eAAe,EACf,OAAO,CAAC,QAAQ,EAChB,WAAW,EACX,OAAO,CAAC,MAAM,CACf,EACH,CAAC,eAAe,EAAE,OAAO,CAAC,QAAQ,EAAE,WAAW,EAAE,OAAO,CAAC,MAAM,CAAC,CACjE,CAAC;IAEF,MAAM,WAAW,GAAG,OAAO,CACzB,GAAG,EAAE,CAAC,gBAAgB,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,WAAW,IAAI,EAAE,CAAC,EACnE,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,WAAW,CAAC,CACxC,CAAC;IAEF,MAAM,UAAU,GAAG,QAAQ,CAAC,IAAI,EAAE,MAAM,KAAK,WAAW,CAAC;IACzD,MAAM,gBAAgB,GACpB,QAAQ,CAAC,IAAI,KAAK,SAAS;QAC3B,QAAQ,CAAC,IAAI,CAAC,MAAM,KAAK,WAAW;QACpC,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,KAAK,CAAC;QACxC,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC;IAEjD,MAAM,WAAW,GAAwC,OAAO,CAAC,GAAG,EAAE;QACpE,MAAM,KAAK,GAAG,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;QACvC,OAAO,OAAO,EAAE,IAAI,KAAK,eAAe;YACtC,CAAC,CAAC,EAAE,GAAG,KAAK,EAAE,GAAG,OAAO,CAAC,WAAW,EAAE;YACtC,CAAC,CAAC,KAAK,CAAC;IACZ,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAElC,MAAM,YAAY,GAChB,OAAO,CAAC,SAAS,KAAK,SAAS;QAC7B,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,QAAQ,CAAC,MAAM,KAAK,OAAO;YAC3B,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC;YAC5B,CAAC,CAAC,QAAQ,CAAC,IAAI,KAAK,SAAS;gBAC3B,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC;gBAC1B,CAAC,CAAC,WAAW,EAAE,CAAC;IAExB,MAAM,IAAI,GAAG,WAAW,CAAC,SAAS,IAAI,SAAS,CAAC,SAAS,CAAC;IAE1D,MAAM,UAAU,GACd,OAAO,CAAC,aAAa,KAAK,SAAS;QACjC,CAAC,CAAC,aAAa,CAAC,kBAAkB,CAAC,gCAAgC,CAAC;QACpE,CAAC,CAAC,OAAO,CAAC,eAAe,KAAK,IAAI;YAChC,CAAC,CAAC,aAAa,CAAC,kBAAkB,CAAC,qBAAqB,CAAC;YACzD,CAAC,CAAC,eAAe,EAAE,CAAC;IAE1B,MAAM,YAAY,GAChB,eAAe,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC;QACnC,CAAC,CAAC,eAAe,EAAE;QACnB,CAAC,CAAC,aAAa,CAAC,kBAAkB,CAAC,wBAAwB,CAAC,CAAC;IAEjE,MAAM,QAAQ,GAAuB,IAAI;QACvC,CAAC,CAAC,aAAa,CAAC,kBAAkB,CAAC,kBAAkB,CAAC;QACtD,CAAC,CAAC,eAAe,EAAE,CAAC;IAEtB,MAAM,QAAQ,GAAG,UAAU,CAAC,OAAO,EAAE,YAAY,EAAE,QAAQ,CAAC,CAAC;IAE7D,4EAA4E;IAC5E,wEAAwE;IACxE,yEAAyE;IACzE,4BAA4B;IAC5B,MAAM,WAAW,GAAG,UAAU,CAC5B,OAAO,EACP,YAAY,EACZ,UAAU,EACV,WAAW,CAAC,MAAM,GAAG,CAAC;QACpB,CAAC,CAAC,aAAa,CAAC,kBAAkB,CAAC,6BAA6B,EAAE;YAC9D,KAAK,EAAE,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC;SAC9B,CAAC;QACJ,CAAC,CAAC,eAAe,EAAE,EACrB,OAAO,CAAC,MAAM,EAAE,OAAO,IAAI,eAAe,EAAE,EAC5C,QAAQ,EACR,cAAc,CAAC,SAAS;QACtB,CAAC,CAAC,aAAa,CAAC,kBAAkB,CAAC,kBAAkB,CAAC;QACtD,CAAC,CAAC,eAAe,EAAE,EACrB,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC;QAC5B,CAAC,CAAC,aAAa,CAAC,kBAAkB,CAAC,oBAAoB,CAAC;QACxD,CAAC,CAAC,eAAe,EAAE,CACtB,CAAC;IAEF,wEAAwE;IACxE,MAAM,eAAe,GAAG,WAAW,CAAC,KAAK,IAAiC,EAAE;QAC1E,IAAI,SAAS,KAAK,SAAS,IAAI,SAAS,GAAG,CAAC;YAAE,OAAO,SAAS,CAAC;QAC/D,IAAI,eAAe,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,SAAS,CAAC;QAC9D,MAAM,KAAK,GAAG,MAAM,WAAW,CAAC,WAAW,CACzC,eAAe,CAAC,eAAe,CAAC,UAAU,CAAC,CAC5C,CAAC;QACF,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACvB,OAAO,CAAC,cAAc,EAAE,CAAC,KAAK,CAAC,CAAC;QAChC,OAAO,KAAK,CAAC,EAAE,CAAC;IAClB,CAAC,EAAE,CAAC,SAAS,EAAE,eAAe,CAAC,UAAU,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC;IAElE,MAAM,OAAO,GAAG,WAAW,CAAC,KAAK,IAAiC,EAAE;QAClE,MAAM,EAAE,GAAG,MAAM,eAAe,EAAE,CAAC;QACnC,IAAI,EAAE,KAAK,SAAS;YAAE,OAAO,SAAS,CAAC;QACvC,uEAAuE;QACvE,qEAAqE;QACrE,8DAA8D;QAC9D,MAAM,SAAS,CAAC,WAAW,CAAC;YAC1B,EAAE;YACF,IAAI,EAAE,oBAAoB,CAAC,eAAe,EAAE,OAAO,CAAC,QAAQ,CAAC;SAC9D,CAAC,CAAC;QACH,QAAQ,CAAC,IAAI,CAAC,CAAC;QACf,OAAO,EAAE,CAAC;IACZ,CAAC,EAAE,CAAC,eAAe,EAAE,SAAS,EAAE,eAAe,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEpE,MAAM,IAAI,GAAG,WAAW,CAAC,GAAS,EAAE;QAClC,aAAa,CAAC,IAAI,CAAC,CAAC;QACpB,IAAI,CAAC,QAAQ,CAAC,SAAS;YAAE,OAAO;QAChC,UAAU,CAAC,SAAS,CAAC,CAAC;QACtB,KAAK,OAAO,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE;YACxB,uEAAuE;YACvE,kEAAkE;YAClE,mBAAmB;QACrB,CAAC,CAAC,CAAC;IACL,CAAC,EAAE,CAAC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC;IAElC,MAAM,OAAO,GAAG,WAAW,CAAC,GAAS,EAAE;QACrC,aAAa,CAAC,IAAI,CAAC,CAAC;QACpB,IAAI,CAAC,WAAW,CAAC,SAAS;YAAE,OAAO;QACnC,UAAU,CAAC,SAAS,CAAC,CAAC;QACtB,KAAK,CAAC,KAAK,IAAI,EAAE;YACf,IAAI,CAAC;gBACH,mEAAmE;gBACnE,kEAAkE;gBAClE,iEAAiE;gBACjE,8DAA8D;gBAC9D,MAAM,EAAE,GAAG,MAAM,OAAO,EAAE,CAAC;gBAC3B,IAAI,EAAE,KAAK,SAAS;oBAAE,OAAO;gBAC7B,MAAM,QAAQ,GAAG,MAAM,cAAc,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;gBACtD,MAAM,MAAM,GACV,QAAQ,CAAC,MAAM,KAAK,WAAW;oBAC7B,CAAC,CAAC,wBAAwB;oBAC1B,CAAC,CAAC,sBAAsB,CAAC;gBAC7B,UAAU,CAAC,MAAM,CAAC,CAAC;gBACnB,OAAO,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;YAC1C,CAAC;YAAC,OAAO,MAAM,EAAE,CAAC;gBAChB,UAAU,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC;YACrC,CAAC;QACH,CAAC,CAAC,EAAE,CAAC;IACP,CAAC,EAAE,CAAC,WAAW,CAAC,SAAS,EAAE,OAAO,EAAE,cAAc,EAAE,OAAO,CAAC,CAAC,CAAC;IAE9D,MAAM,KAAK,GACT,OAAO,KAAK,SAAS;QACnB,CAAC,CAAC,WAAW;QACb,CAAC,CAAC,cAAc,CAAC,SAAS;YACxB,CAAC,CAAC,YAAY;YACd,CAAC,CAAC,IAAI;gBACJ,CAAC,CAAC,QAAQ;gBACV,CAAC,CAAC,eAAe,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC;oBACvC,CAAC,CAAC,mBAAmB;oBACrB,CAAC,CAAC,SAAS,CAAC;IAEtB,OAAO;QACL,KAAK;QACL,SAAS;QACT,MAAM,EAAE,eAAe;QACvB,YAAY;QACZ,UAAU;QACV,gBAAgB;QAEhB,QAAQ,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;YACvB,QAAQ,CAAC,KAAK,CAAC,CAAC;YAChB,SAAS,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,OAAO,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;QACzD,CAAC;QACD,WAAW,EAAE,CAAC,QAAQ,EAAE,EAAE;YACxB,QAAQ,CAAC,KAAK,CAAC,CAAC;YAChB,SAAS,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;QACrD,CAAC;QACD,UAAU,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;YAC1B,QAAQ,CAAC,KAAK,CAAC,CAAC;YAChB,SAAS,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;gBACtB,GAAG,OAAO;gBACV,QAAQ,EAAE,EAAE,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE;aACjD,CAAC,CAAC,CAAC;QACN,CAAC;QACD,WAAW,EAAE,CAAC,UAAU,EAAE,EAAE;YAC1B,QAAQ,CAAC,KAAK,CAAC,CAAC;YAChB,yEAAyE;YACzE,uEAAuE;YACvE,yDAAyD;YACzD,OAAO,CAAC,gBAAgB,EAAE,CAAC,UAAU,CAAC,CAAC;YACvC,IAAI,kBAAkB,KAAK,SAAS,EAAE,CAAC;gBACrC,SAAS,CAAC,CAAC,OAAO,EAAE,EAAE;oBACpB,IAAI,OAAO,CAAC,UAAU,KAAK,UAAU;wBAAE,OAAO,OAAO,CAAC;oBACtD,0DAA0D;oBAC1D,oEAAoE;oBACpE,mEAAmE;oBACnE,wCAAwC;oBACxC,OAAO,EAAE,GAAG,OAAO,EAAE,UAAU,EAAE,CAAC;gBACpC,CAAC,CAAC,CAAC;YACL,CAAC;YACD,UAAU,CAAC,EAAE,CAAC,CAAC;YACf,UAAU,CAAC,SAAS,CAAC,CAAC;QACxB,CAAC;QACD,uBAAuB,EAAE,OAAO;QAEhC,MAAM;QACN,WAAW;QACX,OAAO;QACP,WAAW;QAEX,QAAQ;QACR,WAAW;QACX,IAAI;QACJ,OAAO;QACP,MAAM,EAAE,IAAI;QACZ,UAAU,EAAE,cAAc,CAAC,SAAS;QACpC,KAAK;QACL,SAAS,EAAE,SAAS,CAAC,KAAK,IAAI,WAAW,CAAC,KAAK;QAC/C,OAAO;KACR,CAAC;AACJ,CAAC;AAED,oDAAoD;AACpD,MAAM,UAAU,eAAe,CAC7B,KAEC;IAED,MAAM,GAAG,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC;IACtC,OAAO,4BAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAI,CAAC;AACpC,CAAC"}
1
+ {"version":3,"file":"ListingComposer.js","sourceRoot":"","sources":["../../src/headless/ListingComposer.tsx"],"names":[],"mappings":"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"}
package/dist/i18n/es.d.ts CHANGED
@@ -16,6 +16,11 @@ export { listingsErrorBundleEs } from "./generated/errors.es.gen.js";
16
16
  * codes deliberately left to `@stapel/attributes-react`.
17
17
  */
18
18
  export declare const listingsI18nBundleEs: I18nDictionary;
19
- /** Register the Spanish bundle into a core i18n engine. */
19
+ /**
20
+ * Register the Spanish bundle — and, exactly as in `./ru.ts`, the twelve
21
+ * `stapel_attributes` sentences this pair does not author. The ownership split
22
+ * is a rule about who WRITES a string, not an instruction to ship two thirds
23
+ * of a locale and document the rest.
24
+ */
20
25
  export declare function registerListingsI18nEs(i18n: I18nEngine): void;
21
26
  //# sourceMappingURL=es.d.ts.map
@@ -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;AAG/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAErE;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,oBAAoB,EAAE,cAoLlC,CAAC;AAEF,2DAA2D;AAC3D,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI,CAE7D"}
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,cAmMlC,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI,CAG7D"}
package/dist/i18n/es.js CHANGED
@@ -1,3 +1,4 @@
1
+ import { registerAttributesI18nEs } from "@stapel/attributes-react/i18n/es";
1
2
  import { listingsErrorBundleEs } from "./generated/errors.es.gen.js";
2
3
  export { listingsErrorBundleEs } from "./generated/errors.es.gen.js";
3
4
  /**
@@ -68,6 +69,8 @@ export const listingsI18nBundleEs = {
68
69
  "listings.detail.published_at": "Publicado el {date}",
69
70
  "listings.detail.expires_at": "A la venta hasta el {date}",
70
71
  "listings.detail.stock": "Disponibles",
72
+ "listings.detail.edit": "Editar el anuncio",
73
+ "listings.detail.take_down": "Retirarlo",
71
74
  "listings.compose.new_title": "Anuncio nuevo",
72
75
  "listings.compose.edit_title": "Editar el anuncio",
73
76
  "listings.compose.category": "Categoría",
@@ -81,8 +84,7 @@ export const listingsI18nBundleEs = {
81
84
  "listings.compose.price_invalid": "Escribe el precio como un número, con dos decimales como mucho",
82
85
  "listings.compose.currency_label": "Moneda",
83
86
  "listings.compose.location_label": "Dónde está",
84
- "listings.compose.lat_label": "Latitud",
85
- "listings.compose.lon_label": "Longitud",
87
+ "listings.compose.location_help": "La gente busca por distancia — un anuncio sin lugar es un anuncio que no encontrarán",
86
88
  "listings.compose.geo_incomplete": "Una latitud necesita su longitud al lado — media coordenada no apunta a ningún sitio",
87
89
  "listings.compose.photos": "Fotos",
88
90
  "listings.compose.too_many_images": "Un anuncio admite como mucho {max} fotos",
@@ -103,10 +105,11 @@ export const listingsI18nBundleEs = {
103
105
  "listings.compose.published_live": "Cambios enviados. Tu anuncio sigue publicado mientras los revisamos.",
104
106
  "listings.compose.invalid_summary": "Antes de enviarlo, revisa estos detalles: {count}",
105
107
  "listings.compose.blocked.no_category": "Elige una categoría — el resto del formulario depende de ella",
106
- "listings.compose.blocked.unsupported_type": "Esta categoría pide un tipo de detalle que la aplicación todavía no sabe mostrar ({types}), así que aquí no se puede rellenar",
108
+ "listings.compose.blocked.unsupported_type": "Esta categoría pide un tipo de detalle que la aplicación todavía no sabe mostrar, así que el anuncio no se puede completar aquí",
107
109
  "listings.compose.blocked.photos_pending": "Espera a que terminen de subirse las fotos",
108
110
  "listings.compose.blocked.no_draft": "El borrador todavía no está creado",
109
111
  "listings.compose.blocked.busy": "Un momento — el último cambio se está guardando",
112
+ "listings.compose.blocked.incomplete": "Faltan {count} datos obligatorios",
110
113
  "listings.compose.blocked.mirror": "Corrige primero los campos marcados",
111
114
  "listings.compose.blocked.details_unavailable": "No pudimos cargar lo que pide esta categoría, así que no podemos revisar el formulario",
112
115
  "listings.mine.title": "Mis anuncios",
@@ -122,31 +125,45 @@ export const listingsI18nBundleEs = {
122
125
  "listings.mine.empty.drafts": "Sin borradores: lo que empieces aparecerá aquí",
123
126
  "listings.mine.empty.archived": "Nada archivado, pausado, caducado ni vendido todavía",
124
127
  "listings.mine.blocked.title": "Moderación retiró {count} de tus anuncios",
128
+ "listings.mine.blocked.title.one": "Moderación retiró uno de tus anuncios",
129
+ "listings.mine.blocked.title.other": "Moderación retiró {count} de tus anuncios",
125
130
  "listings.mine.blocked.load_failed": "No pudimos comprobar si alguno de tus anuncios fue retirado",
126
131
  "listings.mine.live_under_review": "Publicado, cambios en revisión",
127
132
  "listings.mine.edit": "Editar",
128
133
  "listings.mine.archive": "Archivar",
129
134
  "listings.mine.complete": "Marcar como vendido",
130
135
  "listings.mine.delete": "Borrar",
136
+ "listings.mine.delete_confirm_title": "¿Borrar este anuncio?",
137
+ "listings.mine.delete_confirm_body": "Desaparece de tu panel y no se puede recuperar. Archivarlo lo conserva.",
131
138
  "listings.favorites.title": "Favoritos",
132
139
  "listings.favorites.loading": "Cargando tus favoritos…",
133
140
  "listings.favorites.load_failed": "No pudimos cargar tus favoritos",
134
141
  "listings.favorites.empty": "Todavía no has guardado nada",
142
+ "listings.favorites.empty_hint": "Toca el corazón en cualquier anuncio y te estará esperando aquí.",
143
+ "listings.favorites.sign_in_hint": "Los favoritos se guardan en tu cuenta, así que te siguen entre dispositivos.",
135
144
  "listings.blocked.sign_in": "Inicia sesión para hacer esto",
136
145
  "listings.blocked.guest": "Esta cuenta todavía no puede hacerlo — termina de configurarla primero",
137
146
  "listings.blocked.mandate_unknown": "No pudimos comprobar tu cuenta, así que no adivinamos si puedes hacerlo",
138
147
  "listings.blocked.transition": "Un anuncio en estado «{from_status}» no se puede mover así",
139
148
  "listings.blocked.delete_active": "Archívalo primero — un anuncio a la venta no se puede borrar",
140
149
  "listings.blocked.in_flight": "Un momento — eso ya está en marcha",
150
+ "listings.blocked.no_editor": "Esta aplicación todavía no tiene una pantalla para editar un anuncio",
141
151
  "listings.page.prev": "Anterior",
142
152
  "listings.page.next": "Siguiente",
153
+ "listings.page.indicator": "Página {page}",
143
154
  "listings.nav.detail": "Anuncio",
144
155
  "listings.nav.compose": "Poner un anuncio",
145
156
  "listings.nav.mine": "Mis anuncios",
146
157
  "listings.nav.favorites": "Favoritos",
147
158
  };
148
- /** Register the Spanish bundle into a core i18n engine. */
159
+ /**
160
+ * Register the Spanish bundle — and, exactly as in `./ru.ts`, the twelve
161
+ * `stapel_attributes` sentences this pair does not author. The ownership split
162
+ * is a rule about who WRITES a string, not an instruction to ship two thirds
163
+ * of a locale and document the rest.
164
+ */
149
165
  export function registerListingsI18nEs(i18n) {
166
+ registerAttributesI18nEs(i18n);
150
167
  i18n.registerBundle("es", listingsI18nBundleEs);
151
168
  }
152
169
  //# sourceMappingURL=es.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"es.js","sourceRoot":"","sources":["../../src/i18n/es.ts"],"names":[],"mappings":"AACA,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,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,oBAAoB,EAAE,OAAO;IAC7B,uBAAuB,EAAE,gBAAgB;IAEzC,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;IAEtC,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,4BAA4B,EAAE,SAAS;IACvC,4BAA4B,EAAE,UAAU;IACxC,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,+HAA+H;IACjI,yCAAyC,EACvC,4CAA4C;IAC9C,mCAAmC,EAAE,oCAAoC;IACzE,+BAA+B,EAC7B,iDAAiD;IACnD,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,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;IAEhC,0BAA0B,EAAE,WAAW;IACvC,4BAA4B,EAAE,yBAAyB;IACvD,gCAAgC,EAAE,iCAAiC;IACnE,0BAA0B,EAAE,8BAA8B;IAE1D,0BAA0B,EAAE,+BAA+B;IAC3D,wBAAwB,EACtB,wEAAwE;IAC1E,kCAAkC,EAChC,yEAAyE;IAC3E,6BAA6B,EAC3B,4DAA4D;IAC9D,gCAAgC,EAC9B,8DAA8D;IAChE,4BAA4B,EAAE,oCAAoC;IAElE,oBAAoB,EAAE,UAAU;IAChC,oBAAoB,EAAE,WAAW;IAEjC,qBAAqB,EAAE,SAAS;IAChC,sBAAsB,EAAE,kBAAkB;IAC1C,mBAAmB,EAAE,cAAc;IACnC,wBAAwB,EAAE,WAAW;CACtC,CAAC;AAEF,2DAA2D;AAC3D,MAAM,UAAU,sBAAsB,CAAC,IAAgB;IACrD,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,oBAAoB,CAAC,CAAC;AAClD,CAAC"}
1
+ {"version":3,"file":"es.js","sourceRoot":"","sources":["../../src/i18n/es.ts"],"names":[],"mappings":"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"}
@@ -78,6 +78,9 @@ export declare const LISTINGS_I18N_KEYS: {
78
78
  * quantity in the value cell, so this key carries no `{count}` — it used to,
79
79
  * and the live page printed the placeholder. */
80
80
  readonly detailStock: "listings.detail.stock";
81
+ /** The owner's two primaries on their own listing page. */
82
+ readonly detailEdit: "listings.detail.edit";
83
+ readonly detailTakeDown: "listings.detail.take_down";
81
84
  readonly composeNewTitle: "listings.compose.new_title";
82
85
  readonly composeEditTitle: "listings.compose.edit_title";
83
86
  readonly composeCategory: "listings.compose.category";
@@ -91,8 +94,7 @@ export declare const LISTINGS_I18N_KEYS: {
91
94
  readonly composePriceInvalid: "listings.compose.price_invalid";
92
95
  readonly composeCurrencyLabel: "listings.compose.currency_label";
93
96
  readonly composeLocationLabel: "listings.compose.location_label";
94
- readonly composeLatLabel: "listings.compose.lat_label";
95
- readonly composeLonLabel: "listings.compose.lon_label";
97
+ readonly composeLocationHelp: "listings.compose.location_help";
96
98
  readonly composeGeoIncomplete: "listings.compose.geo_incomplete";
97
99
  readonly composePhotos: "listings.compose.photos";
98
100
  readonly composeTooManyImages: "listings.compose.too_many_images";
@@ -118,6 +120,10 @@ export declare const LISTINGS_I18N_KEYS: {
118
120
  readonly composeBlockedNoDraft: "listings.compose.blocked.no_draft";
119
121
  readonly composeBlockedBusy: "listings.compose.blocked.busy";
120
122
  readonly composeBlockedMirror: "listings.compose.blocked.mirror";
123
+ /** The same refusal BEFORE anything is marked: "fix the highlighted fields"
124
+ * pointed at nothing highlighted, because the mirror only becomes visible
125
+ * once the person has tried to publish. */
126
+ readonly composeBlockedIncomplete: "listings.compose.blocked.incomplete";
121
127
  readonly composeBlockedDetailsUnavailable: "listings.compose.blocked.details_unavailable";
122
128
  readonly mineTitle: "listings.mine.title";
123
129
  readonly mineTabActive: "listings.mine.tab.active";
@@ -142,10 +148,16 @@ export declare const LISTINGS_I18N_KEYS: {
142
148
  readonly mineArchive: "listings.mine.archive";
143
149
  readonly mineComplete: "listings.mine.complete";
144
150
  readonly mineDelete: "listings.mine.delete";
151
+ /** Deleting is irreversible, so it asks — through the shared SkinConfirm,
152
+ * which is a bottom sheet on a phone. */
153
+ readonly mineDeleteConfirmTitle: "listings.mine.delete_confirm_title";
154
+ readonly mineDeleteConfirmBody: "listings.mine.delete_confirm_body";
145
155
  readonly favoritesTitle: "listings.favorites.title";
146
156
  readonly favoritesLoading: "listings.favorites.loading";
147
157
  readonly favoritesLoadFailed: "listings.favorites.load_failed";
148
158
  readonly favoritesEmpty: "listings.favorites.empty";
159
+ readonly favoritesEmptyHint: "listings.favorites.empty_hint";
160
+ readonly favoritesSignInHint: "listings.favorites.sign_in_hint";
149
161
  readonly blockedSignIn: "listings.blocked.sign_in";
150
162
  readonly blockedGuest: "listings.blocked.guest";
151
163
  readonly blockedMandateUnknown: "listings.blocked.mandate_unknown";
@@ -154,8 +166,13 @@ export declare const LISTINGS_I18N_KEYS: {
154
166
  readonly blockedTransition: "listings.blocked.transition";
155
167
  readonly blockedDeleteActive: "listings.blocked.delete_active";
156
168
  readonly blockedInFlight: "listings.blocked.in_flight";
169
+ /** Editing is a SCREEN, not an endpoint: whether this app has one is the
170
+ * container's fact, and a host that wires no `onEdit` gets a switched-off
171
+ * button that says so instead of one that silently does nothing. */
172
+ readonly blockedNoEditor: "listings.blocked.no_editor";
157
173
  readonly pagePrev: "listings.page.prev";
158
174
  readonly pageNext: "listings.page.next";
175
+ readonly pageIndicator: "listings.page.indicator";
159
176
  readonly navDetail: "listings.nav.detail";
160
177
  readonly navCompose: "listings.nav.compose";
161
178
  readonly navMine: "listings.nav.mine";
@@ -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;;;;;;;;IAUpE,yEAAyE;;;;;;IAQzE,oEAAoE;;IAEpE,8EAA8E;;;;;;;;;;;IAW9E;;oDAEgD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA0DhD;iEAC6D;;;;IAI7D;iEAC6D;;;;;;;;;;;;;;;IAmB7D;yCACqC;;;;;;;;;;CAc7B,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,CAmKvD,CAAC;AAEF;;;;;;;;;GASG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI,CAE3D"}
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;;;;;;;;IAUpE,yEAAyE;;;;;;IAQzE,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,CAuLvD,CAAC;AAEF;;;;;;;;;GASG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI,CAE3D"}
package/dist/i18n/keys.js CHANGED
@@ -82,6 +82,9 @@ export const LISTINGS_I18N_KEYS = {
82
82
  * quantity in the value cell, so this key carries no `{count}` — it used to,
83
83
  * and the live page printed the placeholder. */
84
84
  detailStock: "listings.detail.stock",
85
+ /** The owner's two primaries on their own listing page. */
86
+ detailEdit: "listings.detail.edit",
87
+ detailTakeDown: "listings.detail.take_down",
85
88
  // ── composer ─────────────────────────────────────────────────────────────
86
89
  composeNewTitle: "listings.compose.new_title",
87
90
  composeEditTitle: "listings.compose.edit_title",
@@ -96,8 +99,7 @@ export const LISTINGS_I18N_KEYS = {
96
99
  composePriceInvalid: "listings.compose.price_invalid",
97
100
  composeCurrencyLabel: "listings.compose.currency_label",
98
101
  composeLocationLabel: "listings.compose.location_label",
99
- composeLatLabel: "listings.compose.lat_label",
100
- composeLonLabel: "listings.compose.lon_label",
102
+ composeLocationHelp: "listings.compose.location_help",
101
103
  composeGeoIncomplete: "listings.compose.geo_incomplete",
102
104
  composePhotos: "listings.compose.photos",
103
105
  composeTooManyImages: "listings.compose.too_many_images",
@@ -124,6 +126,10 @@ export const LISTINGS_I18N_KEYS = {
124
126
  composeBlockedNoDraft: "listings.compose.blocked.no_draft",
125
127
  composeBlockedBusy: "listings.compose.blocked.busy",
126
128
  composeBlockedMirror: "listings.compose.blocked.mirror",
129
+ /** The same refusal BEFORE anything is marked: "fix the highlighted fields"
130
+ * pointed at nothing highlighted, because the mirror only becomes visible
131
+ * once the person has tried to publish. */
132
+ composeBlockedIncomplete: "listings.compose.blocked.incomplete",
127
133
  composeBlockedDetailsUnavailable: "listings.compose.blocked.details_unavailable",
128
134
  // ── the owner's dashboard ────────────────────────────────────────────────
129
135
  mineTitle: "listings.mine.title",
@@ -149,11 +155,17 @@ export const LISTINGS_I18N_KEYS = {
149
155
  mineArchive: "listings.mine.archive",
150
156
  mineComplete: "listings.mine.complete",
151
157
  mineDelete: "listings.mine.delete",
158
+ /** Deleting is irreversible, so it asks — through the shared SkinConfirm,
159
+ * which is a bottom sheet on a phone. */
160
+ mineDeleteConfirmTitle: "listings.mine.delete_confirm_title",
161
+ mineDeleteConfirmBody: "listings.mine.delete_confirm_body",
152
162
  // ── favourites ───────────────────────────────────────────────────────────
153
163
  favoritesTitle: "listings.favorites.title",
154
164
  favoritesLoading: "listings.favorites.loading",
155
165
  favoritesLoadFailed: "listings.favorites.load_failed",
156
166
  favoritesEmpty: "listings.favorites.empty",
167
+ favoritesEmptyHint: "listings.favorites.empty_hint",
168
+ favoritesSignInHint: "listings.favorites.sign_in_hint",
157
169
  // ── gates shared by every action a visitor cannot take ───────────────────
158
170
  blockedSignIn: "listings.blocked.sign_in",
159
171
  blockedGuest: "listings.blocked.guest",
@@ -163,9 +175,14 @@ export const LISTINGS_I18N_KEYS = {
163
175
  blockedTransition: "listings.blocked.transition",
164
176
  blockedDeleteActive: "listings.blocked.delete_active",
165
177
  blockedInFlight: "listings.blocked.in_flight",
178
+ /** Editing is a SCREEN, not an endpoint: whether this app has one is the
179
+ * container's fact, and a host that wires no `onEdit` gets a switched-off
180
+ * button that says so instead of one that silently does nothing. */
181
+ blockedNoEditor: "listings.blocked.no_editor",
166
182
  // ── keyset pagination ────────────────────────────────────────────────────
167
183
  pagePrev: "listings.page.prev",
168
184
  pageNext: "listings.page.next",
185
+ pageIndicator: "listings.page.indicator",
169
186
  // ── nav labels ───────────────────────────────────────────────────────────
170
187
  navDetail: "listings.nav.detail",
171
188
  navCompose: "listings.nav.compose",
@@ -219,6 +236,8 @@ export const listingsI18nBundleEn = {
219
236
  "listings.detail.published_at": "Published {date}",
220
237
  "listings.detail.expires_at": "Listed until {date}",
221
238
  "listings.detail.stock": "In stock",
239
+ "listings.detail.edit": "Edit listing",
240
+ "listings.detail.take_down": "Take it down",
222
241
  "listings.compose.new_title": "New listing",
223
242
  "listings.compose.edit_title": "Edit listing",
224
243
  "listings.compose.category": "Category",
@@ -232,8 +251,7 @@ export const listingsI18nBundleEn = {
232
251
  "listings.compose.price_invalid": "Enter a price as a number, with at most two decimals",
233
252
  "listings.compose.currency_label": "Currency",
234
253
  "listings.compose.location_label": "Where it is",
235
- "listings.compose.lat_label": "Latitude",
236
- "listings.compose.lon_label": "Longitude",
254
+ "listings.compose.location_help": "Buyers filter by distance, so a listing with no place is a listing they will not find",
237
255
  "listings.compose.geo_incomplete": "A latitude needs a longitude beside it — half a coordinate points nowhere",
238
256
  "listings.compose.photos": "Photos",
239
257
  "listings.compose.too_many_images": "A listing can carry at most {max} photos",
@@ -254,11 +272,15 @@ export const listingsI18nBundleEn = {
254
272
  "listings.compose.published_live": "Changes sent. Your listing stays published while we review them.",
255
273
  "listings.compose.invalid_summary": "{count} details need your attention before this can go out",
256
274
  "listings.compose.blocked.no_category": "Choose a category — the rest of the form depends on it",
257
- "listings.compose.blocked.unsupported_type": "This category asks for a kind of detail this app cannot show yet ({types}), so it cannot fill it in for you",
275
+ // No `{types}`: the editor type is this build's vocabulary (`size_grid`),
276
+ // and a seller can do nothing with it. The fact they CAN act on is that
277
+ // this listing has to be finished somewhere else.
278
+ "listings.compose.blocked.unsupported_type": "This category asks for a kind of detail this app cannot show yet, so the listing cannot be completed here",
258
279
  "listings.compose.blocked.photos_pending": "Wait for the photos to finish uploading",
259
280
  "listings.compose.blocked.no_draft": "The draft has not been created yet",
260
281
  "listings.compose.blocked.busy": "One moment — the last change is still saving",
261
282
  "listings.compose.blocked.mirror": "Fix the highlighted fields first",
283
+ "listings.compose.blocked.incomplete": "{count} required details are still empty",
262
284
  "listings.compose.blocked.details_unavailable": "We could not load what this category asks for, so we cannot check the form",
263
285
  "listings.mine.title": "My listings",
264
286
  "listings.mine.tab.active": "Active",
@@ -273,24 +295,32 @@ export const listingsI18nBundleEn = {
273
295
  "listings.mine.empty.drafts": "No drafts — anything you start appears here",
274
296
  "listings.mine.empty.archived": "Nothing archived, paused, expired or sold yet",
275
297
  "listings.mine.blocked.title": "{count} of your listings were taken down by moderation",
298
+ "listings.mine.blocked.title.one": "One of your listings was taken down by moderation",
299
+ "listings.mine.blocked.title.other": "{count} of your listings were taken down by moderation",
276
300
  "listings.mine.blocked.load_failed": "We could not check whether any of your listings were taken down",
277
301
  "listings.mine.live_under_review": "Published, changes under review",
278
302
  "listings.mine.edit": "Edit",
279
303
  "listings.mine.archive": "Archive",
280
304
  "listings.mine.complete": "Mark sold",
281
305
  "listings.mine.delete": "Delete",
306
+ "listings.mine.delete_confirm_title": "Delete this listing?",
307
+ "listings.mine.delete_confirm_body": "It disappears from your dashboard and cannot be brought back. Archiving keeps it.",
282
308
  "listings.favorites.title": "Favourites",
283
309
  "listings.favorites.loading": "Loading your favourites…",
284
310
  "listings.favorites.load_failed": "We could not load your favourites",
285
311
  "listings.favorites.empty": "You have not saved anything yet",
312
+ "listings.favorites.empty_hint": "Tap the heart on any listing and it will be waiting here.",
313
+ "listings.favorites.sign_in_hint": "Favourites are kept with your account, so they follow you between devices.",
286
314
  "listings.blocked.sign_in": "Sign in to do this",
287
315
  "listings.blocked.guest": "Your account cannot do this yet — finish setting it up first",
288
316
  "listings.blocked.mandate_unknown": "We could not check your account, so we are not guessing whether you may do this",
289
317
  "listings.blocked.transition": "A listing that is {from_status} cannot be moved that way",
290
318
  "listings.blocked.delete_active": "Archive it first — a listing that is on sale cannot be deleted",
291
319
  "listings.blocked.in_flight": "One moment — that is already under way",
320
+ "listings.blocked.no_editor": "This app has no screen for editing a listing yet",
292
321
  "listings.page.prev": "Previous",
293
322
  "listings.page.next": "Next",
323
+ "listings.page.indicator": "Page {page}",
294
324
  "listings.nav.detail": "Listing",
295
325
  "listings.nav.compose": "Post a listing",
296
326
  "listings.nav.mine": "My listings",