Replace batch-level progress (processedBatches/totalBatches) with
film-level progress (processedFilms/totalFilms) for smoother UI updates.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
The popover was invisible because it rendered inside the table's
overflow-x:auto scroll container. FloatingPortal moves it to document.body.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Remove the notification system entirely and show import progress
directly in the user dropdown menu. Block new imports while one
is already running.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Move hint buttons from a separate flex column into the table as the
first <td> of each row, ensuring pixel-perfect alignment with grid rows.
Use position:sticky with box-shadow to keep hints fixed on the left
while scrolling horizontally.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Add CSS variables (--cell, --cell-font, --trigger-h) for responsive cell sizing
- Shrink grid cells at 600px and 420px breakpoints
- Add .page-body wrapper with 16px horizontal padding to prevent edge collisions
- Separate hint column from scrollable grid: hints rendered outside the table in a fixed flex column, only the letter grid scrolls horizontally
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Display spaces, hyphens and other non-letter characters as static cells
instead of input fields, and add separator rows in the grid for
non-alphabetic characters in the main actor's name.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Auto-discovery may not work reliably with vite-plugin-symfony.
Explicit registration ensures dropdown, notifications, and
import-modal controllers are loaded.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The CSS display:flex on .modal-overlay was overriding the HTML hidden
attribute, making the modal always visible.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The @symfony/stimulus-bundle loader generates an empty controllers.js,
so Stimulus controllers from controllers.json (including ux-react) were
never registered. Switching to vite-plugin-symfony/stimulus/helpers
uses the virtual:symfony/controllers module that properly reads
controllers.json. Also wrap react_component() output in a <div> since
it only renders data-attributes, not a full HTML element.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Replace @vitejs/plugin-react with @vitejs/plugin-react-swc to fix
React Refresh preamble detection error in cross-origin Docker setup
- Register React components manually via window.resolveReactComponent
since ux-react's registerReactControllerComponents uses Webpack's
require.context API which is incompatible with Vite
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>