Human-readable JavaScript / CSS bundle sources
============================================

Production bundles shipped under ../dist/ come from **this folder** and separate Vite/React entrypoints.

Enqueue target (built file)                       Source(s) / build tool
-----------------------------------------------------------------------
assets/dist/booking-wizard.js                     assets/src/booking-wizard/main.tsx (esbuild bundle)
assets/dist/booking-wizard.css                     assets/src/booking-wizard/booking-wizard.css

assets/dist/admin-calendar.js                     assets/src/admin-calendar/main.tsx (esbuild)
assets/dist/admin-calendar.css                    assets/src/admin-calendar/admin-calendar.css

assets/dist/facility-settings.js                  assets/src/facility-settings/main.tsx (esbuild)
assets/dist/facility-settings.css                  assets/src/facility-settings/facility-settings.css

assets/dist/ai-dictation.js                        assets/src/ai-dictation-entry.jsx (Vite entry),
                                                   assets/src/AIDictation.jsx, assets/src/ai-dictation.css
                                                   Build: vite.ai-dictation.config.js (npm run build:vite:ai)
assets/dist/ai-dictation.css                       Emitted beside ai-dictation.js by Vite

assets/dist/dicom-viewer.js                        assets/src/dicom-viewer-entry.jsx (Vite entry),
                                                   assets/src/DICOMViewer.jsx, assets/src/cornerstone3d-bootstrap.js,
                                                   assets/src/dicom-viewer.css
                                                   Build: vite.dicom.config.js (npm run build:vite:dicom)
                                                   Bundles npm Cornerstone3D packages at compile time (no assets/vendor/ copies)
assets/dist/kennelflow-vet-decode-worker.js         DICOM decode Web Worker (same Vite build; URL from PHP)
assets/dist/dicom-viewer.css                       Emitted beside dicom-viewer.js by Vite

Cornerstone3D upstream (npm devDependencies; compiled into dist, not enqueued separately):

  @cornerstonejs/core              https://github.com/cornerstonejs/cornerstone3D
  @cornerstonejs/dicom-image-loader
  dicom-parser (transitive)        https://github.com/cornerstonejs/dicomParser

Rebuild everything from plugin root:

  npm ci
  npm run build          (same as npm run build:all)

What **npm run build** runs (in order):

  1. npm run build:esbuild   — scripts/build-assets.mjs (booking-wizard, admin-calendar, facility-settings)
  2. npm run build:vite:ai   — vite.ai-dictation.config.js
  3. npm run build:vite:dicom — vite.dicom.config.js (dicom-viewer.js + kennelflow-vet-decode-worker.js)

Partial rebuilds:

  npm run build:esbuild
  npm run build:vite          (AI dictation + DICOM viewer)
  npm run build:vite:ai
  npm run build:vite:dicom

Incremental development:

  npm run watch               esbuild watch (three admin/front bundles)
  npm run watch:vite:ai       Vite watch — ai-dictation
  npm run watch:vite:dicom    Vite watch — dicom-viewer + decode worker
