Commit Graph
65 Commits
Author SHA1 Message Date
SinachPat 65a9051bf5 updated stuff 2026-05-13 15:20:54 +01:00
SinachPat 7bf43fc481 updated stuff 2026-05-13 15:12:51 +01:00
SinachPat f51dfa5e4d updated stuff 2026-05-10 01:19:20 +01:00
SinachPat a2ab1c5dc6 updated stuff 2026-05-10 01:16:09 +01:00
SinachPatandClaude Sonnet 4.6 8bbee987ff fix: resolve false 'static page' detection and missing route discovery on CLI-proxied apps
Three related fixes for the canvas live-render panel:

1. captureExistingTree() in fiber-hook — retroactively walks the already-
   mounted React fiber tree via __reactFiber$ DOM annotations. Called
   immediately on READY (handles post-hydration race) and again at 2 s
   (handles deferred hydration / Suspense). Prevents the 'Static HTML page'
   false positive on React apps that mounted before the hook script ran.

2. Static-page timer bumped from 4 s → 8 s in LiveArtboard to give the
   2-second captureExistingTree safety-net enough headroom before the
   no-React verdict fires.

3. Route discovery same-origin fix applied to both renderer/fiber-hook.ts
   and live-sdk/hook.ts — root-relative hrefs (starting with '/') are now
   accepted regardless of origin so CLI-proxied pages (where links still
   point to the original domain) expose their navigation routes correctly.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-07 08:36:20 +01:00
SinachPat 3f1fd802bf made tiny updates 2026-05-07 07:30:07 +01:00
SinachPatandClaude Sonnet 4.6 df6accb600 feat: apply canvas dot-grid background to sign-in and sign-up pages
Replace the plain body background on auth pages with the product's canvas
aesthetic — the same canvasBg colour and radial dot-grid used by the
canvas editor, toggling correctly between dark and light themes.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-07 07:27:24 +01:00
SinachPat 0f757b7d53 made tiny updates 2026-05-07 07:21:37 +01:00
SinachPatandClaude Sonnet 4.6 f73c7f83d6 fix: validate renderUrl as absolute http/https before loading in artboard iframe
EmptyArtboardContent.save() accepted any string as renderUrl — a relative
path or the Originmain app URL would cause the artboard iframe to resolve
against the Originmain origin, loading the app inside itself.

- Added URL validation (same as UrlOnboardingOverlay) with inline error UI
- toCanvasArtboard now validates renderUrl at read time so stale bad data
  already in the DB is also guarded against
- CanvasArtboard now carries artboard_type, isolation_component,
  isolation_file, isolation_props so phase-3 isolation artboards render
  correctly; previously these fields were silently dropped by the hook

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-07 07:10:27 +01:00
SinachPatandClaude Sonnet 4.6 cdf6f8caf3 fix: use dot notation for NEXT_PUBLIC env vars in browserClient
Next.js only statically inlines NEXT_PUBLIC_* variables when accessed via
dot notation (process.env.NEXT_PUBLIC_SUPABASE_URL). The generic requireEnv
helper used bracket notation (process.env[name]) which Next.js cannot
replace at build time, causing the browser bundle to always see undefined
regardless of what is set in the Vercel dashboard.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-06 23:24:43 +01:00
SinachPatandClaude Sonnet 4.6 bbef7d73f8 fix: replace stale userId reference in invite button opacity
One userId reference survived the rename to email in WorkspaceSettingsForm,
causing a TypeScript build failure on Vercel.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-06 22:19:12 +01:00
SinachPatandClaude Sonnet 4.6 233a117f5b fix: update useDiffs Omit key from author_id to author_email
InsertIntentDiff.author_id was renamed to author_email in the email
identity migration. useDiffs.ts still referenced the old field name in
its Omit<> types, causing the Next.js build to fail on Vercel and Render.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-06 22:17:04 +01:00
SinachPat 1fc2702a4b made tiny updates 2026-05-06 22:11:40 +01:00
SinachPat f21969f018 made tiny updates 2026-05-06 18:51:17 +01:00
SinachPat fdf64ee72c made tiny updates 2026-05-05 22:06:31 +01:00
SinachPatandClaude Sonnet 4.6 19b8f29523 fix: sync integrations page logos with landing page
Replace all mismatched SVG icons in integrations.html (both the card grid
and the status section) with the exact paths from page.tsx:

