feat: v2 complete rewrite — modern static web app#24
Open
UberKitten wants to merge 13 commits into
Open
Conversation
Complete rewrite of barcOwned as a static SPA: - Vite + TypeScript + vanilla JS (no framework) - Single-page app with Editor, Runner, and Share tabs - LocalStorage for payload persistence - URL hash sharing for QR-code-to-phone workflow - Mobile-first barcode display with fullscreen support - CodeMirror 6 for JSON editing with live preview - bwip-js npm package for barcode rendering Core engine ported to TypeScript with full documentation. Symbol scanner model preserved with all ADF capabilities. WIP - still needs: - List mode for printing - C40 DataMatrix aggregation - More documentation - GitHub Pages deployment config
The <dialog> element is hidden by default, but setting display:flex overrode that behavior. Now only apply flex when [open] attribute is present. Also added puppeteer-core dev dep for testing.
- Replace three-tab layout with sidebar + single scrollable view - Left sidebar always visible with payload list (presets + user payloads) - Main area shows selected payload with three sections: - Editor: collapsible, starts collapsed for presets, expanded for new/user payloads - Run: scanner controls, barcode display, progress, navigation - Share: local QR rendering via bwip-js (no external API) - Remove top tab navigation (kept nav bar with logo + links) - Mobile responsive: sidebar collapses to hamburger menu - Fix QR codes: replaced external api.qrserver.com with bwip-js local rendering
- Restructured UI from runner-focused to editor-centric layout - Three-column IDE: payload list | code editor | barcode preview - Editor is now the main area with full-height CodeMirror - Added VS Code-style toolbar with Save, Validate, Run, Share buttons - Added status bar showing validation state and cursor position - Right sidebar shows live barcode preview with setup/payload labels - Run mode is now a temporary view, not a primary panel - Share shows in a modal/popover instead of inline section - Default selects 'Hello World' preset on load - Preview labels show 'Setup 1/8', 'Payload 1/1' style annotations - Setup barcodes have warning-colored border, payload barcodes green
…r location - Replace all emoji icons with Lucide SVG icons (icons.ts module) - Remove redundant Validate button (live validation on keystroke) - Replace all alert() calls with inline UI feedback: - Import errors show below textarea - Runner 'no barcodes' shows as inline message - Export button disabled when no payloads - Add error location highlighting in editor: - Parse JSON error line/col from browser error messages - Show diagnostic via CodeMirror lint gutter - Status bar clickable to jump to error - Increase font sizes and spacing: - Base: 15px, CodeMirror: 14px - space-sm: 10px, space-md: 20px - Larger nav, toolbar, sidebar padding - More margin between preview items - Install @codemirror/lint for diagnostics
adc9c00 to
9bf5769
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
barcOwned v2
Complete rewrite as a modern static web app. No server required!
What's New
Tech Stack
Features
Core Engine
Screenshots
Run it locally:
Still TODO
Migration
The payload JSON format is unchanged — existing payloads work as-is!