Repository navigation
feat(ui): implement SVG outlines, nested require resolvers, sidebar PWA, and mismatch badges - #206
Merged
Merged
Conversation
… install, and warning/mismatch badges
…_to_outline utility
github-actions Bot
pushed a commit
that referenced
this pull request
Jul 16, 2026
This PR implements user-facing UI enhancements, including native SVG outline parsing and uploading, dynamic nested require overrides inside worker modules, PWA installation prompts integrated directly into the Settings panel under a dedicated Offline group, and versioning/compatibility alerts. ## Key Changes ### 1. SVG Outline Injections & svg_paths_to_outline Wrapping (#195) - Implemented native vector `.svg` parsing logic in `src/utils/svgParser.ts`. - Extracts SVG path definitions (`d` attributes) from uploaded vector files and dynamically wraps them in the project's native `svg_paths_to_outline` helper wrapper: ```javascript const u = require('../utils'); module.exports = (config, name, points, outlines, units) => { const paths = [ "<path d data>" ]; return u.svg_paths_to_outline(paths, config, name, points, outlines, units); }; ``` - Permits direct drag-and-drop loading of ZIP archives containing `.svg` outline files. ### 2. Custom Require Evaluation Overrides - Updated the custom `require` evaluator (`src/utils/injectionEvaluator.ts`) to dynamically resolve relative package requires like `require('../../packages.json')` or `require('../../package.json')`. - Bypasses evaluation failures in custom templates that require package metadata from relative parent levels. ### 3. Settings PWA Installation Group (#172) - Added an **"Offline"** settings group to the Settings panel with a single **"Offline App"** option. - Provides a clean button interface to trigger app installation. Displays dynamic states: - **Install App** (available to install, triggers prompt). - **Installing...** (install choice is pending). - **Installed** (app is already running standalone or installed). - **Unavailable** (PWA installation unsupported by browser/OS, showing an inline warning description in warning color). - Removed the old install chips from both the Header and SideNavigation. ### 4. Warning Banners & Dialog Mismatch Badges (#173, #174) - Implemented floating warnings in `Banners.tsx` that notify users when custom outlines or templates are skipped due to active feature flags. - Enhanced the version compatibility check dialog (`ShareVersionCompatibilityDialog.tsx`) with status badges and warnings. --- Closes #195 Closes #172 Closes #173 Closes #174
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.
This PR implements user-facing UI enhancements, including native SVG outline parsing and uploading, dynamic nested require overrides inside worker modules, PWA installation prompts integrated directly into the Settings panel under a dedicated Offline group, and versioning/compatibility alerts.
Key Changes
1. SVG Outline Injections & svg_paths_to_outline Wrapping (#195)
.svgparsing logic insrc/utils/svgParser.ts.dattributes) from uploaded vector files and dynamically wraps them in the project's nativesvg_paths_to_outlinehelper wrapper:.svgoutline files.2. Custom Require Evaluation Overrides
requireevaluator (src/utils/injectionEvaluator.ts) to dynamically resolve relative package requires likerequire('../../packages.json')orrequire('../../package.json').3. Settings PWA Installation Group (#172)
4. Warning Banners & Dialog Mismatch Badges (#173, #174)
Banners.tsxthat notify users when custom outlines or templates are skipped due to active feature flags.ShareVersionCompatibilityDialog.tsx) with status badges and warnings.Closes #195
Closes #172
Closes #173
Closes #174