Template modernization review #
Reviewed on October 12, 2026.
Completed #
- Updated every declared dependency to the npm registry's latest stable release.
npm outdatedreturns no outdated packages. - Migrated FullCalendar 7 to its new global bundles and Classic theme assets, with colors driven by Bootstrap theme variables. Added its Temporal polyfill dependency.
- Bundled the Uppy demo through Vite using only Core, Dashboard, Webcam, Tus, DragDrop, and StatusBar. Removed the all-in-one package and 32 unused dependencies. Replaced the unavailable ProgressBar export with StatusBar, updated completion events, and removed duplicate legacy CDN scripts. Uppy dashboards now follow the template's live light/dark theme.
- Copied source assets before installed vendor assets so old checked-in copies cannot overwrite dependency updates. Required vendor files now fail the build when missing.
- Updated HTML watching for Chokidar 5 and fixed overlapping template-variable replacement. Added regression tests.
- Passed configuration defaults from Vite into the shared footer instead of hardcoding theme settings.
- Honored reduced-motion preferences in counter and progress animations, and rendered calendar event text without interpreting user input as HTML.
- Removed unused Vite helpers and an obsolete root script, corrected ES module utility scripts, updated installation instructions, and added a Node 22/24 CI build check.
- Redirected development source/build HTML URLs to processed public routes and fixed the missing filesystem import in the development asset handler. Missing or circular includes now fail visibly; nested includes inherit context and sibling includes can reuse partials.
- Reused the shared theme footer at the site root, fixed root-footer and invoice navigation links, and added local HTML page-link validation to the build check.
- Named the shared header's icon controls for screen readers and corrected popup accessibility metadata.
- Removed the unused checked-in Jarallax library and duplicate Simple DataTables module. The build copies the maintained Simple DataTables module from its installed package.
Dependency advisory #
npm audit reports one low-severity advisory for Quill 2.0.3: HTML export XSS. The latest release remains 2.0.3, and npm proposes downgrading to 2.0.2. The template's editor demos do not currently call getSemanticHTML; keep exported editor HTML out of trusted HTML sinks and sanitize it before introducing HTML export or rendering stored content. Recheck the advisory when updating Quill.
Next improvements #
- Consolidate overlapping table demos around the vanilla table implementation when feature parity is established. Keep jQuery scoped to existing DataTables pages so their advanced extensions continue working.
- Add repeatable browser automation for calendar editing, file-upload initialization, table filtering/export, theme switching, and mobile navigation. Static asset and page-link validation cannot catch changed vendor APIs.
- Continue keyboard navigation, contrast, mobile overflow, and RTL audits across all feature pages. The current browser checks cover representative pages rather than the full catalog.
- Modernize historical migration and architecture examples and audit documentation links separately from generated site navigation.
Validation #
Run npm run check to execute template regression tests, build production output, and validate assets, local HTML page links, and unresolved directives across 211 generated pages. Use npm run preview for browser checks. Uploading to the sample Tus endpoint is an external demo operation; initialization checks do not verify a production upload backend.
This review passed six regression tests and production asset/page-link validation. Browser checks confirmed processed development source URLs, Uppy dashboard and popup initialization, calendar rendering and editing an event without an end date, DataTables export-page initialization and search filtering, and dashboard light/dark switching without console errors. The Uppy page had no horizontal overflow at 390px and 1280px widths, and its RTL and dark-theme controls worked. Full export downloads, actual uploads, and exhaustive RTL coverage remain outside these smoke checks.
