perf(json-editor): unify admin JSON editing experience (#6421)
* perf(json-editor): improve JSON editing experience - integrate Yace for syntax highlighting, history, indentation, auto-closing, and smart line breaks. - add copy support, cursor location feedback, and synchronized content and line-number scrolling. - extract JSON editor utilities and cover key interactions with unit tests. * perf(system-settings): improve JSON configuration editing - replace raw JSON textareas with the shared editor for highlighting, validation, copy, and formatting. - preserve field-specific examples and make placeholders visible through the transparent editor layer. - remove duplicate formatting controls while keeping existing form validation and save behavior. * perf(json-editor): standardize JSON inputs across admin settings - replace pure JSON textareas with the shared editor across system settings and channel workflows. - preserve form focus, validation, placeholders, and visual or JSON editing modes. - add happy-dom component coverage for form bindings, controlled updates, and formatting. * fix(json-code-editor): address accessibility review findings - Drop the unconditional aria-label that overrode every field's label-derived accessible name; add an optional ariaLabel prop and set it at call sites without an associated label - Associate standalone Labels via htmlFor/id in channel-affinity views - Hide the highlight mirror and line-number layers from the accessibility tree (aria-hidden) - Give the line-number gutter an opaque background so horizontally scrolled code no longer slides under it - Degrade to no scroll sync instead of destroying the editor when the line-number layer is not found
Showing
| ... | @@ -74,6 +74,7 @@ | ... | @@ -74,6 +74,7 @@ |
| "tw-animate-css": "^1.4.0", | "tw-animate-css": "^1.4.0", | ||
| "use-stick-to-bottom": "^1.1.6", | "use-stick-to-bottom": "^1.1.6", | ||
| "vaul": "^1.1.2", | "vaul": "^1.1.2", | ||
| "yace": "^1.1.0", | |||
| "zod": "^4.4.3", | "zod": "^4.4.3", | ||
| "zustand": "^5.0.14" | "zustand": "^5.0.14" | ||
| }, | }, | ||
| ... | @@ -90,6 +91,7 @@ | ... | @@ -90,6 +91,7 @@ |
| "@typescript/native-preview": "^7.0.0-dev.20260702.3", | "@typescript/native-preview": "^7.0.0-dev.20260702.3", | ||
| "@xyflow/react": "^12.11.1", | "@xyflow/react": "^12.11.1", | ||
| "embla-carousel-react": "^8.6.0", | "embla-carousel-react": "^8.6.0", | ||
| "happy-dom": "^20.11.1", | |||
| "knip": "^6.24.0", | "knip": "^6.24.0", | ||
| "oxfmt": "^0.57.0", | "oxfmt": "^0.57.0", | ||
| "oxlint": "^1.72.0", | "oxlint": "^1.72.0", | ||
| ... | ... |
This diff is collapsed.
Click to expand it.
Please
register
or
sign in
to comment