Replace inline button markup with `ui.Button` component calls for
consistency and maintainability. Add filter menu component with dropdown
functionality. Convert roadmap mode toggle from link-based to select
dropdown. Include filter counter badge and clear filter actions.
match
Instead of selecting icons based on tablo name length, compute the
closest matching icon from a predefined palette by comparing hex color
values. This ensures consistent icon-color pairing and better visual
harmony.
This commit moves project search filtering from the server to the
client.
Changes include:
- Remove `Query` field from `ListTablosInput` and related handlers
- Add French date formatting for project cards
- Convert search form to client-side filter with data attributes
- Add empty state message for no search results
- Update button border-radius from 0 to 0.7rem
- Increase air.toml build command to include Tailwind CSS generation
backend
Create the foundational structure for managing design-system CSS with
co-located sources and semantic tokens:
- Add `cmd/buildstyles` to concatenate ordered CSS sources into a single
shipped stylesheet
- Define semantic color and effect tokens in `internal/web/ui/base.css`
- Move primitive and catalog CSS sources from `static/css/` to
co-located locations under `internal/web/ui/`
- Update test contract to verify token presence and proper stylesheet
generation
- Regenerate `static/styles.css` with new semantic token layer and
source annotations