Prepare UJL Crafter for public preview with critical refactorings and deployment setup

Description

This change prepares the UJL Crafter for its first public preview by implementing critical refactorings and deployment improvements.

Key Changes

Critical Refactorings:

  • ID Management: All AST nodes now have required id fields for reliable node identification
  • Clipboard Operations: New cross-browser clipboard API with Safari fallbacks
  • Tree Utilities: Refactored tree manipulation utilities into reusable, UI-agnostic functions

Editor Enhancements:

  • Added Backspace key support for delete operations
  • Improved event handling and node selection
  • Enhanced keyboard shortcuts

Deployment:

  • Replaced adapter-auto with adapter-static for simple static hosting
  • Added early preview disclaimer dialog
  • Added preview links in documentation

Documentation:

  • Updated showcase document with improved descriptions
  • Updated schema tests for new content
  • Removed emojis from README files for consistency

Breaking Changes

  • Required IDs: All UJLC documents must now have meta.id for all nodes. Existing documents without IDs need to be updated.

Technical Details

  • New files: packages/crafter/src/lib/tools/clipboard.ts, packages/crafter/src/lib/tools/ujlc-tree.ts
  • Removed: packages/crafter/src/lib/components/app/sidebar-left/editor/nav-tree/ujlc-tree-utils.ts
  • Updated: All core modules, adapters, and editor components for required IDs
  • New dependency: @sveltejs/adapter-static

Definition of Done

Testing

  • I have tested this change locally
  • All existing tests pass
  • I have run pnpm lint and pnpm check
  • ID management verified across all components
  • Clipboard operations tested in Chrome, Firefox, and Safari
  • Tree utilities tested for immutability and correctness
  • Editor keyboard shortcuts verified

Checklist

  • I have performed a self-review of my own code
  • I have commented my code, particularly in hard-to-understand areas
  • I have made corresponding changes to the documentation
  • My changes generate no new warnings

Merge request reports

Loading