- GitHub: correct octocat path (M12 2C6.477, not M12 0C5.37)
- Figma: 24×24 5-segment logo (was stretched 38×57 viewBox)
- Linear: official brand mark fill=#5e6ad2 (was 100×100 white diagonal)
- Cursor: actual prism brand logo (was a generic hexagon outline)
- TypeScript: clean T+S letterform on #3178c6 bg (was noisy stripe overlay)
- React: centred atom cx/cy=12 with r=2 dot (was off-centre cy=11)
- Status section: same fixes applied to the second logo set

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-04 18:22:25 +01:00
SinachPatandClaude Sonnet 4.6 ddbb505b23 fix: resolve button text invisible bug — CSS specificity collision
.mkt-root a { color: inherit } had higher specificity than .mkt-btn-primary
{ color: var(--bg) }, causing all Link-based buttons to inherit body text
color (#0A0A0A in light mode) instead of the intended inverted color.

- Split anchor reset: text-decoration applies to all <a>, color:inherit only
  to non-.mkt-btn anchors via :not(.mkt-btn) selector
- Switch .mkt-btn-primary text color to var(--fg-inv) which is always
  guaranteed to contrast against a var(--fg) background in both themes
  (rgba(255,255,255,0.92) in light, #09090B in dark)
- Fix CSS token violations: nav background, shadows, border-radius, mono font

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-04 13:32:12 +01:00
SinachPat 278da04bde made tiny updates 2026-05-04 13:18:29 +01:00
SinachPat 3c02e7fc01 made tiny updates 2026-05-04 12:59:36 +01:00
SinachPat 5b2d918c13 made tiny updates 2026-05-04 12:30:56 +01:00
SinachPat 3f029e15c2 made tiny updates 2026-05-03 20:34:18 +01:00
SinachPat e3ee12d63b made tiny updates 2026-05-01 15:30:13 +01:00
SinachPat 20e0c4b4aa made tiny updates 2026-05-01 10:41:55 +01:00
SinachPat 548cd11719 made tiny updates 2026-05-01 09:54:14 +01:00
SinachPat 84ddd2e248 made some updates 2026-05-01 07:30:29 +01:00
SinachPat b9bc234d1d made tiny updates 2026-05-01 06:28:49 +01:00
SinachPat 3c0c55862a made some updates 2026-05-01 01:21:01 +01:00
SinachPatandClaude Sonnet 4.6 82dddb1801 feat: Figma-parity design editing — visual panel, live resize, route grid
Inspector:
- Design tab rebuilt with semantic Figma-style layout: W/H stepper inputs
  at top, Fill with colour-picker swatch, Typography row (size/weight/
  line-height), text-align toggle group, Layout section with flex controls
  + padding 4-corner grid, Appearance (radius/opacity/border/shadow)
- All fields fire patchStyleEdit on every keystroke / arrow-key step
- Sections conditionally render: Fill hidden when bg is transparent, etc.
- NumInput: strips/restores CSS unit, Shift+↑↓ for ×10 step
- ColorInput: native colour picker behind swatch + hex text input

SelectionOverlay:
- Resize handles call patchStyleEdit on every mousemove → live iframe preview
- 8 handles: 4 corners (nwse/nesw) + 4 edge midpoints (ns/ew)
- Delete button in label bar + Delete/Backspace keyboard shortcut
- Dimension tooltip: ComponentName W × H

Canvas / Artboard:
- ROUTES_DISCOVERED handler: auto-creates artboards in a row for every
  undiscovered route, pendingRouteCreation ref prevents duplicates
- buildSrc() helper resolves route-aware iframe src

live-sdk / hook:
- discoverRoutes(): scans <a href> + fiber tree for Link/NavLink components
- removeElement(), patchElementStyle(), respondWithStyles() handlers
- Route re-discovery on popstate

protocol: REQUEST_ELEMENT_STYLES, PATCH_ELEMENT_STYLE, REMOVE_ELEMENT host
messages; ELEMENT_STYLES, ROUTES_DISCOVERED renderer messages

canvas store: styleEditEvent + removeElementEvent mailboxes (Zustand v5
compatible — useEffect selectors, no 2-arg subscribe)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-01 01:05:16 +01:00
SinachPatandClaude Sonnet 4.6 edada3091e feat: Design tab, live style editing, route-aware artboards, canvas onboarding
Design tab (4-tab inspector: Design / Props / Diff / Graph)
- Click any component in a live artboard to inspect computed CSS
- Typography, Layout, Visual sections auto-populated from getComputedStyle
- Every property is inline-editable; changes apply live via PATCH_ELEMENT_STYLE
- Zero source-code modifications — purely in-browser style overrides

Protocol additions (packages/renderer)
- REQUEST_ELEMENT_STYLES / ELEMENT_STYLES round-trip for CSS inspection
- PATCH_ELEMENT_STYLE for live style patching

Live SDK (packages/live-sdk)
- respondWithStyles(): reads 30 curated computed CSS properties
- patchElementStyle(): applies inline style override to fiber's DOM element

Canvas store
- selectedComponentStyles: current element's CSS map
- styleEditEvent mailbox: Design tab → LiveArtboard style dispatch (Zustand v5 compatible)

Route-aware artboards
- Each artboard now has an optional route (e.g. /dashboard)
- buildSrc(base, route) helper in Artboard.tsx
- Route field editable in Inspector Props tab, persisted to metadata_jsonb

On-canvas onboarding
- Empty canvas now shows 3-step guide: press A → CLI command → paste URL
- CLI command shown inline in a highlighted code block

Changelog and Handoff updated

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-30 22:04:37 +01:00
SinachPatandClaude Sonnet 4.6 8514ffdc1a fix: restore artboard creation and drag on canvas
Canvas.tsx: removed the `e.target === e.currentTarget` guard on the
artboard-creation click handler. The canvas has a full-size
position:absolute transform layer that intercepts all events, making
`e.target` never equal to `e.currentTarget`. Artboard creation was
silently broken for every click.

Artboard.tsx: added `onMouseDown` stopPropagation to the artboard root
div so clicks on an existing artboard don't bubble up and trigger the
creation path now that the guard is gone.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-30 21:33:32 +01:00
SinachPat e98fbb31f7 improved a lot of things 2026-04-30 16:56:27 +01:00
SinachPat 42ba668399 improved a lot of things 2026-04-30 16:47:26 +01:00
SinachPat 0c3ac48a3b improved a lot of things 2026-04-30 01:21:48 +01:00
SinachPat 1edf7b8a94 improved a lot of things 2026-04-29 13:59:04 +01:00
SinachPat bfdc187e65 improved a lot of things 2026-04-29 12:53:58 +01:00
SinachPat 45be1b935d improved a lot of things 2026-04-29 12:09:18 +01:00
SinachPat dca0aa5768 improved a lot of things 2026-04-29 10:36:05 +01:00
SinachPat 993e3ae911 improved a lot of things 2026-04-29 05:09:44 +01:00
SinachPat 6624a63d3b improved a lot of things 2026-04-29 05:00:17 +01:00
SinachPat 957bb9e0e7 improved a lot of things 2026-04-29 04:43:29 +01:00
SinachPat 8d07d97cdc improved a lot of things 2026-04-29 04:22:43 +01:00
SinachPat 050c4ce7fe improved a lot of things 2026-04-29 04:07:16 +01:00
SinachPat 960646fee3 improved a lot of things 2026-04-27 20:16:12 +01:00
SinachPat 7afb0cc43c improved a lot of things 2026-04-27 05:11:21 +01:00
SinachPat 48e1ba115e improved a lot of things 2026-04-27 05:00:38 +01:00
SinachPat 9d9d7d7a37 improved a lot of things 2026-04-27 04:52:15 +01:00
SinachPat 197313c0ef improved a lot of things 2026-04-26 21:33:59 +01:00
SinachPat 9c0af31751 improved a lot of things 2026-04-26 21:03:46 +01:00
SinachPat 3d75fbe09d improved a lot of things 2026-04-26 19:57:18 +01:00
SinachPat bea934d124 improved a lot of things 2026-04-26 19:41:26 +01:00