gsxdsm
9d1bd393d8
FN-9202: Unify dashboard banner styling
Standardize dashboard notices on a shared, token-driven banner shell.
- Add a reusable Banner primitive with consistent tones, layouts, actions, and dismissal behavior.
- Migrate dashboard notification banners away from bespoke shells and left accent borders.
- Document and test banner styling invariants, including token-only CSS lengths and colors.
- Add a patch changeset for the published dashboard bundle.
Files changed:
.changeset/fn-9202-banner-style-unification.md | 7 ++
docs/dashboard-guide.md | 4 +
.../app/__tests__/banner-style-consistency.test.ts | 25 ++++
.../app/components/ApprovalNotificationBanner.css | 10 --
.../app/components/ApprovalNotificationBanner.tsx | 5 +-
packages/dashboard/app/components/Banner.css | 81 ++++++++++++
packages/dashboard/app/components/Banner.tsx | 78 ++++++++++++
.../app/components/CapacityRiskBanner.css | 50 +-------
.../app/components/CapacityRiskBanner.tsx | 39 +++---
.../app/components/CliBinaryInstallBanner.css | 126 ++-----------------
.../app/components/CliBinaryInstallBanner.tsx | 14 +--
.../app/components/DbCorruptionBanner.css | 18 +--
.../app/components/DbCorruptionBanner.tsx | 5 +-
.../app/components/EngineStatusBanner.css | 94 ++------------
.../app/components/EngineStatusBanner.tsx | 48 +++----
.../app/components/EngineUnavailableBanner.css | 42 +------
.../app/components/EngineUnavailableBanner.tsx | 21 ++--
.../app/components/MergeAdvanceNotice.css | 129 +++----------------
.../app/components/MergeAdvanceNotice.tsx | 36 +++---
.../app/components/MigrationInProgressBanner.css | 25 ----
.../app/components/MigrationInProgressBanner.tsx | 19 +--
.../app/components/OAuthReloginBanner.css | 53 +-------
.../app/components/OAuthReloginBanner.tsx | 26 +---
.../app/components/SessionNotificationBanner.css | 16 +--
.../app/components/SessionNotificationBanner.tsx | 5 +-
.../app/components/SetupWarningBanner.css | 106 +---------------
.../app/components/SetupWarningBanner.tsx | 31 +----
.../app/components/SqliteMigrationBanner.css | 40 +-----
.../app/components/SqliteMigrationBanner.tsx | 33 ++---
.../app/components/TaskIdIntegrityBanner.css | 18 +--
.../app/components/TaskIdIntegrityBanner.tsx | 5 +-
.../dashboard/app/components/TestModeBanner.css | 18 ---
.../dashboard/app/components/TestModeBanner.tsx | 12 +-
.../app/components/UpdateAvailableBanner.css | 139 +++------------------
.../app/components/UpdateAvailableBanner.tsx | 22 ++--
.../app/components/__tests__/Banner.test.tsx | 48 +++++++
36 files changed, 450 insertions(+), 998 deletions(-)
Fusion-Task-Id: FN-9202
Fusion-Task-Lineage: 14762201-55e5-4124-a897-9667c3a1ab84
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-08-23 16:00:53 -07:00
..
2026-04-24 19:39:20 -07:00
2026-08-21 04:32:52 +00:00
2026-06-13 11:03:30 -07:00
2026-06-22 23:58:38 -07:00
2026-08-15 23:14:24 -07:00
2026-08-15 22:18:59 -07:00
2026-05-30 14:20:12 -07:00
2026-06-22 15:23:43 -07:00
2026-06-03 19:48:40 -07:00
2026-07-15 15:30:55 -07:00
2026-08-20 03:55:39 +00:00
2026-06-30 01:23:09 -07:00
2026-07-30 03:10:35 -07:00
2026-07-30 03:10:35 -07:00
2026-08-20 03:55:38 +00:00
2026-06-11 09:21:23 -07:00
2026-08-21 04:32:52 +00:00
2026-07-30 03:10:35 -07:00
2026-07-30 03:10:35 -07:00
2026-08-12 22:18:18 -07:00
2026-07-14 18:47:53 -07:00
2026-05-16 12:49:57 -07:00
2026-07-16 03:17:35 -07:00
2026-08-23 11:40:06 -07:00
2026-08-08 01:59:38 -07:00
2026-05-07 18:35:45 -07:00
2026-07-04 10:42:19 -07:00
2026-08-01 10:19:53 -07:00
2026-07-21 13:28:24 -07:00
2026-08-20 03:55:38 +00:00
2026-07-18 11:02:45 -07:00
2026-08-23 16:00:53 -07:00
2026-08-20 03:55:38 +00:00
2026-05-22 20:20:42 -07:00
2026-08-20 03:55:38 +00:00
2026-05-23 20:24:18 -07:00
2026-08-10 12:38:00 -07:00
2026-04-23 13:29:23 -07:00
2026-05-17 10:37:54 -07:00
2026-07-21 15:04:07 -07:00
2026-05-23 20:24:18 -07:00
2026-07-30 12:46:12 -07:00
2026-07-30 03:22:04 -07:00
2026-07-26 18:00:07 -07:00
2026-08-21 10:57:44 -07:00
2026-07-18 04:44:53 -07:00
2026-07-17 14:25:30 -07:00
2026-05-22 20:20:42 -07:00
2026-07-22 23:04:33 -07:00
2026-07-30 23:24:33 -07:00
2026-07-21 18:33:22 -07:00
2026-07-16 04:15:18 -07:00
2026-07-31 18:34:58 -07:00
2026-07-29 22:39:14 -07:00
2026-07-26 17:34:45 -07:00
2026-07-24 18:49:19 -07:00
2026-05-22 20:20:42 -07:00
2026-07-31 13:56:55 -07:00
2026-07-31 17:13:53 -07:00
2026-08-02 17:27:31 -07:00
2026-04-24 19:39:20 -07:00
2026-08-15 17:53:29 -07:00
2026-07-01 18:01:17 -07:00
2026-06-03 22:31:23 -07:00
2026-06-03 15:32:29 -07:00
2026-07-07 08:27:26 -07:00
2026-07-01 16:43:08 -07:00
2026-08-23 11:40:06 -07:00
2026-08-22 19:43:45 -07:00
2026-07-03 07:47:03 -07:00
2026-07-12 19:39:42 -07:00
2026-08-03 09:04:45 -07:00
2026-06-22 23:58:38 -07:00
2026-08-20 03:57:23 +00:00
2026-08-02 19:23:28 -07:00
2026-08-21 04:32:53 +00:00
2026-08-23 11:40:06 -07:00
2026-06-08 14:22:03 -07:00
2026-08-21 04:32:52 +00:00
2026-05-22 20:20:42 -07:00
2026-07-30 23:24:33 -07:00
2026-05-23 20:24:18 -07:00
2026-06-24 23:32:52 -07:00
2026-07-16 16:01:29 -07:00
2026-07-05 12:24:12 -07:00
2026-07-24 22:16:11 -07:00
2026-07-16 18:18:35 -07:00
2026-03-28 16:30:23 -04:00
2026-04-24 22:25:57 -07:00
2026-07-25 23:12:41 -07:00
2026-06-27 23:08:10 -07:00
2026-07-26 11:17:52 -07:00
2026-08-13 00:50:50 -07:00
2026-07-17 10:25:01 -07:00
2026-07-22 18:46:46 -07:00
2026-07-16 16:01:29 -07:00
2026-07-16 16:01:29 -07:00
2026-07-15 23:45:53 -07:00
2026-07-31 18:33:19 -07:00
2026-07-30 12:46:12 -07:00
2026-07-31 14:58:53 -07:00
2026-08-21 10:57:44 -07:00
2026-05-29 08:20:28 -07:00
2026-08-01 12:33:35 -07:00
2026-07-15 22:00:27 -07:00
2026-08-19 22:44:46 -07:00
2026-08-21 04:33:56 +00:00
2026-04-24 19:39:20 -07:00
2026-06-30 23:45:02 -07:00
2026-06-30 13:43:28 -07:00
2026-05-07 23:21:05 -07:00
2026-05-08 01:57:55 -07:00
2026-05-06 05:29:56 -07:00
2026-07-08 09:19:42 -07:00
2026-08-03 00:20:53 -07:00
2026-07-26 11:17:52 -07:00
2026-07-26 11:17:52 -07:00
2026-07-13 07:10:14 -07:00
2026-05-08 07:38:50 -07:00
2026-06-22 03:34:15 -07:00
2026-07-30 05:37:47 -07:00
2026-07-31 18:34:58 -07:00
2026-07-30 03:10:35 -07:00
2026-06-14 13:50:17 -07:00
2026-07-03 07:47:03 -07:00
2026-07-16 16:01:29 -07:00
2026-05-23 20:24:18 -07:00
2026-07-22 23:04:33 -07:00
2026-07-11 22:16:48 -07:00
2026-08-20 03:55:38 +00:00
2026-06-10 00:20:35 -07:00
2026-08-02 17:27:31 -07:00
2026-08-23 11:40:06 -07:00
2026-08-20 03:55:38 +00:00