@stapel/listings-react 0.8.0 → 0.9.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 (33) hide show
  1. package/CHANGELOG.md +56 -0
  2. package/dist/api/generated/schema.d.ts +66 -3
  3. package/dist/api/generated/schema.d.ts.map +1 -1
  4. package/dist/default/ListingComposerPage.d.ts +21 -7
  5. package/dist/default/ListingComposerPage.d.ts.map +1 -1
  6. package/dist/default/ListingComposerPage.js.map +1 -1
  7. package/dist/headless/ListingComposer.d.ts.map +1 -1
  8. package/dist/headless/ListingComposer.js +31 -11
  9. package/dist/headless/ListingComposer.js.map +1 -1
  10. package/dist/i18n/generated/errors.es.gen.d.ts +1 -1
  11. package/dist/i18n/generated/errors.es.gen.js +1 -1
  12. package/dist/i18n/generated/errors.gen.d.ts +6 -0
  13. package/dist/i18n/generated/errors.gen.d.ts.map +1 -1
  14. package/dist/i18n/generated/errors.gen.js +3 -0
  15. package/dist/i18n/generated/errors.gen.js.map +1 -1
  16. package/dist/i18n/generated/errors.ru.gen.d.ts +1 -1
  17. package/dist/i18n/generated/errors.ru.gen.js +1 -1
  18. package/dist/model/features.d.ts.map +1 -1
  19. package/dist/model/features.js +9 -1
  20. package/dist/model/features.js.map +1 -1
  21. package/llms.txt +4 -3
  22. package/manifest.json +10 -2
  23. package/nav-manifest.json +1 -1
  24. package/package.json +8 -8
  25. package/src/analytics/generated/events.json +1 -1
  26. package/src/api/generated/schema.ts +66 -3
  27. package/src/default/ListingComposerPage.tsx +21 -7
  28. package/src/headless/ListingComposer.tsx +36 -12
  29. package/src/i18n/generated/errors.es.gen.ts +1 -1
  30. package/src/i18n/generated/errors.gen.ts +3 -0
  31. package/src/i18n/generated/errors.json +9 -0
  32. package/src/i18n/generated/errors.ru.gen.ts +1 -1
  33. package/src/model/features.ts +10 -1
@@ -88,6 +88,12 @@ export declare const LISTINGS_ERRORS: {
88
88
  readonly remediation: "fix_input";
89
89
  readonly en: "Invalid format for {feature}";
90
90
  };
