feat(tickets): popup réutilisable de sélection de ticket (#18)
Ajoute TicketPicker, popup modale réutilisable de sélection de ticket, socle du chemin critique du sprint UI rework (#17 et #19 en dépendent). - TicketPicker.tsx : popup de recherche/sélection réutilisable - useTicketSearch.ts : hook de recherche/filtrage extrait et partagé - TicketFacetsBar.tsx : barre de facettes extraite de TicketsPanel pour réutilisation (listing principal + picker) - shared/ui/zIndex.ts : échelle z-index centralisée - TicketsPanel : consomme la barre de facettes extraite Tests : TicketPicker.test.tsx 8/8, suite tickets 37/37, tsc --noEmit clean. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@ -31,3 +31,6 @@ export type { ToolbarProps } from "./ui/Toolbar";
|
||||
|
||||
export { Spinner } from "./ui/Spinner";
|
||||
export type { SpinnerProps } from "./ui/Spinner";
|
||||
|
||||
export { zIndex } from "./ui/zIndex";
|
||||
export type { ZIndexLevel } from "./ui/zIndex";
|
||||
|
||||
28
frontend/src/shared/ui/zIndex.ts
Normal file
28
frontend/src/shared/ui/zIndex.ts
Normal file
@ -0,0 +1,28 @@
|
||||
/**
|
||||
* Centralized z-index scale for full-window chrome overlays (G2 — UI rework).
|
||||
*
|
||||
* In-cell veils/portals keep their historical low values (chrome 2–5, F3 z-20,
|
||||
* write-portal z-4, resume z-5); this scale is for floating windows and menus
|
||||
* mounted at the **chrome level** (ProjectsView/App), never inside
|
||||
* LayoutGrid/LeafView (G5).
|
||||
*
|
||||
* ⚠️ PROVISIONAL (lot B / ticket #18): created here because lot A (ticket #16)
|
||||
* introduces the canonical `shared/ui/zIndex.ts` (+ `FloatingWindow`) in
|
||||
* parallel. The values below MUST match the frozen scale; at merge, keep a
|
||||
* single module (drop this one if lot A's is richer). See the sprint scoping
|
||||
* note `ui-rework-sprint-scoping-contracts`.
|
||||
*/
|
||||
export const zIndex = {
|
||||
/** Dropdown menus / popovers anchored to a control. */
|
||||
menuDropdown: 40,
|
||||
/** A top-level floating window (movable panel, editor overlay). */
|
||||
floatingWindow: 50,
|
||||
/** A floating window opened from within another floating window (e.g. a
|
||||
* ticket picker launched from a sprint/link dialog). Sits above it. */
|
||||
floatingWindowNested: 60,
|
||||
/** Transient toasts, always on top. */
|
||||
toast: 70,
|
||||
} as const;
|
||||
|
||||
/** A level name in the {@link zIndex} scale. */
|
||||
export type ZIndexLevel = keyof typeof zIndex;
|
||||
Reference in New Issue
Block a user