Commit Graph

28 Commits

Author SHA1 Message Date
Richard Osborne
05379c967f feat(styles): STYLE-005 smart style suggestion engine
- StyleAnalyzer: scans project for repeated raw colors/spacing (3+ occurrences)
  and nodes with 3+ non-token overrides (variant candidates)
- StyleAnalyzer.toSuggestions() converts analysis to ordered StyleSuggestion[]
- StyleAnalyzer.analyzeNode() for per-node suggestions from property panel
- SuggestionActionHandler: creates tokens from repeated values + replaces
  all occurrences; sets _variant param for variant candidates
- SuggestionBanner: compact inline UI component with accept/dismiss/never
- useStyleSuggestions: hook with localStorage persist for dismissed state
- TokenModelLike interface keeps analyzer decoupled from StyleTokensModel singleton
- StyleAnalysisOptions allows injecting tokenModel for existing-token matching
2026-02-18 17:05:17 +01:00
Richard Osborne
d9acb41d2f feat(launcher): add ProjectCreationWizard multi-step flow
Replaces CreateProjectModal with a guided wizard supporting:
- Quick Start (name + location, direct creation)
- Guided Setup (basics → style preset → review → create)
- AI Builder stub (V2, same flow as Guided for now)

Files added:
- WizardContext.tsx — state machine with step sequencing + canProceed validation
- EntryModeStep — card-based mode selector
- ProjectBasicsStep — name/description/location picker
- StylePresetStep — preset card grid
- ReviewStep — summary before creation
- ProjectCreationWizard.tsx — drop-in replacement for CreateProjectModal
- SCSS + index.ts barrel

Integration:
- ProjectsPage.tsx imports ProjectCreationWizard (API-identical swap)

Tests:
- tests/models/ProjectCreationWizard.test.ts — 17 pure logic tests
  (infra note: npm run test:editor required, not npx jest directly)

Pre-existing broken tests in tests/components/ and tests/git/ are
unrelated and not modified.
2026-02-18 16:45:12 +01:00
Richard Osborne
8ee374d21e feat(styles): STYLE-001 Phase 3+4 — TokenPicker component and preview CSS injection
- TokenPicker: searchable grouped dropdown for selecting design tokens
  with colour swatch previews, clear button, category filtering, custom
  group override support (noodl-core-ui)
- PreviewTokenInjector: singleton service that injects project design
  tokens as a <style id='noodl-design-tokens'> into the preview webview
  via executeJavaScript on every dom-ready and tokensChanged event
- CanvasView: calls notifyDomReady() after valid dom-ready sessions and
  clearWebview() on dispose
- ProjectDesignTokenContext: attaches PreviewTokenInjector to the
  StyleTokensModel on mount
2026-02-18 16:20:13 +01:00
Richard Osborne
297dfe0269 Added sprint protocol 2026-02-18 15:59:52 +01:00
Richard Osborne
bf07f1cb4a Added new github integration tasks 2026-01-18 14:38:32 +01:00
Richard Osborne
addd4d9c4a Fixed Logic Builder node bugs, expression field bugs, code editor bugs, property panel bugs 2026-01-16 17:23:31 +01:00
Richard Osborne
32a0a0885f Finished prototype local backends and expression editor 2026-01-16 12:00:31 +01:00
Richard Osborne
ddcb9cd02e feat: Phase 5 BYOB foundation + Phase 3 GitHub integration
Phase 5 - BYOB Backend (TASK-007A/B):
- LocalSQL Adapter with full CloudStore API compatibility
- QueryBuilder translates Parse-style queries to SQL
- SchemaManager with PostgreSQL/Supabase export
- LocalBackendServer with REST endpoints
- BackendManager with IPC handlers for Electron
- In-memory fallback when better-sqlite3 unavailable

Phase 3 - GitHub Panel (GIT-004):
- Issues tab with list/detail views
- Pull Requests tab with list/detail views
- GitHub API client with OAuth support
- Repository info hook integration

Phase 3 - Editor UX Bugfixes (TASK-013):
- Legacy runtime detection banners
- Read-only enforcement for legacy projects
- Code editor modal close improvements
- Property panel stuck state fix
- Blockly node deletion and UI polish

Phase 11 - Cloud Functions Planning:
- Architecture documentation for workflow automation
- Execution history storage schema design
- Canvas overlay concept for debugging

