mirror of
https://github.com/PR0M3TH3AN/Artstr-Studio.git
synced 2026-11-02 19:50:39 +00:00
40c0df6fee7c706c7d4c38878a2bc8290aff45e1
Publish confirm modal: - Replaces the bare confirm() before posting to Nostr. Shows a live preview of the design (uses the same renderers as the design browser), a metadata table (Type, Title, Category, Language, IMDb / UPC / TheTVDB / MusicBrainz when filled, Author), and an inline edit warning when the user is updating an existing design. - Pre-flight validation surfaces missing title/category/artwork before opening the modal; publish errors render inline so the user can retry without losing context. - ESC / × / backdrop close it; same modal-z-stack treatment as the other overlays so it lands on top. Toast system: - Replaces every native alert() across the app (41 callsites) with in-app toasts. toastError flags failures with a red border; toastSuccess paints publish/copy confirmations with the accent color. Toasts auto-dismiss (~3.5 s info/success, ~5.5 s error) and stack at the bottom-right with a manual close button. Project metadata stickiness: - Clear all images, Clear disc, and Clear jewel handlers now also reset state.meta (preserving the user's omdbApiKey) and re-sync the input fields. Previously, title / IMDb / UPC / TheTVDB / MusicBrainz carried over from a cleared project into the next one. - The two existing reset helpers were missing the newer identifier fields (UPC, TheTVDB, MusicBrainz). All three call sites now use a single blankMeta() helper as the source of truth. Disc Designer layers panel: - Designer mode now has the same Add image / Add text / Add color controls as the template editor — a single panel since discs are one target. URL input + Copy button + the three add buttons. Previously the panel showed the layer list but no way to add layers in the first place. Zapped tab fixes: - _feedPagination was only initialised for New and Popular, so the Zapped rerender threw "Cannot set properties of undefined" on every paint and the panel never populated. Added the Zapped pagination state. - fetchZapsForEvents now batches chunks in parallel instead of sequentially, and streams a debounced rerender on every ingested receipt, so zap totals appear within a second or two instead of taking up to ~28 s for a 200-design feed. - invalidateFeedCache now also clears the zap cache (byEvent / byAuthor / receiptIds / fetchedFor* sets). Without that, hitting Refresh never re-queried receipts because every event id was already marked "fetched". 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%