mirror of
https://github.com/PR0M3TH3AN/Artstr-Studio.git
synced 2026-11-08 06:30:08 +00:00
acae6afc627b35b88d8f857845af1742f2abe74d
Phase A — State, helpers, banner: - New state.editingDTag / editingKind / editingEventId / editingTitle. - enterEditMode / exitEditMode / isEditing helpers. - Yellow banner across the top of the editor reading "Editing published design: <title> [Cancel edit]" whenever editing context is active. - Editing state is cleared on close-project, disc-designer reset, fresh load from disk, and on successful publish. Phase B — Publish-flow rewire: - publishCurrentTemplateToNostr and publishDiscDesignToNostr both reuse state.editingDTag when set, so the new kind-30078 event shares the (kind, pubkey, d-tag) address of the original and supersedes it on relays via NIP-33 replaceable semantics. No NIP-09 deletion is needed for the replace itself. - Publish buttons relabel to "Publish update" in edit mode. - First-time-per-session confirm explains the tradeoff: zaps and reactions tagged to the old event id remain on relays but no longer link to this design (totals reset). naddr share links keep working; nevent links don't. - Success message reads "Design updated." in edit mode. Phase C — UI entry points: - Owner-only Edit button in buildFeedCard's actions row, so it appears on My Designs cards, the profile page grid (own profile), and any other surface that uses the shared card factory. - Owner-only Edit button in the design preview action row, between Save JSON and the existing action stack. - Edit launches startEditFromRow which closes any open community/ profile modal, loads the design via importDiscDesignFromPayload (disc-design mode) or loadProjectFromText (everything else), and then enters edit mode with the original d-tag and event id. Preview header layout fix: - The nostrPreviewActions wrapper used to be a flex item that wrapped its 7 dynamic buttons inside itself, then Refresh / Back / Close sat beside it as separate flex items — producing three staggered rows. The wrapper now uses display:contents when visible (toggled via data-visible attribute) so all preview buttons share the same flex container, wrap together, and align to the right edge in at most two rows. Buttons in this row also get smaller padding and white-space:nowrap to keep them stable. Self-targeting hidden: - Block and Report buttons no longer render on feed cards whose author is the signed-in user; profile-page chips already had the equivalent isSelf gate. Co-Authored-By: Claude Opus 4.7 <[email protected]>
CaseWrap Studio
CaseWrap Studio is a static print-layout editor for physical media packaging. It supports DVD/Blu-ray case wraps, Avery 8960/8944 disc-label sheets, Avery 8693/8943 CD jewel-case insert sheets, and reusable single-disc designs.
What it supports
- Separate front, spine, and back case artwork (or one combined wrap image)
- Disc-label sheet mode (two print positions on one Avery 8960/8944 sheet)
- CD jewel insert mode (front + tray inserts on one Avery 8693/8943 sheet)
- Disc Designer mode for creating a reusable single-disc design
- Additional image and text layers
- Drag positioning, z-order changes, rotation, sizing, and opacity
- PDF export through the browser print dialog
- Nostr community browsing/sharing for templates and disc designs
- Publishing, replies, reactions, follows, and reposts from inside the app
Important workflow
All image sources are remote URLs.
That means:
- Case art, disc art, jewel insert art, and extra image layers should use
httporhttpsURLs - Saved project JSON remains portable across machines
- Exported/copied Nostr events can reconstruct layouts from event content
- Community feed data comes from relays listed in the Community panel
- Publishing/social actions require a NIP-07 browser extension (for example Alby or nos2x)
If a URL stops working later, the image will no longer render. For long-term reliability, use stable hosted URLs.
Main file
src/index.htmlis the complete app entrypoint. Open it directly in a browser or serve it from any static host.
Export and print
- Use
Print / Save PDFfor print-ready output - Keep browser scale at
100% - Disable browser headers and footers
Save, restore, and sharing
Save projectwrites project JSONLoad projectrestores project JSONCopy Nostr eventcopies a signed event payloadImport from Nostrrestores a template/design from a copied event- The Community modal lets you browse New/Popular/Search/Mine, preview templates, and import them
- Disc designs can be published and reused independently, then imported into Disc 1 or Disc 2 positions on a disc sheet
Nostr data model
- Template/design payloads are published as kind
30078app-data events withcasewraptags - Typical social events use standard kinds (
1,7,6,3,0) - Template modes include
cover,disc,jewel, anddisc-design - Current schema version is
5; minimum supported schema version is4
Notes
- The app is fully static and does not require a backend
- Local browser autosave is still available
- Older saved projects with embedded data URLs may still load, but new work should use remote URLs
Description
A static site DVD and Blu-Ray Case and disk label designer
Readme
5.7 MiB
0 Stars
1 Watchers
0 Forks
Languages
JavaScript
99.7%
HTML
0.3%