## [9.6.14] - 10-15-2026

- **ADDED** - `onAnalyticsEvent` callback on `BeatActions` (WEC-1849)
- **ADDED** - `src/insights-v2/analytics/` module: events config, resolver, `useAnalyticsEvent()` hook (WEC-1849)
- **ADDED** - analytics routed through ctaActions via `sendCtaAnalytics` (WEC-1849)
- **ADDED** - `PRIMARY_ACTION_SELECTED` / `SECONDARY_ACTION_SELECTED` / `FIRST_TIME_PRIMARY_ACTION_SELECTED` CTA press events (WEC-1849)
- **ADDED** - `CHART_BAR_CLICKED` / `DRAWER_CHART_BAR_CLICKED` / `TAB_SELECTED` chart analytics events (WEC-1849)
- **ADDED** - Declarative analytics trigger: `analytics` on `RunHandlerOptions` (WEC-1849)
- **ADDED** - LowAccountBalance + SavingsOpportunityV2 dialog analytics in `AmountInputModalBlock` (WEC-1849)
- **ADDED** - `OPENED_CONNECT_DRAWER` event in `ConnectWidgetActionBlock` (WEC-1849)
- **NOTE** - Scoped to Firefly analytics only (WEC-1849)
- **REFACTOR** - Collapsed the `sendCtaAnalytics` → fake-CTA → `ctaHandlers.sendAnalyticsEvent` chain into one function that resolves the payload and calls `onAnalyticsEvent` directly; removed the now-redundant runtime eventKey check (a typo'd key already fails typecheck). Kept `CtaStep.analytics` and the runner's `step.analytics` check for future `ctaConfig` entries (none use it yet; `RunHandlerOptions.analytics` has real callers today). Removed the `AnalyticsEvents` self-mapping constant — `sendCtaAnalytics`/`resolveAnalyticsEvent`/`useAnalyticsEvent()`/`RunHandlerOptions.analytics` now take the catalogue entry itself (e.g. `ANALYTICS_EVENTS_CONFIG.PRIMARY_ACTION_SELECTED`) instead of a lookup key, so there is nothing to look up and a typo'd property name fails typecheck at the call site. Dropped the unused `stores` parameter from `resolveAnalyticsEvent`/`postHog.properties`. Added `reportCtaClick` (press event + first-time bookkeeping together) and routed the `contact_support_block` bypass through it, so that CTA now also fires `FIRST_TIME_PRIMARY_ACTION_SELECTED` and records `cta_clicked_at` on its first press (WEC-1849)

## [9.6.13] - 10-15-2026

- **ADDED** - `ICO-<name>` logo guids: `logoFromEntityGuid` / `logoFromRef` map them to a filled mx-icons status icon in the logo's `color`, `LogoFromGuid` draws it and `isLogoGuid` accepts the prefix; `SubHeader` draws `logo_fill` icons filled. Fee Detected's header sends `ICO-error` (WEC-1885)
- **ADDED** - `TransactionDetailsBlock` resolves its drawer bottom actions from a per-variant `layout.ts` config keyed by the CTA's `variant` (extensible per variant); `merchant_budget` shows the "Add a Merchant Budget" row and `no_merchant_budget` drops it (null/unknown variants fall back to showing it). Variants name the drilldown behavior rather than a beat, so any CTA can reuse them; the Fee Detected mocks send `merchant_budget` (Has Merchant) / `no_merchant_budget` (No Merchant) with a null secondary CTA block. Replaces the earlier `drilldown_data.hide_merchant_budget_option` flag, which has been removed from `DrilldownData` (WEC-1885)
- **ADDED** - `with_illustration` visual in `CompactInsightCard`'s `InsightVisual`, drawing a single theme-aware `FeeDetected.svg` (its `brand300` elements recolored per theme by `ThemedSVGImage`, so no separate dark asset), with a `WithIllustration` story (WEC-1885)
- **ADDED** - `TransactionDetailsBlock` resolves its bottom actions from the description link when that link opened the drawer (`getBottomActionsByVariant` takes `in_description_cta`), so a link sending `no_merchant_budget` (LargeTransactionV2 mini "View Details") drops the "Add a Merchant Budget" row. `UnifiedDepositMini` story uses the mini envelope (WEC-1885)
- **CHANGED** - `SecondaryCTA.block` widened to `string | null`: the backend sends `null` when the secondary CTA opens no drawer (e.g. Fee Detected "Contact Support"), which the Fee Detected mocks now mirror (WEC-1885)

## [9.6.12] - 10-15-2026

- **ADDED** - `account_block` reads the Insights 2.0 slot contract (`instance_slot.data`) for a new variant, falling back to the flat legacy fields: `low_balance` (the existing red tile, its institution logo badged per the layout's new `badge` field; no amount is drawn when the slot sends none). A new `statusIconName` helper maps `ICO-<name>` to an mx-icons name and rejects anything else. `low_balance` shares `low_balance_alert`'s layout entry (WEC-1903)
- **ADDED** - `insights_payload.in_description_cta` (`{ label, block?, variant?, action_key? }`): on the full card `BaseLayout` renders it as the description link when it names a block and opens that block through a new `inDescriptionCta` drawer trigger, which resolves the link's `variant` like a CTA's. On mini and micro, where ditto ≥ 1.4.3 sends the card's action as `in_description_cta` instead of `primary_cta`, the action label reads `primary_cta?.label ?? in_description_cta?.label` and stays the card's tap (`carousel/cta` / `micro-carousel/cta`), never a drawer. The micro card draws the slot's `ICO-` icon in the legacy tinted error tile when the block has no row logo (Figma Micro | Low Account Balance). V1 beats keep the legacy `beat.in_description_cta` field. Needs a backend on ditto ≥ 1.4.3 (the in-description CTA keys); against an older one the full card loses its link and mini/micro their action label, and the card still renders (WEC-1903)
- **ADDED** - `low_balance` drilldown variant on `TransactionHistoryBlock` (`top: 'list'`, no chart): one account's transactions for the `drilldown_data` window (`account_guid`, `from_date`, `to_date`), as the filter's own `dateRange` on UTC calendar days; a beat missing the account or window lists no rows rather than every account (Low Account Balance's "Transactions" drawer) (WEC-1903)
- **ADDED** - Low Account Balance full and mini stories and the `AccountBlockPayload.json` fixture, matching tupac's envelopes (WEC-1903)
- **CHANGED** - Exported types widened: `ActionDrawerTrigger` gains `'inDescriptionCta'`, `DrillDownVariantConfig['top']` gains `'list'`, and `InDescriptionCTA` is newly exported from `core` (WEC-1903)

## [9.6.11] - 10-14-2026

- **FIXED** - double error reporting from the Settings, Goal, Finstrong, User, Net Worth, Notification and Help stores. Their errors now surface only through `onCaptureException`. This completes the migration started in 9.6.10 (MEW-4182)

## [9.6.10] - 10-14-2026

- **FIXED** - double error reporting from the Transaction, Account, Budgets, Category, Beat, App Data, Holding and Global Copy stores. Their errors now surface only through `onCaptureException` (MEW-4182)

## [9.6.9] - 10-13-2026

- **CHANGED** - Renamed Insights V2 `instance_slot.variant` / CTA `variant` values from beat-specific names to behavior/design names so any beat can reuse them (ditto-contract changes — the backend must send the new values). AccountBlock: `transparent_overdraft`→`overdraft_warning`, `low_account_balance`→`low_balance_alert`, `monthly_credit_card_interest_summary`→`interest_charges_summary`, `celebrate_credit_card_payoff`→`payoff_celebration`, `savings_account_deposit`→`savings_deposit`, and `unified_deposit` + `unified_deposit_emergency_fund` collapsed into a single `deposit_received` (their layout configs were identical). TransactionBlock: `subscription_detected`→`info_wash`, `unexpected_subscription_payment`→`warning_wash`. TransactionHistoryBlock / BarchartBlock: `bill_amount_not_standard`→`not_standard_amount`, `savings_account_balances_summary`→`account_balance` (the `savings_account_balances_summary_drawer_title` copy key becomes `account_balance_drawer_title` — paired `mrs_content` change). MakeTransfer: payload keys `save_an_extra_100`→`save_extra`, `save_enough_to_live_on`→`save_enough` (aligning with the existing `save_extra_title`/`save_enough_title` copy). UpcomingSubscriptionBlock: `upcoming_subscription`→`hero`. Updated all layout maps, mock payloads, stories and tests; unrelated Settings notification copy keys that share these strings were left untouched

## [9.6.8] - 10-13-2026

- **ADDED** - Dashboard banner can open the Connect widget in-app: a connect-type banner (`deep_link_type`) opens `ConnectDrawer` instead of an external link, with banner and connect-widget analytics (MEW-3504)

## [9.6.7] - 10-13-2026

- **ADDED** - `debts_block` component block for the Debt Payoff Strategies beat, registered through `BlockType` and the `blocks` registry. Renders the new presentational `DebtPayoffCard` (account row with an optional strategy pill, current balance, and projected payoff / monthly payment / interest rate rows) from facts carried flat on `instance_slot`: `payoff_date`, `monthly_payment` and `interest_rate` are new optional `InstanceSlot` fields beside the shared `amount`, `account_*`, `institution_*` and `status_text`. One look for now (`instance_slot.variant` is not read until a second design branch exists); the logo falls back to a card glyph for credit-card debt and the bank glyph otherwise. Row labels come from a new `insights_feed.debts_block` copy namespace; until a host ships it, the card renders the account row only and warns once (`debts_block: copy namespace missing`), and a slot with no `amount` renders no balance rather than `$0.00`. Mock payloads, beats fixtures, stories and tests (WEC-1298)

## [9.6.6] - 10-13-2026

- **ADDED** - Beat contract test for the **Subscription Price Increase** insight (`SubscriptionPriceIncreaseContract.test.tsx`), one case per acceptance criterion: the `double_progress_bar_block` previous-vs-new card, opening the Expense Details drawer from the primary CTA, resolving the subscription from `primary_repeating_transaction_guid` on the envelope (transaction walk as the fallback), the no-activity state, and closing back to the feed. The `SubscriptionPriceIncrease` mock payload now names `double_progress_bar_block` and the beat fixture carries `primary_repeating_transaction_guid`, the `DoubleProgressBarBlock` story drives off that shared fixture, and `docs/action-blocks/recurring-transaction-block.md` records the beat and its open questions (MEW2-3308)
- **CHANGED** - `DoubleProgressBarBlock` exposes each bar as a `progressbar` (`aria-valuenow` is the fill percentage, the accessible name is the label plus the amount), so the previous-vs-new comparison is readable by assistive tech instead of existing only as a CSS width (MEW2-3308)

## [9.6.4] - 10-12-2026

- **CHANGED** - AccountBlock `instance_slot.variant` values are now snake_case (`transparent_overdraft`, `low_account_balance`, `status_off_track`, `status_on_track`, `monthly_credit_card_interest_summary`, `unified_deposit`, `unified_deposit_emergency_fund`, `celebrate_credit_card_payoff`, `savings_account_deposit`) to match what the backend sends. Updated the `getLayoutConfig` and `depositIcons` map keys in `AccountBlock` plus all related tests and stories (WEC-1813)
- **CHANGED** - Consolidated on/off-track status cards into a shared `status_on_track`/`status_off_track` variant pair (WEC-1813)
- **CHANGED** - `AccountBlock` now reads its content directly from `instance_slot` (V2 contract) instead of `instance_slot_data`; the AccountBlock fields (`sub_text`, `header_text`, `icon_name`, `category_guid`, plus the shared `amount`/`label`/`merchant_*`/`institution_*`) are declared flat on `InstanceSlot`. `AccountBlock` resolves its per-variant layout via `resolveVariantConfig`, so an unmatched variant warns and falls back to the plain card instead of rendering blank (WEC-1813)

## [9.6.3] - 10-12-2026

- **ADDED** - `upcoming_bill_block`, `savings_opportunity_block` and `upcoming_subscription_block` component blocks, registered through `BlockType`, the `blocks` registry and the shared `createVariantBlock` dispatcher so a beat's `instance_slot.block` resolves to the matching content card inside `BaseLayout`. Each reuses its already-built content component (`UpcomingBillCard`, `SavingsOpportunityCard`, `SubscriptionHeroCard`) unmodified. `SavingsOpportunityBlock` ships all six Figma states (`{generic, savings, specific} × {safety_net_not_set, safety_net_set}`); `SavingsSafetyNetSet` is the only variant without a secondary CTA. `UpcomingSubscriptionBlock`'s `View Details` secondary CTA wires to the already-registered `recurring_transaction_block` drilldown via `primary_repeating_transaction_guid`. Mock payloads, beats fixtures and Storybook stories for each (WEC-1890).

## [9.6.2] - 10-12-2026

- **CHANGED** - `AccountSwitchBlock` reads its per-variant props from a new `layout.ts` keyed by `instance_slot.variant` (`account_connect`, `account_connected`, `switch_direct_deposit`), so Switch Direct Deposit's pending state shares the block with Discovered Accounts. `account_connect` now renders the Figma blue slot gradient; unknown variants fall back to it (WEC-1891)
- **REMOVED** - `is_connected` from the exported `AccountSwitchBlockData` type. The connect / connected state comes from `instance_slot.variant`, which ditto has sent since 1.0; no host read the flag (WEC-1891)
- **CHANGED** - `TransactionBlock` reads header and slot treatment from a new `layout.ts` keyed by `instance_slot.variant`. Adds `uncategorized_transaction` (filled primary header), `subscription_detected` (blue slot wash) and `unexpected_subscription_payment` (warning slot wash) alongside `with_header` / `no_header`; unknown variants fall back to the plain row. Shared `getPrimaryWashGradient` and `WARNING_WASH_GRADIENT` added to `celebrationGradients` (WEC-1891)
- **ADDED** - `resolveVariantConfig` (insights-v2 blocks): shared lookup from a block's `layout.ts` table by `instance_slot.variant`, guarded with `Object.hasOwn` so a backend-controlled key can never resolve to an inherited object property, and warning on an unknown variant before falling back (same contract as `createVariantBlock`). Both blocks above use it (WEC-1891)

## [9.6.1] - 10-12-2026

- **ADDED** - Three Insights V2 CTA action blocks, registered in `actionBlocksKey`/`blocks`: `feedback_modal_block` (`FeedbackModalActionBlock`) renders a survey dialog with a success/error `StatusSnackbar` on top of the action drawer; `connection_detail_block` (`ConnectionDetailActionBlock`) shows the connection-details education drilldown (`ConnectionDetailDrillDown`); and `connect_widget_block` (`ConnectWidgetActionBlock`) boots MX's Connect widget (web-widget-sdk iframe) inside the drawer. Added `feedback_modal` and `connection_details` copy under `insights_feed`, exported the new `FeedbackModal`, `StatusSnackbar`, and `ConnectionDetailDrillDown` components, and added tests and stories (WEC-1879)
- **FIXED** - A CTA pointing at a 'modal' action block (`feedback_modal_block`, `survey_modal_block`) no longer also opens an empty action Drawer behind/under its dialog; `ActionBlockEntry` gains a `presentation?: 'drawer' | 'modal'` field and `ActionBlockLayer` skips the Drawer wrapper entirely for `'modal'` entries (WEC-1879)
- **ADDED** - Storybook stories for `FeedbackModalActionBlock`, `ConnectionDetailActionBlock`, `ConnectWidgetActionBlock`, and `SurveyModalActionBlock`, each rendered through `BaseLayout` with a CTA that opens the real action-block registry path (WEC-1879)

## [9.6.0] - 10-10-2026

- **CHANGED** - Tupac now builds `instance_slot` from ditto's block schema as `{ block, variant, data }` instead of `{ header_text, data_series }`; the V2 envelope path reads the new shape. `InstanceSlotData` (`core/types/Insights.ts`) is now schemaless and keyed by slot name (replacing the fixed `header_text`/`data_series` fields on `InstanceSlot`), with a new `slot<T>(data, name)` reader so each block names the slot and kind it expects at the read site; `block` is now optional, since tupac emits `instance_slot: {}` for a beat whose template has no ditto config. `TransactionBlock` reads `slot<InstanceSlotRow[]>(data, 'series')` and `slot<string>(data, 'header_text')`; `WithdrawalBlock` reads `data.series`. Scope is the V2 envelope path only — V1 blocks reading `instance_slot_data` are untouched, and `InsightsInstanceSlotData` is unchanged (WEC-1823)
- **CHANGED** - `CompactInsightCard`'s `WarningBadgeVisual` is now registered under ditto's `with_warning_badge` variant instead of `embedded` (a rename of an existing `createVariantBlock` entry, not a new one) — the variant names a look, not a surface; micro/notification continue to resolve `minimal`. Reads the flat `logo` slot, as does `microinsights/cards/InsightCard` (WEC-1823)

## [9.5.4] - 10-09-2026

- **ADDED** - `amount_input_modal_block`, the first modal action block: edits one whole-dollar setting in a dialog, picked by the CTA variant. `low_balance_threshold` (Low Account Balance "Edit Alert Settings") saves the threshold on the account's low-balance alert profile; `safety_net` (Savings Opportunity V2 "Set Reminder" / "Adjust Reminder") saves the safety net on the user insight profile. Saves run through `useCtaHandler`. Copy under `insights_feed.amount_input_modal`; mock beats, stories and `docs/action-blocks/amount-input-modal-block.md`.
- **ADDED** - `ActionBlockEntry.presentation: 'modal'`: `ActionBlockLayer` renders such a block without the drawer, and only while it is open for its beat.
- **ADDED** - Optional `CurrencyDialog` props `subtitle`, `errorText` and `isPrimaryDisabled`; `content` now accepts a node. Its helper text (validation or save error) is now announced with `role="alert"`. Existing callers are otherwise unchanged.
- **CHANGED** - `hasDrawerBlock` moved to `insights-v2/mappings/hasDrawerBlock.ts` (still re-exported from `mappings/blocks`) so action blocks can import `ctaActions` without an import cycle.

## [9.5.3] - 10-09-2026

- **CHANGED** - Repeating-transaction create flows show Sherlock-ineligible rows disabled instead of hiding them; `SelectTransaction` drives `TransactionList`'s new `isRowDisabled` prop instead of `filter` (MEW-4143)

## [9.5.2] - 10-09-2026

- **FIXED** - The small-screen Edit date range drawer shows the selected dates as text instead of From and To fields that could not be typed into MEW-4218

## [9.5.1] - 10-09-2026

- **CHANGED** - Repeating-transaction eligibility now mirrors Sherlock (account-type gate plus merchant, or leaf bill/utility category with description, or payroll with description) and is an input to `SelectTransaction`; the eligibility filter is removed from Mark as Paid (MEW-4168)

## [9.5.0] - 10-09-2026

- **CHANGED** - Date pickers and data grids now use MUI X v8, the same version as mxui, which fixes the empty From and To fields in the small-screen date range picker MEW-4216
- **CHANGED** - MUI X is now a peer dependency, so the app provides the one copy that experiences and mxui share MEW-4216

## [9.4.71] - 10-09-2026

- **CHANGED** - `DirectDepositVariant` (`DirectDepositBlock/layout.ts`) is now a single `directDepositVariant` const object used both as the runtime value and as the source for the derived `DirectDepositVariant` type, so a variant name only needs to change in one place; `getLayoutConfig`'s keys are computed properties off that object instead of retyped literals (WEC-1875)
- **FIXED** - `DirectDepositBlockBeats.ts` fixture typed its `insights_payload` per-JSON-literal, which broke `primary_cta` access for the `DirectDepositComplete` variant (no CTA on that beat) with a `TS2339` typecheck error; `insights_payload` is now cast to the real `InsightsPayload` type (matching `TransactionBlockBeats.ts`'s pattern), which already models `primary_cta` as optional (WEC-1875)
- **CHANGED** - `DirectDepositBlockPayload.json` fixture's `instance_slot.variant` values switched to snake_case (WEC-1875)
- **CHANGED** - Extracted `ConfettiOverlay` (`src/insights-v2/components/shared/ConfettiOverlay.tsx`) as a shared component, used by both `DirectDepositCard` and `TransferLogoCard` instead of each defining its own (WEC-1875)

## [9.4.70] - 10-09-2026

- **ADDED** - `PrimaryCTA` / `SecondaryCTA` accept a backend-described `metadata` object (`event`, `action`, `payload`); on press the CTA runner posts that message to the host after the step's handler and effects succeed, so per-insight post messages no longer need frontend code (WEC-1852)
- **CHANGED** - A CTA press posts a message only when one resolves (`cta.metadata`, else `ctaPostMessages`); the previous fallback that posted a base `beat/cta` `op_1` for every block-less CTA is removed (WEC-1852)
- **CHANGED** - `sendBeatCta` accepts an `event` override and `extras` merged into the message metadata (WEC-1852)
- **ADDED** - `ctaPostMessages`: interim per-template CTA post messages (SaveAnExtra100Dollars, LowAccountBalance, MonthlyObligationsStatus, DesignateEmergencySavingsAccount, ReplenishSavings, SavingsOpportunityV2) carried over from pulse, used only when the backend sends no `cta.metadata` (WEC-1852)

## [9.4.69] - 10-09-2026

- **ADDED** - `remaining_cash_block` (Remaining Cash) action block for the Payday Cash Left Over Status beat: summary card (remaining until payday, days, cash on hand, upcoming expenses) plus cash accounts and recurring expenses before payday, each capped at two rows with an "Other (#)" row. Store-driven from `CashflowStore`; loads through `useRecurringTransactionPrepare` with an `ErrorCard` retry on failure (WEC-1880)
- **ADDED** - `CashflowStore.uiStore` computeds `upcomingExpensesTotal`, `remainingUntilPayday`, `hasUpcomingPayday`; `insights_feed.remaining_cash` copy (WEC-1880)
- **ADDED** - Payday Cash Left Over Status beat fixtures, `InsightsV2/ActionBlock/RemainingCashBlock` stories, and `docs/action-blocks/remaining-cash-block.md` (WEC-1880)

## [9.4.68] - 10-09-2026

- **ADDED** - `transaction_list_block` (Transaction List) action block: opens a date-grouped drawer of the transactions a beat points at, with a nested Transaction Details drawer stacked on row click. Resolves rows via `instance_slot_data.transaction_guids` (id-list path), guarded by `Array.isArray` at the untrusted-payload boundary. `usePrepare` shares `useTransactionDetailsPrepare` so `detailedTransactions` is loaded on open — the drawer never opens on a permanent spinner. The registry entry titles the drawer from `insights_payload.title` (matching the WEC-1804 move off `beat.html_title`, which carries HTML entities); when the resolver returns an empty string, `ActionBlockLayer` falls back to the CTA label. Nested close clears the shared `transaction_guid` from action context, matching the sibling `TransactionHistoryBlock` convention. Only the `Standard` variant ships in this MR; the other three variants (`w/Summary`, `w/Status`, `w/Help`) are deferred to a follow-up MR after Figma review surfaced structural mismatches. Unblocks WEC-1461 and WEC-1462. (WEC-1425)
- **CHANGED** - `ActionBlockEntry.title` resolver signature widened to `(variant, copy, beat?)` so blocks can title from beat fields. `ActionBlockLayer` passes `beat` through and falls back to the CTA label when the resolver returns an empty string (`||`), not only when it returns `undefined` (`??`). Existing resolvers accept the extra parameter without change. (WEC-1425)
## [9.4.67] - 10-08-2026

- **FIXED** - Trends tabular view shows the shared zero-state message instead of the grid's default "No rows" when a table is empty MEW-4097

## [9.4.66] - 10-08-2026

- **ADDED** - `recurring_transaction_block` (Recurring Transaction) action block: opens the Expense Details drawer for one recurring subscription, shared by the Upcoming Subscription and Subscription Price Increase beats. The drawer content is the recurring module's `RecurringTransactionDetails` (merchant, amount, next due date, schedule, account/category, past activity, mark as paid/unpaid, delete), so the block only resolves *which* subscription and hands off, as `TransactionDetailsBlock` does. The subscription is `primary_repeating_transaction_guid` (V2 payload, then the legacy beat envelope), else the beat's primary transaction is walked to the repeating transaction it is linked to. `usePrepare` loads recurring data on open through `loadRepeatingTransactionData`; when nothing resolves the drawer shows `recurring.no_activities`, never the generic error; when the open-time load fails it shows the feed's `ErrorCard` with a Try Again retry instead of an endless loader. The shared transaction filter is restored on close only if the details view actually narrowed it. (WEC-1428)
- **ADDED** - `InsightsPayload.primary_repeating_transaction_guid` and `Beat.primary_repeating_transaction_guid` (legacy pulse envelope). (WEC-1428)
- **ADDED** - Mock subscription beats (`mock/BlockBeatsData/RecurringTransactionBeats.ts`, pointing at the mock Netflix subscription), `InsightsV2/ActionBlock/RecurringTransactionBlock` stories, and `docs/action-blocks/` (index + block doc). (WEC-1428)

## [9.4.65] - 10-08-2026

- **ADDED** - Insights V2 CTA action layer (`src/insights-v2/ctaActions`): a card CTA whose backend-named `action_key` (ditto `*_cta_action`, passed through by tupac on `primary_cta` / `secondary_cta`) has a registered step runs that step first: a typed store handler, `onSuccess` effects (`refreshBeat`), a client-only disable (`disabledWhen`), then its drawer or message. No key, or an unknown key, keeps the default (drawer if the CTA has a block, else post). First key: `dismiss_beat` (ConnectDiscoveredAccounts). Per-beat `ctaStatus` and `beatContext` on `InsightsV2Store`; `useBeatCtaActions` for the card and `useCtaHandler` for saves inside a drawer (WEC-1852)
- **ADDED** - `BeatActions.onCtaAction` so host-owned effects (`HOST_ACTIONS`: `markCtaClicked`, `dismissBeat`, `updateBeat`, `readBeatSummary`, `sendBeatFeedback`, `disableBeatTemplate`, spending plan items) are delegated to the embedding app (WEC-1852)
- **CHANGED** - `BaseLayout` delegates CTA clicks to the runner, disables CTAs while a handler is pending, and records the first primary click (`cta_clicked_at`) through the host (WEC-1852)
- **CHANGED** - `BlockType` gains `account_switch_block` and `save_extra_block`, which were already registered blocks (WEC-1852)

## [9.4.64] - 10-08-2026

- **ADDED** - `SupportPrompt` help component: a "Need more assistance?" text button that reveals an "Open a Case" button on click, used on every clickable Request Support category card and at the end of every help article. Only the reveal callers supply the prompt copy, so the prompt never renders empty. Clicking "Open a Case" opens the contact form with the category or article title as the ticket title. `RequestSupport` accepts a `caseTopic` prop; from an article the panel is not rendered at all and the contact form is the whole surface (WEC-1783)
- **ADDED** - "Need more assistance?" footer under the help category grid, shown when `enable_support_requests` is on: a centred heading and description with an always-visible text "Request Support" link, using the `need_more_assistance_short_content` copy key. The footer is plain markup in `HelpList`, not a `SupportPrompt` mode (WEC-1783)
- **ADDED** - `HelpCopy` keys `need_more_assistance`, `need_more_assistance_short_content` (WEC-1783)
- **REMOVED** - Request Support drawer footer "Open a Case" block; `RequestSupportFooter` deleted (WEC-1783)
- **ADDED** - Request Support categories Login Issues and Contact Your Bank. `help_by_category_list` copy type extended and `Category.topics` is now optional so a category can ship label-only (WEC-1738)
- **ADDED** - `LoginIssues` help articles: four verification-troubleshooting articles rendered through the existing article machinery. The Request Support Login Issues card lists them and routes a row click out of the drawer to the matching article (no prompt on this card); Contact Your Bank renders its disclaimer plus eight bullets as an informational card. Article copy keys under `help.login_issues` and `help_by_category_list.login_issues.topics` (WEC-1796)
- **ADDED** - Analytics events `help_click_needMoreAssistance` with `{ source: 'category' | 'article', topic }` and `help_click_openCase` with `{ source: 'category' | 'article', topic }`; `help_click_requestSupport` now includes `{ source: 'header' | 'footer' }`; `help_open_supportRequest` is no longer emitted (WEC-1739)
- **CHANGED** - "General FAQs" is now the first card in the help category grid; the category's fallback title is "General FAQs" (WEC-1737)
- **CHANGED** - Help design QA: "How do I log out?" uses sentence case and "Contact Your Bank" uses title case; Contact Your Bank card text uses `subtitle2` (20px line height); the footer "Request Support" button uses the same 16px side padding as the header button; expanding a Request Support category card scrolls it into view; Request Support category text uses the grey `text.secondary` colour instead of the brand `secondary` palette colour, matching the help category grid (WEC-1877)
- **CHANGED** - `HelpContentProps.onOpenCase` is optional, so the new prop is not a breaking change for consumers of the exported type (WEC-1783)

## [9.4.63] - 10-07-2026

- **FIXED** - Trends Tabular View child category rows now open the filtered transaction drawer, matching the chart view MEW-4020

## [9.4.62] - 10-07-2026

- **ADDED** - `withdrawal_block` (Highlight Withdrawal) component block and `WithdrawalCard`: the amount (shown with a leading minus unless it is zero), an `"{amount_label} {withdrawal_date}"` date line and a grey balance footer, read from one `instance_slot.data_series` row (`amount`, `amount_label`, `withdrawal_date`, `balance`, `balance_label`). Text arrives localized from the backend; only `amount` and `balance` are formatted. (WEC-1871)

## [9.4.61] - 10-07-2026

- **ADDED** - `ObservedUpdate` type exported from `GlobalStore` with an optional `staleBeatGuid`, so an in-app action that outdates a beat can tell the host to refetch it over the existing `onStoreUpdate` bridge; `transactions` is now optional on that payload (WEC-1852)

## [9.4.60] - 10-07-2026

- **ADDED** - Insights 2.0 render gate: `Beat.is_insights_v2` (written by firefly) and `resolveInsightRender(beat)` → `legacy` | `v2` | `error`. An absent flag renders the legacy path unchanged; a flagged beat with no envelope is an `error`, never a legacy card. (WEC-1823)
- **CHANGED** - `resolveInsightRender` treats an envelope with no `description` as missing, so it resolves to `error` instead of throwing: `BaseLayout`, `CompactInsightCard` and the micro `InsightCard` all paint `description.html_text` unguarded. (WEC-1823)
- **FIXED** - Large Transaction full card now matches Figma 1941:111919: the subheader is uppercased with 0.52px tracking (`typography/body2 (upper)`), the slot's date strip is `text.primary` at 36px with an 8px radius, the row's category is `text.primary`, the amount uses tabular figures with -0.15px tracking, the title row top-aligns so a wrapping title keeps the overflow menu on the first line, the description pads 16px each side, and the footer uses `text.secondary` rather than the secondary palette colour. (WEC-1823)
- **FIXED** - Embedded insight card: the CTA label now lines up with the description's left edge (Figma 1941:111897). The column's padding and the button's own were stacking, so the label sat 8px to the right. (WEC-1823)
- **ADDED** - `InsightErrorCard`: the `error` branch — the copy store's generic error, no CTA, reported once per beat (guid + template) through the host error handler. (WEC-1823)
- **ADDED** - `LogoFromGuid` (+ `isLogoGuid`): one component for every V2 logo object (`{ guid, fallback_guid?, alt? }`), dispatching on the guid prefix and rendering nothing for `PARENT-ENTITY`, account or budget guids. Built on `logoFromRef` so the prefix mapping lives in one place. (WEC-1823)
- **ADDED** - `CompactInsightCard`: the one renderer the `micro` and `embedded` envelopes share — title row with the overflow slot, HTML description, primary CTA, first-row logo beside the `header_text` date tile. It never opens anything itself (`onTap` / `onCtaClick` go to the host); `isCtaDisabled` renders the CTA `aria-disabled`. (WEC-1823)
- **CHANGED** - `InsightsPayload.widget_type` widened to `WidgetType` (`full` | `mini` | `micro` | `embedded` | `notification`); `InsightsPayload` gains `pill?: { text }` (embedded envelope only) and `drilldown_data?` (flat facts hash). (WEC-1823)
- **CHANGED** - `BeatApi.getBeatsWithAssociatedTransaction` adds `widget_type=embedded` to the existing `has_associated_transaction_guid` fetch. No new endpoint; the transaction row and the details drawer both render from what it returns, and nothing is fetched on drawer open. (WEC-1823)
- **CHANGED** - Transaction list row and table amount cell render the insight tag through new `TransactionInsightTag`: a V2 beat shows `insights_payload.pill.text` as a `StatusPill` (lightbulb, `primary.lighter` surface), a legacy beat shows `short_title` as before, and a flagged beat with no envelope or no `pill` shows nothing. Tap still posts `insightOnTransaction`; `showInsights` still gates. `StatusPill` gains `onClick`, `data-testid`, `labelVariant`; with an `onClick` it is keyboard-accessible (`role="button"`, focusable, Enter and Space activate it, focus ring like the theme's Button). (WEC-1823)
- **CHANGED** - Transaction details drawer branches on the beat it already matched: `v2` renders `CompactInsightCard` from the embedded envelope above the account block, `error` renders `InsightErrorCard` in that slot, `legacy` runs `getEmbeddedInstanceSlotByBeatTemplates` as before. `shouldShowEmbeddedCard={false}` suppresses all three. (WEC-1823)
- **ADDED** - `contact_support_block` CTA support, registered under its ditto name. insights-v2 and transactions deliberately do **not** import the help module (hosts that don't ship the Help widget stub that import — pulse's webpack `IgnorePlugin` — and would crash at import time), so the flow is injected by the host: `beatActions.onContactSupport` for feed/mini cards (`BaseLayout` calls it directly, never a drawer) and a new `TransactionDetails.onContactSupport` prop for the details-drawer card. The CTA renders disabled (label shown, `aria-disabled`, nothing opens or posts) when the client's `enable_support_requests` is off **or** the host wired no handler (`isContactSupportCtaDisabled`). The registry entry is a safety net only. (WEC-1823)
- **CHANGED** - `NotificationCard` draws `LogoFromGuid` when `entity_guid` is a `MCH-` / `CAT-` / `INS-` guid (Newman writes it at send time) and today's `NotificationBadge` otherwise. Text stays `content`; no beat is fetched. Inert until the newman recorder change ships. (WEC-1823)
- **CHANGED** - insights-v2 transaction block renamed to match the ditto LargeTransactionV2 contract (`lib/ditto/beats/large_transaction_v2.yml`): block `category_transactions_block` → `transaction_block` (`TransactionBlock`), variant `SameHeaderDesign` → `with_header` / `no_header`, primary CTA `transaction_details` → `transaction_details_block`. The old names are no longer registered. (WEC-1823)
- **CHANGED** - `TransactionBlock` now renders pre-localized rows carried inline on `instance_slot.data_series` (`logo`, `primary_text`, `secondary_text`, `amount`) instead of `instance_slot_data.primary_transaction`. `CategoryTransactionsBlockData` / `InsightTransaction` types removed. (WEC-1823)
- **FIXED** - insights-v2 `TransactionBlock` rendered the wrong `with_header` header: it used the first row's `secondary_text`, which on a `with_merchant` card is the *category*, so the category appeared twice and the transaction date never appeared. The header now comes from `instance_slot.header_text` (new optional field), which is where tupac sends the date. The `with_header` mock fixtures were also carrying the `no_merchant` row shape and are corrected. (WEC-1823)
- **FIXED** - insights-v2 `TransactionBlock` row category icon: mxui `CategoryIcon` only knows top-level category guids and fell back to the Uncategorized icon for a sub-category guid. The row guid is now walked up to its top-level parent via new `CategoryStore.getTopLevelCategoryGuid`, matching what the transaction-details drawer shows. (WEC-1823)
- **CHANGED** - insights-v2 `BaseLayout` renders the sub-header from the flat `subtitle` string plus payload-level `logo` (resolved via new `logoFromRef`); `sub_title` continues to work and wins when both are present. (WEC-1823)
- **ADDED** - `LogoRef` type, shared by the V2 header `logo` and every `instance_slot.data_series` row `logo`. A logo is either an entity (`guid`, resolved by its `INS-` / `MCH-` / `CAT-` prefix, plus an optional `fallback_guid`) or a status icon (`icon` + `color`, the V2 counterpart of V1's `logo_name` / `logo_color`), rendered in both the sub-header and `TransactionBlock` rows. `icon` wins when a logo sends both. (WEC-1823)
- **FIXED** - insights-v2 `TransactionBlock` merchant rows passed `MerchantLogo` an empty `categoryGuid`, so a merchant with no logo asset fell back to the Uncategorized tile. The row's `logo.fallback_guid` (the transaction's category) is now passed through, resolved to its top-level category. (WEC-1823)
- **CHANGED** - insights-v2 `Footer` accepts `timestamp` (unix seconds, formatted as e.g. "September 27, 2026") alongside the V1 `date`. (WEC-1823)
- **CHANGED** - insights-v2 footer standardizes on a single `account` key; the separate `accounts` key is removed from `Footer` and the V2 fixtures. The backend resolves plurality into that one field (one account sends its name, several send a localized `N Accounts`), matching tupac's `footer_account_label`, so the frontend never counts accounts itself. (WEC-1823)
- **CHANGED** - `InsightsPayload` / `InstanceSlot` / `Footer` types gain optional fields (`subtitle`, `logo`, `variant`, `instance_slot.data_series`, `footer.timestamp`). (WEC-1823)
- **CHANGED** - `InsightsPayload` gains the remaining optional fields on the V2 envelope contract (`client_guid`, `template`, `revision`, `created_at`, `updated_at`, `active_at`, `displayed_at`, `cta_clicked_at`, `has_been_displayed`, `is_deleted`, `is_hidden_by_system`, `is_obsolete`, `is_refreshable`, `is_sampled`, `is_zero_state`, `status`, `primary_account_guid`, `primary_transaction_guid`, `primary_category_guid`, `primary_merchant_guid`). (WEC-1823)
- **CHANGED** - insights-v2 transaction-details drawer resolves its transaction solely from `insights_payload.primary_transaction_guid` (the ditto contract) or a nested-drawer `actionContext.transaction_guid`. The speculative `instance_slot_data.transaction_guid`, beat-envelope `primary_transaction_guid` / `transaction_guids[0]`, and `beat.primary_transaction` snapshot fallbacks are removed; `TransactionDetailsBlockData.transaction_guid` is dropped. (WEC-1823)
- **CHANGED** - insights-v2 transaction-details drawer no longer reads `instance_slot_data` at all: the key is not part of the V2 contract (the LargeTransactionV2 payload omits it), so the `top_actions` read is dead. Top actions are always the defaults; bottom actions continue to derive from the triggering CTA's `variant`. (WEC-1823)
- **CHANGED** - `InsightsPayload.instance_slot_data` is now optional, matching the V2 contract. Blocks that genuinely require it still receive it as a required field via `BlockProps`, which re-declares it. (WEC-1823)
- **CHANGED** - insights-v2 `BaseLayout` shows the primary CTA on the mini card as a label, not a button, so a tap on it reaches the host's card handler (pulse posts `carousel/cta`, as a V1 mini card does) instead of opening the action drawer the full card's CTA opens. The label keeps the Button look (semi-bold, not uppercased, 44px). Full cards are unchanged. (WEC-1823)
- **ADDED** - `BadgedTile` and `StatusBadge`: the embedded card's right-hand cluster. The first slot row's logo fills a 44px tile badged on its top-right by the insight's status tone (`warning` for Large Transaction), with a bottom-left slot for a second badge. The card's right-hand visual dispatches on ditto's layout variant through `createVariantBlock`: `embedded` draws the badged tile, anything else (micro, an unregistered variant) draws the logo alone. A variant names a rendering shape, not an insight, so a new visual registers one entry and leaves the others untouched. (WEC-1823)
- **REMOVED** - the embedded card's `instance_slot.header_text` date tile, per design. `header_text` stays on the envelope and is still rendered by `transaction_block`'s `with_header` variant. (WEC-1823)

## [9.4.59] - 10-07-2026

- **ADDED** - `UserInsightProfile` type, `ApiEndpoints.USER_INSIGHT_PROFILE`, `UserApi.updateUserInsightProfile` (`PUT user_insight_profile`) and `UserStore.userInsightProfile` with `setUserInsightProfile` (the host seeds the profile it loaded) and `updateUserInsightProfile`, which merges the changed fields over the seeded profile and PUTs the whole profile (the endpoint upserts every field, so a partial body would null the rest), refuses to PUT before the profile is seeded, and rethrows so a caller can surface a failed save (WEC-1852)
- **ADDED** - `BeatStore.updateOffer` (`PUT offers/:guid`) to flag a marketing offer as clicked; rethrows on failure (WEC-1852)
- **ADDED** - `RepeatingTransaction.user_response` field (WEC-1852)
- **CHANGED** - `AccountStore.updateAccount`, `SettingsStore.updateNotificationProfile`, `TransactionStore.updateTransaction`, `TransactionStore.addOrUpdateTransactionRule` and `BudgetsStore.addBudget` now resolve `true` on success and `false` when the API call fails, instead of resolving `undefined` either way. They still catch and report their own errors and never throw, so existing callers are unaffected; the flag lets a caller distinguish a failed write (WEC-1852)
- **ADDED** - MSW handlers and mock data for `PUT user_insight_profile` and `PUT offers/:guid` (WEC-1852)

## [9.4.58] - 10-07-2026

- **ADDED** - Insights V2 `ErrorCard` and `LoadingCard` components, plus `isError`/`isLoading` props on `BaseLayout`: `isError` replaces the entire card with the `ErrorCard` (heading, message, and a "Try Again" retry button that reloads by default), while `isLoading` swaps only the block slot for the `LoadingCard`. `ErrorCard` derives the CIBC illustration variant from the app's `custom_copy_namespace`. Added `error_heading`, `error_message`, `loading`, and `try_again` copy keys under `insights_feed.general`, with stories for all three states (WEC-1854)
- **CHANGED** - `LoadingCard` now uses the hosted `MD_Assets` `loading.gif` and the bundled `Loading.gif` asset was removed from the package (WEC-1854)

## [9.4.57] - 10-06-2026

- **FIXED** - Spending transaction list puts a transaction in the same month as the chart when the bank dates it at midnight UTC MEW-4191
- **CHANGED** - Transaction list date range and date search use the date shown on the row for every viewer timezone MEW-4191

## [9.4.56] - 10-06-2026

- **FIXED** - Transactions in the Sub Budget drawer now open the Transaction Details drawer when clicked MEW-4015

## [9.4.55] - 10-05-2026

- **FIXED** - Color contrast in the Transaction Details calendar and Cancel buttons MEW-4123
- **CHANGED** - Secondary buttons next to a main button use the text style
- **CHANGED** - Bumped `@mxenabled/mxui` to `^2.11.1`

## [9.4.54] - 10-05-2026

- **FIXED** - Searching in the Add Expense drawer in Recurring Transactions no longer crashes when an expense has no description MEW-3671

## [9.4.53] - 10-02-2026

- **FIXED** - Recalculated budget amounts now use the three-month spending average instead of varying by browser history MEW-4013
- **FIXED** - Recalculate budgets drawer now shows a loader, cannot close while saving, and stays open with an error if the save fails MEW-4013

## [9.4.52] - 10-02-2026

- **FIXED** - Storybook stories that crashed or rendered blank now load (MEW-4207)

## [9.4.51] - 10-01-2026

- **FIXED** - Certain text elements which didn't have enough color contrast (MEW-4120)

## [9.4.50] - 10-01-2026

- **FIXED** - Category rule dialog now receives screen reader focus when it opens from the category drawer (MEW-4017)

## [9.4.49] - 10-01-2026

- **FIXED** - Manage Income and Manage Expenses rows now announce the account name once to screen readers (MEW-4125)

## [9.4.48] - 09-30-2026

- **FIXED** - Add Budget drawer category list no longer renders non-list-item elements directly inside the `<ul>` (MEW-4121)

## [9.4.47] - 09-30-2026

- **FIXED** - Confirmation dialogs now return screen reader focus to the row that opened them instead of stranding it (MEW-4016)

## [9.4.46] - 09-30-2026

- **FIXED** - Tags drawer rows no longer nest a checkbox inside a `role="checkbox"` button (MEW-4124)

## [9.4.45] - 09-29-2026

- **CHANGED** - insights-v2 `BillAmountNotStandard` design tweaks: `BarchartBlock` and `TransactionHistoryBlock`'s drill-down chart now use explicit margins for consistent spacing instead of relying on unset/default values (WEC-1853)
- **ADDED** - `shouldShowEmbeddedCard` prop on `TransactionDetails` (default `true`), gating the embedded insight card (BillAmountNotStandard mini chart shown for a transaction's associated beat). Every PFM surface — Spending, Trends (category view + drawer), Budgets, Recurring Transactions, and the Accounts transaction tab — keeps showing the embedded card unchanged via the default; insights-v2's own `TransactionDetailsBlock` explicitly passes `false` so `BillAmountNotStandard`'s own drill-down drawer doesn't show a redundant embedded card of itself (WEC-1853)

## [9.4.44] - 09-25-2026

- **FIXED** - Budgets zero-state buttons now wrap and grow to fit longer localized copy instead of cropping or overflowing the text (MEW-4167)

## [9.4.43] - 09-25-2026

- **FIXED** - Category names now render localized copy instead of the raw API value in the Spending widget (main view list, drawer, donut legend), the Spending mini widget, the Finstrong spend-less-than-you-make chart, and the Transactions table Category column. (MEW-4166)
- **FIXED** - Trends category list "View more"/"View less" toggle is now localized and moved to common copy (MEW-4166)
- **FIXED** - Account type labels (e.g. Checking, Savings, Investment) in the Net Worth "Assets & Liabilities" drawer accordion and the Debts table account cell now use localized copy instead of hardcoded English (MEW-4166)
- **FIXED** - Category names in the shared category selection drawer (used by the transaction category-edit and split actions, and transaction-rule category edit) now render localized copy instead of the raw API value, and the search filter matches on the localized name (MEW-4166)
- **CHANGED** - Copy contract: added required `common.view_more` and `common.view_less` keys and removed the unused `trends.view_more` key; the component falls back to English if they are absent (MEW-4166)

## [9.4.42] - 09-24-2026

- **CHANGED** - insights-v2 Save an Extra beat UI polish: `SaveAnExtraCard` now uses mxui `P`/`Text` semantic typography (logo `boxShadow` removed), `BaseLayout` renders the beat description via mxui `P` (`subtitle2`), and `SaveExtraBlock` uses horizontal-only padding (WEC-1851)

## [9.4.41] - 09-24-2026

- **FIXED** - Account-to-account transfers now show the institution name instead of the raw feed description in the transaction detail header title and the transactions table/list Payee column (MEW-3972)

## [9.4.40] - 09-24-2026

- **FIXED** - double error reporting from Recurring Transactions. Its errors now surface only through `onCaptureException`, and `GlobalStore.captureException` falls back to `console.error` when the host provides no handler (MEW-4169)

## [9.4.39] - 09-23-2026

- **FIXED** - Trends category rows no longer show a nonzero total with "0 transactions" and no chevron. (MEW-4021)

## [9.4.38] - 09-22-2026

- **FIXED** - `LineChart` x-axis now shows every tick label instead of dropping overlapping ones, so month labels no longer disappear on small views. On the Trends 1 Year (12-month) view on small screens, labels render as single letters so all twelve fit; the full month is preserved as the accessible name so screen readers and tooltips are unchanged (MEW-4096)

## [9.4.37] - 09-22-2026

- **FIXED** - Trends Categories "View more"/"View less" toggle now scrolls back into the viewport after the list expands, so keyboard users keep the focused control in view instead of losing track of focus below the fold (MEW-3587)

## [9.4.36] - 09-22-2026

- **FIXED** - Nested interactive controls in the transaction details drawer (MEW-4024)

## [9.4.35] - 09-21-2026

- **FIXED** - Trends keyboard focus no longer skips interactive elements below the fold during forward Tab navigation; focused controls are now scrolled into view, keeping the focus order perceivable for keyboard users (MEW-3593)

## [9.4.34] - 09-21-2026

- **ADDED** - refreshLoadedCategoryTotals to CategoryStore, which re-fetches category totals using the same accounts and date range as the last fetch

## [9.4.33] - 09-21-2026

- **CHANGED** - Insights V2 components and hooks migrated to use `insights_payload` keys instead of accessing properties directly from `beat`. `BaseLayout`, `ActionBlockLayer`, and the `useBeatFeedbackFlow` hook now destructure and read content properties (`guid`, `user_guid`, `dismissed_at`, `title`, `sub_title`, `description.html_text`, etc.) from `insights_payload` instead of `beat`. `BaseLayout` also updated to use `insights_payload.guid` instead of `beat.guid` when passing to block components. Updated `InsightsPayload` type with mandatory fields (`guid`, `user_guid`, `dismissed_at`, `is_dismissed`), component implementations, test fixtures (BaseLayout tests cover 37 scenarios), and mock data. Added TODO comment for `in_description_cta` migration pending backend support (WEC-1807)
- **CHANGED** - `BarchartBlock` and `DoubleBarChartBlock` now guard drawer opening on `widget_type !== 'full'`, preventing drilldown on mini/micro widgets. Added `widget_type` to payload destructuring, formatted `onBarClick` handlers, and added comprehensive test coverage for widget_type behavior in both blocks (WEC-1807)
- **CHANGED** - `DismissInsightDialog`, `FeedbackDialog`, and `InsightOptionsMenu` UI improvements: updated styling for better accessibility and consistency (color theme adjustments for Radio buttons, dialog borders, and icon colors) (WEC-1807)
- **CHANGED** - Updated 16 Storybook story files with proper `insights_payload` mock data structure to support component testing and documentation (WEC-1807)

## [9.4.32] - 09-18-2026

- **ADDED** - Historical account balances to net worth widget

## [9.4.31] - 09-18-2026

- **FIXED** - Mini widget containers now expose a labelled `region` landmark, so screen readers announce the widget name (and a short summary, for Budgets) when the browse cursor lands on it instead of staying silent (MEW-3709)

## [9.4.30] - 09-17-2026

- **FIXED** - Budgets bubble tooltip is hidden from assistive tech so it is no longer announced out of focus order or left undismissable by mobile screen readers (MEW-3715)

## [9.4.29] - 09-17-2026

- **FIXED** - Investments Allocation donut misrepresented holdings with no Morningstar asset-class data as ~100% cash, because the ring's denominator was the sum of buckets-with-data instead of total portfolio value. The ring now uses total portfolio value and surfaces the gap as an explicit "Unclassified" slice (expandable into its real holdings), so ring, center total, and legend agree
- **FIXED** - The Allocation donut center no longer shows a dead "Click for details" prompt on a selected slice (it had no handler and the holdings already expand in the legend); it now shows the selected slice's share of the portfolio

## [9.4.28] - 09-16-2026

- **FIXED** - RUM `beforeSend` no longer drops the page's own `document` resource event (MEW-4052)

## [9.4.27] - 09-16-2026

- **FIXED** - Insights V2 `FeeDetected` and `LargeTransaction` CTAs opened the "Something went wrong" drawer instead of the transaction. [ditto!19](https://gitlab.com/mxtechnologies/mx/experiences/projects/ditto/-/merge_requests/19) renamed `primary_cta_block` from `view_charge` to `transaction_details`, naming the block for the drilldown it opens rather than the button copy (which tupac owns and can change). Neither name was registered here — `actionBlocksKey.TRANSACTION_DETAILS_ACTION_BLOCK` carried `TransactionDetailsBlock`, a name no backend ever sent. `ActionBlockLayer` resolves the CTA by exact match and `hasDrawerBlock()` returns true for any non-empty string, so an unregistered name opens the drawer onto the error state rather than failing silently. Points the registry key at the name ditto now sends, and updates the `FeeDetected`/`LargeTransaction` mock payloads to match. No alias is kept for `view_charge`: ditto no longer sends it and it was never registered (MEW2-3254)
- **NOTE** - The registry key is global, so the two Storybook-only `BarchartBlockPayload.json` fixtures that still name `TransactionDetailsBlock` (`BillAmountNotStandard`, `SavingsAccountBalancesSummary`) now point at an unregistered key and will open the error drawer in Storybook. Deliberately left out of scope; no contract test covers `BarchartBlockBeats`, so this does not fail CI (MEW2-3254)

## [9.4.26] - 09-16-2026

- **FIXED** - Account filter accessibility (MEW-3452)

## [9.4.25] - 09-16-2026

- **ADDED** - Dismissible tip section in the `TransactionHistoryBlock` drawer's `bill_amount_not_standard` (`TRANSACTION`) drilldown variant: a shared `TipSection` component nudging the user to reach out to the merchant, dismissible via a new `onDismiss` handler and `tip_section_message`/`tip_section_title` copy keys (`insights_feed.general`) (WEC-1804)
- **ADDED** - `InsightsPayload.title` (`string`), per backend confirmation that the beat's display title is sent on the payload rather than read off the beat itself (WEC-1804)
- **CHANGED** - Renamed `InsightsPayload.subtitle` to `InsightsPayload.sub_title` to match what the backend actually sends, updating `BaseLayout`, `TransactionHistoryBlock`, and all related test/story/mock fixtures (WEC-1804)
- **CHANGED** - `BaseLayout` and `TransactionHistoryBlock`'s `bill_amount_not_standard` (`TRANSACTION`) drilldown header now read the beat's title/subtitle from `insights_payload.title`/`insights_payload.sub_title` instead of `beat.title`/`beat.html_title`; `DrillDownHeaderContext` (`TransactionHistoryBlock/layout.tsx`) updated from `{ htmlTitle, primaryTransaction }` to `{ title, subHeader }` to match (WEC-1804)
- **CHANGED** - `SubHeader`'s logo resolution now checks `merchant_guid` before `institution_guid` (previously institution took priority over merchant), with a TODO to have the backend send only the one relevant guid per beat instead of relying on check order (WEC-1804)
- **FIXED** - `TransactionHistoryBlock` and `BarchartBlock` now fall back to the generic "Monthly Amount"/"Trend" copy for the bar chart's legend labels when the backend doesn't send `legends` on `instance_slot_data`. `TransactionHistoryBlock`'s first attempt at this fallback was dead code (`array.map() ?? fallback` — `.map()` never returns `null`/`undefined`, so the `??` could never trigger); fixed to check `legends?.length` before mapping, and added regression tests for the empty-legends case in both blocks (WEC-1804)
- **FIXED** - `BarchartBlock` now waits on `GlobalUiStore.isCopyLoaded` (rendering `Loader` until then) before reading copy for its legend fallback, matching `TransactionHistoryBlock`'s pattern — `BaseLayout` renders block components without waiting for copy to load, so `BarchartBlock` could previously mount and crash (`Cannot read properties of undefined (reading 'general')`) before `GlobalCopyStore` finished loading (WEC-1804)

## [9.4.24] - 09-16-2026

- **ADDED** - insights-v2 beat CTA post message (ported from Pulse): when a beat CTA has no drilldown drawer `block`, clicking it now notifies the host via a `beat/cta` post message (payload `action`, `beat_guid`, `beat_template`, `action_string?`, `user_guid`) or, on a native mobile webview, navigates to a `scheme://pulse/<event>?metadata=...` URL. New helpers in `common/utils/PostMessage.ts` (`getBaseCtaPostMessage`, `sendBeatPostMessage`, `setWebviewURL`, `dispatchBeatCta`, `BEAT_CTA_EVENT`, `BEAT_OPERATION_1/2/3`); `BaseLayout` CTA buttons route through a `handleCtaClick` helper that opens the drawer for CTAs with a real block and otherwise dispatches the post message. Scoped to the Save an extra $100 beat's "Make a Transfer" CTA (WEC-1805)
- **CHANGED** - `SaveAnExtraCard` renders the projected-balance footer as-is (the backend now sends it pre-formatted, e.g. "$3,320") instead of re-formatting a parsed number; mock payload and `SaveExtraBlock`/card tests updated to match (WEC-1805)

## [9.4.23] - 09-16-2026

- **ADDED** - Nested-drawer support for the insights-v2 `TransactionHistoryBlock`: clicking a transaction row in the history drawer opens a second, stacked `TransactionDetailsBlock` drawer scoped to that transaction, via `InsightsV2Store.setActionContext({ transaction_guid })` and `useActionContext<DrilldownPayload>()`. `TransactionDrillDown`'s row click is forwarded through a new `onEachRowClick` prop (WEC-1699)
- **ADDED** - `InsightsV2/ActionBlock/NestedDrawers` Storybook story demonstrating the full history → details drilldown through the real action-block registry (WEC-1699)
- **ADDED** - `transaction_details_title` copy key (`insights_feed.general`) for the nested `TransactionDetailsBlock` drawer's title (WEC-1699)
- **ADDED** - Shared CTA-resolution helpers (`getDynamicCtaBasedOnTriggers`, `getCtaForChartBarClick` in `insights-v2/actionBlocks/util.ts`) resolving which CTA (primary/secondary) drives a drawer based on its trigger, with a fallback to the primary CTA whenever resolution comes up empty; `actionBlocksKey` constants extracted for the action-block registry keys in `mappings/blocks.ts` (WEC-1699)
- **CHANGED** - `TransactionDetailsBlock`'s bottom actions are now resolved from the triggering CTA's `variant` via `getBottomActionsByVariant` instead of `instance_slot_data.bottom_actions`: the `fee_detected` variant gets `DEFAULT_BOTTOM_ACTIONS` (Split/Hide/Merchant-Logo), everything else gets `[BottomActions.MerchantBudget, ...DEFAULT_BOTTOM_ACTIONS]` — so the nested `TransactionDetailsBlock` drawer shows "Add Merchant Budget" by default when the transaction has a `merchant_guid`. Clicking it opens the existing `MerchantBudgetDetailsDrawer` as a third, further-stacked drawer; no changes were made to that budgets code itself. `DEFAULT_BOTTOM_ACTIONS` itself (`transactions/constants/Actions.ts`) is unchanged — every other `TransactionDetails` caller still omits `MerchantBudget` by default unless it opts in via an explicit `bottomActions` prop (WEC-1699)
- **CHANGED** - `BarchartBlock`/`DoubleBarChartBlock`'s chart-bar drilldown context now carries an explicit target `block` (`DrilldownPayload.block`), used by the new CTA-resolution helpers to pick the correct CTA for a chart-bar click (WEC-1699)
- **FIXED** - `InsightsV2Store.setActionContext` now merges new keys into the current drawer session's context bag instead of destructively replacing it, so an outer drawer's context (e.g. `chartBarIndex`) survives while a nested drawer layers its own key (e.g. `transaction_guid`) on top (WEC-1699)

## [9.4.22] - 09-12-2026

- **FIXED** - The category-change confirmation dialog (and all `common` `Dialog` modals) read their title twice on screen readers: the title was both the dialog's accessible name and a separate visible heading node. The dialog now labels itself via `aria-labelledby` pointing at the heading, and passes `ariaHidden` so the heading is removed from the a11y tree, so the title is announced once
- **CHANGED** - Bumped `@mxenabled/mxui` to `^2.9.2` (for `DialogHeader`'s `id` + `ariaHidden` props) and `@mxenabled/mx-icons` to `^2.3.0` to satisfy the mxui peer requirement

## [9.4.21] - 09-15-2026

- **FIXED** - Investments widget showed a false 100% gain on holdings with a null `cost_basis` (exposed once MEW-4073 enriched `market_value`), because gain/loss treated an unknown basis as `0`. Basis now resolves via a shared helper (`getHoldingGainLoss`): `cost_basis` when set (including a real `0`), else `purchase_price`, else "—" instead of a fabricated 0/100% — applied to the holding rows, Cost Basis column, account rollup, the Overview total-portfolio gain/loss, and the Allocation donut (including its center) so an all-unknown-basis portfolio shows "—" rather than a fabricated $0.00. The inline editor still seeds from the raw `cost_basis` so an untouched edit never persists `purchase_price` back to Abacus, and editing a basis on mobile now re-derives the drawer's gain/loss instead of leaving it stale (MEW-3791)
- **ADDED** - `getHoldingMarketValue`, `getHoldingCostBasis`, and `getHoldingGainLoss` helpers in `core/utils/InvestmentUtil` as the single source of truth for holding valuation and gain/loss, with unit coverage (MEW-3791)

## [9.4.20] - 09-15-2026

- **ADDED** - DataDog RUM for Pulse and MDB

## [9.4.19] - 09-14-2026

- **ADDED** - insights-v2 `ObsolesceBanner` component: presentational banner displaying beat obsolescence states (refresh_available, refreshing, updated, not_refreshable, hidden) with smooth Collapse animation, proper ARIA labels, and state-appropriate icons (Sync/CheckCircle/Cancel) and actions (Update/Dismiss buttons). Exported from insights-v2 with full TypeScript types (`ObsolesceBannerProps`, `ObsolesceBannerState`, `ObsolesceBannerCopy`). Component accepts state + callbacks + copy as props; host owns data logic (WEC-1766)
- **CHANGED** - `ObsolesceBanner` reuses existing `insights_feed.general` copy keys (`dismiss`, `insight_no_longer_applicable`, `insight_updated`, `new_information_available`, `update`, `updating`) rather than introducing a dedicated copy section — matches the copy already consumed by the legacy `ObsoleteManager` and defined in mrs_content, avoiding duplicate keys and translations. `GeneralInsightsFeedCopy` extended with these keys; `BaseLayout` passes `copy.insights_feed.general` straight through (WEC-1766)
- **CHANGED** - `BaseLayout` now accepts optional `obsolete` prop (`ObsoleteState` with `state`, `onRefresh`, `onDismiss`) and renders `ObsolesceBanner` above the Card when provided. When state is `not_refreshable` (and the beat is not dismissed) the Card gets a non-interactive semi-transparent overlay to dim its content without letting the banner show through. Follows the same optional-prop pattern as feedback UI; host supplies obsolescence state + callbacks (WEC-1766)
- **ADDED** - Comprehensive test coverage: 20 `ObsolesceBanner` tests (all 5 states, button interactions, copy variations, state transitions, callback isolation) plus `BaseLayout` obsolete tests (banner render, dimming overlay, click blocking, callbacks) (WEC-1766)
- **ADDED** - Storybook stories for `ObsolesceBanner`: 5 static state stories plus 1 interactive state-machine story with debug panel and automatic transitions (WEC-1766)

## [9.4.18] - 09-14-2026

- **CHANGED** - insights-v2 feedback UI cleanup: removed verbose comments and section dividers from `BaseLayout`, `FeedbackDialog`, `FeedbackBar`, `HiddenConfirmationCard`, `DismissInsightDialog`, `InsightOptionsMenu`, and `useBeatFeedbackFlow`; code is now self-documenting with brief one-line descriptions only where complexity warrants explanation. Minimal comment philosophy applied throughout (WEC-1766)
- **CHANGED** - insights-v2 dismiss flow simplified: replaced controlled `dismissState` prop with direct `beat.is_dismissed` observation paired with local `hasClosedConfirmation` state in `useBeatFeedbackFlow`; `cardState` now derived via `useMemo` from these two sources. Eliminates need for parent-managed dismiss state while maintaining clean separation: Pulse owns persistence (`is_dismissed` property), experiences owns transient UI state (confirmation visibility). Survives navigation and handles API failures gracefully (WEC-1766)
- **CHANGED** - `beatActions` interface extended with MUI-native dialog close reason vocabulary: `onFeedbackDialogClose` now receives `'closeButton' | 'backdropClick' | 'escapeKeyDown'` instead of custom translated values, eliminating unnecessary abstraction layer and improving clarity (WEC-1766)
- **FIXED** - `BaseLayout` feedback state management: added `setFeedbackRating(null)` to `undoDismiss` handler to clear any pending rating when user undos a dismissal, preventing stale feedback UI state (WEC-1766)
- **FIXED** - `FeedbackDialog` props made non-optional: `primaryText`, `secondaryText`, and `closeAriaLabel` are now required (previously optional), and `multiline={true}` is now explicit on the TextField. All callers (BaseLayout, stories, tests) updated to provide required props (WEC-1766)
- **FIXED** - `DismissInsightDialog` spacing restored: `sx` overrides for content padding and header alignment re-added after being accidentally removed during refactor (WEC-1766)

## [9.4.17] - 09-04-2026

- **ADDED** - insights-v2 feedback UI screens (WEC-1781): `FeedbackDialog` (generic feedback survey with radio options + optional detail field), `DismissInsightDialog` (dismiss beat with Once/Always choices + confirmation), `FeedbackBar` (compact inline helpful/not-helpful reactions), `HiddenConfirmationCard` (visual confirmation of hidden insight). All presentational, data-agnostic; parent owns copy, options, and callback logic. Wired to `beatActions` context for parent handler dispatch (WEC-1781)
- **ADDED** - Copy types: `DismissInsightCopy`, `FeedbackCopy`, `FeedbackBarCopy`, `HiddenConfirmationCopy`, `HideFeedbackCopy` (WEC-1781)
- **CHANGED** - `BaseLayout` now manages feedback/dismiss/hidden dialog states and passes callbacks to the appropriate feedback components (WEC-1781)
- **CHANGED** - Dialog utility accepts `contentSx`/`headerSx` and merges caller `sx` instead of overwriting it, to support feedback/dismiss flows (WEC-1781)

## [9.4.16] - 09-03-2026

- **ADDED** - insights-v2 overflow (“…”) menu on the insight card header: new presentational `OverflowMenu` (icon trigger + action list with full aria/keyboard support) and `InsightOptionsMenu`, which owns the item set — helpful / not helpful / hide — from `insights_feed.overflow_menu` copy. The host supplies the action handler via `beatActions.onMenuAction`, delivered through the new `BeatActionsProvider`/`useBeatActions` context; the menu renders only on the full (non-mini) layout when a handler is wired (WEC-1767)
- **ADDED** - `OverflowMenuCopy` (`insights_feed.overflow_menu`) localization type and copy keys (`aria_label`, `helpful`, `not_helpful`, `hide`) (WEC-1767)

## [9.4.15] - 09-03-2026

- **CHANGED** - micro-widget `InsightCard` now includes `offer_guid` (the `OFR-` beat guid) and `user_guid` in the PostHog metadata for the `viewed_messaging_insight` and `clicked_messaging_insight` events, so MarketingOffer engagement can be attributed to a specific offer and user (MEW2-3270)
- **ADDED** - Transaction History action block (single-bar): `transaction_history_block` registered in `mappings/blocks.ts`, rendering a `BarChartV2` over the beat's monthly `data_series` above a reused transactions `TransactionList` drilldown. Variant behavior (chart top, bar colors, drawer header, and the per-variant `filterStrategy`) is driven by `drillDownConfig`, covering the Transaction, CategorySpend, MonthlySpend, AccountBalance, and UpcomingBill variants (WEC-1701)
- **ADDED** - Upcoming-bill drilldown synthesizes its chart bars from the beat's recurring-bill transactions plus a projected bill read off `instance_slot_data` (`buildUpcomingBillSeries`), de-duped by date and sorted oldest→newest with a `TRN-projected-bill` sentinel bar (WEC-1701)
- **CHANGED** - Migrated insights-v2 instance-slot block names and bar-chart variant names to snake_case to match the backend contract: `BlockType` values, the `mappings/blocks.ts` map keys, `BAR_CHART_VARIANTS`, `BarchartBlock` layout keys, and the corresponding mock payloads (e.g. `bar_chart_block`, `category_color`, `monthly_spend_comparison`, `savings_account_balances_summary`, `budget_block`, `category_transactions_block`) (WEC-1701)
- **CHANGED** - `buildChartData` accepts an optional date format (defaults to month-short; upcoming-bill passes month-day) and now carries each bar's `date` so chart tabs, filter indexing, and the drawer header stay aligned (WEC-1701)
- **CHANGED** - `Legends` type made consistent: `additional_value`, `additional_value_type`, and `value_type` are now optional, and `instance_slot_data.legends` is typed as `Legends[]` (WEC-1701)
- **CHANGED** - `drillDownConfig` type-hardened: `DataSeriesItem` replaces `any[]` for the data series shape; removed the unused `filterKind` field; `filterStrategy` is now a required discriminated union returning a typed `TransactionFilter` or `{ skip: true }` (WEC-1701)
- **CHANGED** - `ActionDrawerState.context` stays `unknown` at the store level; drilldown components narrow to their expected payload shape via the new `useActionContext<DrilldownPayload>()` hook (WEC-1701)
- **CHANGED** - `TransactionHistoryBlock` snapshots the shared transaction filter on mount and restores it on unmount via a `useLayoutEffect` cleanup function, keeping beat-specific filter state scoped to the block lifecycle instead of leaking into `InsightsV2Store` as a global concern (WEC-1701)
- **FIXED** - Transaction History block renders the shared `EmptyBarChart` empty state instead of crashing when a single-bar or upcoming-bill beat produces no chart data (WEC-1701)
- **FIXED** - Upcoming-bill drilldown rendered an empty chart because the recurring-bill scoping guids were read from the top-level `Beat`; they (plus `primary_transaction_guid` and `account_guids`) are now sourced from `instance_slot_data`, where the payload actually carries them, so the synthesized bars render again (WEC-1701)
- **FIXED** - `TransactionHistoryBlock` `useLayoutEffect` deps now use stable joined-string keys (`beatTransactionGuidsKey`, `recurringBillGuidsKey`) instead of unmemoized computed arrays, preventing infinite render/fetch loops (WEC-1701)
- **ADDED** - Unit tests for the Transaction History action block: `drillDownConfig` + filter strategies, `utils` (flattened series, upcoming-bill synthesis, drawer titles, default selection), the `useTransactionHistory` hook, `TransactionDrillDown`, the block render, `buildChartData` date-format behavior, and the block registry mapping (WEC-1701)

## [9.4.14] - 09-03-2026

- **ADDED** - insights-v2 `TransactionDetailsBlock` action block: shared drawer content any transaction beat opens via `primary_cta.block = 'TransactionDetailsBlock'`. Resolves its subject transaction from `instance_slot_data.transaction_guid`, then `beat.primary_transaction_guid`, then `transaction_guids[0]`, preferring the `transactionStore` object over the payload snapshot so inline edits write through; maps backend action-name strings to the `TopActions`/`BottomActions` enums (unknown names dropped, `undefined` means defaults, `[]` means none); `useTransactionDetailsPrepare` loads transaction data at drawer-open time. Registered in `mappings/blocks.ts`, with a Storybook story (WEC-1499)
- **ADDED** - `TransactionDetailsBlockData` to the insights-v2 instance-slot-data union (WEC-1499)
- **FIXED** - `TransactionDetailsBlock` no longer falls back to `beat.primary_transaction` when it is a snapshot of a *different* transaction than the resolved guid — previously a beat naming its subject via `instance_slot_data` whose guid missed in the store rendered the wrong transaction's details, and inline edits were made against the wrong subject (WEC-1499)

## [9.4.13] - 09-02-2026

- **CHANGED** - the theme shape radius is half of `card_corner_radius`, so cards render at 2x the theme radius per MXUI convention (MEW-3445)
- **CHANGED** - `StyleConfig.corner_radius` replaced by `card_corner_radius` and `button_corner_radius`, matching `ClientStyleProfile` (MEW-3445)

## [9.4.12] - 09-02-2026

- **CHANGED** - insights-v2 action drilldown refactor for readability: `InsightsV2Store`'s action drawer now carries an opaque `context` envelope (read via the new `useActionContext<T>()` hook) instead of block-specific fields, opened through a single generic `openActionDrawer`; added a `createVariantBlock` factory for variant→component dispatch with an unknown-variant fallback, and simplified `MakeTransferActionBlock`/`layout.ts` (WEC-1774)
- **ADDED** - `StepChartBlock` to the insights-v2 ChartBlocks barrel export (was missing from the public entry point) (WEC-1774)
- **FIXED** - insights-v2 post-review cleanups: `BudgetBlock` icon computed as a JSX element instead of a component defined during render (avoids remount); `DonutChart` uses a data-driven React key; removed dead `.recharts-wrapper` selectors from `DoubleBarChart`/`BarchartV2`; wrapped `DefaultPlaceholder` in `observer`; oxfmt formatting in the figma-to-code script (WEC-1774)

## [9.4.11] - 09-02-2026

- **ADDED** - insights-v2 `AccountSwitchBlock` component block for the discovered-accounts connect insight: two institution logos on a `TransferLogoCard` track, gated on the payload `is_connected` flag — a pending state (link badge) and a connected success state (success badge + `ACCOUNT_CONNECTED_GRADIENT` wash + confetti); registered as `account_switch_block` in `mappings/blocks.ts` (WEC-1310)
- **ADDED** - `TransferLogoCard` `dotColor` prop (theme-aware connector dots) and `ACCOUNT_CONNECTED_GRADIENT` (20% warm→pink success wash) in `celebrationGradients`; `AccountSwitchBlockData` added to the insights-v2 instance-slot-data union (WEC-1310)

## [9.4.10] - 09-01-2026

- **FIXED** - `background_color`/`paper_color` are treated as light-mode colors under `mode: browser`, preventing white-on-white text in dark mode (MEW-3445)

## [9.4.9] - 09-01-2026

- **ADDED** - New theming properties on `ClientStyleProfile` and `StyleConfig`, and a `getClientCustomizations` util mapping them to MXUI `Customizations` (MEW-3445)
- **CHANGED** - `secondary_color` now seeds MUI `secondary` and `neutral_color` seeds `grey`/`neutral` (previously `neutral_color` -> `secondary`) (MEW-3445)
- **ADDED** - `getClientComponentOverrides` util for the overrides MXUI `Customizations` can't express (button/card radius, tab and calendar tints) (MEW-3445)
- **DEPRECATED** - `getClientPaletteOptions` and `getClientTheme` in favor of `getClientCustomizations` + `getClientComponentOverrides`; both inherit the `secondary_color`/`neutral_color` seed correction above (MEW-3445)
- **FIXED** - `MiniWidgetContentCoverage` test failed in the last days of a month; its fixture date is now clamped to the end of the current month (MEW-3445)

## [9.4.8] - 08-27-2026

- **ADDED** - insights-v2 Action Block drilldowns: shared `ActionBlockLayer` owns a single drawer, content-only blocks register in `mappings/blocks.ts` keyed by the beat CTA's `block` (WEC-1705)
- **ADDED** - `MakeTransferActionBlock` drilldown with `SaveAnExtra100` / `SaveEnoughToLiveOn` variants; per-variant layout (sections, tables, copy keys, data keys) driven by `actionBlocks/MakeTransferActionBlock/layout.ts`; variant-specific, localized drawer titles from `insights_feed.make_transfer` copy (WEC-1705)
- **ADDED** - `SaveExtraBlock` component block rendering the shared `SaveAnExtraCard` from the beat's `primary_text` / `secondary_text` segments (WEC-1705)
- **ADDED** - CTA drawer gating: a CTA without a `block` opens nothing (reserved for postMessage), an unknown block shows the error drawer, a matching block opens its drilldown (WEC-1705)
- **CHANGED** - Moved ActionBlock from `blocks/ComponentBlocks/ActionBlock` to `src/insights-v2/actionBlocks`; drilldown figures/copy now sourced from `insights_payload.instance_slot_data` (WEC-1705)
- **CHANGED** - `InsightsV2Store.closeActionDrawer` preserves `trigger` so the drawer keeps its title/content through the slide-out animation (WEC-1705)
- **FIXED** - Action drawer first-open animation: `ActionBlockLayer` stays mounted for null-block CTAs so the slide-in transition plays on the first open (WEC-1705)

## [9.4.7] - 08-27-2026

- **ADDED** - `CategoryTransactionsBlock` component block supporting `SameHeaderDesign` variant for single fee and large transactions in Insights v2 (MEW2-3237)
- **ADDED** - `BlockType.CategoryTransactionsBlock` enum and `CategoryTransactionsBlockData` / `InsightTransaction` type definitions (MEW2-3237)
- **ADDED** - Storybook stories and unit tests for `CategoryTransactionsBlock` covering `FeeDetected` and `LargeTransaction` (MEW2-3237)

## [9.4.6] - 08-27-2026

- **ADDED** - Storybook "Client theme" toolbar dropdown to switch the active `ClientStyleProfile` fixture (e.g. Seattle Seahawks) across all stories via `getClientPaletteOptions` and `getClientTheme` (MEW2-9999)
- **ADDED** - `Common/Client Theme` story displaying palette swatches, corner radiuses, and typography to verify client style profiles in Storybook (MEW2-9999)

## [9.4.5] - 08-27-2026

- **ADDED** - Transaction History action block (part 1): chart-to-drilldown wiring. `BarchartBlock` and `DoubleBarChartBlock` now invoke `openChartDrilldown` on a bar click, forwarding the clicked column (`chartBarIndex`) and sub-series (`tabIndex`) to the shared insights-v2 action drawer so a tapped bar opens the matching transaction history slice (WEC-1701)
- **CHANGED** - Decoupled `DoubleBarChart` into a pure, prop-driven presentational component (`bars`/`colors`/`legends`/`onBarClick`); the card block `DoubleBarChartBlock` now owns data shaping (`buildComparisonSeries`) and palette resolution and injects the click behavior, keeping the chart reusable across the card and the drill-down (WEC-1701)
- **ADDED** - `./insights-v2` package export so consumers can import the module and its blocks directly (WEC-1701)
- **FIXED** - Date-only strings (e.g. `2026-03-01`) were parsed as UTC midnight and rolled the month label back a month in negative-offset timezones (EST/CST/MST/PST); `comparisonUtils` and `BarchartBlock/utils` now wrap date strings with `parseISO` before formatting, so North-American users see the correct month and `comparisonUtils.test.ts` no longer fails outside UTC/IST (WEC-1701)
- **FIXED** - Double-bar aria labels read the main and comparison bars identically (same month + amount template); each series now carries its localized name (`localized_label`, falling back to the stable `label` key) through a `_3{}` copy slot so screen-reader users can distinguish the two bars, without synthesizing copy in the client (WEC-1701)
- **FIXED** - `buildComparisonSeries` now drops rows with an unparseable date and sorts columns via `parseISO`, so malformed wire data can't produce a `NaN` comparator that scrambles column order (and the `chartBarIndex` forwarded to the drill-down) (WEC-1701)
- **CHANGED** - `ChartLegend` (insights-v2) now uses a data-driven key (`label ?? index`) instead of the array index
- **NOTE** - First of a multi-part delivery of the Transaction History action block; this part lands the reusable double-bar chart, the drill-down click contract shared by both chart cards, and the `./insights-v2` export that later parts build on

## [9.4.4] - 08-26-2026

- **CHANGED** - Investments widget now disables (not hides) the Allocation and Analysis tabs, with an explanatory tooltip, when the selected accounts have no data to render; the active tab resets to Overview if it becomes disabled
- **FIXED** - The Analysis tab now stays disabled for partially-enriched holdings whose style weights fall outside the render band, so it no longer enables onto an all-zero grid

## [9.4.3] - 08-26-2026

- **ADDED** - Pass category_guid and main_class_guid when creating repeating transactions (MEW-4051)
- **ADDED** - Filter selectable transactions for recurring creation to merchant-backed transactions or eligible merchantless bills and income (MEW-4051)

## [9.4.2] - 08-26-2026

- **ADDED** - Sub budget totals now roll up to parent budget total
- **ADDED** - Destructive cascade delete of sub-budgets when a parent budget is deleted
- **REMOVED** - Un-budgeted projected income line
- **CHANGED** - Colors from `primary.light` to `primary.main`

## [9.4.1] - 08-26-2026

- **REMOVED** - Merchant Guid filter when adding recurring transactions

## [9.4.0] - 08-25-2026

- **ADDED** - insights-v2.0 module: comprehensive reusable component library for insights UI
- **ADDED** - Chart blocks: BarChart, DoubleBarChart, DonutChart, StepChart, DoubleProgressBar (WEC-1256, WEC-1257, WEC-1258, WEC-1259, WEC-1260)
- **ADDED** - Content blocks: AccountBlock (with/without confetti variants), BudgetBlock (category/merchant), ActionBlock foundation (WEC-1309, WEC-1312, WEC-1315, WEC-1704)
- **ADDED** - Image blocks: SVG Block (with CIBC support), Image Block (WEC-1295, WEC-1296, WEC-1335)
- **ADDED** - Reusable components: AccountHeroCard, TransferLogoCard, MerchantHighlightCard, MerchantLogo, LogoClusterCard, LogoTile, MerchantLogoCard, P2PLogoStack, RankBadge, InsightTransactionRow, TransactionListCard, TransactionRow, DesignateEmergencySavingsCard, SaveAnExtraCard, SavingsOpportunityCard, UpcomingBillCard (WEC-1303, WEC-1305, WEC-1313, WEC-1714, WEC-1750)
- **ADDED** - Support components: StatusMessageCard, StatusPill, AmountPill, celebrationGradients module with confetti animations
- **ADDED** - Block type system: standardized block structure (BlockType, BlockConfig, BlockData), moved to `src/core/types/blocks/`, renamed `block_data` to `instance_slot_data` (WEC-1344)
- **ADDED** - Insight template system and mini layout support (WEC-1253, WEC-1254)
- **ADDED** - Storybook stories for all 40+ new components and blocks with interactive examples
- **ADDED** - RTL tests for all components with 85%+ code coverage across the insights-v2.0 module
- **CHANGED** - Block type definitions now centralized in `src/core/types/blocks/` with proper TypeScript exports
- **NOTE** - All insights-v2.0 components are presentational (stateless); data provided by consumers; ready for integration into blocks and containers

## [9.3.7] - 08-20-2026

- **FIXED** - Prevent duplicate items caused by race conditions between REST responses and WebSocket events

## [9.3.6] - 08-12-2026

- **ADDED** - Creating the new TransparentOverdraftV2 insight

## [9.3.5] - 08-12-2026

- **FIXED** - Transaction detail view showed transfer/credit amounts (e.g. an account-to-account transfer deposit) as an unsigned, default-colored amount because the header keyed off `isIncome` (true only for the Income category) while the list keyed off `transaction_type`; the detail view now uses `transaction_type === CREDIT` so credits render as `+$Amount` in success green, consistent with the transactions list (MEW-3703)
- **CHANGED** - Transaction detail view date now renders as `Month DD, YYYY` (e.g. `June 08, 2026`) instead of the numeric `MM/DD/YYYY` format, per design; added a `FULL_MONTH_DAY_YEAR` date format (MEW-3703)

## [9.3.4] - 08-12-2026

- **FIXED** - Blank rows in "Manage Insights Notifications": 10 members of `InsightNotificationTypes` were rendered by the settings list but had no entry in `getProfileLabel`'s `labelMap`, so they displayed a working, toggleable notification row with an empty title (MEW2-2872)
- **ADDED** - `category_budget`, `goal_progress`, `spending_plan_budget_exceeded`, and `spending_plan_category_spending` settings copy keys; the other six newly-labeled types reuse existing copy
- **ADDED** - `src/core/utils/__tests__/SettingsUtil.test.ts` asserting every `InsightNotificationTypes` member resolves to a non-empty label, so enum/label-map drift fails CI instead of shipping a blank row

## [9.3.3] - 08-11-2026

- **FIXED** - Exported transaction CSV showed the post date one day early for users in Western (negative-offset) timezones because the date was rendered from the raw epoch in local time; the Date column now uses the UTC calendar day (MEW-3961)

## [9.3.2] - 08-11-2026

- **ADDED** - Reset password feature in the Settings profile tab, gated behind `display_password_options_in_settings` config flag, with client-side validation (minimum length, letter, number, match) and show/hide password toggles (MEW-3722)
- **FIXED** - The greeting header text to never be an H1 and to use H3 styling

## [9.3.1] - 08-10-2026

- **FIXED** - Spending, Trends, Finstrong, and Budgets category totals used the viewer's local-midnight timestamps, shifting the query window by the timezone offset for non-UTC users and dropping/gaining boundary transactions; date-range boundaries are now sent as UTC calendar days

## [9.3.0] - 08-06-2026

- **CHANGED** - Phase 1 toolchain modernization: upgraded to Vite 8, Vitest 4, and Storybook 10 (MEW-3727)
- **CHANGED** - Migrated Storybook and test mocking to MSW for a single mocking strategy across tests and stories (MEW-3793, MEW-3732)
- **CHANGED** - Replaced ESLint/Prettier with oxlint/oxfmt (MEW-3729)
- **CHANGED** - Upgraded to TypeScript 7 (native), via 6 (MEW-3730)
- **CHANGED** - Unit test revamp: MSW migration, de-mocking, `isolate:false`, silent-on-green output (MEW-3732)
- **CHANGED** - Storybook story cleanup and modernization (MEW-3733)
- **CHANGED** - Bumped dependencies to latest minor/patch within their current majors (including `@mxenabled/mxui` 2.7.1 and `@mxenabled/mx-icons` 2.2.0)
- **FIXED** - Widened the `date-fns` peer dependency range to `^3 || ^4` so consumers on date-fns 3 are still supported (only stable APIs common to both majors are used); the range previously read `^3` while the declared dependency was `^4`
- **ADDED** - `verify:exports` post-build check asserting every `package.json` `exports`/`typesVersions` target exists in `dist/`, wired into the `build` script (and run in the gating CI `test` job) so a toolchain change cannot silently break the published entry points
- **FIXED** - Test harness (`tests/setup.ts`) install-once guards for the `fetch` shim and MSW `server.listen()`/`afterAll` so they are not re-wrapped/re-invoked per file under `isolate: false`, plus `document.fonts.ready` now resolves and `expectConsoleError` no longer masks real failures thrown from `finally`
- **ADDED** - `yarn typecheck` and a `tsconfig.tools.json` that type-checks the previously-unchecked `tests/`, `mock/`, and `.storybook/` sources (now gated in CI); fixed the errors this surfaced and removed the type hacks in `mock/handlers.ts` (hand-forked `MockData` interface, `type Any = any`, the dynamic-import trick, and the `as unknown as HandlerData` casts) in favor of the real `MockData` type
- **CHANGED** - Tightened test MSW `onUnhandledRequest` from `bypass` to `warn` so unmocked endpoints surface instead of silently hitting the network (Storybook stays `bypass` for static assets/fonts), and registered default MSW handlers (bound to a fresh `MockData`) at the Storybook preview level so every story serves the mock fixtures
- **CHANGED** - Pinned `msw` to an exact `2.15.0` to match the vendored `mockServiceWorker.js`, and `Beats.js` → `Beats.ts`
- **ADDED** - `src/core/api/__tests__/ApiClasses.test.ts` exercising the real `src/core/api/*` classes against MSW; coverage now includes `src/core/api/**` in the denominator (the MSW migration runs the real API classes) with the REVIEW.md floors kept at lines 85 / statements 85 / functions 80 / branches 78 (tests added to clear them rather than lowering), and `coverage.cleanOnRerun` set to `true` so a re-run can't satisfy the floors with stale data
- **CHANGED** - Dependency/structure hygiene: removed the unused `path` userland shim (configs use `node:path`); documented why `@typescript/typescript6` is retained (vite-plugin-dts needs the JS Compiler API that TS 7 native doesn't yet expose); consolidated the root `mockData/` fixtures into `mock/data/`

## [9.2.9] - 08-09-2026

- **FIXED** - Category selector drawer kept the previously expanded accordion and highlighted selection when reopened for a different transaction; it now resets and expands to the current transaction's category each time it opens

## [9.2.8] - 08-07-2026

- **FIXED** - Trends timeframe buttons (3M/6M/9M/1Y) reset to the 6-month default when the widget remounted, snapping the displayed date range back to the previous selection

## [9.2.7] - 08-06-2026

- **FIXED** - Spending and Trends dropped a date-range or account-filter change made while a totals request was still in flight; the previous range's data stayed on screen until the widget was reloaded

## [9.2.6] - 07-21-2026

- **FIXED** - Debts widget interest rate label and value

## [9.2.5] - 07-21-2026

- **FIXED** - Disable save button when no splits to save

## [9.2.4] - 07-21-2026

- **FIXED** - Global account filter dropdown tripped the axe `nested-interactive` ADA violation (WCAG 4.1.2); checkbox rows now use a native checkbox with a single interactive control

## [9.2.3] - 07-15-2026

- **FIXED** - Custom date range modal cut off the calendar on the right on desktop; dialog now widens to fit the picker

## [9.2.2] - 07-15-2026

- **FIXED** - Added user-facing success and error alerts for repeating transactions API calls

## [9.2.1] - 07-14-2026

- **FIXED** - Investment holding row text vertically overflowed with long names/descriptions; now clamps to 3 lines with ellipsis

## [9.2.0] - 07-09-2026

- **ADDED** - `GlobalCaptureException` callback pipeline for error observability for Account, Transaction, AppData, RecurringTransactions, Budgets, Category, Goal, NetWorth, Settings, Beat, GlobalCopy, Finstrong, Help, Holding, and Notification

## [9.1.6] - 07-08-2026

- **ADDED** - `GlobalCaptureException` callback pipeline for error observability for User

## [9.1.5] - 07-07-2026

- **FIXED** - Transaction dates displayed, grouped, and filtered one day early in negative-offset (US) timezones when the feed stored the date at midnight UTC

## [9.1.4] - 07-06-2026

- **FIXED** - Spending mini tile intermittently showed a $0 total while the full Spending overlay displayed the correct transactions, caused by the tile requesting category totals before account data finished loading
- **FIXED** - Category totals (date-range and monthly) now reset their in-flight loading flag and mark as loaded on request failure, so consumers no longer get stuck on an unrecoverable loading spinner and can retry without a hard refresh

## [9.1.3] - 07-03-2026

- **FIXED** - Spending drawer intermittently showed an empty transaction list for months outside the cached transaction window
- **FIXED** - Transaction list stayed empty until hard refresh when any data load failed, because in-flight flags never reset, blocking retries
- **FIXED** - A failed date-range expansion no longer wipes the already-loaded transactions from the list

## [9.1.2] - 07-02-2026

- **FIXED** - Net Worth timeframe analytics event (`netWorth_click_timePeriod`) fired on every dashboard load/refresh instead of only on user timeframe selection

## [9.1.1] - 07-01-2026

- **FIXED** - Cash Flow dashboard starting balance ignored the account filter and could differ between the summary and details views
- **FIXED** - Mini Cash Flow widget projection was tied to the Recurring Transactions date range instead of its own 30-day window

## [9.1.0] - 07-01-2026

- **MERGED** - june moratorium branch into master

## [9.0.17] - 06-29-2026

- **UPDATED** - enable sourcemap in vite config

## [9.0.16] - 06-29-2026

- **ADDED** - Smaller card width breakpoint (220px) for MicroBeat carousel on tiny containers (≤320px), preserving the original 268px card for common phone widths
- **FIXED** - MicroBeat carousel card width now recomputes on container resize via ResizeObserver, observing the stable outer container to avoid a shrinking feedback loop and stuck-small layout
- **ADDED** - recurring transactions a11y improvements

## [9.0.15] - 06-15-2026

- **FIXED** - Critical Vulnerabilities fix

## [9.0.14] - 06-03-2026

- **FIXED** - Recurring transactions incorrectly marked as paid when linked transactions fall outside the expected dates
- **FIXED** - Expense details drawer always showing mark as paid action even for already paid recurrences
- **FIXED** - Transaction details showing undefined account name in recurring transaction past activity

## [9.0.13] - 06-02-2026

- **ADDED** - Back button on Notification Settings views when show_back_button is enabled

## [9.0.12] - 06-02-2026

- **FIXED** - Debts widget briefly displaying zero percent interest rates before account data finished loading

## [9.0.11] - 06-01-2026

- **ADDED** - Spending chart accessibility description for screen readers

## [9.0.10] - 05-27-2026

- **UPDATED** - Adds Tab indexes to the BubbleWeek component to make it accessable to screen readers.

## [9.0.9] - 05-27-2026

- **FIXED** - Split transaction save creating duplicate children due to double-click race condition

## [9.0.8] - 05-25-2026

- **FIXED** - Account filter checkboxes now expose checked/unchecked/mixed state to screen readers
- **FIXED** - Account filter no longer double-announces interactive elements
- **FIXED** - Date range selector announcing [Object object] instead of readable text
- **FIXED** - Account filter button aria-label now interpolates dynamic account count
- **FIXED** - Drawer close/back button now receives focus when drawers open for screen reader users

## [9.0.7] - 05-22-2026

- **UPDATED** - ADD the html_in_description_cta field to the ClientConfigurableCta

## [9.0.6] - 05-20-2026

- **UPDATED** - Add aria-hidden="true" to the main image in the WeekendNoSpendDays insight

## [9.0.5] - 05-20-2026

- **UPDATED** - Hide MarketingHub Offer call to action button when call_to_action content is blank

## [9.0.4] - 05-19-2026

- **ADDED** - Recurring Transactions "Mark as Paid/Unpaid" UI flows
- **ADDED** - Recurring Transactions dynamic upcoming recurrence card
- **ADDED** - Recurring Transactions manual transaction linking/unlinking
- **UPDATED** - Recurring Transactions layout, styling, test updates and refactoring

## [9.0.3] - 05-19-2026

- **FIXED** - BUG Fixed | Trends widget chart displaying incorrect spending data inconsistent with budget widget and table

## [9.0.2] - 05-18-2026

- **UPDATED** - Widget size changed event to return content size instead of container size

## [9.0.1] - 05-15-2026

- **FIXED** - Bug Fixed - Edit Budget Dialog was cutting out of the frame for smaller devices - Bug Fixed

## [9.0.0] - 05-14-2026

- **UPDATED** - Upgraded core dependencies: React 18 to 19, MUI 5 to 7, MXUI 1 to 2, mx-icons 1 to 2, and Storybook 8.6.4 to 8.6.18
- **UPDATED** - Migrated all MUI components from deprecated props to the new slotProps/slots API
- **UPDATED** - Migrated MUI Grid components from v1 item/xs props to v2 size prop
- **UPDATED** - Replaced removed MXUI components with mx-icons equivalents
- **UPDATED** - Migrated theme palette references from border to neutral

## [8.2.5] - 05-14-2026

- **FIXED** - Payment due date logic in account details to ensure consistent UTC-based date rendering

## [8.2.4] - 05-13-2026

- **UPDATED** - Removed deprecated `variant` and `showBorder` props from Insights Micro Widget after `cardStyle` migration, reduce type duplication for micro insight `cards`

## [8.2.3] - 05-11-2026

- **UPDATED** - Adds suppport for `cardStyle` batcave setting for Insights Micro Widget

## [8.2.2] - 05-08-2026

- **UPDATED** - Narrowed microinsights component prop types and removed unused type exports

## [8.2.1] - 05-07-2026

- **FIXED** - Widget scrolling behavior

## [8.2.0] - 05-05-2026

- **UPDATED** - Moved all MobX stores into src/core/stores

## [8.1.12] - 05-06-2026

- **FIXED** - Spendng Donut initializing with mismatched date range category totals

## [8.1.11] - 05-05-2026

- **FIXED** - Spending chart crash on chart color index overflow

## [8.1.10] - 05-05-2026

- **UPDATED** - Error component UI and no network fallback

## [8.1.9] - 04-29-2026

- **FIXED** - Issue causing webviews to treat swipes on miniwidget as taps

## [8.1.8] - 04-28-2026

- **FIXED** - Issue causing retirement goals not to display unless there were savings and/or debt goals

## [8.1.7] - 04-27-2026

- **UPDATED** - Control available balance display via flag

## [8.1.6] - 04-23-2026

- **UPDATED** - Change hidden transactions to excluded transactions
- **UPDATED** - Transaction list to always show hidden(excluded) transactions
- **ADDED** - Snackbar alerts for transaction exclude/include success and failure

## [8.1.5] - 04-23-2026

- **FIXED** - Remove incorrect label from Goals Interest Rate Action

## [8.1.4] - 04-22-2026

- **FIXED** - Cash Flow widget | center read-only date range

## [8.1.3] - 04-22-2026

- **ADDED** - widget_size_changed event when the widget container size changes.

## [8.1.2] - 04-22-2026

- **FIXED** - Widget header title flash on initial render
- **FIXED** - Menu button showing incorrectly on large viewports in compact containers

## [8.1.1] - 04-22-2026

- **FIXED** - payment dates

## [8.1.0] - 04-21-2026

**UPDATED** - All apis have been moved into `src/core/api`

## [8.0.25] - 04-20-2026

- **ADDED** - `Error` component from MD

## [8.0.24] - 04-20-2026

- **UPDATED** - `@tanstack/react-virtual` from 3.13.2 to 3.13.19

## [8.0.23] - 04-20-2026

- **UPDATED** - `posthog-js` from 1.230.1 to 1.356.1

## [8.0.22] - 04-18-2026

- **FIXED** - `CategoryBudget` label Bug.

## [8.0.21] - 04-17-2026

- **ADDED** - `ClientConfigurableCta` for Insights Card

## [8.0.20] - 04-15-2026

- **UPDATED** - Widget container header styles

## [8.0.19] - 04-15-2026

- **ADDED** - Added `DrillDown Static Calculation Drawer` for SaveAnExtra and SaveEnoughToLiveOn beats

## [8.0.18] - 04-15-2026

- **ADDED** - `DiscoveredAccountsConnect` component

## [8.0.17] - 04-14-2026

- **ADDED** - `target_origin_referrer` to `ClientConfig` and `MasterConfig` types

## [8.0.16] - 04-13-2026

- **ADDED** - Replenish Savings | DrillDown card

## [8.0.15] - 04-13-2026

- **UPDATED** - Added `Embedded Card in Transaction Details` and the View History functionality | Transaction History Drilldown drawer

## [8.0.14] - 04-10-2026

- **REMOVED** - unused `showCTAColocatedWithText` prop

## [8.0.13] - 04-10-2026

- **FIXED** - `Transactions` - SplitTransaction Duplication Bug.

## [8.0.12] - 04-10-2026

- **ADDED** - `Save an extra $100` component card added

## [8.0.11] - 04-09-2026

- **ADDED** - Analytics for `TransactionTable` category cell click
- **FIXED** - `RecurringTransactions` to show yearly recurrences without past transactions within 90 days

## [8.0.10] - 04-09-2026

- **ADDED** - `P2PMultipleCategorization` component.

## [8.0.9] - 04-09-2026

- **ADDED** - `AccountBalanceCard` component.

## [8.0.8] - 04-09-2026

- **ADDED** - `Connection Details` drillDown.

## [8.0.7] - 04-08-2026

- **ADDED** - `Coupon` component

## [8.0.6] - 04-08-2026

- **ADDED** - `P2P Category Single Account card` component added

## [8.0.5] - 04-08-2026

- **ADDED** - `SaveEnoughToLiveOn` SVG component with theme support

## [8.0.4] - 04-07-2026

- **ADDED** - `ConnectionCard` component

## [8.0.3] - 04-07-2026

- **ADDED** - `DoubleBarChartMXUI` component for Insights MUI Refresh.

## [8.0.2] - 04-07-2026

- **ADDED** - MUI Refresh | Tab Container for DrillDown

## [8.0.1] - 04-06-2026

- **UPDATED** - Documentation to reflect the move of shared types and constants to `src/core`
- **UPDATED** - Technical support Slack channel reference to the new enterprise link
- **UPDATED** - Installation and publishing guides to reflect Yarn-only project mandate
- **UPDATED** - Architectural diagrams to include the new `src/core` layer

## [8.0.0] - 04-02-2026

- **UPDATED** - types by moving from common/types to core/types (BREAKING CHANGE)

## [7.13.22] - 04-03-2026

- **FIXED** - `Spending` widget treating negative transactions as expenses

## [7.13.21] - 04-02-2026

- **ADDED** - DonutChartV2 component for Insights MUI Refresh.

## [7.13.20] - 04-01-2026

- **ADDED** - Introduced `TransactionCard` component for `Insights`.

## [7.13.19] - 04-01-2026

- **FIXED** - Budget date now aligns with selected month

## [7.13.18] - 04-01-2026

- **UPDATED** - Deprecated icons to use mx-icons library

## [7.13.17] - 03-31-2026

- **UPDATED** - Deprecated `border` color to use `neutral`

## [7.13.16] - 03-31-2026

- **FIXED** - `Spending` Other bucket dropping overflow spending categories

## [7.13.15] - 03-31-2026

- **FIXED** - a11y labeling for mini widget CTAs

## [7.13.14] - 03-31-2026

- **FIXED** - `CategoryBudget` cosmetics change.

## [7.13.13] - 03-30-2026

- **FIXED** - use detailed transactions for sortedTransactionsWithSplit

## [7.13.12] - 03-30-2026

- **UPDATED** - Call `refresh_all` endpoint for member foreground aggregation

## [7.13.11] - 03-30-2026

- **FIXED** - ADA text color contrast fixes
- **FIXED** - ADA aria label button group fix
- **FIXED** - ADA replace AccountDetails list item dividers with borders
- **FIXED** - ADA move AccountActions dialogs from being direct children of `ul`

## [7.13.10] - 03-30-2026

- **FIXED** - Casing of 'upcoming' copy in recurring transactions
- **FIXED** - Wrapping of longer goal names on goal status cards
- **FIXED** - Truncation of custom subcategory names
- **FIXED** - Wrapping of delete subcategory message

## [7.13.9] - 03-30-2026

- **UPDATED** - `AddMerchantBudgetAction` | Updated the condition to execute the transcation's setFilter only when the merchantBudgetDrawer is open

## [7.13.8] - 03-30-2026

- **FIXED** - Remove extra space in `AmericanUpcomingTaxDeadlineAlert` SVG

## [7.13.7] - 03-27-2026

- **UPDATED** - Added the prop in BudgetDetailsDrawerV2 to access the transaction list props

## [7.13.6] - 03-26-2026

- **UPDATED** - search box placeholder colors to meet color contrast ratios
- **FIXED** - semantic HTML in CategoryList

## [7.13.5] - 03-26-2026

- **FIXED** - Updated custom tooltip formatting for Finstrong

## [7.13.4] - 03-26-2026

- **FIXED** - semantic HTML in CategoryList

## [7.13.3] - 03-26-2026

- **FIXED** - `Trends` Category List Cosmetic Changes.

## [7.13.2] - 03-25-2026

- **UPDATED** - Trends Widget to fix ADA issues with lists

## [7.13.1] - 03-25-2026

- **ADDED** - New `icon_type` for InstitutionLogo.

## [7.13.0] - 03-24-2026

- **UPDATED** - All text variants to replace deprecated variants

## [7.12.17] - 03-24-2026

- **UPDATED** - Respect exclude held accounts in client widget profile

## [7.12.16] - 03-24-2026

- **UPDATED** - MXUI -> 1.5.14 | button text error color when hovered/pressed

## [7.12.15] - 03-24-2026

- **UPDATED** - Updated the mxui version to 1.5.13 | `Toast` | CSS Customization handling responsiveness

## [7.12.14] - 03-24-2026

- **UPDATED** - Budget widget | text error color when hovered/pressed

## [7.12.13] - 03-24-2026

- **FIXED** - Split transaction error background to meet a11y color contrast ratios

## [7.12.12] - 03-24-2026

- **ADDED** - Test Cases for BeatIcons.

## [7.12.11] - 03-23-2026

- **FIXED** - ADA replace SpendingList dividers with border
- **FIXED** - ADA add `aria-hidden` and `role="presentation"` to SpendingList bullets
- **FIXED** - ADA add `aria-hidden` and `role="presentation"` to SpendingDonut icons
- **FIXED** - ADA darkened/lightened category color 2px stroke around SpendingDonut areas

## [7.12.10] - 03-23-2026

- **ADDED** - font styling for mrs content tagged copy

## [7.12.9] - 03-23-2026

- **FIXED** - semantic html in Transactions List

## [7.12.8] - 03-23-2026

- **FIXED** - Updated IconBacking from RecurrenceBadges.

## [7.12.7] - 03-23-2026

- **FIXED** - Cosmetic issues in dark mode (flagged transactions and survey feedback)

## [7.12.6] - 03-23-2026

- **FIXED** - Trends Category List Icons Fill Color.

## [7.12.5] - 03-18-2026

- **FIXED** - ADA color contrast in BudgetDetails zero states

## [7.12.4] - 03-18-2026

- **UPDATED** - Budget Details drawer ally | replace semantic `<H2>` with `<Text>`

## [7.12.3] - 03-18-2026

- **ADDED** - Help widget analytics

## [7.12.2] - 03-18-2026

- **UPDATED** - Added `isCopyLoaded` check to fix animation issues

## [7.12.1] - 03-17-2026

- **ADDED** - `Micro Insights` phase 1 icon_types

## [7.12.0] - 03-17-2026

- **UPDATED** - `Insights` BeatCardMUI added and Updated for Phase 1 beats

## [7.11.24] - 03-16-2026

- **FIXED** - Add visible tooltip above `RecurrenceCalendar` legend for a11y
- **FIXED** - Fix aria labels on `RecurrenceDay` to always include date
- **FIXED** - Update heading markup hierarchies to be logical for a11y
- **FIXED** - Add aria-label to inner `Dialog` elements with `role="dialog"` in `BudgetsWidget`\

## [7.11.23] - 03-16-2026

- **UPDATED** - small tweaks in the css of the tip section and displaying the existing amount in the edit currency dialog modal

## [7.11.22] - 03-13-2026

- **UPDATED** - Theming to use updated MuiPaper border radius

## [7.11.21] - 03-14-2026

- **ADDED** - `Merchant Budget Flow` Added the Manage Merchant Budget Flow

## [7.11.20] - 03-12-2026

- **FIXED** - `Finstrong` Chart Date Bug Fixed

## [7.11.19] - 03-11-2026

- **ADDED** - A11y adjustments to chart markers, legends, tooltips

## [7.11.18] - 03-10-2026

- **FIXED** - Filter ADA bug.

## [7.11.17] - 03-10-2026

- **FIXED** - Chart layout and spacing issues

## [7.11.16] - 03-06-2026

- **FIXED** - Add visible label to `SplitRow` amount input
- **FIXED** - Add/Fix visible label to `CustomCategoryModal` text input

## [7.11.15] - 03-06-2026

- **FIXED** - `Recurring Transactions` | Month name locale fix

## [7.11.14] - 03-05-2026

- **FIXED** - issue with auto generating budgets when loading budgets full or mini standalone

## [7.11.13] - 03-05-2026

- **FIXED** - Incorrect "next payment" date projected in `RecurringTransactionDetails`

## [7.11.12] - 03-05-2026

- **UPDATED** - Tweaks to `CategorySpendingV2MUI` and `BudgetDetailsDrawerV2`

## [7.11.11] - 03-04-2026

- **FIXED** - Issue with including bi-weekly recurrences in past months

## [7.11.10] - 03-04-2026

- **FIXED** - Account Actions | toggle a11y

## [7.11.9] - 03-04-2026

- **FIXED** - `Debts` return to the top of the page when scrolling quickly

## [7.11.8] - 03-04-2026

- **UPDATED** - `categoryBudget` cta button

## [7.11.7] - 03-04-2026

- **UPDATED** - Transaction Details | Added "Add a Merchant Budgets" | Without "Manage merchant Budget Flow"

## [7.11.6] - 03-02-2026

- **FIXED** - Account Details drawer a11y issues

## [7.11.5] - 03-02-2026

- **FIXED** - `HideAction` broken visibility off icon
- **FIXED** - `HideAction` accessibility improvements (aria, keyboard focus trap, etc)
- **FIXED** - `TransactionDetails` action list cannot have dialog `div` as direct child of `ul`/`ol` for accessibility
- **FIXED** - `TagRow` checkbox redundant screenreader announcement

## [7.11.4] - 02-27-2026

- **FIXED** - Trends Widget | Empty state flash before data load

## [7.11.3] - 02-27-2026

- **UPDATED** - `InsightsHeader` design tweaks

## [7.11.2] - 02-27-2026

- **UPDATED** - Debts empty state | disable actions
- **UPDATED** - Global Account Filter | disabled when no accounts

## [7.11.1] - 02-26-2026

- **FIXED** - Fix `aria-controls` and add `aria-expanded` in `GlobalAccountFilter`
- **FIXED** - Replace implicit heading in `RecurringTransactionsMiniWidget` with `h3`

## [7.11.0] - 02-26-2026

- **ADDED** - `widget` to `deep_link_params` interface
- **REMOVED** - `MerchantBudget` action from `DEFAULT_BOTTOM_ACTIONS`

## [7.10.38] - 02-25-2026

- **UPDATED** - `InsightsHeader` design tweaks

## [7.10.37] - 02-26-2026

- **FIXED** - `InsightsNotificaiton` | Clickable Notification moves beat to top of feed fix

## [7.10.36] - 02-25-2026

- **UPDATED** - MXUI to get new toggle button styling

## [7.10.35] - 02-25-2026

- **FIXED** - Fix broken month totals column sort in `TrendsTable`
- **ADDED** - Custom `AccessibleSortIcon` for `TrendsTable` with dynamic aria-labels

## [7.10.34] - 02-25-2026

- **UPDATED** - `InsightsHeader` null check copy

## [7.10.33] - 02-24-2026

- **ADDED** - `InsightsHeader`

## [7.10.32] - 02-24-2026

- **UPDATED** - Added Merchant Budget List Item in the transcation Details and a small tweak in the color to use 'text.primary' as per FIGMA

## [7.10.31] - 02-24-2026

- **UPDATED** - `Insights` drilldown layout

## [7.10.30] - 02-23-2026

- **UPDATED** - Use `recentNotifications` instead of `newNotifications` in `NotificationList`
- **UPDATED** - Adjust `filterRecentNotifications` to filter for last 30 days instead of 7 days

## [7.10.29] - 02-23-2026

- **FIXED** - `Cashback` Mobile | Info hover bug

## [7.10.28] - 02-20-2026

- **UPDATED** - Debts Widget empty state

## [7.10.27] - 02-20-2026

- **REMOVED** - Use of `use_tokens` and token constants
- **REMOVED** - Unused component `BarChart` in common

## [7.10.26] - 02-20-2026

- **UPDATED** - Small Tweaks in the bill amount not standard mui in margin and the contentProps sx

## [7.10.25] - 02-20-2026

- **FIXED** - Loader BG Color

## [7.10.24] - 02-18-2026

- **UPDATED** - Add 140 character limit for transaction description input
- **UPDATED** - Add 50 character limit for subcategory name input

## [7.10.23] - 02-17-2026

- **UPDATED** - `TrendsTable` display to be split into income and spending tables

## [7.10.22] - 02-17-2026

- **UPDATED** - Insights tweaks (`ChartWithTransactionDrillDown`, `CardHeader`)

## [7.10.21] - 02-16-2026

- **ADDED** - Embedded Insight Card in the TransactionDetails

## [7.10.20] - 02-16-2026

- **ADDED** - Budget Details V2 drawer and drilldown charts/transactions for Insights MUI

## [7.10.19] - 02-13-2026

- **FIXED** - Bug causing Investment widget analysis to crash MD.

## [7.10.18] - 02-13-2026

- **FIXED** - Deep link parameters for date range in Spending widget

## [7.10.17] - 02-13-2026

- **FIXED** - Impove TrendsWidget accessibility

## [7.10.16] - 02-13-2026

- **UPDATED** - Trends Widget empty states

## [7.10.15] - 02-13-2026

- **UPDATED** - `Insights` CategoryBudget style changes

## [7.10.14] - 02-12-2026

- **REVERT** - Trends Widget empty state

## [7.10.13] - 02-12-2026

- **UPDATED** - Trends Widget empty state

## [7.10.12] - 02-13-2026

- **ADDED** - `Cashback` Insight added

## [7.10.11] - 02-10-2026

- **UPDATED** - `Trends` MicroWidget style

## [7.10.10] - 02-10-2026

- **FIXED** - Fix `RecurringTransactions` Bi-weekly, Bi-monthly, Bi-quarterly calculation bugs

## [7.10.9] - 02-10-2026

- **FIXED** - Rendering of `BarChart` with negative values

## [7.10.8] - 02-10-2026

- **FIXED** - `Recurring Transactions` | Recurring Dates - Every other Week Bug fixed

## [7.10.7] - 02-09-2026

- **UPDATED** - `Goals` | Retiretirement goal | Add accounts text removed

## [7.10.6] - 02-09-2026

- **UPDATED** - MicroInsight Design fix

## [7.10.5] - 02-09-2026

- **FIXED** - `Trends` Header ADA Fix

## [7.10.4] - 02-09-2026

- **FIXED** - Finstrong | HealthScore Not Updating | Bug Fixed

## [7.10.3] - 02-05-2026

- **ADDED** - `Recurring Transactions` | Payment Schedule date issue fix

## [7.10.2] - 02-06-2026

- **FIXED** - Split Transactions Amount Bug

## [7.10.1] - 02-06-2026

- **FIXED** - `DebtsTable` Balances Header appear broken | Bug Fixed

## [7.10.0] - 02-05-2026

- **ADDED** - Migrated `Insights-Ui` source into this codebase

## [7.9.8] - 02-05-2026

- **ADDED** - Add `display_widget_headings` to `AppData` config
- **ADDED** - Display `WidgetContainer` headings based on `config.display_widget_headings`

## [7.9.7] - 02-05-2026

- **FIXED** - `Transactions` Searching Returns incorrect transactions | Bug Fixed

## [7.9.6] - 02-05-2026

- **FIXED** - `Spending` Memo TextField Bug fix.

## [7.9.5] - 02-04-2026

- **UPDATED** - MXUI to 1.5.9 | Date Range Picker small layout changes

## [7.9.4] - 02-04-2026

- **UPDATED** - Connect Accounts CTA copy and display condition

## [7.9.3] - 02-03-2026

- **ADDED** - Client Communications Profile flag for large deposit notification posted

## [7.9.2] - 02-04-2026

- **FIXED** - Goals name fix in Manage Goals Drawer

## [7.9.1] - 01-29-2026

- **FIXED** - Issue with transaction filter on Transactions Widget

## [7.9.0] - 01-29-2026

- **UPDATED** - Reordering of Savings goals to use up buttons instead of being draggable

## [7.8.1] - 01-29-2026

- **FIXED** - Retirement Goals | Amount To Save Not Updating | Bug Fixed

## [7.8.0] - 01-21-2026

- **ADDED** - New Global Account Filter component
- **UPDATED** - Loading pattern to be consistent across all widgets
- **UPDATED** - All widgets to use new Global Account Filter component
- **UPDATED** - `isInitialized` in `GlobalStore` to be set after all copy & config are loaded
- **UPDATED** - Storybook `preview.tsx` to wrap all stories in `GlobalDataProvider` and load config data
- **UPDATED** - All stories to use new loading patterns
- **UPDATED** - Unit test to use new loading patterns

## [7.7.3] - 01-28-2026

- **FIXED** - `Finstrong` | Score history drawer styling fix

## [7.7.2] - 01-28-2026

- **UPDATED** - `MicroInsights` CardHeader Style

## [7.7.1] - 01-27-2026

- **FIXED** - Remove usage of h1 markup while maintaining H1 styles

## [7.7.0] - 01-27-2026

- **UPDATED** - `MicroInsights` - Updated InsightCard, NoRelevantInsightCard, ViewMoreMicroCard,

## [7.6.28] - 01-27-2026

- **UPDATED** - Improved accessibility for split transaction edits

## [7.6.27] - 01-26-2026

- **FIXED** - Display average label on chart when average is 0

## [7.6.26] - 01-23-2026

- **FIXED** - Dialog for updating budget to close with close or cancel

## [7.6.25] - 01-23-2026

- **UPDATED** - Improved accessibility for the global accounts filter

## [7.6.24] - 01-23-2026

- **FIXED** - Adjusted the `Trends` header UI

## [7.6.23] - 01-23-2026

- **FIXED** - ADA - Goals Header

## [7.6.22] - 01-22-2026

- **UPDATED** - Transactions details and list actions a11y imrovements

## [7.6.21] - 01-22-2026

- **FIXED** - Spending widget subcategories to use parent category when in 'Other'

## [7.6.20] - 01-21-2026

- **UPDATED** - Spending widget to not round amounts

## [7.6.19] - 01-21-2026

- **UPDATED** - Spending widget subcategories to open transactions list

## [7.6.18] - 01-21-2026

- **FIXED** - Pay Bills On Time Drawer Loading Issue - Fees Transactions List | Bug Fixed

## [7.6.17] - 01-21-2026

- **FIXED** - Line Graph | Curve Type Bug Fixed

## [7.6.16] - 01-19-2026

- **UPDATED** - `MicroInsights` BeatIcons Updated

## [7.6.15] - 01-19-2026

- **FIXED** - `Finstrong` KeyIndicators Zero State Style

## [7.6.14] - 01-19-2026

- **FIXED** - Finstrong Header Dimensions | Finstrong Score Card Styling | Issues Fixed

## [7.6.13] - 01-19-2026

- **UPDATED** - Fixes for `Finstrong` onboarding and sticky footer

## [7.6.12] - 01-16-2026

- **UPDATED** - Focus style for goal status cards

## [7.6.11] - 01-16-2026

- **UPDATED** - Fixes for `Finstrong` onboarding and sticky footer

## [7.6.10] - 01-16-2026

- **UPDATED** - `Finstrong` KeyIndicators Line Graph Style

## [7.6.9] - 01-14-2026

- **REMOVED** - The ability to open account details from goals due to being inconsistent with other widgets.

## [7.6.8] - 01-14-2026

- **FIXED** - Issue where export button wasn't working in Trends category list on mobile

## [7.6.7] - 01-14-2026

- **UPDATED** - Improve ADA support Spending Donut and List interaction

## [7.6.6] - 01-14-2026

- **ADDED** - General parent category rows when displaying sub-categories
- **FIXED** - Issue where income category on Trends table would display a `+-` before the number

## [7.6.5] - 01-14-2026

- **UPDATED** - Added a11y labels for chart/table toggle

## [7.6.4] - 01-15-2026

- **UPDATED** - Fixes for `Finstrong` Profile and KeyIndicatorsDrawer

## [7.6.3] - 01-15-2026

- **FIXED** - Finstrong | Mobile key Indicators Styling Issues

## [7.6.2] - 01-14-2026

- **UPDATED** - Hover, axes, titles, descriptions, role for Account Details charts

## [7.6.1] - 01-14-2026

- **UPDATED** - Improved ADA support for `Goals` reorder

## [7.6.0] - 01-14-2026

- **UPDATED** - Migrated MUI X-Charts from v7 to v8

## [7.5.6] - 01-13-2026

- **FIXED** - semantic HTML in drawer header

## [7.5.5] - 01-13-2026

- **FIXED** - Missing close button label in transaction details dialogs

## [7.5.4] - 01-12-2026

- **FIXED** - `Goals` | ReorderGoals Header Accessibility Fix

## [7.5.3] - 01-12-2026

- **FIXED** - `RecurringTransations` | MiniWidget Header Fix

## [7.5.2] - 01-09-2026

- **UPDATED** - `TransactionWidget` ADA updates

## [7.5.1] - 01-09-2026

- **FIXED** - `Finstrong` KeyIndicatorsDrawer - TransactionList Design Fix

## [7.5.0] - 01-08-2026

- **UPDATED** - Trends table with a new total column
- **UPDATED** - Trends table style to match updated designs

## [7.4.17] - 01-08-2026

- **FIXED** - `Finstrong` CreditScore Fix

## [7.4.16] - 12-23-2025

- **FIXED** - `MicroCardTemplate` LineHeight Fix

## [7.4.15] - 12-22-2025

- **FIXED** - Spending Total Amount Discrepancies wrt legacy - Bug Fixed

## [7.4.14] - 12-19-2025

- **FIXED** - button focus styles in Dialog, MicroWidgetContainer, and MiniWidgetContainer

## [7.4.13] - 12-19-2025

- **FIXED** - Impove a11y compliance for Drawer component

## [7.4.12] - 12-19-2025

- **FIXED** - Missing label for payee input in transaction details

## [7.4.11] - 12-18-2025

- **ADDED** - `MicroCardTemplate` for `Insights`

## [7.4.10] - 12-16-2025

- **ADDED** - `useWidgetLoadTime` hook to replace `GlobalDataProvider.onLoad`
- **UPDATED** - Widgets to use `useWidgetLoadTime` for load time tracking

## [7.4.9] - 12-16-2025

- **UPDATED** - Budgets Widget to set alerts differently for a11y

## [7.4.8] - 12-16-2025

- **FIXED** - Spending widget height and scroll behavior

## [7.4.7] - 12-15-2025

- **UPDATED** - Improved `d3` chunk loading for better performance.

## [7.4.6] - 12-12-2025

- **FIXED** - Mobile issues on Financial Wellness Card

## [7.4.5] - 12-12-2025

- **FIXED** - `Goals Widget` - Accounts Filter is fixed in Goals widget

## [7.4.4] - 12-11-2025

- **FIXED** - `FinStrong` - Missing data issue and loading issue fix

## [7.4.3] - 12-11-2025

- **FIXED** - `FinStrong` - Cosmetic Changes

## [7.4.2] - 12-10-2025

- **UPDATED** - `InsightsMicroWidget` - width bug on zero state fixed

## [7.4.1] - 12-10-2025

- **UPDATED** - `InsightsMicroWidget` - code cleanup, stories added, margin on zero state bug fixes

## [7.4.0] - 12-09-2025

- **ADDED** - MUI refresh for `FinStrong`

## [7.3.2] - 12-09-2025

- **FIXED** Add invisible accessibility label/description for RecurringTransactionsMiniWidget calendar
- **FIXED** Focus mini recurring transaction list after calendar month/day filter for better accessibility
- **FIXED** Clarify alt text for institution logos in RecurrenceRow

## [7.3.1] - 12-09-2025

- **UPDATED** `SpendingWidget` to have an export csv button on transactions list

## [7.3.0] - 12-09-2025

- **UPDATED** - Improved `X-Charts` chunk loading for better performance.

## [7.2.30] - 12-09-2025

- **UPDATED** Bug Fixed - Account Type Edit Interactions - Low Account Balance

## [7.2.29] - 12-08-2025

- **UPDATED** `InsightsMicroWidget` refactor list of beats into `BeatList` component

## [7.2.28] - 12-08-2025

- **UPDATED** `InsightsMicroWidget` storybook to documention batcave settings

## [7.2.27] - 12-08-2025

- **UPDATED** Clean up `shouldApplyNewAnimation` code

## [7.2.26] - 12-08-2025

- **FIXED** - BUG Fixed - Inisghts Notifications Text Displays in Dark when in Dark mode

## [7.2.25] - 12-04-2025

- **UPDATED** - `Fetch` to throw 401 error on `PUT` so that Insights can handle logging user out

## [7.2.24] - 12-05-2025

- **FIXED** - `mark_all_as_viewd` API called after getting `notifications` api response in `Notifications List`.

## [7.2.23] - 12-03-2025

- **UPDATED** - `GlobalStore` emits an update when a subscribed-to variable changes. Good for external libraries like Pulse.
- **UPDATED** - Ability to hide flag with prop `canFlagTransactions` in `TransactionDetails`
- **FIXED** - Lonely `Actions` header if no bottom actions in `TransactionDetails`

## [7.2.22] - 12-03-2025

- **FIXED** - Aria annoounce for split row error messages
- **FIXED** - Aria label for add subcategory modal

## [7.2.21] - 12-03-2025

- **FIXED** - Debts mobile view Bug Fix

## [7.2.20] - 12-02-2025

- **FIXED** - Chart legend labels to show when amount is 0

## [7.2.19] - 12-02-2025

- **FIXED** - Budget Bubbles tooltips to anchor on element

## [7.2.18] - 12-02-2025

- **UPDATED** - Insights app bell icon has_been_viewed fixed

## [7.2.17] - 12-01-2025

- **ADDED** - Load time tracking for full standalone widgets

## [7.2.16] - 12-01-2025

- **FIXED** - Missing `Pending` column in CSV export

## [7.2.15] - 11-25-2025

- **FIXED** - Next recurring transaction date displayed offset by one day

## [7.2.14] - 11-25-2025

- # **FIXED** - Removed border from embedded widgets

## [7.2.14] - 11-24-2025

- **UPDATED** - remove uneeded client color scheme reference from `microinsights`
- **UPDATED** - icon code cleanup in `microinsights`

## [7.2.13] - 11-24-2025

- **FIXED** - interactive controls for budget and spending mini widgets

## [7.2.12] - 11-20-2025

- **FIXED** - Accessibility label on split transaction amount input

## [7.2.11] - 11-19-2025

- **FIXED** - transactions widget to not announce until copy loaded

## [7.2.10] - 11-18-2025

- **FIXED** - transactions widget to announce dynamic updates via aria live region

## [7.2.9] - 11-17-2025

- **UPDATED** - components directory `microinsights`

## [7.2.8] - 11-17-2025

- **UPDATED** - icons directory `microinsights`

## [7.2.7] - 11-17-2025

- **UPDATED** - carousel directory `microinsights`

## [7.2.6] - 11-17-2025

- **UPDATED** - cards directory `microinsights`

## [7.2.5] - 11-17-2025

- **FIXED** - `MicroInsightCard` content overflowing in some layouts

## [7.2.4] - 11-14-2025

- **UPDATED** - Storybook docs for `InsightsMicroWidget`

## [7.2.3] - 11-13-2025

- **ADDED** - `onLoad` to `GlobalDataProvider` and to track widget load timing in MD
- **ADDED** - `onLoad` call to `Dashboard` and `TrendsWidget` to track load

## [7.2.2] - 11-13-2025

- **UPDATED** - Cash Flow onboarding repeating transaction parameters to include user guid and second recurrence day

## [7.2.1] - 11-12-2025

- **FIXED** - Account balance updates when manual transaction is created

## [7.2.0] - 11-10-2025

- **UPDATED** - View All link in Micro Insights to match the other experiences repo

## [7.1.4] - 11-10-2025

- **UPDATED** - Cash Flow widget to show add income button when no recurring income transactions

## [7.1.3] - 11-10-2025

- **UPDATED** - Cash Flow widget to show onboarding when no recurring income transactions

## [7.1.2] - 11-07-2025

- **ADDED** - `visibleRetirementAccounts` and `retirementAccounts` getters to `AccountStore`
- **UPDATED** - `AddRetirementAccountAction` and `GoalDetailsDrawer` to retirement accounts instead of only investment accounts

## [7.1.1] - 11-06-2025

- **UPDATED** - Cash Flow widget to show add income button when no recurring income transactions

## [7.1.0] - 11-03-2025

- **UPDATED** - Updated the `CarouselHeader` so widthOverrides no longer affect the components padding in `MicroInsights`

## [7.0.66] - 11-03-2025

- **FIXED** - Subcategories visibility on `Trends`

## [7.0.65] - 10-31-2025

- **FIXED** - BUG Fixed - Networth Y axis label

## [7.0.64] - 10-31-2025

- **FIXED** - Limit create recurring transaction list to transactions with merchants

## [7.0.63] - 10-28-2025

- **ADDED** - deep link support for manage income view in Cash Flow widget

## [7.0.62] - 10-28-2025

- **UPDATED** - Cash flow widget copy

## [7.0.61] - 10-28-2025

- **UPDATED** - Empty State styling to account for mini widgets

## [7.0.60] - 10-27-2025

- **ADDED** - `show_back_button` param to app config

## [7.0.59] - 10-27-2025

- **UPDATED** - Cash Flow mini widget zero state

## [7.0.58] - 10-24-2025

- **FIXED** - Trends Insights Micro Widget navigation overlapped in stand-alone widget

## [7.0.57] - 10-22-2025

- **FIXED** - Layout cutoff issue on Create Budgets for mobile devices

## [7.0.56] - 10-22-2025

- **FIXED** - Layout cutoff on Create Budgets (mobile)

## [7.0.55] - 10-21-2025

- **UPDATED** - Hide Micro Insights in Trends Widget when insights widget disabled or no beats to show

## [7.0.54] - 10-16-2025

- **FIXED** - AccountDisplayName logic | removed user_name

## [7.0.53] - 10-15-2025

- **FIXED** - Resolved `BubbleChart` overflow issue on compact devices
- **FIXED** - Made `BubbleChart` responsive to screen size changes
- **FIXED** - Prevented full re-render of bubble budgets when adding a new budget

## [7.0.52] - 10-09-2025

- **FIXED** - `Debt Widget` | Snowball method payment math fix

## [7.0.51] - 10-09-2025

- **ADDED** - Add style font name to the client config

## [7.0.50] - 10-10-2025

- **FIXED** - Bug Fixed - Net Worth has Incorrect Y-Axis Labels

## [7.0.49] - 10-09-2025

- **FIXED** - MiniWidget CTA Button Breaking UI fix.

## [7.0.48] - 10-08-2025

- **UPDATED** - Mini Widget Header Style Changed.

## [7.0.47] - 10-08-2025

- **UPDATED** - WidgetContainer - Change ArrowLeft into ChevronLeft to maintain consistency.

## [7.0.46] - 10-08-2025

**UPDATED** - Enhance accounts list UI for mini view

## [7.0.45] - 10-08-2025

- **ADDED** - Default values for dashboard survey

## [7.0.44] - 10-06-2025

- **UPDATED** - Displayed account names to use account nickname when available

## [7.0.43] - 10-06-2025

- **UPDATED** - Theme font to be applied in additional areas

## [7.0.42] - 10-06-2025

- **FIXED** - Dashboard | `cashFlowWidget` - Increased mobile view breakpoint from 610px to 710px to prevent layout breakage with long amount values.

## [7.0.41] - 10-06-2025

- **UPDATED** - Bug Fixed - Upcomig and Past tabs Divider has too much padding on both sides in the mobile view

## [7.0.40] - 10-06-2025

- **FIXED** - Allow deletion of existing goals without account link

## [7.0.39] - 10-03-2025

- **ADDED** - Global error page copy

## [7.0.38] - 10-03-2025

- **FIXED** - Fixed footer for Manage Expenses/Income

## [7.0.37] - 10-02-2025

- **UPDATED** - Account Filter empty state to optionally suppress 'connect accounts' prompts

## [7.0.36] - 10-01-2025

- **UPDATED** - Trends and Goals widgets empty states

## [7.0.35] - 10-01-2025

- **REMOVED** - ThemeProvider and CSSBaseline wrapping InsightsMicroWidget preventing background transparency

## [7.0.34] - 09-30-2025

- **FIXED** - Initialize InsightsMicroWidget only once

## [7.0.33] - 09-29-2025

- **ADDED** - Global onError handler to GlobalStore and passed to stores that make API calls

## [7.0.32] - 09-29-2025

- **FIXED** - Recurring Transactions padding too much on both sides in mobile devices - css bug fixed

## [7.0.31] - 09-29-2025

- **FIXED** - Date range handling by ensuring the end date includes the full day for accurate selection

## [7.0.30] - 09-29-2025

- **FIXED** - `Accounts Widget` | closed accounts balance issue fix

## [7.0.29] - 09-29-2025

- **FIXED** - Corrected text transform on buttons to prevent automatic capitalization
- **UPDATED** - Applied client profile-based corner radius styles to buttons and cards for consistent UI appearance

## [7.0.28] - 09-27-2025

- **FIXED** - `Transactions` Hide Add Transaction based on `show_connections_widget_in_master` flag.

## [7.0.27] - 09-26-2025

- **FIXED** - Fix Insight Notifications text color and settings

## [7.0.26] - 09-26-2025

- **FIXED** - Cashflow and Recurring Transactions Manage Icon fix

## [7.0.25] - 09-25-2025

- **FIXED** - New `TrendsWidget` Abbreviated Y-axis labels (e.g., $4,000 → $4k)

## [7.0.24] - 09-24-2025

- **FIXED** - `Goals Widget` | Manage Savings Goal Date issue fixed

## [7.0.23] - 09-24-2025

- **FIXED** - Export CSV inconsistent row formatting

## [7.0.22] - 09-24-2025

- **FIXED** - `InsightsMicroWidget` now adheres to client font family

## [7.0.21] - 09-24-2025

- **FIXED** - Added an extra flag (user.email/user.phone) for the delivery methods status not updating for each notification types.

## [7.0.20] - 09-24-2025

- **FIXED** - Trends table responsiveness
- **FIXED** - Removed drop shadow in detail drawer

## [7.0.19] - 09-24-2025

- **UPDATED** - Added a missing sorting option in the DebtsWidget - Fastest Payoff First

## [7.0.18] - 09-23-2025

- **FIXED** - Notification Settings Bug Fixed | Delivery Methods Status is not updating for each notification types under notifications

## [7.0.17] - 09-23-2025

- **FIXED** - Budgets | Show the `Export CSV` button only in screens above 900px.

## [7.0.16] - 09-22-2025

- **FIXED** - Connect Accounts CTA was showing in goals widget when aggregation disabled
- **FIXED** - Checking and Savings list headers were showing when no checking or savings accounts in list

## [7.0.15] - 09-22-2025

- **FIXED** - Connect Accounts CTA was showing in trends widget when aggregation disabled

## [7.0.14] - 09-22-2025

- **FIXED** - White flash appearing in the darkmode - bug fixed

## [7.0.13] - 09-22-2025

- **ADDED** - Support view-only mode for transaction details based on feature flag

## [7.0.12] - 09-19-2025

- **FIXED** - `Retirement Goal` Projection month and year issue fixed for new Goal add scenario

## [7.0.11] - 09-19-2025

- **FIXED** - Graphs from preventing scroll Gesture

## [7.0.10] - 09-19-2025

- **ADDED** - Support for excluding external accounts based on feature flag

## [7.0.9] - 09-19-2025

- **FIXED** - `Retirement Goal` Projection month and year issue fixed

## [7.0.8] - 09-18-2025

- **FIXED** - Cash Flow mini widget not getting data as a standalone widget

## [7.0.7] - 09-18-2025

- **FIXED** - Trends Widget table to show positive income values
- **FIXED** - Trends Widget table to fill the width of its container

## [7.0.6] - 09-18-2025

- **UPDATED** - Replace `@mui/icons-material` with `@mxenabled/mx-icons`

## [7.0.5] - 09-17-2025

- **FIXED** - Layout issue with income/expenses actions in standalone widgets

## [7.0.4] - 09-17-2025

- **FIXED** - Cash Flow widget so that it uses all upcoming transactions for the next 30 days

## [7.0.3] - 09-12-2025

- **UPDATED** - `Recurring Setting` | design change in `ManageExpenses` and `ManageIncome`.
- **ADDED** - `Recurring Setting` | Zero state added for `ManageExpenses` and `ManageIncome`.

## [7.0.2] - 09-17-2025

- **ADDED** - Transactions widget supports account-specific requests

## [7.0.1] - 09-16-2025

- **UPDATED** removed categories list and insights microcarousel from table view in 'TrendsWidget'

## [7.0.0] - 09-16-2025

- **UPDATED** - Avoid-barrel implementation

## [6.27.1] - 09-16-2025

- **FIXED** `Recurring Transactions` settings Drawer | Description/Border Bug.

## [6.27.0] - 09-15-2025

- **UPDATED** 'TrendsWidget' to use exising `TransactionList` component

## [6.26.34] - 09-15-2025

- **ADDED** - Analytics events for new trends widget
- **UPDATED** - `InsightsMicroWidget` with optional analytics metadata prop

## [6.26.33] - 09-15-2025

- **FIXED** - Added Truncation/Bold to Notification Type Account Names.

## [6.26.32] - 09-12-2025

- **FIXED** - Inconsistent totals in `Spending` widget when switching date ranges

## [6.26.31] - 09-12-2025

- **UPDATED** - new trends widget to filter out investments category

## [6.26.30] - 09-12-2025

- **FIXED** - DateRangeSelector "Last Month" filter issue

## [6.26.29] - 09-11-2025

- **FIXED** - credit limit was shown in place of available credit in the accounts list and details

## [6.26.28] - 09-11-2025

- **FIXED** - `NetWorth` Gains & Losses - account names preventing amounts from showing

## [6.26.27] - 09-10-2025

- **UPDATED** - Remove categories filtering in `TrendsInsights`

## [6.26.26] - 09-10-2025

- **FIXED** - Added missing localizations for `Trends` and `Networth`

## [6.26.25] - 09-10-2025

- **FIXED** - `Settings Widget` | Notification's Delivery Method Status fixed with correct status.

## [6.26.24] - 09-10-2025

- **FIXED** - Help Tool Header Misalignment.

## [6.26.23] - 09-09-2025

- **UPDATED** - new trends widget category detail chart now displays subcategories and amounts in chart tooltip so they aren't negative

## [6.26.22] - 09-09-2025

- **UPDATED** - new trends widget category detail chart now displays subcategories and amounts in chart tooltip

## [6.26.21] - 09-09-2025

- **UPDATED** - new trends widget to filter out transfer category

## [6.26.20] - 09-09-2025

- **FIXED** - `NetWorth` Assets & Liabilities - account names preventing amounts from showing

## [6.26.19] - 09-09-2025

- **FIXED** - CTA button cutoff on layout

## [6.26.18] - 09-08-2025

- **REFACTORED** - new trends widget to use detailedCategoryWithTransactions type

## [6.26.17] - 09-06-2025

- **FIXED** - `Recurring Transactions` Transaction description Truncate Fix

## [6.26.16] - 09-05-2025

**UPDATED** - CategoriesList to have responsive visible list on desktop layout

## [6.26.15] - 09-05-2025

- **ADDED** - `FinStrong Widget` | Score History Drawer | ScoreHistoryTimeline component

## [6.26.14] - 09-05-2025

- **FIXED** - Upcoming Calculations Bug in `Recurring Transactions`

## [6.26.13] - 09-04-2025

- **ADDED** - detailed categories with transactions to category and trends stores

## [6.26.12] - 09-04-2025

- **FIXED** - Responsive TrendsChartTotals height on desktop layout

## [6.26.11] - 09-03-2025

- **REMOVED** - view transactions feature in new trends widget

## [6.26.10] - 09-03-2025

- **FIXED** - Overflow issue in TrendsInsights zero state

## [6.26.9] - 09-03-2025

- **ADDED** - Financial strength card section for `Finstrong`

## [6.26.8] - 09-03-2025

- **UPDATED** - Transaction filter to allow displaying of split transaction children
- **UPDATED** - Budget, Spending & Trends to only display split transaction children when a category filter is applied

## [6.26.7] - 09-03-2025

- **UPDATED** - Logic for zero state in Micro RecurringTransactions.

## [6.26.6] - 09-03-2025

- **ADDED** - `FinStrong Widget` | Score History Drawer | Score Graph & Key Indicators Graph added

## [6.26.5] - 09-03-2025

- **ADDED** - `Finstrong` Graph Empty State

## [6.26.4] - 09-01-2025

- **UPDATED** - Replaced zero state mini goals images with new design

## [6.26.3] - 08-28-2025

- **UPDATED** - BeatStore with getFilteredBeats
- **ADDED** - Beat template filter to TrendsInsights

## [6.26.2] - 08-28-2025

- **FIXED** - Spending widget when used individually

## [6.26.1] - 08-27-2025

- **REVERTED** - 6.25.6 & 6.25.11 releases due to production issues

## [6.26.0] - 08-27-2025

- **CHANGED** - `GlobalStore` now accepts props for data

~~## [6.25.11] - 08-26-2025~~

~~- **ADDED** - New Trends Widget | Add tooltip to category details chart~~

## [6.25.10] - 08-26-2025

- **ADDED** - Respect Deep link params for `Spending` Widget.

## [6.25.9] - 08-25-2025

- **FIXED** - Debts table showing available balance instead of current balance

## [6.25.8] - 08-25-2025

- **FIXED** - Spending widget so that it displays all income categories
- **FIXED** - Spending widget so that it exlucdes investment categories
- **FIXED** - Transaction list on Spending widget so that it displays the correct transactions

## [6.25.7] - 08-25-2025

- **UPDATED** - StackedLineChart to have responsive height based on widget and legend dimensions

~~## [6.25.6] - 08-25-2025~~

~~- **CHANGED** - new Trends Widget to use Detailed Categories~~

## [6.25.5] - 08-25-2025

- **ADDED** - `Mini Goals Widget` | Padding updated for empty state

## [6.25.4] - 08-22-2025

- **ADDED** - Key Indicators section for `Finstrong`

## [6.25.3] - 08-22-2025

- **ADDED** - Copy content for the `Profile` drawer in the `Finstrong` widget

## [6.25.2] - 08-21-2025

- **FIXED** - Extra Scrollable Space in Recurring Transactions MicroWidget below 288px.

## [6.25.1] - 08-21-2025

- **ADDED** - `Profile` drawer with API for `Finstrong` widget

## [6.25.00] - 08-20-2025

- **ADDED** - (new) TrendsWidget, TrendsStore, TrendsChartTotals, TrendsInsights
- **ADDED** - CategoryList, CategoryDetailDrawer, CategoryDetailChart
- **UPDATED** - Refactor (old) TrendsFullWidget to share common logic/components with TrendsWidget
- **UPDATED** - LineChart with axisColor, showAxisHighlight, showLegend, showTooltip, showXAxis, showYAxis, showXAxisTicks, showYAxisTicks props
- **UPDATED** - LineChart valueFormatterString prop to be explicit with no default to allow unformatted values/labels
- **UPDATED** - CustomLegend to allow optional custom amount+label props
- **ADDED** - CustomTooltip for LineChart hover cards

## [6.24.25] - 08-20-2025

- **ADDED** - Missing Data component for `Finstrong` widget

## [6.24.24] - 08-20-2025

- **ADDED** - `FinStrong` | key indicators tab section Unit testcases added

## [6.24.23] - 08-20-2025

- **ADDED** - Finstrong Financial Strength Graph and Credit Score Graph component | Dial Score Card Component

## [6.24.22] - 08-20-2025

- **ADDED** - Analytic events for micro widgets

## [6.24.21] - 08-20-2025

- **ADDED** - Api for Augumented Chart Data

## [6.24.20] - 08-19-2025

- **ADDED** - `FinStrong` | key indicators tab section added

## [6.24.19] - 08-19-2025

- **ADDED** - `Profile` drawer skeleton with key actions for `Finstrong`

## [6.24.18] - 08-19-2025

- **UPDATED** - Modified existing LineChart component to support Finstrong requirements.

## [6.24.17] - 08-18-2025

- **FIXED** - Mini Goals track type null check fix

## [6.24.16] - 08-15-2025

- **REMOVED** - Manually throwing honey badgers; they should be handled by the app consuming experiences

## [6.24.15] - 08-15-2025

- **UPDATED** - Remove "" from clientStyleProfile mode type

## [6.24.14] - 08-14-2025

- **ADDED** - Additional copy for new trends widget

## [6.24.13] - 08-14-2025

- **UPDATED** - Add 'browser' to clientStyleProfile mode type

## [6.24.12] - 08-13-2025

- **FIXED** - App bar settings overflow on compact devices

## [6.24.11] - 08-12-2025

- **FIXED** - Unwanted white space issue in the Budgets widget by updating usage of `detailedBudgets` for consistent filtering

## [6.24.10] - 08-11-2025

- **ADDED** - Score Rubric Drawer component displaying detailed financial strength scoring information

## [6.24.9] - 08-11-2025

- **FIXED** - Added decimal support for manual transactions on compact devices

## [6.24.8] - 08-11-2025

- **FIXED** - Unwanted horizontal scrolling on the Micro Widget layout

## [6.24.7] - 08-09-2025

- **FIXED** - Bug Fix - Trends Micro widget - Minimized Vertical Spacing

## [6.24.6] - 08-08-2025

- **CHANGED** - Bug Fix - Trends Micro Widget - Height Issue

## [6.24.5] - 08-08-2025

- **FIXED** - `Recurring Transaction Micro Widget` - Amount Trucate Issue

## [6.24.4] - 08-08-2025

- **Fixed** - `Mini Goals Widget` percentage alignment issue fix

## [6.24.3] - 08-07-2025

- **CHANGED** - Exported `filterRecentNotifications` util for use in Pulse

## [6.24.2] - 08-05-2025

- **FIXED** - Added missing `setSelectedAccounts` integration in the Trends mini widget

## [6.24.1] - 08-05-2025

- **FIXED** - Added missing `setSelectedAccounts` integration in the Spending mini widget

## [6.24.0] - 08-05-2025

- **UPDATED** - `Recurring Transactions` widget with an updated design and improved user experience.

## [6.23.0] - 08-05-2025

- **ADDED** - `MicroInsights` - flag to trigger and new design

## [6.21.2] - 08-05-2025

- **ADDED** - `Finstrong` - keyIndicators Drawer Component

## [6.21.1] - 08-05-2025

- **FIXED** - `Spending` and `Budgets` now update based on `selectedAccounts`

## [6.21.0] - 08-04-2025

- **UPDATED** - MXUI to 1.3.0
- **REMOVED** - Icon font now that MXUI uses Material Symbol SVGs
- **FIXED** - Background color on status bars

## [6.20.1] - 08-04-2025

- **ADDED** - Initial basic layout setup with store config for `Finstrong`

## [6.20.0] - 07-31-2025

- **UPDATED** - to MXUI 1.2.1 to introduce updates colors and improved design consistency

## [6.19.1] - 08-01-2025

- **UPDATED** - Cleaned up BNC Micro Widget Container and configured variants

## [6.19.0] - 07-31-2025

- **ADDED** - Connect More Accounts Card for `Finstrong`.

## [6.18.12] - 07-30-2025

- **ADDED** - Added `session_timeout`, `session_timeout_url`, `keepalive_url` and `ping_id` to AppData

## [6.18.11] - 07-29-2025

- **FIXED** - Content variable name from `notifications_settings_title` to `notification_settings_title`

## [6.18.10] - 07-29-2025

- **ADDED** - New carousel animation in Insights Micro Widget

## [6.18.9] - 07-29-2025

- **UPDATED** - "Export CSV" button is now visible only on desktop and larger screens

## [6.18.8] - 07-28-2025

- **FIXED** - `NotificationSettings` opens in new drawer from `Notifications`

## [6.18.7] - 07-28-2025

- **UPDATED** - Hide "Export CSV" button when `is_mobile_webview` or `isSmallTablet` is true

## [6.18.6] - 07-25-2025

- **ADDED** - move useInsightsEnabled hook from MoneyDashboard

## [6.18.5] - 07-23-2025

- **UPDATED** - Notification profile settings with design recommendations

## [6.18.4] - 07-22-2025

- **ADDED** - Trends Store & detailedCategories to new trends widget

## [6.18.3] - 07-22-2025

- **UPDATED** - Support multiple card view in `InsightsMicroWidget`

## [6.18.2] - 07-22-2025

- **ADDED** - Email and mobile phone fields to Notifications

## [6.18.1] - 07-21-2025

- **ADDED** - ZeroState micro widget for Trends.

## [6.18.0] - 07-18-2025

- **ADDED** - Created the Trends Micro Widget

## [6.17.1] - 07-17-2025

- **FIXED** - Bug fix related to adding manual transactions
- **UPDATED** - Included split transactions in CSV exports for `Budgets` and `Transactions` widgets

## [6.17.0] - 07-17-2025

- **ADDED** - New trends widget skeleton

## [6.16.9] - 07-15-2025

- **FIXED** - Filter icon sitting outside of frame on Android

## [6.16.8] - 07-15-2025

- **FIXED** - Connect an account | unresponsive on web and mobile

## [6.16.7] - 07-14-2025

- **FIXED** - Split transactions functionality on `TransactionTable`

## [6.16.6] - 07-14-2025

- **FIXED** - `Help Widget` | Help text going out of the screen for mobile view fix
- **FIXED** - `Budgets Widget Empty State` | Dashboard "Create my own budget" button fix

## [6.16.5] - 07-11-2025

- **FIXED** - Insights notification types | Mismatch enabled/disabled fix

## [6.16.4] - 07-10-2025

- **FIXED** - Fixed transactions showing `Unknown` accounts; this may also fix categories showing as `Uncategorized`.

## [6.16.3] - 07-10-2025

- **FIXED** - Accounts subtotal miscalculation and matching with the networth and accounts subtotals

## [6.16.2] - 07-09-2025

- **ADDED** - Deep link view support for `NotificationSettings` widget

## [6.16.1] - 07-09-2025

- **ADDED** - EmptyState for RecurringTransactions Micro Widget.

## [6.16.0] - 07-07-2025

- **UPDATED** - Notification settings to have list items for all notification types
- **UPDATED** - Budget notification profiles to use expanders for each type
- **UPDATED** - Insight notification profiles into a new component
- **ADDED** - Institution logos for account in account notification profiles
- **FIXED** - Dialog title for dates in account notification profiles

## [6.15.0] - 07-08-2025

- **FIXED** - Added decimal input support for Split Transactions on mobile devices
- **FIXED** - Fixed transaction tag saving and display issues across all widgets
- **FIXED** - Stabilized data loading with the date range selector
- **UPDATED** - Display text labels for "Export CSV" and "Add Transaction" buttons on laptop view
- **UPDATED** - Export CSV now respects user-applied filters and date range selector

## [6.14.2] - 07-07-2025

- **FIXED** - Accounts filtering option indicating `(Closed)`

## [6.14.1] - 07-04-2025

- **ADDED** - ZeroState micro widget for recurring transactions.

## [6.14.0] - 07-03-2025

- **ADDED** - RecurringTransactions Micro Widget.

## [6.13.2] - 07-03-2025

- **FIXED** - Issue with save goals

## [6.13.1] - 07-01-2025

- **Fixed** - Empty account section headers being displayed

## [6.13.0] - 07-01-2025

- **Fixed** - Hidden account transaction still showing until refresh

## [6.12.0] - 07-01-2025

- **ADDED** - `GoalMicroWidget` Added

## [6.11.0] - 07-01-2025

- **Fixed** - `RecurringTransactions.test.ts` fixed the failing test cases

## [6.10.4] - 06-29-2025

- **UPDATED** - `MicroWidgetContainer` style adjustments for responsiveness and truncation logic

## [6.10.3] - 06-27-2025

- **UPDATED** - AppData to include client insight profile

## [6.10.2] - 06-27-2025

- **REVERTED** - Removed the simulateCompact function from the BubbleChart

## [6.10.1] - 06-27-2025

- **UPDATED** - `Notification Types` style and visibility logic

## [6.10.0] - 06-25-2025

- **Updated** - use onEvent from global data provider for notification settings analytics

## [6.9.10] - 06-25-2025

- **Fixed** - Bug Fixes | Compressed the Bubble Budgets for the width lesser than 400px

## [6.9.9] - 06-25-2025

- **ADDED** - `NetWorthMicroWidget` copy changes.

## [6.9.8] - 06-24-2025

- **UPDATED** - ProfileTab | throw are you sure dialogue if user leaves before saving

## [6.9.7] - 06-24-2025

- **UPDATED** - AccountsWidget | changed actions in widget header

## [6.9.6] - 06-24-2025

- **UPDATED** - Skipped `Insights` from the default `notificationTypes` in the `NotificationSettings` component.

## [6.9.5] - 06-24-2025

- **FIXED** - `InsightsNotificationWidget` Notification type section design fixed.

## [6.9.4] - 06-24-2025

- **ADDED** - `InsightsNotificationWidget` added with Notification type section.

## [6.9.3] - 06-23-2025

- **FIXED** - Change all active tab text color to `primary.main`

## [6.9.2] - 06-20-2025

- **FIXED** - Investments Design Fixes

## [6.9.1] - 06-19-2025

- **UPDATED** - Handling empty state in investments widget

## [6.9.0] - 06-18-2025

- **ADDED** - `TransactionRulesWidget`

## [6.8.0] - 06-18-2025

- **ADDED** - `NoticationSettingsWidget`

## [6.7.0] - 06-18-2025

- **UPDATED** - `HelpWidget` to be wrapped in `WidgetContainer` in order to be used as a standalone widget

## [6.6.5] - 06-19-2025

- **FIXED** - Dashboard CardHeader Button

## [6.6.4] - 06-19-2025

- **ADDED** - `MicroWidgetContainer` and `Analytics` for `NetWorthMicroWidget`
- **UPDATED** - Cosmetic updates to `NetWorthMicroWidget` based on Figma and updated Default/Zero state logic.

## [6.6.3] - 06-18-2025

- **FIXED** - Budgets widget column layout breakpoints

## [6.6.2] - 06-18-2025

- **UPDATED** - Gitlab CI/CD and Shipit to allow reviewing and publishing to npm

## [6.6.1] - 06-17-2025

- **UPDATED** - Darken progress bar background in dark mode

## [6.6.0] - 06-17-2025

- **UPDATED** - `ProfileTab`'s verify email/phone link hides if unsaved changes

## [6.6.0] - 06-17-2025

- **ADDED** - `NetWorthMicroWidget`

## [6.5.8] - 06-17-2025

- **UPDATED** - Profile Save button has enabled/disabled states based on unsaved changes

## [6.5.7] - 06-17-2025

- **FIXED** - Trends Widget - overlapping text Bug

## [6.5.6] - 06-16-2025

- **FIXED** - Another issue preventing Recurring Transactions from being created

## [6.5.5] - 06-16-2025

- **ADDED** - API integration for user communication profile, aka `Delivery Methods`.

## [6.5.4] - 06-16-2025

- **FIXED** - Issue preventing Recurring Transactions from being created
- **FIXED** - Issue where Recurring Transactions were using the feed name and not the cleansed name

## [6.5.3] - 06-16-2025

- **UPDATED** - getLocale precedence and default logic
- **ADDED** - getLocale tests

## [6.5.2] - 06-16-2025

- **UPDATED** - Analysis design matches Figma

## [6.5.1] - 06-16-2025

- **UPDATED** - `SettingsWidget` to have extensible contents that can be leveraged directly by parent (ie Insights)
- **UPDATED** - `ProfileTab` to accept container width size that overrides browser dimensions

## [6.5.0] - 06-15-2025

- **REMOVED** - `RecuringActivityWidget` and `RecuringActivityMiniWidget`
- **FIXED** - Minor issue with corner radius for cards and buttons

## [6.4.2] - 06-13-2025

- **UPDATED** - CSS Bug fixing - Budgets Empty State

## [6.4.1] - 06-13-2025

- **UPDATED** - Validate accounts when adding a goal.

## [6.4.0] - 06-12-2025

- **UPDATED** - All Card & Paper components to use the default MXUI border radius
- **UPDATED** - Client Theme creation to set fonts for all font variants

## [6.3.17] - 06-13-2025

- **UPDATED** - `Connect an Account` in the filter opens the `Link Accounts` flow.

## [6.3.16] - 06-12-2025

- **UPDATED** - Phone verification success toast logic.

## [6.3.15] - 06-12-2025

- **REMOVED** - Extra date icon above the date range selector.

## [6.3.14] - 06-12-2025

- **CHANGED** - Recurring Transactions header to show current month info
- **CHANGED** - Recurring Transactions upcoming activity to show next 30 days

## [6.3.13] - 06-11-2025

- **ADDED** - Twice a month frequency option for Recurring Transactions
- **UPATED** - Payment Schedule experience on Recurring Transactions

## [6.3.12] - 06-11-2025

- **ADDED** - PostMessage on Insight on transaction click

## [6.3.11] - 06-09-2025

- **ADDED** - AppConfig type | Addeed clientConfig property for widget URL params

## [6.3.10] - 06-06-2025

- **ADDED** - AppConfig type | Added isMobileWebview property

## [6.3.9] - 06-06-2025

- **ADDED** - Created Posthog Analytics in NotificationSettings.

## [6.3.8] - 06-06-2025

- **FIXED** - Investments | Overview section in dark mode: the `expand_more` icon now displays correctly.

## [6.3.7] - 06-06-2025

- **ADDED** - Created Posthog Analytics in Investments Widget.

## [6.3.6] - 06-06-2025

- **FIXED** - Fixed package build issue caused by `test` folder name.

## [6.3.5] - 06-06-2025

- **UPDATED** - Filter logic to the `Investments` Widget.

## [6.3.4] - 06-05-2025

- **FIXED** - Incorrect padding on Add Accounts button in greeting

## [6.3.3] - 06-05-2025

- **ADDED** - EmptyState component for `Notifications`.

## [6.3.2] - 06-04-2025

- **FIXED** - `CashflowWidget` to show 90 days of transactions in Settings

## [6.3.1] - 06-04-2025

- **ADDED** - Allocation Component | Investments Widget

## [6.3.0] - 06-03-2025

- **UPDATED** - Disabled `Email/SMS` in `Delivery Methods` when values are missing.

## [6.2.9] - 06-02-2025

- **UPDATED** - `getClientTheme` to use neutral and dark colors

## [6.2.8] - 05-30-2025

- **UPDATED** - `NotificationSettings` component renders based on props to support `Pulse`.

## [6.2.7] - 05-29-2025

- **ADDED** - Dashboard Greeting | Included Add Accounts button to open Connect Widget

## [6.2.6] - 05-28-2025

- **FIXED** - Profile Tab | birthdate discrepancy

## [6.2.5] - 05-29-2025

- **ADDED** - `Analysis` section to `Investments`

## [6.2.4] - 05-28-2025

- **FIXED** - Issue where the user profile settings tab was still displaying when hidden

## [6.2.3] - 05-27-2025

- **ADDED** - new filter to dashboard to ignore disabled mini widgets

## [6.2.2] - 05-22-2025

- **ADDED** - Notification type for Large Deposit - Posted

## [6.2.1] - 05-22-2025

- **ADDED** - UpdateHolding API
- **ADDED** - Overview | CostBasis logic

## [6.2.0] - 05-21-2025

- **ADDED** - Analytics | Survey MiniWidget

## [6.1.3] - 05-21-2025

- **CHANGED** - Notification profiles to hide Delivery Method section when all are disabled
- **CHANGED** - User Profile in Settings to be hidden when disabled
- **CHANGED** - Mobile Devices in Settings to be hidden when disabled
- **CHANGED** - Notifications in Settings to be hidden when disabled
- **CHANGED** - Transaction Rules in Settings to be hidden when disabled
- **CHANGED** - Help in Settings to be hidden when disabled
- **CHANGED** - Email Address Edit field in Profile to be hidden when disabled
- **CHANGED** - Mobile Phone Edit field in Profile to be hidden when disabled

## [6.1.2] - 05-21-2025

- **CHANGED** - Help & Cashflow images to load from AWS S3 instead of being included in the bundle

## [6.1.1] - 05-20-2025

- **ADDED** - Overview Component | Investments Widget

## [6.1.0] - 05-19-2025

- **ADDED** - `RecurringTransactionsWidget` & `RecurringTransactionsMiniWidget` using Repeating Transactions API

## [6.0.25] - 05-19-2025

- **FIXED** - Transactions Widget | Category Selector Drawer | reset search value

## [6.0.24] - 05-16-2025

- **UPDATED** - Micro Widget carousel a11y

## [6.0.23] - 05-15-2025

- **UPDATED** - Use `theme.palette.primary` in `InsightsMicroWidget`

## [6.0.22] - 05-15-2025

- **UPDATED** - Micro Widget now displays keyboard focus

## [6.0.21] - 05-14-2025

- **UPDATED** - Hide create button in `BudwgetsMiniWidget`

## [6.0.20] - 05-14-2025

- **ADDED** - `getClientTheme` util from MD into for easier theme testing
- **ADDED** - ability to use a custom `ClientStyleProfile` theme in storybook `ThemeWrapper`
- **UPDATED** - color usage where a clients expected to see primary color used but weren't

## [6.0.19] - 05-13-2025

- **UPDATED** - Micro Insights Carousel dot color

## [6.0.18] - 05-12-2025

- **ADDED** - EmptyState for Budgets Component.

## [6.0.17] - 05-12-2025

- **ADDED** - Holdings Api Integration
- **ADDED** - Holdings GlobalStore Implementation

## [6.0.16] - 05-09-2025

- **ADDED** - Initial Investments layout

## [6.0.15] - 05-08-2025

- **UPDATED** - `Dashboard` to use updated MXUI breakpoints

## [6.0.14] - 05-08-2025

- **UPDATED** - `useScreenSize` hook to use updated MXUI breakpoints

## [6.0.13] - 05-07-2025

- **UPDATED** - InsightsMicroWidget Messaging Insights posthog events

## [6.0.12] - 05-07-2025

- **UPDATED** - CSS Bug fixes for Goals and Networth empty state scenario

## [6.0.11] - 05-06-2025

- **UPDATED** - Remove barrel imports from InsightsMicroWidget files

## [6.0.10] - 05-05-2025

- **FIXED** - Allow display of Banners without a redirect URL

## [6.0.9] - 05-02-2025

- **ADDED** - `mergeHeaders` method to `Fetch` for header overriding/extension
- **FIXED** - Fix Bullseye CORS error by removing `md-session-token` header from banner request

## [6.0.8] - 05-02-2025

- **FIXED** - Missing `loadBanner` call for `Banner` data

## [6.0.7] - 05-02-2025

- **FIXED** - Recurring Activity Widget | adjust width & title

## [6.0.6] - 05-01-2025

- **FIXED** - Net Worth Widget | adjust padding

## [6.0.5] - 05/01/2025

- **UPDATED** - MXUI to 1.0.7
- **FIXED** - `RecurringActivityWidget` to set the accounts in the filter to display the correct data

## [6.0.4] - 04/30/2025

- **ADDED** - Hidden accounts section to `AccountsList`

## [6.0.3] - 04/29/2025

- **FIXED** - Failed test cases for Goals and Budget.

## [6.0.2] - 04/29/2025

- **FIXED** - an issue with unrelated accounts showing in the notification profiles
- **FIXED** - an issue with the mini recurring activity widget not have a key in lists
- **FIXED** - an issue with insights AppStore not setting a value in an action
- **FIXED** - an issue with the cashflow widget briefly displaying onboarding

## [6.0.1] - 04/28/2025

- **CHANGED** - Change account hidden name color to secondary text
- **CHANGED** - Don't show accounts with is_hidden from accounts filter in widgets
- **CHANGED** - Don't show/use data or transactions from is_hidden accounts in widgets

## [6.0.0] - 04/28/2025

- **CHANGED** - `GlobalStore` to utilize constructor for setting endpoint and appConfig
- **CHANGED** - `initialize` function in global store to `loadData` which only loads necessary data for initial load
- **UPDATED** - All widgets to use `loadData` instead of `initialize`

## [5.3.3] - 04-25-2025

- **UPDATED** - Closed accounts and transactions behavior fix

## [5.3.2] - 04-24-2025

- **UPDATED** - Manage transactions based on closed accounts more effectively across various widgets.

## [5.3.1] - 04-23-2025

- **UPDATED** - Hidden transactions behavior.

## [5.3.0] - 04-22-2025

- **ADDED** - Account Filtering | Persist filter selections across widgets and logins

## [5.2.23] - 04-23-2025

- **Added** - Goals | Added an Empty State.

## [5.2.22] - 04-22-2025

- **Fixed** - `DebtsWidget` crashing on load for some prod users
- **Added** - Unit tests for `getPayoffProjection` debts utlility

## [5.2.21] - 04-19-2025

- **ADDED** - EmptyState for NetWorth Component.

## [5.2.20] - 04-16-2025

- **UPDATED** - `InsightsMircoWidget` use strings for posthog events intead of from event map

## [5.2.19] - 04-16-2025

- **FIXED** - `DebtsWidget` to set accounts and load goals like `GoalsWidget`

## [5.2.18] - 04-16-2025

- **ADDED** - EmptyState component under common and added story for the same

## [5.2.17] - 04-16-2025

- **FIXED** - Notifications mobile responsiveness, padding, and background color adjustments.

## [5.2.16] - 04-12-2025

- **ADDED** - `BannerApi` and `Banner`
- **ADDED** - Display `Banner` in `Dashboard` main column

## [5.2.15] - 04-12-2025

- **FIXED** - NetWorth | List title label fixed.

## [5.2.14] - 04-12-2025

- **FIXED** - NetWorth | List Sizing Issue fixed.

## [5.2.13] - 04-11-2025

- **FIXED** - Ensure the settings card spans the full height.

## [5.2.12] - 04-11-2025

- **FIXED** - Widget Container | Header responsiveness when multiple actions

## [5.2.11] - 04-11-2025

- **FIXED** - Debts | Paydown drawer background color issue fix

## [5.2.10] - 04-09-2025

- **ADDED** - Copy types and mock data for navigation copy

## [5.2.9] - 04-09-2025

- **ADDED** - Get offers

## [5.2.8] - 04-04-2025

- **FIXED** - Check for theWholeHog fields before accessing

## [5.2.7] - 04-02-2025

- **FIXED** - Transaction Rules | Incorrect alert when category changed

## [5.2.6] - 04-02-2025

- **ADDED** - Insights and Recurring transaction flags to AppConfig

## [5.2.5] - 04-02-2025

- **FIXED** - Transactions Widget | Memo TextInput Full Screen fix.

## [5.2.4] - 04-01-2025

- **FIXED** - Export CSV from `TransactionsWidget` to include the Credit/Debit column

## [5.2.3] - 04-01-2025

- **FIXED** - Adjusted goal tile display to properly handle large dollar amounts for `fr-CA`.

## [5.2.2] - 04-01-2025

- **FIXED** - Goals | Contribution TextInput NaN Bug Fixed.

## [5.2.1] - 04-01-2025

- **ADDED** - Types for App config from window.app
- **ADDED** - Ability to hide Connect based on config settings
- **FIXED** - API endpoint for notification profiles

## [5.2.0] - 04-01-2025

- **ADDED** - Transaction Rules tab in `SettingsWidget`

## [5.1.5] - 03-31-2025

- **ADDED** - Added extra paydown button, drawer, and action to `DebtsWidget`

## [5.1.4] - 03-28-2025

- **FIXED** - make posthog optional again

## [5.1.3] - 03-28-2025

- **FIXED** - Responsive header, header button alignment, and breadcrumb name update.

## [5.1.2] - 03-28-2025

- **UPDATED** - Posthog usage in `InsightsMicroWidget`

## [5.1.1] - 03-28-2025

- **FIXED** - Adjusted goal tile display to properly handle large dollar amounts.

## [5.1.0] - 03-27-2025

- **ADDED** - Notification settings tab in `SettingsWidget`

## [5.0.23] - 03-27-2025

- **FIXED** - Fixed a bug for Projected dates updating after saving in Goals.
- **FIXED** - Help Widget | Consistency fix for Mobile, NetWorth, Notifications, RecurringTransactions

## [5.0.22] - 03-27-2025

- **FIXED** - Goals | text not wrapping on mobile screen size fixed

## [5.0.21] - 03-26-2025

- **UPDATED** - Handled request support in the help content page.

## [5.0.20] - 03-26-2025

- **FIXED** - Help Widget | Consistency fix for Accounts, Budgets, Cashflow, Debts pages

## [5.0.19] - 03-26-2025

- **FIXED** - Help Widget | Consistency fix for Spending, Transactions, Trends

## [5.0.18] - 03-26-2025

- **UPDATED** - Navigated Back/Done button correctly and updated Topic/Institute position.

## [5.0.17] - 03-25-2025

- **ADDED** - Help by Category navigates to support based on external/internal cases.
- **ADDED** - Missing Institutions screen integration with API.
- **UPDATED** - Contact Support form submission includes navigation to handle responses.
- **UPDATED** - Localization updated for the entire Help Widget section.

## [5.0.16] - 03-25-2025

- **FIXED** - Help Widget | Consistency fix for General, Insights, Investments

## [5.0.15] - 03-24-2025

- **ADDED** - Implemented Mobile content inside Help widget section

## [5.0.14] - 03-21-2025

- **ADDED** - Help Widget | Insights content

## [5.0.13] - 03-20-2025

- **ADDED** - Help | Investments content

## [5.0.12] - 03-20-2025

- **FIXED** - Updated MicroCard to match new design

## [5.0.11] - 03-20-2025

- **FIXED** - Negative balance showing for some debt types

## [5.0.10] - 03-20-2025

- **ADDED** - `DeviceTab` to `SettingsWidget`

## [5.0.9] - 03-20-2025

- **ADDED** - Implemented NetWorth content inside Help widget section

## [5.0.8] - 03-19-2025

- **ADDED** - Help | Spending content

## [5.0.7] - 03-18-2025

- **ADDED** - Help Trends content

## [5.0.6] - 03-18-2025

- **ADDED** Help | Debts content

## [5.0.5] - 03-14-2025

- **ADDED** - Localization for Request Support

## [5.0.4] - 03-13-2025

- **UPDATED** - BeatIcon to use the Icon component with the name campaign
- **REMOVED** The custom MarketingOfferICon component

## [5.0.3] - 03-13-2025

- **ADDED** Connect account to Change Account on Savings Goals
- **ADDED** padding under Change Account in Savings goal details
- **FIXED** Issues with goals not completing properly
- **FIXED** Dividers in Goal details so that they line up with the start of the text
- **FIXED** Divider padding in Manage Goals
- **FIXED** The definition of what is complete in Goal details
- **REMOVED** Cancel button on existing goals.
- **REMOVED** Complete header in Manage Goals when there are no complete goals.

## [5.0.2] - 03-13-2025

- **ADDED** - Updating the BeatIcon mapping

## [5.0.1] - 03-13-2025

- **ADDED** - Implemented General content inside Help widget section

## [5.0.0] - 03-12-2025

- **ADDED** MXUI `@mxenabled/mxui`
- **REMOVED** KyperMUI `@kyper/mui`
- **CHANGED** All imports of KyperMUI to MXUI
- **REMOVED** All references to kyper

## [4.4.0] - 03-12-2025

- **ADDED** - MarketingOffer Icon

## [4.3.0] - 03-12-2025

- **ADDED** - Localization for Help Content and List

## [4.2.9] - 03-12-2025

- **FIXED** - Fix for Help Widget build

## [4.2.8] - 03-10-2025

- **ADDED** - Help | Recurring Transactions content

## [4.2.7] - 03-08-2025

- **ADDED** - Help | Notifications Content

## [4.2.6] - 03-07-2025

- **FIXED** - Help Goals content loaded from `GlobalCopy`

## [4.2.5] - 03-06-2025

- **ADDED** - Help Image breakpoint prop support to Content Components

## [4.2.4] - 03-06-2025

- **FIXED** - Cashflow display bug and budget content fix

## [4.2.3] - 03-06-2025

- **ADDED** Help | Cash Flow Content

## [4.2.2] - 03-05-2025

- **ADDED** - Help Transactions content

## [4.2.1] - 03-05-2025

- **FIXED** Lazy loading in help content

## [4.2.0] - 03-04-2025

- **ADDED** - `SettingsWidget`
- **ADDED** - `SettingsApi`
- **ADDED** - `SettingsStore`

## [4.1.13] - 03-03-2025

- **ADDED** - Help Accounts content loaded from `GlobalCopy`

## [4.1.12] - 02-28-2025

- **UPDATED** - Help | Budgets Content loaded from GlobalCopy

## [4.1.11] - 02-28-2025

- **FIXED** - Debts payoff order recalculation after priority change
- **UPDATED** - Responsive layout and styles in `DebtsWidget`, `DebtsChart`, and `DebtsTable`

## [4.1.10] - 02-27-2025

- **REMOVED** - Inisghts Settings and Manage Accounts Drawers

## [4.1.9] - 02-27-2025

- **ADDED** - Help | Budgets Content

## [4.1.8] - 02-26-2025

- **UPDATED** - Use divs instead of ul/li on micro carousel because role=button is invalid and aria-label already reads position

## [4.1.7] - 02-20-2025

- **FIXED** - Cash flow text wrap fix

## [4.1.6] - 02-20-2025

- **ADDED** - Added Request Support Drawer in Help Component - On Clicking the Request Support Button

## [4.1.5] - 02-19-2025

- **FIXED** - WCAG for micro carousel

## [4.1.4] - 02-18-2025

- **FIXED** - Issues with completed Goals not working correctly
- **FIXED** - Issues with Debt goals showing the incorrect amounts and status bar
- **FIXED** - Issues with Add/Deleting Retirement goals
- **FIXED** - Issues with reordering Save and Debt goals

## [4.1.3] - 02-17-2025

- **FIXED** - Transaction list amount truncate fix
- **ADDED** - Help Component

## [4.1.2] - 02-13-2025

- **UPDATED** - `WidgetContainer` to optionally accept components in `actions` prop
- **UPDATED** - `DebtsWidget` payoff calculations

## [4.1.1] - 02-04-2025

- **FIXED** - Issue with adding goals

## [4.1.0] - 02-04-2025

- **ADDED** - `GoalsWidget`
- **ADDED** - `DebtsWidget`

## [4.0.14] - 02-03-2025

- **FIXED** - Projected income in budget widget

## [4.0.13] - 01-15-2025

- **UPDATED** - Removed recurring transactions calendar from mobile view as per design

## [4.0.12] - 01-14-2025

- **FIXED** - Invalid date value in `TrendsFullWidget`

## [4.0.11] - 01-13-2025

- **FIXED** - Added wrapping to the transactions detail memo

## [4.0.10] - 01-10-2025

- **UPDATED** - Reduced tooltip touch delay on mobile from default 700ms to 500ms

## [4.0.9] - 01-09-2025

- **FIXED** - Mismatch of date range label in widget subheading and table headers
- **FIXED** - Fix totals data be inserted into offset/extra (i.e. wrong) month columns

## [4.0.8] - 01-09-2024

- **FIXED** - Added scroll to spending widget so view isn't cut off

## [4.0.7] - 01-07-2024

- **FIXED** - Don't truncate Notifications text so that you can read the whole notification

## [4.0.6] - 01-06-2025

- **UPDATED** - Simplify use of memoization in `TrendsFullWidget`
- **UPDATED** - Dynamic total label in `CustomAreaTootip` for `StackedLineChart`
- **UPDATED** - Generate full year of transactions for Storybook testing
- **FIXED** - Mismatched date range labels in `TrendsFullWidget` subheading and chart axis
- **FIXED** - Fill missing `monthlyCategoryTotals` with $0 placeholder in `TrendsFullWidget`

## [4.0.5] - 12-18-2024

- **FIXED** - Wrapping for accounts name and cashflow date range

## [4.0.4] - 12-18-2024

- **FIXED** - Trends miniWidget line chart marks now show correct color and labels

## [4.0.3] - 12-18-2024

- **FIXED** - Cash flow copy changes

## [4.0.2] - 12-17-2024

- **FIXED** - Adjust line chart gradient opacity

## [4.0.1] - 12-16-2024

- **FIXED** - Net Worth widget styling

## [4.0.0] - 12-12-2024

- **REMOVED** - Most of the insights components since they now live in their own repo

## [3.17.0] - 12-11-2024

- **ADDED** - Refreshed Net Worth Widget

## [3.16.9] - 12-11-2024

- **ADDED** - Tooltips to bubbles in budgets

## [3.16.8] - 12-10-2024

- **FIXED** - Budgets now ordered by highest percentage to lowest

## [3.16.7] - 12-10-2024

- **ADDED** - Alert notifications for budget actions

## [3.16.6] - 12-10-2024

- **FIXED** - Recalculate budgets to close all drawers and post alert when complete

## [3.16.5] - 12-09-2024

- **FIXED** - Border around Overview and List in Bubble Budgets

## [3.16.4] - 12-09-2024

- **REMOVED** - Mobx from Insights SettingsDrawer

## [3.16.3] - 12-06-2024

- **UPDATED** - Bubble logic to show loader until data is ready

## [3.16.2] - 12-04-2024

- **REMOVED** - Theme provider from settings drawer and accounts drawer

## [3.16.1] - 12-04-2024

- **ADDED** - Make text on header centered and update the back icon to new symbol

## [3.16.0] - 12-04-2024

- **ADDED** - Client branding to back arrow in drawer

## [3.15.0] - 11-25-2024

- **ADDED** - Refreshed Bubble Budgets Widget

## [3.14.0] - 11-23-2024

- **UPDATED** - completed setup for `GoalStore` initialization
- **ADDED** - `DebtStore` initialization and related utils

## [3.13.5] - 11-23-2024

- **FIXED** - `StackedLineChart` unstacked line subcharts crash
- **FIXED** - `TrendsFullWidget` crash when no selected accounts
- **UPDATED** - `CustomLegend` button font color and weight

## [3.13.4] - 11-21-2024

- **FIXED** - SpendingChart shading
- **FIXED** - AccountDetail chart colors

## [3.13.3] - 11-05-2024

- **FIXED** - Transactions widget not polling for associated insights on date change.

## [3.13.2] - 11-05-2024

- **FIXED** - Sorted transactions now default to this month for the date range
  instead of the last 3 months. Fixes issues in Transactions, Full Spending
  widget and Budgets

## [3.13.1] - 11-05-2024

- **FIXED** - Fixed an issue where using sort on a MobX array crashed the app.
  `observableArray.sort() mutates the array in-place, which is not allowed inside a derivation. Use array.slice().sort() instead`

## [3.13.0] - 11-05-2024

- **ADDED** - Drill into subcategories in `TrendsFullWidget` chart and table
- **FIXED** - Mitigate `StackedLineChart` line area crossing and overlap
- **FIXED** - Improve `StackedLineChart` legend hover styles
- **FIXED** - Improve data processing and rendering in `TrendsFullWidget`
- **FIXED** - Refactor and organize `TrendsFullWidget` utils
- **FIXED** - Incorrect date range text in `TrendsFullWidget`
- **FIXED** - Misordered months when `TrendsTable` is displaying 1yr
- **FIXED** - Missing and inconsistent category icons/colors in
  `TrendsFullWidget`

## [3.12.4] - 10-30-2024

- **UPDATED** - SwitchDirectDeposit props

## [3.12.3] - 10-30-2024

- **UPDATED** - Pass in showInsights prop to TransactionsList from
  TransactionWidget to prevent false default

## [3.12.2] - 10-30-2024

- **UPDATED** - index in insights to make individual components exportable

## [3.12.1] - 10-26-2024

- **UPDATED** - icon and pulse sub header

## [3.12.0] - 10-25-2024

- **ADDED** - PulseIcon
- **ADDED** - PulseSubHeader
- **UPDATED** - SetUpDirectDeposit made isDarkMode optional
- **UPDATED** - SwitchDirectDeposit made isDarkMode optional

## [3.11.0] - 10-25-2024

- **ADDED** - MonthlyEmergencyFundReview BeatBody

## [3.10.1] - 10-25-2024

- **UPDATED** - Insights folder structure

## [3.10.0] - 10-25-2024

- **ADDED** - SwitchDirectDeposit BeatBody

## [3.9.3] - 10-21-2024

- **UPDATED** - SetUpDirectDeposit styles

## [3.9.2] - 10-2-2024

- **FIXED** - `InsightsMicroWidget` conditionally initializes store, only if
  store has not been initialized

## [3.9.1] - 10-21-2024

- **UPDATED** - SetUpDirectDeposit styles

## [3.9.0] - 10-18-2024

- **UPDATED** - Use the common `ConnectDrawer` component instead of the
  LinkAccounts from Money Dashboard in ConnectMiniWidget

## [3.8.0] - 10-15-2024

- **UPDATED** - `Fetch` requests throw errors to be caught and handled upstream
- **FIXED** - `MicroInsights` logs user out if 401 error is thrown
- **FIXED** - Analytics types

## [3.7.1] - 10-15-2024

- **UPDATED** - Bubble chart to resize without re-rendering
- **UPDATED** - Bubble chart to be more performant

## [3.7.0] - 10-15-2024

- **CHANGED** - Pull Accounts copy from GlobalCopyStore
- **CHANGED** - Pull Budgets copy from GlobalCopyStore
- **CHANGED** - Pull Connect related copy from GlobalCopyStore
- **CHANGED** - Pull Dashboard copy from GlobalCopyStore
- **CHANGED** - Pull Notifications copy from GlobalCopyStore
- **CHANGED** - Pull Spending copy from GlobalCopyStore
- **CHANGED** - Pull Recurring Activity copy from GlobalCopyStore

## [3.6.3] - 10-08-2024

- **UPDATED** - Handle localization for `TrendsFullWidget` components

## [3.6.2] - 10-08-2024

- **UPDATED** - Add Posthog events to `TrendsFullWidget` components

## [3.6.1] - 10-03-2024

- **UPDATED** - `SetUpDirectDepositBeatBody` component style

## [3.6.0] - 10-03-2024

- **ADDED** - `TrendsTable` and `TrendsFullWidget` components
- **FIXED** - Minor styling and tooltip positioning in `StackedLineChart`
- **UPDATED** - Support `DateRangeSelector` variants in `WidgetContainer`
- **UPDATED** - Support MUI text variants and format string in `CurrencyText`

## [3.5.0] - 09-30-2024

- **ADDED** - Add manual account modal and add account drawer in transactions
  widget. When a user attempts to add a manual transaction and does not have any
  manual accounts, they will be prompted to create a manual account before they
  can create the manual transaction.

## [3.4.5] - 09-27-2024

- **UPDATED** - SetUpDirectDeposit beat body to have a comfetti background when
  it is complete.

## [3.4.4] - 09-23-2024

- **UPDATED** - Created a DateRangeSelector variant for selecting 3/6/9/12-month
  ranges.

## [3.4.3] - 09-19-2024

- **REMOVED** - Remove onClick function from Category row in the Recurring
  Activity Income/Expense details drawer. If we allow you to edit the category
  then the events could disappear unexpectedly so it's better to allow category
  edits directly on a transaction instead.

## [3.4.2] - 09-17-2024

- **UPDATED** - Add explicit styles for dialogue backwards compatibility

## [3.4.1] - 09-17-2024

- **UPDATED** - SettingsDrawer to separate logic between sub-drawer

## [3.4.0] - 09-16-2024

- **ADDED** - `StackedLineChart` component
- **ADDED** - `MONTH_SHORT_YEAR` to `DateFormat` constants

## [3.3.3] - 09-13-2024

- **ADDED** - ManageAccountsDrawer
- **ADDED** - AccountGroup

## [3.3.2] - 09-12-2024

- **ADDED** - Data test ids for the SetUpDirectDeposit insight's body

## [3.3.1] - 09-12-2024

- **ADDED** - Mock data, copy, and types for ManageAccounts

## [3.3.0] - 09-12-2024

- **UPDATED** - The SetUpDirectDeposit beat body to adjust to the minibeat

## [3.2.2] - 09-12-2024

- **ADDED** - The SetUpDirectDeposit beat body update css to address issues in
  pulse

## [3.2.1] - 09-12-2024

- **UPDATED** - Refactored settings drawer and adding settings

## [3.2.0] - 09-03-2024

- **ADDED** - The SetUpDirectDeposit beat body ui

## [3.1.2] - 09-03-2024

- **FIXED** - Fix dashboard account filtering in Cashflow mini widget
- **FIXED** - Fix dashboard account filtering in Recurring Transactions mini
  widget
- **FIXED** - Fix dashboard account filtering in Trends mini widget
- **FIXED** - Fix dashboard account filtering in Accounts mini widget
- **ADDED** - Add missing accountGuid in income activities build function
- **ADDED** - Add simple zero state for when no Accounts are available

## [3.1.2] - 09-03-2024

- **FIXED** - Issue with accounts not loading

## [3.1.1] - 08-28-2024

- **FIXED** - Cashflow daterange inconsistencies

## [3.1.0] - 08-28-2024

- **FIXED** - Refactored the ActivityList to use actual list components
- **FIXED** - Dynamically calculate the Upcoming activity list width in the
  Recurring Transactions mini widget
- **UPDATED** - Set dependency and peer dependency to latest major version of
  @kyper/mui with the Inter font import changes

## [3.0.21] - 08-27-2024

- **FIXED** - Fixed `MiniSpendingChart` content to be centered

## [3.0.20] - 08-23-2024

- **FIXED** - Delay `BubbleBudgets` render/animation until all data is
  initialized

## [3.0.19] - 08-22-2024

- **ADDED** - CurrencyText component can now receive a +,- symbol
- **CHANGED** - Refactor Cashflow summary to add mobile List layout
- **CHANGED** - Refactor Cashflow Details to use List components
- **REMOVED** - Deleted DataGridPro CSS styles that were moved into the latest
  Kyper MUI
- **FIXED** - Listen for changes to the `cashAccounts` in the Cashflow widget so
  the selectedAccounts are updated as expected

## [3.0.18] - 08-22-2024

- **ADDED** - Added onBackClick prop to AccountsWidget, RecurringActivityWidget,
  SpendingWidget and TransactionWidget
- **ADDED** - Added `widget_back_button_click` analytic event to WidgetContainer
  back button click event
- **UPDATED** - Added onBackClick to WidgetProps type
- **CHANGED** - Only show Widget back button in mobile if an `onBackClick`
  function is passed in

## [3.0.17] - 08-22-2024

- **FIXED** - Issue where Recurring Transactions was show both and upcoming and
  paid event for the same activity

## [3.0.16] - 08-22-2024

- **FIXED** - Wrap `Greeting` component in `observer` and set selected accounts
  in `Dashboard` so Account filter recieves accounts correctly
- **FIXED** - Pass in all accounts to `AccountFilter` in the `Greeting`
  component instead of the `selectedAccounts`
- **FIXED** - Set selected accounts in `TransactionsWidget` on render
- **FIXED** - Set selected accounts in `RecurringActivityWidget` on render
- **FIXED** - Set selected accounts in `SpendingWidget` on render

## [3.0.15] - 08-21-2024

- **FIXED** - Account Widget not loading accounts

## [3.0.14] - 08-20-2024

- **ADDED** - Common constant for analytics event tags
- **REMOVED** - Redundant older `onEvent` calls

## [3.0.13] - 08-20-2024

- **UPDATED** - Performance improvement by using `Promise.all()` to make many
  calls at once rather than waiting for each `await` to resolve
- **FIXED** - `CashflowWidget` title

## [3.0.12] - 08-19-2024

- **ADDED** - GlobalCopyStore now has isInitialized value
- **FIXED** - Don't load Greeting component until the Global copy is loaded

## [3.0.11] - 08-16-2024

- **ADDED** - Posthog events for `Transactions` components
- **ADDED** - Posthog events for `SpendingWidget`

## [3.0.10] - 08-16-2024

- **UPDATED** - Filter Accounts menu now matches Figma
- **ADDED** - You can now select or unselect all accounts in Filter Accounts
  dropdown
- **REMOVED** - Deleted unused ActionBar component

## [3.0.9] - 08-16-2024

- **FIXED** - Category Icons are now positioned correctly in the center of
  Bubble budget circles in Safari

## [3.0.8] - 08-15-2024

- **ADDED** - Posthog events for `Cashflow` components

## [3.0.7] - 08-15-2024

- **FIXED** - Issues where Cashflow widget didn't include activities scheduled
  for today

## [3.0.6] - 08-15-2024

- **ADDED** - Posthog events for `AccountDetails` components

## [3.0.5] - 08-15-2024

- **FIXED** - Issue where the static date on Cashflow would change when Managing
  Income/Expenses
- **FIXED** - Issue where the `To be paid out` amount in the Cashflow header
  didn't match the Summary or Details
- **FIXED** - Issue where Adding Income/Expenses from Cashflow would not display
  any transactions

## [3.0.4] - 08-14-2024

- **CHANGED** - Replace `posthog.capture` calls with `onEvent`

## [3.0.3] - 08-13-2024

- **ADDED** - Posthog events to `RecurringActivity` components

## [3.0.2] - 08-13-2024

- **FIXED** - Expired credentials now open Manage Connection drawer

## [3.0.1] - 08-12-2024

- **ADDED** - Posthog events to `AccountsList` click handlers
- **ADDED** - Add `onAccountsFilterClick` prop to `WidgetContainer`

## [3.0.0] - 08-09-2024

- **REMOVED** - `mr_copy`
- **ADDED** - `mrs_content` with `GlobalCopyStore` for localization

## [2.36.7] - 08-07-2024

- **FIXED** - Use absolute value to display income totals
- **ADDED** - Use a bar chart to display loan payments
- **ADDED** - Show average line/legend for loan payments

## [2.36.6] - 08-05-2024

- **FIXED** - Duplicate income & expense transactions

## [2.36.5] - 08-02-2024

- **FIXED** - Accounts filter changes reflect in `TrendsMiniWidget`
- **FIXED** - Show credit/loan payments on correct plot in `TrendsChart`
- **FIXED** - Limit Cashflow transactions to display range

## [2.36.4] - 07-31-2024

- **ADDED** - Use `help` icon as fallback for BubbleChart icon
- **ADDED** - Cashflow tooltip Icon button now has aria-label
- **ADDED** - WidgetContainer back button now has aria-label
- **ADDED** - New transactions now have the blue icon when they haven't been
  clicked on
- **CHANGED** - Transaction Table styling updated
- **CHANGED** - Cashflow widget heading calculation now responsive
- **CHANGED** - Loader only shows Text if label is passed in
- **FIXED** - Changed const to import for image url in `CategoryEmptyState`
- **FIXED** - Cashflow onboarding check on `Add Income` button fixed
- **FIXED** - Added `useDimensions` hook that is shared by MiniWidgetContainer
  and WidgetContainer

## [2.36.3] - 07-30-2024

- **FIXED** - Remove ampersand encoding and no line wrap in `SettingsDrawer`

## [2.36.2] - 07-30-2024

- **FIXED** - Styling inconsistencies with Budget's `ZeroState` and Link
  Accounts

## [2.36.1] - 07-29-2024

- **FIXED** - Changed import for image url in CategoryEmptyState that was
  breaking builds
- **FIXED** - Correct date now shows in `readonly` variant for DateRangeSelector

## [2.36.0] - 07-26-2024

- **CHANGED** - Limit displayed notifications to last 7 days
- **CHANGED** - Add `recentNotifications` to `NotificationStore`
- **CHANGED** - Optimistically mark in-memory notifications as viewed
- **CHANGED** - Only pass allowed params to
  `NotificationApi.updatedNotification`
- **CHANGED** - Export `getNotificationDetailRoute` for frontend use

## [2.35.0] - 07-25-2024

- **ADDED** - usePrevious hook
- **ADDED** - CategoryDrawer
- **ADDED** - SubCategoryDrawer
- **ADDED** - CategoryEmptyState
- **CHANGED** - SettingsMenu to SettingsDrawer

## [2.34.3] - 07-24-2024

- **UPDATED** - Transaction details UI

## [2.34.2] - 07-22-2024

- **UPDATED** - Activity details UI

## [2.34.1] - 07-22-2024

- **UPDATED** - Expense/Income Settings UI

## [2.34.0] - 07-22-2024

- **ADDED** - Pass in `onBackClick` prop to CashflowWidget
- **CHANGED** - Limit Connect image with to 400px
- **CHANGED** - Make Cashflow onboarding mobile friendly
- **CHANGED** - Use widget container size for responsiveness instead of screen
  width
- **FIXED** - When clicking on cancel without adding any income it now resets
  the state properly
- **FIXED** - Sets the TransactionsList zero state content height properly when
  there are no transactions
- **FIXED** - Income filter no longer throws an error when the search returns
  zero transactions
- **FIXED** - Tapping on a transaction on mobile correctly opens the Transaction
  Details instead of the Category Selector

## [2.33.2] - 07-17-2024

- **FIXED** - Duplicate API calls to `/scheduled_payments` endpoint

## [2.33.1] - 07-17-2024

- **UPDATED** - Recurring Transaction mini-widget copy and font size

## [2.33.0] - 07-09-2024

- **ADDED** - `NotificationApi` and `NotificationStore`
- **ADDED** - `NotificationList`, `NotificationCard`, and `NotificationDrawer`
  components
- **ADDED** - Notification related constants from `raja`

## [2.32.4] - 07-17-2024

- **ADDED** - Zero state for `Budgets`

## [2.32.3] - 07-11-2024

- **UPDATED** - Modify wording in LocalizedContent.json

## [2.32.2] - 07-11-2024

- **UPDATED** - Adjusted LineClamp behavior for MicroInsightCard

## [2.32.1] - 07-09-2024

- **UPDATED** - Refactor `DateRow` to `SubheaderRow` and extracted date logic to
  utility

## [2.32.0] - 07-10-2024

- **UPDATED** - Storybook to ver 8.1.x
- **UPDATED** - Vite to ver 5.x
- **UPDATED** - MUI X to ver 7.x
- **UPDATED** - Date-fns to ver 3.x

## [2.31.3] - 07-10-2024

- **FIXED** - Problem with `Cashflow` updating accounts based on filter, as well
  as filter options disappearing

## [2.31.2] - 07-09-2024

- **UPDATED** - Greeting with button for filtering accounts

## [2.31.1] - 07-09-2024

- **UPDATED** - Transaction searching to improve date searching

## [2.31.0] - 07-09-2024

- **UPDATED** - Transaction components to shared folder

## [2.30.0] - 07-09-2024

- **ADDED** - Created `BeatStore` and made it accessible on the `GlobalStore`

## [2.29.5] - 07-09-2024

- **UPDATED** - Bubble budgets mini widget

## [2.29.4] - 07-03-2024

- **UPDATED** - Greeting to change based on time of day

## [2.29.3] - 07-01-2024

- **CHANGED** - Remove extra padding around Dashboard cards on Mobile

## [2.29.2] - 07-01-2024

- **FIXED** - Link Accounts mini widget styling

## [2.29.1] - 06-28-2024

- **FIXED** - Issue with resizing bubble budgets

## [2.29.0] - 06-27-2024

- **UPDATED** - Add backgroundColor as option to `MicroInsightCard`

## [2.28.1] - 06-26-2024

- **FIXED** - Issue with differing values on the Dashboard between the Spending
  and Trends mini widgets

## [2.28.0] - 06-26-2024

- **ADDED** - Ability to add multiple income events during Cashflow

## [2.27.1] - 06-25-2024

- **UPDATED** - Added MiniWidget props to `BubbleBudgetsMiniWidget` so that you
  can navigate to full experience from Dashboard

## [2.27.0] - 06-25-2024

- **ADDED** - `BubbleBudgetsMiniWidget` and related `BudgetsStore` and APIs

## [2.26.0] - 06-24-2024

- **ADDED** - Tooltip to Cashflow mini widget
- **ADDED** - Tooltips to Cashflow widget

## [2.25.0] - 06-20-2024

- **UPDATED** - `CashflowWidget` to use data from `RecurringActivityStore`
- **UPDATED** - Cleanup and refactor of all Cashflow components

## [2.24.0] - 06-20-2024

- **ADDED** - `WidgetContainerProvider`, specifically to allow `availableHeight`
  and `availableWidth` to be accessed by children, but this will enable any prop
  to be passed this way. This is in preparation for Bubble Budgets, since d3
  needs a height and width to correctly render.

## [2.23.0] - 06-17-2024

- **ADDED** - `TrendsChart` component for displaying monthly trends using
  `LineChart`
- **ADDED** - `AccountDetailsChart` within `AccoountDetailsHeader` for
  displaying account trends
- **FIXED** - `CategoryApi` where `getMonthlyCategoryTotals` request wasn't
  passing expected `account_guid` array
- **UPDATED** - `LineChart` to handle multiple data series and use chart feature
  configs

## [2.22.0] - 06-11-2024

- **UPDATED** - `CashflowMiniWidget` to use data from `RecurringActivityStore`
- **UPDATED** - `CashflowWidgetContent` to replace `<Grid>` with `<Stack>`

## [2.21.0] - 06-06-2024

- **ADDED** - Added Hidden Insights Settings component

## [2.20.0] - 06-05-2024

- **ADDED** - Add ability to skip onboarding to go straight to the full cashflow
  widget
- **ADDED** - Add income button after you skip onboarding opens Manage income
  drawer so that you can add income events

## [2.19.0] - 06-03-2024

- **UPDATED** - Moved Cashflow onboarding Into Cashflow mini widget and Full
  widget

## [2.18.0] - 05-29-2024

- **UPDATED** - `RecurringActivityMiniWidget` component refactored from
  `UpcomingActivityMiniWidget`

## [2.17.0] - 05-29-2024

- **ADDED** - `TrendsMiniWidget` component for the dashboard

## [2.16.2] - 05-22-2024

- **FIXED** - Upcoming Activity List when editing an income activity
- **FIXED** - display issues with Transaction widget
- **FIXED** - mini-spedning widget to always load data from all accounts
- **FIXED** - Spending loading issues

## [2.16.1] - 05-16-2024

- **FIXED** - When clicking on a transaction on the `Transactions` tab in the
  Account details drawer it would always open the same transaction. This is now
  fixed.

## [2.16.0] - 05-13-2024

- **ADDED** - `AccountDetails` with ability to edit

## [2.15.1] - 05-15-2024

- **CHANGED** - Edit Income on Cashflow to Settings (to manage both Income and
  Expenses)
- **FIXED** - Several issues with the way cashflow sequences & events were
  handled

## [2.15.0] - 05-10-2024

- **CHANGED** - Transaction filtering to be more flexible for all widgets

## [2.14.3] - 05-06-2024

- **FIXED** - Various `AccountDetails` issues

## [2.14.2] - 05-06-2024

- **FIXED** - `Drawer` backgroundColor styling
- **FIXED** - `Drawer` aria labels
- **REMOVED** - `Drawer`-related code that was hacking the styles at the
  component level

## [2.14.1] - 05-06-2024

- **FIXED** - `InsightsMicroWidget` - properly color `NoRelevantInsightsCard`
  CTA

## [2.14.0] - 05-01-2024

- **ADDED** - `RecurringActivityWidget` - Full widget for Recurring Transactions

## [2.13.0] - 04-29-2024

- **ADDED** - `AccountDetails` listed in drawer. Does not include all CTAs.

## [2.12.0] - 04-29-2024

- **ADDED** - Added ability to edit cashflow income sequences
- **FIXED** - Fixed a bug with onboarding where new cashflow events would all
  get the same transaction guid.
- **UPDATED** - Updated to latest version of `@kyper/mui` to get new color
  updates

## [2.11.0] - 04-25-2024

- **UPDATED** - TransactionStore to consolicate loading of transactions into a
  single action
- **FIXED** - Issues with displaying the correct date on TransactionList and
  Transaction Widget
- **FIXED** - Styling of TransactionList

## [2.10.1] - 04-23-2024

- **UPDATED** - Updated to latest version of `@kyper/mui` to get IconButton
  updates

## [2.10.0] - 04-09-2024

- **UPDATED** - Updated to latest version of `@kyper/mui` to get List theme
  updates
- **UPDATED** - Refactors the following components that use the Kyper MUI List
  components and Divider: AccountsList, AddSubcategory, CategoryList,
  CategoryRow, SubcategoryList, SubcategoryRow, MerchantLookup, SpendingList,
  TagManager, TagRow, CategoryAction, DateAction, DeleteAction,
  DeleteLogoAction, HideAction, MemoAction, SplitAction, TagsAction,
  TransactionDetails, Navigation

## [2.9.8] - 03-26-2024

- **FIXED** `MicroCard` truncation fix

## [2.9.7] - 03-21-2024

- **FIXED** `NoRelevantInsightCard` cta missalignment

## [2.9.6] - 03-21-2024

- **FIXED** - `CarouselHeader` cta

## [2.9.5] - 03-21-2024

- **UPDATED** `Drawer` to use MUI components, removed old Kyper tokens

## [2.9.4] - 03-21-2024

- **ADDED** Shared `IconBacking` component to give icons white background to
  stand out against background

## [2.9.3] - 03-21-2024

- **FIXED** Connections width to match the drawer width

## [2.9.2] - 03-20-2024

- **FIXED** Connect/ions url since this is now unwrapped from `widget_url` by
  the API

## [2.9.1] - 03-20-2024

- **FIXED** Account filtering in `AccountFullView`

## [2.9.0] - 03-19-2024

- **REMOVED** - Deleted all data-testid's
- **FIXED** - Fix the off by one day on the upcoming activity calendar
- **FIXED** - Fixes the duplicate keys warning on the UpcomingActivity list

## [2.8.0] - 03-18-2024

- **ADDED** Manage Connections button to open Connections SDK from `Accounts`

## [2.7.2] - 03-14-2024

- **FIXED\*** showCTAColocatedWithText logic

## [2.7.1] - 03-14-2024

- **UPDATED** Updated ctaShouldNotHugText prop to showCTAColocatedWithText to
  match the backend

## [2.7.0] - 03-14-2024

- **ADDED** Spending Widget

## [2.6.6] - 03-13-2024

- **ADDED** - Line Clamps for title and description
- **ADDED** - Theme provider to the parent component
- **ADDED** - Dummy Component in the story to address dark mode issues
- **Fixed** - Dark Mode
- **REMOVED** - Theme provider from individual components

## [2.6.5] - 03-13-2024

- **ADDED** - New BeatIcon component to handle dynamic icons and colors
- **UPDATED** - Beat constant types with new icon_color and icon_type
  properties.
- **REMOVED** - Old Beat Icon template map and constant file

## [2.6.4] - 03-13-2024

- **UPDATED** - Updates the WidgetContainer and DateRangeSelector to allow for
  disabling the buttons when needed
- **UPDATED** - Removes custom height on AccountFilter so that it matches the
  rest of the buttons

## [2.6.3] - 03-13-2024

- **UPDATED** Updates component imports for `ThemeProvider` to import from
  '@mui/material/styles'
- **UPDATED** Import other components with direct imports

## [2.6.2] - 03-11-2024

- **ADDED** Height toggle to View more, zero state and no relevant card.

## [2.6.1] - 03-11-2024

- **ADDED** New Toggles to display none, turn off padding/margin, and add read
  more cta hugging to allow users to chose.

## [2.6.0] - 03-08-2024

- **ADDED** - `AccountsFullView` > `Connections` tab

## [2.5.0] - 02-29-2024

- **ADDED** - `Dashboard` component

## [2.4.6] - 03-07-2024

- **FIXED** Reorganizng files to follow similar formatting. Moved hardcoded copy
  to use the copy store.

## [2.4.5] - 03-04-2024

- **FIXED** Issue where the ViewMoreCard, ZeroStateCard and
  NoRelevantInsightsCard stories needed a refresh to load properly.

## [2.4.4] - 03-04-2024

- **ADDED** - `InsightsMicroWidget` configuration to toggle micro widget header,
  icon, and carousel controls on and off.

## [2.4.3] - 03-01-2024

- **UPDATED** - `AccountsFullView` and `CashflowFullView` to use the new
  `WidgetContainer`

## [2.4.2] - 02-29-2024

- **ADDED** - Custom copy for Cashflow onboarding
- **FIXED** - Next pay date now calculates and displays correctly in Cashflow
  MiniWidget
- **CHANGED** - Summary tab in Cashflow widget shows only future expenses and
  income
- **CHANGED** - Details tab in Cashflow widget shows all expenses and income for
  selected date range
- **CHANGED** - Cashflow projected Remaining amount not turns red if the amount
  is negative
- **CHANGED** - Default dateRange for Cashflow is the current month plus the
  next month
- **CHANGED** - Use date-fns for days of the week, ordinal dates i.e. 1st

## [2.4.1] - 02-29-2024

- **FIXED** - `SpendingMiniWidget` so that it doesn't include Transfers

## [2.4.0] - 02-23-2024

- **ADDED** - `WidgetContainer` template for consistency across Dashboard
  components

## [2.3.1] - 02-26-2024

- **FIXED** - Issue with displaying incorrect category totals in Spending

## [2.3.0] - 02-20-2024

- **Added** - Insight Micro Widget Carousel Controls

## [2.2.6] - 02-20-2024

- **UPDATED** - Switched to use the `Divider` component for `ListItem` bottom
  borders

## [2.2.5] - 02-20-2024

- **FIXED** - `Cashflow` account numbers displaying `null`
- **UPDATED** - `Cashflow` Details tab now uses shared `AccountListItem`
  component for consistency

## [2.2.4] - 02-15-2024

- **ADDED** - `InsightMicroWidget` client color scheme support

## [2.2.3] - 02-20-2024

- **FIXED** - `SpendingMiniWidget` to display income subcats as positive amounts

## [2.2.2] - 02-20-2024

- **FIXED** - `SpendingMiniWidget` now displays positive income amounts
- **FIXED** - `TransactionWidget` now displays credits with a `+` and in green

## [2.2.1] - 02-20-2024

- **FIXED** - `Account` balances appearing as `undefined` or `null`

## [2.2.0] - 02-16-2024

- **ADDED** - `AccountsFullView` Accounts tab

## [2.1.1] - 02-15-2024

- **FIXED** - `CashflowMiniWidget` responsiveness

## [2.1.0] - 02-13-2024

- **ADDED** - Cashflow onboarding
- **CHANGED** - Cashflow widgets use real data and filter with the account
  filter
- **UPDATED** - @kyper/mui updated to pull in Tab styling

## [2.0.6] - 02-13-2024

- **CHANGED** - Spending wheel to exclude categories with negative amounts
- **CHANGED** - `useScreenSize` hook to return true for `isDesktop` only when
  `xl`

## [2.0.5] - 02-13-2024

- **REMOVED** - Chevron icon from `UpcomingActivityMiniWidget`

## [2.0.4] - 02-12-2024

- **CHANGED** - `GlobalStore` to make slightly more efficient calls

## [2.0.3] - 02-09-2024

- **FIXED** - `SpendingMiniWidget` no longer uses `useCategoryStore` from
  `SpendingDataProvider`
- **FIXED** - `MiniWidgetProps` type so that `onPrimaryCtaClick` is optional
-

## [2.0.2] - 02-08-2024

- **UPDATED** - Added missing variant to the View More Card
- **UPDATED** - Adjust height and width of the MicroInsightCard

## [2.0.1] - 02-08-2024

- **UPDATED** - Refactors previously missed CategoryStore to use `GlobalStore`
- **UPDATED** - `UpcomingActivity` prop names for consistency

## [2.0.0] - 02-06-2024

- **ADDED** - `GlobalStore` which includes refactors to every project

## [1.8.0] - 02-06-2024

- **ADDED** - `useScreenSize` hook that returns isDesktop, isTable and isMobile
- **CHANGED** - `CardContainer` to be `MiniWidgetContainer`
- **UPDATED** - `SpendingCard` to be `SpendingMiniWidget` and wrapped with new
  container
- **UPDATED** - `CashflowWidget` to be `CashflowMiniWidget` and wrapped with new
  container
- **UPDATED** - `ConnectAccountWidget` to be `ConnectMiniWidget` and wrapped
  with new container
- **UPDATED** - `AccountsWidget` to be `AccountsMiniWidget` and wrapped with new
  container

## [1.7.2] - 02-06-2024

- **CHANGED** - `Accounts` (connected and list) to call the `new AccountStore()`
  constructor outside of the component for consistency with other projects
- **UPDATED** - `UpcomingActivity` refinement, including viewing a day's
  expenses and removing back/next buttons on calendar

## [1.7.1] - 02-02-2024

- **UPDATED** - Material icon font to rounded variant

## [1.7.0] - 02-01-2024

- **ADDED** - `MiniWidgetContainer` common component
- **UPDATED** - `SpendingMiniWidget` to wrap it with `MiniWidgetContainer`

## [1.6.1] - 01-31-2024

- **Updated** - Adjust sizing in the `MicroBeatCarousel` and `MicroInsightCard`

## [1.6.0] - 01-31-2024

- **ADDED** - `Upcoming Activity card`

## [1.5.1] - 01-31-2024

- **FIXED** - Don't Honeybadger notify 40\* errors

## [1.5.0] - 01-31-2024

- **ADDED** - `SpendingMiniWidget` component

## [1.4.0] - 01-30-2024

- **ADDED** - `Cashflow` copy now makes calls to `localized_content` endpoint
  that uses Mrs Content
- **ADDED** - New LocalizedContentStore and types

## [1.3.0] - 01-04-2023

- **UPDATED** - `DateRangeSelector` refactor
- **UPDATED** - `AccountFilter` refactor
- **FIXED** - Amount field for manual transactions on mobile devices

## [1.2.5] - 01-23-2024

- **CHANGED** - Add error propagation functionality to the `Fetch` class

## [1.2.4] - 01-10-2024

- **CHANGED** - Add data-testid to `AccountsMiniWidget`

## [1.2.3] - 01-09-2024

- **CHANGED** - Rename `onViewDetailsClick` to `onMainCtaClick`

## [1.2.2] - 01-09-2024

- **CHANGED** - Fix wrapping `AccountsMiniWidget` with `AccountDataProvider`

## [1.2.1] - 01-04-2024

- **ADDED** - Wrap `AccountsMiniWidget` with `AccountDataProvider`

## [1.2.0] - 12-08-2023

- **ADDED** - `Cashflow` components, store and api

## [1.1.0-alpha.1] - 11-29-2023

- **ADDED** - `InsightsMicroWidget` and its stores

## [1.1.0] - 11-28-2023

- **ADDED** - `SpendingWidget` component
- **ADDED** - `SpendingDataProvider` context

## [1.0.1] - 11-14-2023

- **ADDED** - `Donut` chart component

## [1.0.1-alpha.7] - 10-24-2023

- **ADDED** - `GoalsWidget`

## [1.0.1-alpha.6] - 10-18-2023

- **FIXED** - Republish with yarn build

## [1.0.1-alpha.5] - 10-18-2023

- **ADDED** - `AccountsMiniWidget` and its components
- **ADDED** - `ConnectMiniWidget`

## [1.0.1-alpha.2] - 09-28-2023

- **ADDED** - Common `SearchBox` component
- **CHANGED** - Merchants components to use MUI
- **REMOVED** - All old `@kyper` packages

## [1.0.1-alpha.1] - 09-18-2023

- **FIXED** - Absolute imports to become relative imports

## [1.0.0-alpha.1] - 09-18-2023

- **ADDED** - Merchants
- **ADDED** - Transactions (partial)
- **ADDED** - Common `Dialog`, `Drawer`, `CurrencyInput`, `BarChart` `Calendar`
  with stories
- **ADDED** - Common utils
- **ADDED** - New Project