Docs: Updated LEARNINGS.md and COMMON-ISSUES.md
2026-01-15 17:37:15 +01:00
Richard Osborne
6f08163590 new code editor 2026-01-11 09:48:20 +01:00
Richard Osborne
67b8ddc9c3 Added custom json edit to config tab 2026-01-08 13:27:38 +01:00
Richard Osborne
4a1080d547 Refactored dev-docs folder after multiple additions to organise correctly 2026-01-07 20:28:40 +01:00
Richard Osborne
eb90c5a9c8 Added three new experimental views 2026-01-04 00:17:33 +01:00
Richard Osborne
2845b1b879 Added initial github integration 2026-01-01 21:15:51 +01:00
Richard Osborne
cfaf78fb15 Finished node canvas UI tweaks. Failed to add connection highlighting 2026-01-01 16:11:21 +01:00
Richard Osborne
2e46ab7ea7 Fixed visual issues with new dashboard and added folder attribution 2025-12-31 21:40:47 +01:00
Richard Osborne
73b5a42122 initial ux ui improvements and revised dashboard 2025-12-31 09:34:27 +01:00
Richard Osborne
ea45e8b3a3 fix(preview): add missing font MIME types to web server
- Added MIME type mappings for .otf, .woff, and .woff2 font formats
- Fixed missing break statement after .wav case (was falling through to .mp4)
- Fonts now load correctly in editor preview without 404 errors
- Resolves OTS parsing error messages in console

The web server was already serving project directory files correctly,
but browsers were rejecting font files due to missing/incorrect MIME types.

Related to TASK-006
2025-12-15 22:57:48 +01:00
Richard Osborne
0b47d19776 Finished inital project migration workflow 2025-12-15 11:58:55 +01:00
Richard Osborne
e927df760f Tasks completed to update Storybook and Typescript versions. Please see phase-1-summary.md for details 2025-12-08 16:19:56 +01:00
Richard Osborne
ef1ffdd593 feat(typescript): upgrade TypeScript to 5.9.3, remove transpileOnly workaround
- Upgrade TypeScript from 4.9.5 to 5.9.3
- Upgrade @typescript-eslint/parser from 5.62.0 to 7.18.0
- Upgrade @typescript-eslint/eslint-plugin from 5.62.0 to 7.18.0
- Remove transpileOnly: true workaround from webpack.renderer.core.js
- Fix 9 type errors from TS5's stricter checks:
  - PropertyPanelBaseInput.tsx: Fix event handler types
  - keyboardhandler.ts: Fix KeyMod return type
  - model.ts: Remove unused @ts-expect-error directives
  - ScreenSizes.ts: Add proper type guard predicate

Closes TASK-006
2025-12-08 16:09:31 +01:00
Richard Osborne
8fed72d025 Updated project to React 19 2025-12-07 17:32:53 +01:00
Richard Osborne
2153baf627 Finished task 1. Added task for backwards compatibility on existing Noodl projects 2025-12-06 23:24:55 +01:00
Richard Osborne
da40209322 Merge remote-tracking branch 'origin/13-remove-tsfixmes' into cline-dev 2025-12-06 22:23:59 +01:00
Axel Wretman
960f38c120 Remove TSFixme from property panel UI. 2025-09-09 10:11:22 +02:00
Axel Wretman
162eb5f6cb Updated node version, react version and react dependant dependencies. 2025-08-25 18:21:52 +02:00
Richard Osborne
37668399e5 Changed name back to OpenNoodl, updated icons 2024-09-24 22:10:20 +02:00
Richard Osborne
91fc18437b Updated icons and references to Noodl, plus build scripts 2024-05-02 22:23:53 +02:00
Michael Cartner
b9c60b07dc Initial commit
Co-Authored-By: Eric Tuvesson <eric.tuvesson@gmail.com>
Co-Authored-By: mikaeltellhed <2311083+mikaeltellhed@users.noreply.github.com>
Co-Authored-By: kotte <14197736+mrtamagotchi@users.noreply.github.com>
Co-Authored-By: Anders Larsson <64838990+anders-topp@users.noreply.github.com>
Co-Authored-By: Johan  <4934465+joolsus@users.noreply.github.com>
Co-Authored-By: Tore Knudsen <18231882+torekndsn@users.noreply.github.com>
Co-Authored-By: victoratndl <99176179+victoratndl@users.noreply.github.com>
2024-01-26 11:52:55 +01:00