Build the shared drawer/dialog "composer" host (open/close state, drawer-vs-dialog layout switch, left-rail vs. top-tab navigation) as an injectable service + component, and rewire every existing Create/Edit trigger — meetings-dashboard button, dashboard-quicklinks link, create-artifact-dialog's meeting path, and each meeting card's "Edit" icon — to open the composer in place instead of router.navigate(['/meetings','create']) / [...'meetings', id, 'edit']. Keep /meetings/create and /meetings/:id/edit as deep-linkable routes (for bookmarks/emails) that open the composer over the current view rather than rendering a full page. No changes to the dashboard/list layout itself. Advanced create is drawer-only — the prototype's alternate "Advanced (Dialog)" variant is not built.
Part of #1451.
Build the shared drawer/dialog "composer" host (open/close state, drawer-vs-dialog layout switch, left-rail vs. top-tab navigation) as an injectable service + component, and rewire every existing Create/Edit trigger — meetings-dashboard button, dashboard-quicklinks link, create-artifact-dialog's meeting path, and each meeting card's "Edit" icon — to open the composer in place instead of router.navigate(['/meetings','create']) / [...'meetings', id, 'edit']. Keep /meetings/create and /meetings/:id/edit as deep-linkable routes (for bookmarks/emails) that open the composer over the current view rather than rendering a full page. No changes to the dashboard/list layout itself. Advanced create is drawer-only — the prototype's alternate "Advanced (Dialog)" variant is not built.
Part of #1451.