mirror of
https://github.com/AutoMaker-Org/automaker.git
synced 2026-02-01 08:13:37 +00:00
feat: add three viewing modes for app specification (#566)
* feat: add three viewing modes for app specification Introduces View, Edit, and Source modes for the spec page: - View: Clean read-only display with cards, badges, and accordions - Edit: Structured form-based editor for all spec fields - Source: Raw XML editor for advanced users Also adds @automaker/spec-parser shared package for XML parsing between server and client. * fix: address PR review feedback - Replace array index keys with stable UUIDs in array-field-editor, features-section, and roadmap-section components - Replace regex-based XML parsing with fast-xml-parser for robustness - Simplify renderContent logic in spec-view by removing dead code paths * fix: convert git+ssh URLs to https in package-lock.json * fix: address PR review feedback for spec visualiser - Remove unused RefreshCw import from spec-view.tsx - Add explicit parsedSpec check in renderContent for robustness - Hide save button in view mode since it's read-only - Remove GripVertical drag handles since drag-and-drop is not implemented - Rename Map imports to MapIcon to avoid shadowing global Map - Escape tagName in xml-utils.ts RegExp functions for safety - Add aria-label attributes for accessibility on mode tabs * fix: address additional PR review feedback - Fix Textarea controlled/uncontrolled warning with default value - Preserve IDs in useEffect sync to avoid unnecessary remounts - Consolidate lucide-react imports - Add JSDoc note about tag attributes limitation in xml-utils.ts - Remove redundant disabled prop from SpecModeTabs
This commit is contained in:
committed by
GitHub
parent
af95dae73a
commit
c4652190eb
26
libs/spec-parser/src/index.ts
Normal file
26
libs/spec-parser/src/index.ts
Normal file
@@ -0,0 +1,26 @@
|
||||
/**
|
||||
* @automaker/spec-parser
|
||||
*
|
||||
* XML spec parser for AutoMaker - parses and generates app_spec.txt XML.
|
||||
* This package provides utilities for:
|
||||
* - Parsing XML spec content into SpecOutput objects
|
||||
* - Converting SpecOutput objects back to XML
|
||||
* - Validating spec data
|
||||
*/
|
||||
|
||||
// Re-export types from @automaker/types for convenience
|
||||
export type { SpecOutput } from '@automaker/types';
|
||||
|
||||
// XML utilities
|
||||
export { escapeXml, unescapeXml, extractXmlSection, extractXmlElements } from './xml-utils.js';
|
||||
|
||||
// XML to Spec parsing
|
||||
export { xmlToSpec } from './xml-to-spec.js';
|
||||
export type { ParseResult } from './xml-to-spec.js';
|
||||
|
||||
// Spec to XML conversion
|
||||
export { specToXml } from './spec-to-xml.js';
|
||||
|
||||
// Validation
|
||||
export { validateSpec, isValidSpecXml } from './validate.js';
|
||||
export type { ValidationResult } from './validate.js';
|
||||
Reference in New Issue
Block a user