@vectoriox/iox-ui 4.38.0 → 4.39.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/index.d.ts CHANGED
@@ -2116,6 +2116,18 @@ interface SeoFieldState {
2116
2116
  source: SeoFieldSource;
2117
2117
  /** Recommended length, where one applies — for the character counter. */
2118
2118
  maxLength?: number;
2119
+ /**
2120
+ * The input controller this field is authored with — `text`, `textarea`, `image`, … — taken
2121
+ * from the SHARED schema, which is the single place that declares it.
2122
+ *
2123
+ * A panel renders the declared control; it never hand-rolls one. An `image` field rendered as a
2124
+ * text box throws away a picker the schema already asked for, and a raw `<input>` shares no
2125
+ * sizing, disabled state, RTL or theme with the rest of the app. See iox-ai-guidance
2126
+ * `CLAUDE.md` → Non-Negotiable Standards.
2127
+ */
2128
+ control: string;
2129
+ /** Whatever the declared controller needs — select options, code language, range bounds. */
2130
+ options?: unknown;
2119
2131
  }
2120
2132
  /**
2121
2133
  * Describe every bindable field for the authoring panel.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vectoriox/iox-ui",
3
- "version": "4.38.0",
3
+ "version": "4.39.0",
4
4
  "peerDependencies": {
5
5
  "@angular/common": ">=20.0.0",
6
6
  "@angular/core": ">=20.0.0",
@@ -109,7 +109,9 @@ export function buildSeoSchemaProperties(): Record<string, unknown> {
109
109
  structuredData: {
110
110
  type: 'object',
111
111
  label: 'Structured Data (JSON-LD)',
112
- controller: { type: 'json' },
112
+ // `code`, not `json`: the client registers `code` (CodeMirror) and has no `json`
113
+ // controller, so a `json` declaration silently falls back to a plain text box.
114
+ controller: { type: 'code', options: { language: 'json' } },
113
115
  },
114
116
  sitemap: {
115
117
  type: 'object',