91
+ readonly "error.400.feature_invalid_rules": {
92
+ readonly status: 400;
93
+ readonly params: readonly ["feature"];
94
+ readonly remediation: "fix_input";
95
+ readonly en: "Invalid rules for {feature}";
96
+ };
91
97
  readonly "error.400.feature_invalid_type": {
92
98
  readonly status: 400;
93
99
  readonly params: readonly ["feature"];
@@ -1 +1 @@
1
- {"version":3,"file":"errors.gen.d.ts","sourceRoot":"","sources":["../../../src/i18n/generated/errors.gen.ts"],"names":[],"mappings":"AAIA;;;;;;GAMG;AACH,MAAM,MAAM,WAAW,GACnB,OAAO,GACP,gBAAgB,GAChB,gBAAgB,GAChB,QAAQ,GACR,WAAW,GACX,iBAAiB,GACjB,KAAK,CAAC;AAEV,MAAM,WAAW,iBAAiB;IAChC,oDAAoD;IACpD,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,4DAA4D;IAC5D,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC,0EAA0E;IAC1E,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAClC,0DAA0D;IAC1D,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;CACrB;AAED;;;;GAIG;AACH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkElB,CAAC;AAEX,MAAM,MAAM,iBAAiB,GAAG,MAAM,OAAO,eAAe,CAAC;AAE7D,gEAAgE;AAChE,eAAO,MAAM,oBAAoB,EAAE,SAAS,iBAAiB,EAkE5D,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,EAAE,MAAM,CAAC,iBAAiB,EAAE,MAAM,CAkEnE,CAAC"}
1
+ {"version":3,"file":"errors.gen.d.ts","sourceRoot":"","sources":["../../../src/i18n/generated/errors.gen.ts"],"names":[],"mappings":"AAIA;;;;;;GAMG;AACH,MAAM,MAAM,WAAW,GACnB,OAAO,GACP,gBAAgB,GAChB,gBAAgB,GAChB,QAAQ,GACR,WAAW,GACX,iBAAiB,GACjB,KAAK,CAAC;AAEV,MAAM,WAAW,iBAAiB;IAChC,oDAAoD;IACpD,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,4DAA4D;IAC5D,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC,0EAA0E;IAC1E,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAClC,0DAA0D;IAC1D,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;CACrB;AAED;;;;GAIG;AACH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmElB,CAAC;AAEX,MAAM,MAAM,iBAAiB,GAAG,MAAM,OAAO,eAAe,CAAC;AAE7D,gEAAgE;AAChE,eAAO,MAAM,oBAAoB,EAAE,SAAS,iBAAiB,EAmE5D,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,EAAE,MAAM,CAAC,iBAAiB,EAAE,MAAM,CAmEnE,CAAC"}
@@ -18,6 +18,7 @@ export const LISTINGS_ERRORS = {
18
18
  "error.400.feature_below_minimum": { status: 400, params: ["feature"], remediation: "fix_input", en: "Value is below minimum for {feature}" },
19
19
  "error.400.feature_invalid_config": { status: 400, params: ["feature"], remediation: "fix_input", en: "Invalid config for {feature}" },
20
20
  "error.400.feature_invalid_format": { status: 400, params: ["feature"], remediation: "fix_input", en: "Invalid format for {feature}" },
21
+ "error.400.feature_invalid_rules": { status: 400, params: ["feature"], remediation: "fix_input", en: "Invalid rules for {feature}" },
21
22
  "error.400.feature_invalid_type": { status: 400, params: ["feature"], remediation: "fix_input", en: "Invalid type for {feature}" },
22
23
  "error.400.feature_mandatory_missing": { status: 400, params: ["feature"], remediation: "fix_input", en: "Mandatory feature {feature} is required" },
23
24
  "error.400.feature_not_allowed": { status: 400, params: ["feature"], remediation: "fix_input", en: "Feature {feature} is not allowed here" },
@@ -86,6 +87,7 @@ export const LISTINGS_ERROR_CODES = [
86
87
  "error.400.feature_below_minimum",
87
88
  "error.400.feature_invalid_config",
88
89
  "error.400.feature_invalid_format",
90
+ "error.400.feature_invalid_rules",
89
91
  "error.400.feature_invalid_type",
90
92
  "error.400.feature_mandatory_missing",
91
93
  "error.400.feature_not_allowed",
@@ -158,6 +160,7 @@ export const listingsErrorBundleEn = {
158
160
  "error.400.feature_below_minimum": "Value is below minimum for {feature}",
159
161
  "error.400.feature_invalid_config": "Invalid config for {feature}",
160
162
  "error.400.feature_invalid_format": "Invalid format for {feature}",
163
+ "error.400.feature_invalid_rules": "Invalid rules for {feature}",
161
164
  "error.400.feature_invalid_type": "Invalid type for {feature}",
162
165
  "error.400.feature_mandatory_missing": "Mandatory feature {feature} is required",
163
166
  "error.400.feature_not_allowed": "Feature {feature} is not allowed here",
@@ -1 +1 @@
1
- {"version":3,"file":"errors.gen.js","sourceRoot":"","sources":["../../../src/i18n/generated/errors.gen.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"errors.gen.js","sourceRoot":"","sources":["../../../src/i18n/generated/errors.gen.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@ import type { ListingsErrorCode } from "./errors.gen.js";
2
2
  /**
3
3
  * `ru` texts for the backend error codes this catalog carries.
4
4
  *
5
- * PARTIAL, and deliberately typed to say so: 23 key(s) owned by
5
+ * PARTIAL, and deliberately typed to say so: 24 key(s) owned by
6
6
  * stapel_attributes, stapel_listings are absent, because that owner ships no locale catalog
7
7
  * (ERRORS_LOCALE_EXEMPT_OWNERS). English for them still comes from the registry
8
8
  * artifact via the en bundle; the pair layers its own authored `ru`
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * `ru` texts for the backend error codes this catalog carries.
3
3
  *
4
- * PARTIAL, and deliberately typed to say so: 23 key(s) owned by
4
+ * PARTIAL, and deliberately typed to say so: 24 key(s) owned by
5
5
  * stapel_attributes, stapel_listings are absent, because that owner ships no locale catalog
6
6
  * (ERRORS_LOCALE_EXEMPT_OWNERS). English for them still comes from the registry
7
7
  * artifact via the en bundle; the pair layers its own authored `ru`
@@ -1 +1 @@
1
- {"version":3,"file":"features.d.ts","sourceRoot":"","sources":["../../src/model/features.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG;AACH,OAAO,KAAK,EAAc,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC5E,OAAO,KAAK,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AA8B7E;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAC5B,GAAG,EAAE,iBAAiB,GACrB,kBAAkB,GAAG,SAAS,CAuBhC;AAED;;;mCAGmC;AACnC,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,SAAS,iBAAiB,EAAE,GAAG,IAAI,GAAG,SAAS,GACpD,SAAS,kBAAkB,EAAE,CAO/B;AAED,qEAAqE;AACrE,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,SAAS,iBAAiB,EAAE,GAAG,IAAI,GAAG,SAAS,GACpD,MAAM,CAER;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,SAAS,iBAAiB,EAAE,GAAG,IAAI,GAAG,SAAS,GACpD,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC,CAM3C;AAED;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,SAAS,iBAAiB,EAAE,CAE7E"}
1
+ {"version":3,"file":"features.d.ts","sourceRoot":"","sources":["../../src/model/features.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG;AACH,OAAO,KAAK,EAAc,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC5E,OAAO,KAAK,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAmC7E;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAC5B,GAAG,EAAE,iBAAiB,GACrB,kBAAkB,GAAG,SAAS,CA2BhC;AAED;;;mCAGmC;AACnC,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,SAAS,iBAAiB,EAAE,GAAG,IAAI,GAAG,SAAS,GACpD,SAAS,kBAAkB,EAAE,CAO/B;AAED,qEAAqE;AACrE,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,SAAS,iBAAiB,EAAE,GAAG,IAAI,GAAG,SAAS,GACpD,MAAM,CAER;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,SAAS,iBAAiB,EAAE,GAAG,IAAI,GAAG,SAAS,GACpD,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC,CAM3C;AAED;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,SAAS,iBAAiB,EAAE,CAE7E"}
@@ -4,6 +4,10 @@ const ENVELOPE = new Set(["slug", "value", "name", "order", "title", "badge"]);
4
4
  * itself. `hierarchical_select` is deliberately absent: its formatter joins
5
5
  * the path with " / " and never consults an option table at all. */
6
6
  const OPTION_VALUED = new Set(["select"]);
7
+ /** The canon's `FeatureDef.translate` vocabulary — three values, closed. */
8
+ function isTranslateMode(value) {
9
+ return value === "all" || value === "title" || value === "none";
10
+ }
7
11
  /**
8
12
  * The identity option table for a stored `select` — see the module header.
9
13
  *
@@ -46,7 +50,11 @@ export function featureFromDao(dao) {
46
50
  slug: dao.slug,
47
51
  config,
48
52
  name: dao.name ?? null,
49
- ...(dao.translate !== undefined ? { translate: dao.translate } : {}),
53
+ // `translate` is a CLOSED vocabulary in the canon (`all` / `title` /
54
+ // `none`), and the stored row types it as a loose string. A value outside
55
+ // the three is dropped rather than smuggled through: `FeatureDef`'s own
56
+ // default is `all`, which is what the engine falls back to anyway.
57
+ ...(isTranslateMode(dao.translate) ? { translate: dao.translate } : {}),
50
58
  };
51
59
  const value = typeof dao.type === "string" && dao.type.length > 0
52
60
  ? { type: dao.type, value: dao.value }
@@ -1 +1 @@
1
- {"version":3,"file":"features.js","sourceRoot":"","sources":["../../src/model/features.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"features.js","sourceRoot":"","sources":["../../src/model/features.ts"],"names":[],"mappings":"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"}
package/llms.txt CHANGED
@@ -1,6 +1,6 @@
1
- # @stapel/listings-react 0.8.0
1
+ # @stapel/listings-react 0.9.0
2
2
 
3
- Headless React flow pair for stapel-listings (contract >=0.9 <0.10) — business + state, zero visual opinion.
3
+ Headless React flow pair for stapel-listings (contract >=0.10 <0.11) — business + state, zero visual opinion.
4
4
  Built on @stapel/core: typed client + StapelApiError envelope, auth token refresh,
5
5
  verification-403 interception, i18n engine, analytics facade, TanStack Query layer.
6
6
 
@@ -55,7 +55,7 @@ Paths are relative to `/listings/api/v1/`.
55
55
  - useValidateDraft (query) → validateDraft
56
56
 
57
57
  ## Errors (render t(code, params); UX from remediation)
58
- 65 keys (full catalog: manifest.json §errors). By remediation: fix_input 36 · retry 16 · verify 5 · wait_and_retry 5 · contact_support 2 · reauthenticate 1.
58
+ 66 keys (full catalog: manifest.json §errors). By remediation: fix_input 37 · retry 16 · verify 5 · wait_and_retry 5 · contact_support 2 · reauthenticate 1.
59
59
  Param-bearing keys (interpolation slots matter):
60
60
  - error.400.description_too_long [400] → fix_input {max_length}
61
61
  - error.400.description_too_short [400] → fix_input {min_length}
@@ -63,6 +63,7 @@ Param-bearing keys (interpolation slots matter):
63
63
  - error.400.feature_below_minimum [400] → fix_input {feature}
64
64
  - error.400.feature_invalid_config [400] → fix_input {feature}
65
65
  - error.400.feature_invalid_format [400] → fix_input {feature}
66
+ - error.400.feature_invalid_rules [400] → fix_input {feature}
66
67
  - error.400.feature_invalid_type [400] → fix_input {feature}
67
68
  - error.400.feature_mandatory_missing [400] → fix_input {feature}
68
69
  - error.400.feature_not_allowed [400] → fix_input {feature}
package/manifest.json CHANGED
@@ -1,10 +1,10 @@
1
1
  {
2
2
  "$generated": "by scripts/gen-manifest.mjs — do not edit; drift-gated (pnpm gen:manifest:check)",
3
3
  "package": "@stapel/listings-react",
4
- "version": "0.8.0",
4
+ "version": "0.9.0",
5
5
  "backend": {
6
6
  "module": "stapel-listings",
7
- "contract": ">=0.9 <0.10"
7
+ "contract": ">=0.10 <0.11"
8
8
  },
9
9
  "layers": [
10
10
  "api",
@@ -325,6 +325,13 @@
325
325
  ],
326
326
  "remediation": "fix_input"
327
327
  },
328
+ "error.400.feature_invalid_rules": {
329
+ "status": 400,
330
+ "params": [
331
+ "feature"
332
+ ],
333
+ "remediation": "fix_input"
334
+ },
328
335
  "error.400.feature_invalid_type": {
329
336
  "status": 400,
330
337
  "params": [
@@ -781,6 +788,7 @@
781
788
  "error.400.feature_below_minimum",
782
789
  "error.400.feature_invalid_config",
783
790
  "error.400.feature_invalid_format",
791
+ "error.400.feature_invalid_rules",
784
792
  "error.400.feature_invalid_type",
785
793
  "error.400.feature_mandatory_missing",
786
794
  "error.400.feature_not_allowed",
package/nav-manifest.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "package": "@stapel/listings-react",
3
- "version": "0.8.0",
3
+ "version": "0.9.0",
4
4
  "entries": [
5
5
  {
6
6
  "id": "listings.detail",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@stapel/listings-react",
3
- "version": "0.8.0",
3
+ "version": "0.9.0",
4
4
  "description": "Headless React pair for stapel-listings: a typed client over the draft twin, the composer that turns a category schema into a submittable listing, and the owner's dashboard. Two independent axes are rendered as two — lifecycle `status` decides visibility and `moderation_status` decides nothing about it, so an edit to a live listing stays live and says 'under review' instead of vanishing. Feature values are drawn and mirrored by @stapel/attributes-react; photos arrive as an injected upload bag whose `refs` ARE `images_draft` and whose `settled` gates the submit; a publish refusal is routed onto the control that caused it by slug. Zero visual opinion in the main entry; an opt-in /default subpath ships the antd skin.",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -53,9 +53,9 @@
53
53
  "limit": "11.5 KB"
54
54
  },
55
55
  {
56
- "name": "default — the antd skin (card, detail, composer, dashboard, the four named slots and the delete confirmation) must stay out of the main bundle",
56
+ "name": "default — the antd skin (card, detail, composer, dashboard, the four named slots and the delete confirmation) must stay out of the main bundle. Raised 16 -> 17 KB for attributes-react 0.4.0: the composer's <FeatureFields> now carries the rule pre-pass, the form sections and the two vocabulary-backed editors, and the skin re-exports them (15.86 -> 16.02 KB measured)",
57
57
  "path": "dist/default/index.js",
58
- "limit": "16 KB"
58
+ "limit": "17 KB"
59
59
  },
60
60
  {
61
61
  "name": "i18n/ru — the Russian bundle is opt-in, not carried by the main entry",
@@ -69,7 +69,7 @@
69
69
  }
70
70
  ],
71
71
  "peerDependencies": {
72
- "@stapel/attributes-react": ">=0.1.0",
72
+ "@stapel/attributes-react": ">=0.4.0",
73
73
  "@stapel/core": ">=0.19.0 <1.0.0",
74
74
  "@stapel/currencies-react": ">=0.2.0",
75
75
  "@stapel/image": ">=0.2.0",
@@ -102,13 +102,13 @@
102
102
  "size-limit": "^11.2.0",
103
103
  "typescript": "^5.8.3",
104
104
  "vitest": "^3.2.4",
105
- "@stapel/attributes-react": "^0.3.1",
106
- "@stapel/core": "^0.19.0",
105
+ "@stapel/attributes-react": "^0.4.0",
106
+ "@stapel/core": "^0.20.0",
107
107
  "@stapel/currencies-react": "^0.2.0",
108
108
  "@stapel/image": "^0.4.2",
109
109
  "@stapel/showcase": "^0.3.0",
110
- "@stapel/tokens": "^0.5.1",
111
- "@stapel/tokens-antd": "^0.7.0"
110
+ "@stapel/tokens": "^0.6.0",
111
+ "@stapel/tokens-antd": "^0.8.1"
112
112
  },
113
113
  "engines": {
114
114
  "node": ">=22"
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$generated": "by scripts/gen-events.mjs — do not edit; drift-gated (pnpm gen:events:check)",
3
3
  "package": "@stapel/listings-react",
4
- "version": "0.8.0",
4
+ "version": "0.9.0",
5
5
  "defined": [],
6
6
  "flows": []
7
7
  }
@@ -501,16 +501,17 @@ export interface components {
501
501
  * * `invalid_config` - invalid_config
502
502
  * * `min_greater_than_max` - min_greater_than_max
503
503
  * * `empty_options` - empty_options
504
+ * * `invalid_rules` - invalid_rules
504
505
  * @enum {string}
505
506
  */
506
- ErrorEnum: "below_minimum" | "above_maximum" | "not_in_options" | "invalid_type" | "invalid_format" | "mandatory_missing" | "duplicate_slug" | "unknown_feature_type" | "not_allowed" | "unknown_feature" | "description_too_short" | "description_too_long" | "invalid_config" | "min_greater_than_max" | "empty_options";
507
+ ErrorEnum: "below_minimum" | "above_maximum" | "not_in_options" | "invalid_type" | "invalid_format" | "mandatory_missing" | "duplicate_slug" | "unknown_feature_type" | "not_allowed" | "unknown_feature" | "description_too_short" | "description_too_long" | "invalid_config" | "min_greater_than_max" | "empty_options" | "invalid_rules";
507
508
  /** @description Result of favoriting / unfavoriting a listing. */
508
509
  FavoriteToggleResponse: {
509
510
  favorited: boolean;
510
511
  listing_id: number;
511
512
  };
512
- FeatureDao: components["schemas"]["IntDao"] | components["schemas"]["FloatDao"] | components["schemas"]["StringDao"] | components["schemas"]["BoolDao"] | components["schemas"]["HexColorDao"] | components["schemas"]["SelectDao"] | components["schemas"]["DateDao"] | components["schemas"]["HeaderDao"] | components["schemas"]["HierarchicalSelectDao"] | components["schemas"]["ConvertibleUnitDao"];
513
- FeatureDto: components["schemas"]["IntDto"] | components["schemas"]["FloatDto"] | components["schemas"]["StringDto"] | components["schemas"]["BoolDto"] | components["schemas"]["HexColorDto"] | components["schemas"]["SelectDto"] | components["schemas"]["DateDto"] | components["schemas"]["HeaderDto"] | components["schemas"]["HierarchicalSelectDto"] | components["schemas"]["ConvertibleUnitDto"];
513
+ FeatureDao: components["schemas"]["IntDao"] | components["schemas"]["FloatDao"] | components["schemas"]["StringDao"] | components["schemas"]["BoolDao"] | components["schemas"]["HexColorDao"] | components["schemas"]["SelectDao"] | components["schemas"]["DateDao"] | components["schemas"]["HeaderDao"] | components["schemas"]["HierarchicalSelectDao"] | components["schemas"]["ConvertibleUnitDao"] | components["schemas"]["RefSelectDao"] | components["schemas"]["RefHierarchicalSelectDao"];
514
+ FeatureDto: components["schemas"]["IntDto"] | components["schemas"]["FloatDto"] | components["schemas"]["StringDto"] | components["schemas"]["BoolDto"] | components["schemas"]["HexColorDto"] | components["schemas"]["SelectDto"] | components["schemas"]["DateDto"] | components["schemas"]["HeaderDto"] | components["schemas"]["HierarchicalSelectDto"] | components["schemas"]["ConvertibleUnitDto"] | components["schemas"]["RefSelectDto"] | components["schemas"]["RefHierarchicalSelectDto"];
514
515
  /** @description Serializer for FeatureValidationResult. */
515
516
  FeatureValidationResult: {
516
517
  id?: unknown;
@@ -920,6 +921,58 @@ export interface components {
920
921
  listing_id: number;
921
922
  status: string;
922
923
  };
924
+ /** @description Serializer for the ref_hierarchical_select feature DAO. */
925
+ RefHierarchicalSelectDao: {
926
+ name?: string | null;
927
+ order?: number | null;
928
+ title?: boolean | null;
929
+ badge?: boolean | null;
930
+ translate?: string | null;
931
+ /**
932
+ * @description discriminator enum property added by openapi-typescript
933
+ * @enum {string}
934
+ */
935
+ type: "ref_hierarchical_select";
936
+ value?: string[];
937
+ labels?: string[];
938
+ vocabulary?: string | null;
939
+ levels?: string[];
940
+ };
941
+ /** @description Serializer for the ref_hierarchical_select feature DTO. */
942
+ RefHierarchicalSelectDto: {
943
+ /**
944
+ * @description discriminator enum property added by openapi-typescript
945
+ * @enum {string}
946
+ */
947
+ type: "ref_hierarchical_select";
948
+ value?: string[];
949
+ };
950
+ /** @description Serializer for the ref_select feature DAO. */
951
+ RefSelectDao: {
952
+ name?: string | null;
953
+ order?: number | null;
954
+ title?: boolean | null;
955
+ badge?: boolean | null;
956
+ translate?: string | null;
957
+ /**
958
+ * @description discriminator enum property added by openapi-typescript
959
+ * @enum {string}
960
+ */
961
+ type: "ref_select";
962
+ value?: string[];
963
+ labels?: string[];
964
+ vocabulary?: string | null;
965
+ level?: string | null;
966
+ };
967
+ /** @description Serializer for the ref_select feature DTO. */
968
+ RefSelectDto: {
969
+ /**
970
+ * @description discriminator enum property added by openapi-typescript
971
+ * @enum {string}
972
+ */
973
+ type: "ref_select";
974
+ value?: string[];
975
+ };
923
976
  /** @description Serializer for select feature DAO. */
924
977
  SelectDao: {
925
978
  name?: string | null;
@@ -1009,6 +1062,11 @@ export interface components {
1009
1062
  * @enum {string}
1010
1063
  */
1011
1064
  Type515Enum: "hex_color";
1065
+ /**
1066
+ * @description * `ref_hierarchical_select` - ref_hierarchical_select
1067
+ * @enum {string}
1068
+ */
1069
+ Type565Enum: "ref_hierarchical_select";
1012
1070
  /**
1013
1071
  * @description * `hierarchical_select` - hierarchical_select
1014
1072
  * @enum {string}
@@ -1029,6 +1087,11 @@ export interface components {
1029
1087
  * @enum {string}
1030
1088
  */
1031
1089
  TypeC1bEnum: "int";
1090
+ /**
1091
+ * @description * `ref_select` - ref_select
1092
+ * @enum {string}
1093
+ */
1094
+ TypeCcbEnum: "ref_select";
1032
1095
  /**
1033
1096
  * @description * `float` - float
1034
1097
  * @enum {string}
@@ -7,7 +7,7 @@
7
7
  *
8
8
  * category `renderCategoryPicker` — the container's `<CategoryPickerField>`,
9
9
  * given `setCategory` to call
10
- * where `locationPicker` — the container's `<LocationPickerField>`
10
+ * where `locationPicker` — the container's `<LocationField>`
11
11
  * (`@stapel/geo-react`)
12
12
  * currency `renderCurrencyPicker` — whatever vocabulary the deployment sells in
13
13
  * details `features` — the schema, drawn by `<FeatureFields>` (L0)
@@ -143,7 +143,7 @@ export interface ComposerCurrencySlot {
143
143
 
144
144
  /**
145
145
  * What a location picker component is handed — the contract
146
- * `@stapel/geo-react`'s `<LocationPickerField>` was built to fill.
146
+ * `@stapel/geo-react`'s `<LocationField>` was built to fill.
147
147
  *
148
148
  * `{ value, onChange }`, and `value` is the pin plus the address a resolver
149
149
  * found for it. `lat`/`lon` are NUMBERS here (a picker works in numbers) while
@@ -156,13 +156,15 @@ export interface ComposerCurrencySlot {
156
156
  * writes is three lines and no state:
157
157
  *
158
158
  * ```tsx
159
- * import { LocationPickerField } from "@stapel/geo-react/default";
159
+ * import { LocationField } from "@stapel/geo-react/default";
160
160
  *
161
161
  * <ListingComposerPage
162
162
  * locationPicker={({ value, onChange }) => (
163
- * <LocationPickerField
163
+ * <LocationField
164
164
  * {...(value.lat !== null && value.lon !== null
165
- * ? { value: { lat: value.lat, lon: value.lon } }
165
+ * ? { value: { point: { lat: value.lat, lon: value.lon },
166
+ * ...(value.address !== undefined
167
+ * ? { address: value.address } : {}) } }
166
168
  * : {})}
167
169
  * onChange={(picked) => {
168
170
  * onChange({ lat: picked.point.lat, lon: picked.point.lon,
@@ -173,6 +175,17 @@ export interface ComposerCurrencySlot {
173
175
  * />
174
176
  * ```
175
177
  *
178
+ * `LocationField` and not `LocationPickerField`, and the difference is the
179
+ * whole reason this slot exists. The older component is a BUTTON — "Choose on
180
+ * the map" — that prints its answer underneath itself, so a form the person
181
+ * has filled in goes on looking empty and the question names the mechanism
182
+ * rather than the thing being asked. `LocationField` is a field: it states
183
+ * the question while empty and holds the chosen place inside itself once it
184
+ * is not, and one tap runs the whole ladder behind it — the permission
185
+ * pre-prompt before the browser's one-shot prompt, the server's IP guess when
186
+ * that is refused, then the map. Either component fits this contract; only
187
+ * one of them looks like an answer to "where is it?".
188
+ *
176
189
  * `geohash` is absent from this contract on purpose: since stapel-listings
177
190
  * 0.7.1 the server computes it from the coordinates and ignores anything sent
178
191
  * in the body, so a picker that has one has nowhere to put it and no reason
@@ -254,8 +267,9 @@ export interface ListingComposerPageProps extends ThemeModeProp {
254
267
  readonly renderCurrencyPicker?: (slot: ComposerCurrencySlot) => ReactNode;
255
268
  /**
256
269
  * WHERE the thing is, asked the host's way — the slot
257
- * `@stapel/geo-react`'s `<LocationPickerField>` fills (see
258
- * {@link ComposerLocationPickerProps} for the three-line adapter).
270
+ * `@stapel/geo-react`'s `<LocationField>` fills (see
271
+ * {@link ComposerLocationPickerProps} for the adapter, and for why the
272
+ * field beats the older button).
259
273
  *
260
274
  * Unfilled: a named placeholder. The composer will NOT fall back to two
261
275
  * decimal boxes — a seller does not know their latitude, and those boxes
@@ -10,7 +10,12 @@ import {
10
10
  } from "@stapel/core";
11
11
  import type { ActionAvailability, FlowError, LoadState } from "@stapel/core";
12
12
  import type { FeatureDef, FeaturesDto } from "@stapel/attributes-react";
13
- import { toFeaturesDto, unsupportedTypes } from "@stapel/attributes-react";
13
+ import {
14
+ initialFeatureValues,
15
+ toFeaturesDto,
16
+ unsupportedTypes,
17
+ useVocabularyClient,
18
+ } from "@stapel/attributes-react";
14
19
  import type {
15
20
  ListingDetail as ListingDetailData,
16
21
  ListingDraft,
@@ -267,11 +272,15 @@ export function useListingComposer(
267
272
  );
268
273
  }, [existing.data, runtime.currency]);
269
274
 
270
- // Pruning runs on the SCHEMA arriving, one render after the category
271
- // changed: `setCategory` cannot prune against features it has not been
272
- // handed. Gated on the schema being settled, because pruning against a
275
+ // Pruning and SEEDING both run on the SCHEMA arriving, one render after the
276
+ // category changed: `setCategory` cannot prune against features it has not
277
+ // been handed. Gated on the schema being settled, because acting on a
273
278
  // half-loaded (or previous) category's features would delete answers that
274
279
  // are perfectly valid for the one now chosen.
280
+ //
281
+ // The effect fires once per feature SET (its deps are the set and the
282
+ // settled flag), so a default seeded here is not re-seeded over an answer
283
+ // the person then cleared.
275
284
  const schemaSettled =
276
285
  options.featuresLoading !== true && options.featuresError === undefined;
277
286
  const { features } = options;
@@ -279,12 +288,20 @@ export function useListingComposer(
279
288
  if (!schemaSettled || features.length === 0) return;
280
289
  setValues((current) => {
281
290
  const gone = droppedFeatureSlugs(current.features, features);
282
- if (gone.length === 0) return current;
283
- setDropped(gone);
284
- return {
285
- ...current,
286
- features: retainKnownFeatureValues(current.features, features),
287
- };
291
+ const kept =
292
+ gone.length === 0 ? current.features : retainKnownFeatureValues(current.features, features);
293
+ // `FeatureDef.default` (and the type's own default) is what the CATALOGUE
294
+ // says a blank form opens with — a `select` option flagged `default`, a
295
+ // preset date. It is applied ONLY where the draft has no answer: a
296
+ // reopened listing, or anything typed before the schema landed, outranks
297
+ // a default, because a default is a suggestion and an answer is not.
298
+ const seeded: Record<string, unknown> = {};
299
+ for (const [slug, value] of Object.entries(initialFeatureValues(features))) {
300
+ if (kept[slug] === undefined) seeded[slug] = value;
301
+ }
302
+ if (gone.length === 0 && Object.keys(seeded).length === 0) return current;
303
+ if (gone.length > 0) setDropped(gone);
304
+ return { ...current, features: { ...kept, ...seeded } };
288
305
  });
289
306
  }, [schemaSettled, features]);
290
307
 
@@ -322,9 +339,16 @@ export function useListingComposer(
322
339
  [effectiveValues, options.features, featuresDto, runtime.limits]
323
340
  );
324
341
 
342
+ // A `ref_select` whose vocabulary source the host never wired up is exactly
343
+ // as undrawable as a type with no editor: the control renders and cannot be
344
+ // answered. It therefore reaches the publish gate through the SAME channel
345
+ // (`unsupportedTypes`) rather than a second one — one fact, one sentence.
346
+ // Read from context, so a host wires `VocabularyClientProvider` once around
347
+ // the composer and nothing else changes.
348
+ const vocabularyClient = useVocabularyClient();
325
349
  const unsupported = useMemo(
326
- () => unsupportedTypes(options.features, options.editorTypes ?? []),
327
- [options.features, options.editorTypes]
350
+ () => unsupportedTypes(options.features, options.editorTypes ?? [], { vocabularyClient }),
351
+ [options.features, options.editorTypes, vocabularyClient]
328
352
  );
329
353
 
330
354
  const isLiveEdit = existing.data?.status === "published";
@@ -8,7 +8,7 @@ import type { ListingsErrorCode } from "./errors.gen.js";
8
8
  /**
9
9
  * `es` texts for the backend error codes this catalog carries.
10
10
  *
11
- * PARTIAL, and deliberately typed to say so: 23 key(s) owned by
11
+ * PARTIAL, and deliberately typed to say so: 24 key(s) owned by
12
12
  * stapel_attributes, stapel_listings are absent, because that owner ships no locale catalog
13
13
  * (ERRORS_LOCALE_EXEMPT_OWNERS). English for them still comes from the registry
14
14
  * artifact via the en bundle; the pair layers its own authored `es`
@@ -46,6 +46,7 @@ export const LISTINGS_ERRORS = {
46
46
  "error.400.feature_below_minimum": { status: 400, params: ["feature"], remediation: "fix_input", en: "Value is below minimum for {feature}" },
47
47
  "error.400.feature_invalid_config": { status: 400, params: ["feature"], remediation: "fix_input", en: "Invalid config for {feature}" },
48
48
  "error.400.feature_invalid_format": { status: 400, params: ["feature"], remediation: "fix_input", en: "Invalid format for {feature}" },
49
+ "error.400.feature_invalid_rules": { status: 400, params: ["feature"], remediation: "fix_input", en: "Invalid rules for {feature}" },
49
50
  "error.400.feature_invalid_type": { status: 400, params: ["feature"], remediation: "fix_input", en: "Invalid type for {feature}" },
50
51
  "error.400.feature_mandatory_missing": { status: 400, params: ["feature"], remediation: "fix_input", en: "Mandatory feature {feature} is required" },
51
52
  "error.400.feature_not_allowed": { status: 400, params: ["feature"], remediation: "fix_input", en: "Feature {feature} is not allowed here" },
@@ -117,6 +118,7 @@ export const LISTINGS_ERROR_CODES: readonly ListingsErrorCode[] = [
117
118
  "error.400.feature_below_minimum",
118
119
  "error.400.feature_invalid_config",
119
120
  "error.400.feature_invalid_format",
121
+ "error.400.feature_invalid_rules",
120
122
  "error.400.feature_invalid_type",
121
123
  "error.400.feature_mandatory_missing",
122
124
  "error.400.feature_not_allowed",
@@ -190,6 +192,7 @@ export const listingsErrorBundleEn: Record<ListingsErrorCode, string> = {
190
192
  "error.400.feature_below_minimum": "Value is below minimum for {feature}",
191
193
  "error.400.feature_invalid_config": "Invalid config for {feature}",
192
194
  "error.400.feature_invalid_format": "Invalid format for {feature}",
195
+ "error.400.feature_invalid_rules": "Invalid rules for {feature}",
193
196
  "error.400.feature_invalid_type": "Invalid type for {feature}",
194
197
  "error.400.feature_mandatory_missing": "Mandatory feature {feature} is required",
195
198
  "error.400.feature_not_allowed": "Feature {feature} is not allowed here",
@@ -88,6 +88,15 @@
88
88
  "remediation": "fix_input",
89
89
  "en": "Invalid format for {feature}"
90
90
  },
91
+ {
92
+ "code": "error.400.feature_invalid_rules",
93
+ "status": 400,
94
+ "params": [
95
+ "feature"
96
+ ],
97
+ "remediation": "fix_input",
98
+ "en": "Invalid rules for {feature}"
99
+ },
91
100
  {
92
101
  "code": "error.400.feature_invalid_type",
93
102
  "status": 400,
@@ -8,7 +8,7 @@ import type { ListingsErrorCode } from "./errors.gen.js";
8
8
  /**
9
9
  * `ru` texts for the backend error codes this catalog carries.
10
10
  *
11
- * PARTIAL, and deliberately typed to say so: 23 key(s) owned by
11
+ * PARTIAL, and deliberately typed to say so: 24 key(s) owned by
12
12
  * stapel_attributes, stapel_listings are absent, because that owner ships no locale catalog
13
13
  * (ERRORS_LOCALE_EXEMPT_OWNERS). English for them still comes from the registry
14
14
  * artifact via the en bundle; the pair layers its own authored `ru`