Commit Graph

7 Commits

Author SHA1 Message Date
Jeff Emmett 763567baea feat: fix rApp canvas bugs + add widget data card mode
Fix zoom over iframes (transparent overlay captures wheel events),
eliminate black boxes (flex layout replaces calc height), and enable
resize handles (overlay lets pointerdown bubble to shape). Add widget
mode that fetches compact data from each module's API with 60s
auto-refresh, plus mode toggle button in header.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-03 16:26:33 -08:00
Jeff Emmett 92f75141eb fix: debounce synced event spam + fix rApp iframe 404s on subdomains
Synced event was firing 100+ times during initial Automerge sync negotiation.
Debounce with 300ms timer so it fires once after the burst settles.

folk-rapp iframes built URLs as /{space}/{moduleId} which on subdomain
URLs (jeff.rspace.online) got double-prefixed to /{space}/{space}/{moduleId}
causing 404s. Now detects subdomains and uses /{moduleId} directly.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-03 15:10:51 -08:00
Jeff Emmett 19e9455f1d fix: make folk-rapp header a drag handle so shapes can be grabbed
folk-rapp used class "rapp-header" but the drag detection in
folk-shape checks for ".header" or "[data-drag]". Added both so
the rapp header works as a drag handle like every other shape type.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-01 18:11:30 -08:00
Jeff Emmett 09d23f8fc1 fix: rApp shapes auto-derive space context and load as applets directly
- folk-rapp now auto-derives spaceSlug from the current URL path
  (/{space}/canvas → space) so embedded rApps always know their space
- Fixed race condition where createRenderRoot overwrote moduleId
  that was already set via JS property setter (showed picker instead
  of loading the module directly)
- newShapeElement always passes communitySlug as fallback spaceSlug
  when restoring folk-rapp shapes from sync

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-27 16:12:55 -08:00
Jeff Emmett f84b0b9914 refactor: remove rProviders from rApps, fix rSwag domain to rswag.online
rProviders (providers.mycofi.earth) is a separate project — removed
module registration, app switcher entry, tab bar badge, canvas embed
button, Traefik router, and standalone config. rSwag domain updated
from swag.mycofi.earth to rswag.online across all references.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-25 23:39:43 -08:00
Jeff Emmett c934ed3fd0 feat: folk-rapp postMessage bridge, module switcher, open-in-tab
Enhance the folk-rapp canvas shape with three improvements:

1. PostMessage bridge: parent sends context to iframe on load,
   listens for shape-updated events from CommunitySync. Green
   status dot indicates active connection.

2. Module switcher: header dropdown (⇄ button) lets users change
   which rApp is embedded without recreating the shape.

3. Open-in-tab: ↗ button navigates to the module page (adds a tab)
   instead of opening a new browser window.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-25 19:50:07 -08:00
Jeff Emmett 0a795006d3 feat: folk-rapp shape — embed live rApp modules on the canvas
POC for cross-app embedding (TASK-46). New folk-rapp shape type that
embeds any rApp module as a live iframe inside a canvas shape. Features:
- Module picker dropdown when no module selected
- Colored header with module badge/icon
- Open-in-tab action button
- Syncs moduleId + spaceSlug via Automerge CRDT
- Toolbar rApps section now creates folk-rapp (not generic folk-embed)
- Fixed stale "canvas" moduleId refs → "rspace" in canvas.html

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-25 19:45:22 -08:00