Commit Graph
58 Commits
Author SHA1 Message Date
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
SinachPat 4166ffd3c1 improved a lot of things 2026-04-26 18:11:59 +01:00
SinachPat ca4c0ee09a improved a lot of things 2026-04-26 17:36:05 +01:00
SinachPat 7c160e853e improved a lot of things 2026-04-26 16:53:56 +01:00
SinachPat 855ca56f5a improved a lot of things 2026-04-26 16:45:57 +01:00
SinachPat 7a4c1d3147 improved a lot of things 2026-04-26 12:31:31 +01:00
SinachPat f9528702c8 improved a lot of things 2026-04-26 10:35:20 +01:00
SinachPat da8b8c8dfa improved a lot of things 2026-04-26 10:23:22 +01:00