@mx-cartographer/experiences 9.6.1 → 9.6.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +7 -0
- package/dist/core/types/InsightsInstanceSlotData.d.ts +0 -1
- package/dist/core/types/InsightsInstanceSlotData.es.js.map +1 -1
- package/dist/insights-v2/blocks/ComponentBlocks/AccountSwitchBlock/AccountSwitchBlock.d.ts +2 -4
- package/dist/insights-v2/blocks/ComponentBlocks/AccountSwitchBlock/AccountSwitchBlock.es.js +24 -33
- package/dist/insights-v2/blocks/ComponentBlocks/AccountSwitchBlock/AccountSwitchBlock.es.js.map +1 -1
- package/dist/insights-v2/blocks/ComponentBlocks/AccountSwitchBlock/layout.d.ts +36 -0
- package/dist/insights-v2/blocks/ComponentBlocks/AccountSwitchBlock/layout.es.js +40 -0
- package/dist/insights-v2/blocks/ComponentBlocks/AccountSwitchBlock/layout.es.js.map +1 -0
- package/dist/insights-v2/blocks/ComponentBlocks/TransactionBlock/TransactionBlock.d.ts +8 -18
- package/dist/insights-v2/blocks/ComponentBlocks/TransactionBlock/TransactionBlock.es.js +43 -42
- package/dist/insights-v2/blocks/ComponentBlocks/TransactionBlock/TransactionBlock.es.js.map +1 -1
- package/dist/insights-v2/blocks/ComponentBlocks/TransactionBlock/index.d.ts +2 -1
- package/dist/insights-v2/blocks/ComponentBlocks/TransactionBlock/layout.d.ts +30 -0
- package/dist/insights-v2/blocks/ComponentBlocks/TransactionBlock/layout.es.js +29 -0
- package/dist/insights-v2/blocks/ComponentBlocks/TransactionBlock/layout.es.js.map +1 -0
- package/dist/insights-v2/blocks/resolveVariantConfig.d.ts +10 -0
- package/dist/insights-v2/blocks/resolveVariantConfig.es.js +6 -0
- package/dist/insights-v2/blocks/resolveVariantConfig.es.js.map +1 -0
- package/dist/insights-v2/components/celebrationGradients.d.ts +19 -7
- package/dist/insights-v2/components/celebrationGradients.es.js +7 -4
- package/dist/insights-v2/components/celebrationGradients.es.js.map +1 -1
- package/dist/insights-v2/index.es.js +59 -58
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,10 @@
|
|
|
1
|
+
## [9.6.2] - 10-12-2026
|
|
2
|
+
|
|
3
|
+
- **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)
|
|
4
|
+
- **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)
|
|
5
|
+
- **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)
|
|
6
|
+
- **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)
|
|
7
|
+
|
|
1
8
|
## [9.6.1] - 10-12-2026
|
|
2
9
|
|
|
3
10
|
- **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)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InsightsInstanceSlotData.es.js","names":[],"sources":["../../../src/core/types/InsightsInstanceSlotData.ts"],"sourcesContent":["import type { DataSeries, Legends } from '../../core'\n\nexport interface InsightsInstanceSlotData\n extends\n Partial<BarChartBlockData>,\n Partial<BudgetBlockData>,\n Partial<DonutChartBlockData>,\n Partial<DoubleProgressBarBlockData>,\n Partial<ImageBlockData>,\n Partial<AccountBlockData>,\n Partial<SaveExtraBlockData>,\n Partial<StepChartBlockData>,\n Partial<SVGImageBlockData>,\n Partial<AccountSwitchBlockData>,\n Partial<TransactionDetailsBlockData>,\n Partial<CommonProps> {}\n\n//when any of the type is used more than one times, we can use the common props\ninterface CommonProps {\n amount?: number\n date?: string\n legends?: Legends[]\n category_guid?: string\n data_series?: DataSeries | DataSet[]\n transaction_guids?: string[]\n account_guids?: string[]\n primary_transaction_guid?: string\n}\n\n//BarChart Block\nexport interface BarChartBlockData {\n average_amount?: number\n ariaLabel?: string\n}\n\n//DonutChart Block\ninterface Main {\n value: string\n value_type: string\n label: string\n}\nexport interface DonutChartBlockData {\n main: Main\n}\n\n//DoubleBarChart Block\n// TODO : This has to be revisited again to update the below types based on API response once we have the final shape of the data_series for double bar chart from BE\nexport interface LegendProps extends Legends {\n amount: number\n formattedAmount: string\n label: string\n color?: string\n}\n\nexport interface DataSet extends DataSeries {\n ariaLabelComparison: string\n ariaLabelMain: string\n comparison: number\n formattedComparison: string\n formattedMain: string\n label: string\n main: number\n}\n\n//DoubleProgressBar Block\n\ninterface DoubleProgressBarProps {\n label: string\n value: number\n}\nexport interface DoubleProgressBarBlockData {\n doubleProgressBar: {\n previous: DoubleProgressBarProps\n latest: DoubleProgressBarProps\n }\n}\n\n//Image Block\nexport interface ImageBlockData {\n image: string\n}\n\n//Account Block\nexport interface AccountBlockData {\n sub_text: string\n institution_guid?: string\n institution_name?: string\n icon_name?: string\n /** Header bar text (standard card), or the colored category strip label (deposit cards). */\n header_text?: string\n // Deposit variants (Unified Deposit, Unified Deposit Emergency Fund, Savings Account Deposit)\n /** Merchant guid — renders a real merchant logo in the deposit card when present. */\n merchant_guid?: string\n /** Merchant display name — logo alt text and the payer line under the amount. */\n merchant_name?: string\n /** Secondary label beside the amount, e.g. `On {date}, you saved` or `Balance as of MM/DD/YY`. */\n label?: string\n}\n\nexport interface SaveExtraBlockData {\n /** Styled segments `[lead-in, amount digits, trailing copy]`, e.g. `['Save an extra', '100', 'to help your funds grow']`. */\n primary_text?: string[]\n /** Styled segments `[projected balance, caption]`, e.g. `['$8,313.87', 'After payday & projected expenses']`. */\n secondary_text?: string[]\n /** MakeTransfer drilldown: available balance (both variants). */\n available_balance?: number\n /** SAVE_ENOUGH_TO_LIVE_ON: average monthly spend. */\n avg_monthly_spend?: number\n /** SAVE_ENOUGH_TO_LIVE_ON: how long the balance lasts, overlaid on the timeline SVG (e.g. \"2 months, 11 days\"). */\n time_period?: string\n /** SAVE_AN_EXTRA_100: upcoming expenses (the \"Expenses\" figure). */\n upcoming_expenses?: number\n /** SAVE_AN_EXTRA_100: total remaining after expenses. */\n total_remaining?: number\n /** SAVE_ENOUGH_TO_LIVE_ON: date for the \"Your available balances as of {date}\" line. */\n date?: string\n}\n\n//AccountSwitch Block
|
|
1
|
+
{"version":3,"file":"InsightsInstanceSlotData.es.js","names":[],"sources":["../../../src/core/types/InsightsInstanceSlotData.ts"],"sourcesContent":["import type { DataSeries, Legends } from '../../core'\n\nexport interface InsightsInstanceSlotData\n extends\n Partial<BarChartBlockData>,\n Partial<BudgetBlockData>,\n Partial<DonutChartBlockData>,\n Partial<DoubleProgressBarBlockData>,\n Partial<ImageBlockData>,\n Partial<AccountBlockData>,\n Partial<SaveExtraBlockData>,\n Partial<StepChartBlockData>,\n Partial<SVGImageBlockData>,\n Partial<AccountSwitchBlockData>,\n Partial<TransactionDetailsBlockData>,\n Partial<CommonProps> {}\n\n//when any of the type is used more than one times, we can use the common props\ninterface CommonProps {\n amount?: number\n date?: string\n legends?: Legends[]\n category_guid?: string\n data_series?: DataSeries | DataSet[]\n transaction_guids?: string[]\n account_guids?: string[]\n primary_transaction_guid?: string\n}\n\n//BarChart Block\nexport interface BarChartBlockData {\n average_amount?: number\n ariaLabel?: string\n}\n\n//DonutChart Block\ninterface Main {\n value: string\n value_type: string\n label: string\n}\nexport interface DonutChartBlockData {\n main: Main\n}\n\n//DoubleBarChart Block\n// TODO : This has to be revisited again to update the below types based on API response once we have the final shape of the data_series for double bar chart from BE\nexport interface LegendProps extends Legends {\n amount: number\n formattedAmount: string\n label: string\n color?: string\n}\n\nexport interface DataSet extends DataSeries {\n ariaLabelComparison: string\n ariaLabelMain: string\n comparison: number\n formattedComparison: string\n formattedMain: string\n label: string\n main: number\n}\n\n//DoubleProgressBar Block\n\ninterface DoubleProgressBarProps {\n label: string\n value: number\n}\nexport interface DoubleProgressBarBlockData {\n doubleProgressBar: {\n previous: DoubleProgressBarProps\n latest: DoubleProgressBarProps\n }\n}\n\n//Image Block\nexport interface ImageBlockData {\n image: string\n}\n\n//Account Block\nexport interface AccountBlockData {\n sub_text: string\n institution_guid?: string\n institution_name?: string\n icon_name?: string\n /** Header bar text (standard card), or the colored category strip label (deposit cards). */\n header_text?: string\n // Deposit variants (Unified Deposit, Unified Deposit Emergency Fund, Savings Account Deposit)\n /** Merchant guid — renders a real merchant logo in the deposit card when present. */\n merchant_guid?: string\n /** Merchant display name — logo alt text and the payer line under the amount. */\n merchant_name?: string\n /** Secondary label beside the amount, e.g. `On {date}, you saved` or `Balance as of MM/DD/YY`. */\n label?: string\n}\n\nexport interface SaveExtraBlockData {\n /** Styled segments `[lead-in, amount digits, trailing copy]`, e.g. `['Save an extra', '100', 'to help your funds grow']`. */\n primary_text?: string[]\n /** Styled segments `[projected balance, caption]`, e.g. `['$8,313.87', 'After payday & projected expenses']`. */\n secondary_text?: string[]\n /** MakeTransfer drilldown: available balance (both variants). */\n available_balance?: number\n /** SAVE_ENOUGH_TO_LIVE_ON: average monthly spend. */\n avg_monthly_spend?: number\n /** SAVE_ENOUGH_TO_LIVE_ON: how long the balance lasts, overlaid on the timeline SVG (e.g. \"2 months, 11 days\"). */\n time_period?: string\n /** SAVE_AN_EXTRA_100: upcoming expenses (the \"Expenses\" figure). */\n upcoming_expenses?: number\n /** SAVE_AN_EXTRA_100: total remaining after expenses. */\n total_remaining?: number\n /** SAVE_ENOUGH_TO_LIVE_ON: date for the \"Your available balances as of {date}\" line. */\n date?: string\n}\n\n// AccountSwitch Block. State comes from `instance_slot.variant`, not a data flag.\nexport interface AccountSwitchBlockData {\n discovered_institution_guid: string\n discovered_institution_name: string\n held_institution_guid: string\n held_institution_name: string\n}\n\n// StepChart Block\nexport interface StepChartBlockData {\n completed_steps: number\n label_1: string\n label_2?: string\n}\n\n//Budgets Blocks\nexport enum BudgetTierType {\n LOW_BUDGET_TIER = 'LOW',\n MEDIUM_BUDGET_TIER = 'MEDIUM',\n OFF_TRACK_BUDGET_TIER = 'OFF_TRACK',\n}\n\nexport type BudgetTierValue = `${BudgetTierType}`\n\nexport interface BudgetLocalizedPayload {\n primary_text?: string\n amount_left_label?: string\n spent_label?: string\n budgeted_label?: string\n}\n\nexport interface BudgetBlockData {\n budget_percent: number\n budget_tier: BudgetTierValue\n category_guid?: string\n merchant_guid?: string\n spent_amount: number\n budgeted_amount: number\n localized_payload: BudgetLocalizedPayload\n}\n\nexport interface SVGImageBlockData {\n isCIBC?: boolean\n}\n\n// TransactionDetails Action Block\n// The drawer's subject is `InsightsPayload.primary_transaction_guid`; only action configuration\n// lives here.\nexport interface TransactionDetailsBlockData {\n /** `TopActions` member names, e.g. `['Category', 'Date', 'Memo']`. Omit for the defaults. */\n top_actions?: string[]\n /** `BottomActions` member names, e.g. `['MerchantBudget', 'HideTransaction']`. Omit for defaults. */\n bottom_actions?: string[]\n}\n"],"mappings":"AAsIA,IAAY,IAAL,0BAAA,GAAA;AACL,SAAA,EAAA,kBAAA,OACA,EAAA,qBAAA,UACA,EAAA,wBAAA;AACF,GAAA,CAAA,CAAA"}
|
|
@@ -1,10 +1,8 @@
|
|
|
1
1
|
import { AccountSwitchBlockData } from '../../../../core/types/InsightsInstanceSlotData';
|
|
2
2
|
import { BlockProps } from '../../types';
|
|
3
3
|
/**
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
* slot; the connected state (`is_connected: true`) switches to a success badge
|
|
7
|
-
* with the discovered-accounts gradient and a confetti wash.
|
|
4
|
+
* Two institution logos on a transfer track, shared by Discovered Accounts and Switch
|
|
5
|
+
* Direct Deposit. `instance_slot.variant` picks the design branch from `./layout.ts`.
|
|
8
6
|
*/
|
|
9
7
|
declare const AccountSwitchBlock: ({ payload }: BlockProps<AccountSwitchBlockData>) => import("react/jsx-runtime").JSX.Element;
|
|
10
8
|
export default AccountSwitchBlock;
|
|
@@ -1,43 +1,34 @@
|
|
|
1
|
-
import "../../../components/
|
|
2
|
-
import
|
|
1
|
+
import _ from "../../../components/TransferLogoCard.es.js";
|
|
2
|
+
import { resolveVariantConfig as l } from "../../resolveVariantConfig.es.js";
|
|
3
|
+
import { accountSwitchVariant as g, getLayoutConfig as h } from "./layout.es.js";
|
|
3
4
|
import { InstitutionLogo as i } from "@mxenabled/mxui";
|
|
4
|
-
import { Icon as
|
|
5
|
-
import { jsx as
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
"aria-hidden": !0,
|
|
13
|
-
name: "check_circle",
|
|
14
|
-
size: 20,
|
|
15
|
-
sx: { color: "common.white" }
|
|
16
|
-
}), x = ({ payload: n }) => {
|
|
17
|
-
const { discovered_institution_guid: a, discovered_institution_name: s, held_institution_guid: c, held_institution_name: d, is_connected: t } = n.instance_slot_data;
|
|
18
|
-
return /* @__PURE__ */ o(u, {
|
|
19
|
-
badgeBgColor: t ? "success.main" : "text.secondary",
|
|
20
|
-
dotColor: "text.secondary",
|
|
21
|
-
from: /* @__PURE__ */ o(i, {
|
|
5
|
+
import { Icon as p } from "@mxenabled/mx-icons";
|
|
6
|
+
import { jsx as t } from "react/jsx-runtime";
|
|
7
|
+
import { useTheme as v } from "@mui/material/styles";
|
|
8
|
+
var n = 64, A = ({ payload: o }) => {
|
|
9
|
+
const r = v(), { variant: e } = o.instance_slot, { discovered_institution_guid: c, discovered_institution_name: s, held_institution_guid: a, held_institution_name: m } = o.instance_slot_data, { badgeIcon: u, badgeIconColor: d, ...f } = l(h(r), e, g.AccountConnect, "AccountSwitchBlock");
|
|
10
|
+
return /* @__PURE__ */ t(_, {
|
|
11
|
+
...f,
|
|
12
|
+
from: /* @__PURE__ */ t(i, {
|
|
22
13
|
alt: s,
|
|
23
|
-
institutionGuid: a,
|
|
24
|
-
size: r
|
|
25
|
-
}),
|
|
26
|
-
icon: t ? g : m,
|
|
27
|
-
to: /* @__PURE__ */ o(i, {
|
|
28
|
-
alt: d,
|
|
29
14
|
institutionGuid: c,
|
|
30
|
-
size:
|
|
15
|
+
size: n
|
|
31
16
|
}),
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
17
|
+
icon: /* @__PURE__ */ t(p, {
|
|
18
|
+
"aria-hidden": !0,
|
|
19
|
+
name: u,
|
|
20
|
+
size: 20,
|
|
21
|
+
sx: { color: d }
|
|
22
|
+
}),
|
|
23
|
+
to: /* @__PURE__ */ t(i, {
|
|
24
|
+
alt: m,
|
|
25
|
+
institutionGuid: a,
|
|
26
|
+
size: n
|
|
27
|
+
})
|
|
37
28
|
});
|
|
38
29
|
};
|
|
39
30
|
export {
|
|
40
|
-
|
|
31
|
+
A as default
|
|
41
32
|
};
|
|
42
33
|
|
|
43
34
|
//# sourceMappingURL=AccountSwitchBlock.es.js.map
|
package/dist/insights-v2/blocks/ComponentBlocks/AccountSwitchBlock/AccountSwitchBlock.es.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AccountSwitchBlock.es.js","names":[],"sources":["../../../../../src/insights-v2/blocks/ComponentBlocks/AccountSwitchBlock/AccountSwitchBlock.tsx"],"sourcesContent":["import { InstitutionLogo } from '@mxenabled/mxui'\nimport { Icon } from '@mxenabled/mx-icons'\n\nimport type { AccountSwitchBlockData } from '../../../../core/types/InsightsInstanceSlotData'\n\nimport TransferLogoCard from '../../../components/TransferLogoCard'\nimport {
|
|
1
|
+
{"version":3,"file":"AccountSwitchBlock.es.js","names":[],"sources":["../../../../../src/insights-v2/blocks/ComponentBlocks/AccountSwitchBlock/AccountSwitchBlock.tsx"],"sourcesContent":["import { useTheme } from '@mui/material/styles'\nimport { InstitutionLogo } from '@mxenabled/mxui'\nimport { Icon } from '@mxenabled/mx-icons'\n\nimport type { AccountSwitchBlockData } from '../../../../core/types/InsightsInstanceSlotData'\n\nimport TransferLogoCard from '../../../components/TransferLogoCard'\n\nimport type { BlockProps } from '../../types'\nimport { resolveVariantConfig } from '../../resolveVariantConfig'\nimport { accountSwitchVariant, getLayoutConfig } from './layout'\n\nconst LOGO_SIZE = 64\n\n/**\n * Two institution logos on a transfer track, shared by Discovered Accounts and Switch\n * Direct Deposit. `instance_slot.variant` picks the design branch from `./layout.ts`.\n */\nconst AccountSwitchBlock = ({ payload }: BlockProps<AccountSwitchBlockData>) => {\n const theme = useTheme()\n const { variant } = payload.instance_slot\n const {\n discovered_institution_guid,\n discovered_institution_name,\n held_institution_guid,\n held_institution_name,\n } = payload.instance_slot_data\n\n // Pending connect is the safe default: it promises nothing (no success badge, no confetti).\n const { badgeIcon, badgeIconColor, ...cardProps } = resolveVariantConfig(\n getLayoutConfig(theme),\n variant,\n accountSwitchVariant.AccountConnect,\n 'AccountSwitchBlock',\n )\n\n return (\n <TransferLogoCard\n {...cardProps}\n from={\n <InstitutionLogo\n alt={discovered_institution_name}\n institutionGuid={discovered_institution_guid}\n size={LOGO_SIZE}\n />\n }\n icon={<Icon aria-hidden={true} name={badgeIcon} size={20} sx={{ color: badgeIconColor }} />}\n to={\n <InstitutionLogo\n alt={held_institution_name}\n institutionGuid={held_institution_guid}\n size={LOGO_SIZE}\n />\n }\n />\n )\n}\n\nexport default AccountSwitchBlock\n"],"mappings":";;;;;;;AAYA,IAAM,IAAY,IAMZ,IAAA,CAAsB,EAAE,SAAA,EAAA,MAAkD;AAC9E,QAAM,IAAQ,EAAS,GACjB,EAAE,SAAA,EAAA,IAAY,EAAQ,eACtB,EACJ,6BAAA,GACA,6BAAA,GACA,uBAAA,GACA,uBAAA,EAAA,IACE,EAAQ,oBAGN,EAAE,WAAA,GAAW,gBAAA,GAAgB,GAAG,EAAA,IAAc,EAClD,EAAgB,CAAK,GACrB,GACA,EAAqB,gBACrB,oBACF;AAEA,SACE,gBAAA,EAAC,GAAD;AAAA,IACE,GAAI;AAAA,IACJ,MACE,gBAAA,EAAC,GAAD;AAAA,MACE,KAAK;AAAA,MACL,iBAAiB;AAAA,MACjB,MAAM;AAAA,IACP,CAAA;AAAA,IAEH,MAAM,gBAAA,EAAC,GAAD;AAAA,MAAM,eAAa;AAAA,MAAM,MAAM;AAAA,MAAW,MAAM;AAAA,MAAI,IAAI,EAAE,OAAO,EAAe;AAAA,IAAI,CAAA;AAAA,IAC1F,IACE,gBAAA,EAAC,GAAD;AAAA,MACE,KAAK;AAAA,MACL,iBAAiB;AAAA,MACjB,MAAM;AAAA,IACP,CAAA;AAAA,EAEJ,CAAA;AAEL"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { Theme } from '@mui/material/styles';
|
|
2
|
+
/**
|
|
3
|
+
* Account Switch block variants, keyed by the backend `instance_slot.variant`. All share
|
|
4
|
+
* `TransferLogoCard`; only the slot surface, center badge and connector dots differ.
|
|
5
|
+
*
|
|
6
|
+
* - `AccountConnect` — Discovered Accounts pending: blue gradient, link badge.
|
|
7
|
+
* - `AccountConnected` — Discovered Accounts success: pink wash, confetti, check badge.
|
|
8
|
+
* - `SwitchDirectDeposit` — Switch Direct Deposit pending: flat tinted slot, arrow badge.
|
|
9
|
+
* Its complete state is a different layout, served by `direct_deposit_block`.
|
|
10
|
+
*/
|
|
11
|
+
export declare const accountSwitchVariant: {
|
|
12
|
+
readonly AccountConnect: "account_connect";
|
|
13
|
+
readonly AccountConnected: "account_connected";
|
|
14
|
+
readonly SwitchDirectDeposit: "switch_direct_deposit";
|
|
15
|
+
};
|
|
16
|
+
export type AccountSwitchVariant = (typeof accountSwitchVariant)[keyof typeof accountSwitchVariant];
|
|
17
|
+
export interface AccountSwitchLayoutConfig {
|
|
18
|
+
/** Slot surface color token. */
|
|
19
|
+
bgcolor: string;
|
|
20
|
+
/** Optional gradient layered over `bgcolor`. */
|
|
21
|
+
backgroundImage?: string;
|
|
22
|
+
/** Center badge background color token. */
|
|
23
|
+
badgeBgColor: string;
|
|
24
|
+
/** mx-icons glyph rendered in the center badge. */
|
|
25
|
+
badgeIcon: string;
|
|
26
|
+
/** Color token for the badge glyph. */
|
|
27
|
+
badgeIconColor: string;
|
|
28
|
+
/** Connector-dot color token. */
|
|
29
|
+
dotColor: string;
|
|
30
|
+
/** Enlarge the inner connector dots (6px vs 4px). */
|
|
31
|
+
hasBigDots: boolean;
|
|
32
|
+
/** Confetti burst filling the slot (success states). */
|
|
33
|
+
showConfetti?: boolean;
|
|
34
|
+
}
|
|
35
|
+
/** Per-variant `TransferLogoCard` props (mirrors DirectDepositBlock's `getLayoutConfig`). */
|
|
36
|
+
export declare const getLayoutConfig: (theme: Theme) => Record<AccountSwitchVariant, AccountSwitchLayoutConfig>;
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { ACCOUNT_CONNECTED_GRADIENT as r, getPrimaryWashGradient as e } from "../../../components/celebrationGradients.es.js";
|
|
2
|
+
var o = {
|
|
3
|
+
AccountConnect: "account_connect",
|
|
4
|
+
AccountConnected: "account_connected",
|
|
5
|
+
SwitchDirectDeposit: "switch_direct_deposit"
|
|
6
|
+
}, a = (t) => ({
|
|
7
|
+
[o.AccountConnect]: {
|
|
8
|
+
backgroundImage: e(t),
|
|
9
|
+
bgcolor: "background.paper",
|
|
10
|
+
badgeBgColor: "text.secondary",
|
|
11
|
+
badgeIcon: "link",
|
|
12
|
+
badgeIconColor: "primary.contrastText",
|
|
13
|
+
dotColor: "text.secondary",
|
|
14
|
+
hasBigDots: !0
|
|
15
|
+
},
|
|
16
|
+
[o.AccountConnected]: {
|
|
17
|
+
backgroundImage: r,
|
|
18
|
+
bgcolor: "background.paper",
|
|
19
|
+
badgeBgColor: "success.main",
|
|
20
|
+
badgeIcon: "check",
|
|
21
|
+
badgeIconColor: "common.white",
|
|
22
|
+
dotColor: "text.secondary",
|
|
23
|
+
hasBigDots: !0,
|
|
24
|
+
showConfetti: !0
|
|
25
|
+
},
|
|
26
|
+
[o.SwitchDirectDeposit]: {
|
|
27
|
+
bgcolor: "primary.lighter",
|
|
28
|
+
badgeBgColor: "neutral.darker",
|
|
29
|
+
badgeIcon: "arrow_forward",
|
|
30
|
+
badgeIconColor: "neutral.lighter",
|
|
31
|
+
dotColor: "neutral.darker",
|
|
32
|
+
hasBigDots: !1
|
|
33
|
+
}
|
|
34
|
+
});
|
|
35
|
+
export {
|
|
36
|
+
o as accountSwitchVariant,
|
|
37
|
+
a as getLayoutConfig
|
|
38
|
+
};
|
|
39
|
+
|
|
40
|
+
//# sourceMappingURL=layout.es.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"layout.es.js","names":[],"sources":["../../../../../src/insights-v2/blocks/ComponentBlocks/AccountSwitchBlock/layout.ts"],"sourcesContent":["import type { Theme } from '@mui/material/styles'\n\nimport {\n ACCOUNT_CONNECTED_GRADIENT,\n getPrimaryWashGradient,\n} from '../../../components/celebrationGradients'\n\n/**\n * Account Switch block variants, keyed by the backend `instance_slot.variant`. All share\n * `TransferLogoCard`; only the slot surface, center badge and connector dots differ.\n *\n * - `AccountConnect` — Discovered Accounts pending: blue gradient, link badge.\n * - `AccountConnected` — Discovered Accounts success: pink wash, confetti, check badge.\n * - `SwitchDirectDeposit` — Switch Direct Deposit pending: flat tinted slot, arrow badge.\n * Its complete state is a different layout, served by `direct_deposit_block`.\n */\nexport const accountSwitchVariant = {\n AccountConnect: 'account_connect',\n AccountConnected: 'account_connected',\n SwitchDirectDeposit: 'switch_direct_deposit',\n} as const\n\nexport type AccountSwitchVariant = (typeof accountSwitchVariant)[keyof typeof accountSwitchVariant]\n\nexport interface AccountSwitchLayoutConfig {\n /** Slot surface color token. */\n bgcolor: string\n /** Optional gradient layered over `bgcolor`. */\n backgroundImage?: string\n /** Center badge background color token. */\n badgeBgColor: string\n /** mx-icons glyph rendered in the center badge. */\n badgeIcon: string\n /** Color token for the badge glyph. */\n badgeIconColor: string\n /** Connector-dot color token. */\n dotColor: string\n /** Enlarge the inner connector dots (6px vs 4px). */\n hasBigDots: boolean\n /** Confetti burst filling the slot (success states). */\n showConfetti?: boolean\n}\n\n/** Per-variant `TransferLogoCard` props (mirrors DirectDepositBlock's `getLayoutConfig`). */\nexport const getLayoutConfig = (\n theme: Theme,\n): Record<AccountSwitchVariant, AccountSwitchLayoutConfig> => {\n return {\n [accountSwitchVariant.AccountConnect]: {\n backgroundImage: getPrimaryWashGradient(theme),\n bgcolor: 'background.paper',\n badgeBgColor: 'text.secondary',\n badgeIcon: 'link',\n badgeIconColor: 'primary.contrastText',\n dotColor: 'text.secondary',\n hasBigDots: true,\n },\n [accountSwitchVariant.AccountConnected]: {\n backgroundImage: ACCOUNT_CONNECTED_GRADIENT,\n bgcolor: 'background.paper',\n badgeBgColor: 'success.main',\n // Figma \"Common/Check\": a bare check on the solid success badge (not `check_circle`).\n badgeIcon: 'check',\n badgeIconColor: 'common.white',\n dotColor: 'text.secondary',\n hasBigDots: true,\n showConfetti: true,\n },\n [accountSwitchVariant.SwitchDirectDeposit]: {\n bgcolor: 'primary.lighter',\n badgeBgColor: 'neutral.darker',\n badgeIcon: 'arrow_forward',\n badgeIconColor: 'neutral.lighter',\n dotColor: 'neutral.darker',\n hasBigDots: false,\n },\n }\n}\n"],"mappings":";AAgBA,IAAa,IAAuB;AAAA,EAClC,gBAAgB;AAAA,EAChB,kBAAkB;AAAA,EAClB,qBAAqB;AACvB,GAwBa,IAAA,CACX,OAEO;AAAA,EACJ,CAAA,EAAqB,cAAA,GAAiB;AAAA,IACrC,iBAAiB,EAAuB,CAAK;AAAA,IAC7C,SAAS;AAAA,IACT,cAAc;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,UAAU;AAAA,IACV,YAAY;AAAA,EACd;AAAA,EACC,CAAA,EAAqB,gBAAA,GAAmB;AAAA,IACvC,iBAAiB;AAAA,IACjB,SAAS;AAAA,IACT,cAAc;AAAA,IAEd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,UAAU;AAAA,IACV,YAAY;AAAA,IACZ,cAAc;AAAA,EAChB;AAAA,EACC,CAAA,EAAqB,mBAAA,GAAsB;AAAA,IAC1C,SAAS;AAAA,IACT,cAAc;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,UAAU;AAAA,IACV,YAAY;AAAA,EACd;AACF"}
|
|
@@ -4,28 +4,18 @@ interface TransactionBlockProps {
|
|
|
4
4
|
beatGuid?: string;
|
|
5
5
|
}
|
|
6
6
|
/**
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
|
|
11
|
-
export declare const TransactionBlockVariant: {
|
|
12
|
-
readonly WithHeader: "with_header";
|
|
13
|
-
readonly NoHeader: "no_header";
|
|
14
|
-
};
|
|
15
|
-
/**
|
|
16
|
-
* The `transaction_block` (ditto `blocks.name` for LargeTransactionV2).
|
|
17
|
-
*
|
|
18
|
-
* Renders rows the backend already localized and carried inline on `instance_slot.data.series`
|
|
19
|
-
* (`logo`, `primary_text`, `secondary_text`, `amount`). Only the amount is formatted here,
|
|
20
|
-
* because the contract sends it as a number.
|
|
7
|
+
* The `transaction_block`: rows the backend already localized, carried inline on
|
|
8
|
+
* `instance_slot.data.series` (`logo`, `primary_text`, `secondary_text`, `amount`). Only the
|
|
9
|
+
* amount is formatted here, because the contract sends it as a number. `instance_slot.variant`
|
|
10
|
+
* picks the header and slot treatment from `./layout.ts`.
|
|
21
11
|
*
|
|
22
12
|
* This is the full/mini shape. The reduced widgets (micro, embedded) resolve to the row logo
|
|
23
13
|
* alone, carried flat on `data.logo` with no `series`, and are drawn by `CompactInsightCard`.
|
|
24
14
|
*
|
|
25
|
-
*
|
|
26
|
-
*
|
|
27
|
-
* card a row's `secondary_text` is the category, so reading it here
|
|
28
|
-
* and dropped the date entirely.
|
|
15
|
+
* A header, when the variant shows one, comes from `instance_slot.data.header_text` (the
|
|
16
|
+
* transaction date, or "{count} transactions"). It deliberately does *not* come from the first
|
|
17
|
+
* row: on a `with_merchant` card a row's `secondary_text` is the category, so reading it here
|
|
18
|
+
* rendered the category twice and dropped the date entirely.
|
|
29
19
|
*/
|
|
30
20
|
export declare const TransactionBlock: (({ payload }: TransactionBlockProps) => import("react/jsx-runtime").JSX.Element | null) & {
|
|
31
21
|
displayName: string;
|
|
@@ -1,73 +1,74 @@
|
|
|
1
|
-
import { useCategoryStore as
|
|
1
|
+
import { useCategoryStore as p } from "../../../../common/context/hooks.es.js";
|
|
2
2
|
import { slot as c } from "../../../../core/types/Insights.es.js";
|
|
3
|
-
import { formatCurrency as
|
|
4
|
-
import { logoFromRef as
|
|
5
|
-
import
|
|
6
|
-
import
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
const t =
|
|
3
|
+
import { formatCurrency as _ } from "../../../../core/utils/NumberFormatting.es.js";
|
|
4
|
+
import { logoFromRef as y } from "../../../components/shared/EntityLogo.es.js";
|
|
5
|
+
import { resolveVariantConfig as h } from "../../resolveVariantConfig.es.js";
|
|
6
|
+
import x from "../../../components/TransactionListCard.es.js";
|
|
7
|
+
import { getLayoutConfig as v, transactionBlockVariant as C } from "./layout.es.js";
|
|
8
|
+
import { observer as I } from "mobx-react-lite";
|
|
9
|
+
import { CategoryIcon as G, InstitutionLogo as L, MerchantLogo as O } from "@mxenabled/mxui";
|
|
10
|
+
import { Icon as T } from "@mxenabled/mx-icons";
|
|
11
|
+
import { jsx as o } from "react/jsx-runtime";
|
|
12
|
+
import { useTheme as b } from "@mui/material/styles";
|
|
13
|
+
import u from "@mui/material/Box";
|
|
14
|
+
var r = 32, k = Math.round(r * 0.625), z = (n, a) => {
|
|
15
|
+
const t = y(n.logo, n.primary_text);
|
|
16
16
|
if (t) {
|
|
17
|
-
if (t.logo_name) return /* @__PURE__ */
|
|
17
|
+
if (t.logo_name) return /* @__PURE__ */ o(u, {
|
|
18
18
|
sx: {
|
|
19
19
|
alignItems: "center",
|
|
20
20
|
display: "flex",
|
|
21
|
-
height:
|
|
21
|
+
height: r,
|
|
22
22
|
justifyContent: "center",
|
|
23
|
-
width:
|
|
23
|
+
width: r
|
|
24
24
|
},
|
|
25
|
-
children: /* @__PURE__ */
|
|
25
|
+
children: /* @__PURE__ */ o(T, {
|
|
26
26
|
name: t.logo_name,
|
|
27
|
-
size:
|
|
27
|
+
size: k,
|
|
28
28
|
sx: { color: t.logo_color }
|
|
29
29
|
})
|
|
30
30
|
});
|
|
31
|
-
if (t.merchant_guid) return /* @__PURE__ */
|
|
31
|
+
if (t.merchant_guid) return /* @__PURE__ */ o(O, {
|
|
32
32
|
alt: t.merchant_name ?? "",
|
|
33
|
-
categoryGuid: t.category_guid ?
|
|
33
|
+
categoryGuid: t.category_guid ? a(t.category_guid) : "",
|
|
34
34
|
merchantGuid: t.merchant_guid,
|
|
35
|
-
size:
|
|
35
|
+
size: r
|
|
36
36
|
});
|
|
37
|
-
if (t.institution_guid) return /* @__PURE__ */
|
|
37
|
+
if (t.institution_guid) return /* @__PURE__ */ o(L, {
|
|
38
38
|
alt: t.institution_name ?? "",
|
|
39
39
|
institutionGuid: t.institution_guid,
|
|
40
|
-
size:
|
|
40
|
+
size: r
|
|
41
41
|
});
|
|
42
42
|
if (t.category_guid) {
|
|
43
|
-
const
|
|
44
|
-
return /* @__PURE__ */
|
|
45
|
-
"data-testid": `category-icon-${
|
|
43
|
+
const e = a(t.category_guid);
|
|
44
|
+
return /* @__PURE__ */ o(u, {
|
|
45
|
+
"data-testid": `category-icon-${e}`,
|
|
46
46
|
sx: { display: "flex" },
|
|
47
|
-
children: /* @__PURE__ */
|
|
48
|
-
categoryGuid:
|
|
49
|
-
size:
|
|
47
|
+
children: /* @__PURE__ */ o(G, {
|
|
48
|
+
categoryGuid: e,
|
|
49
|
+
size: r
|
|
50
50
|
})
|
|
51
51
|
});
|
|
52
52
|
}
|
|
53
53
|
}
|
|
54
|
-
},
|
|
55
|
-
const { getTopLevelCategoryGuid:
|
|
54
|
+
}, F = I(({ payload: n }) => {
|
|
55
|
+
const a = b(), { getTopLevelCategoryGuid: t } = p(), { data: e, variant: d } = n.instance_slot, s = c(e, "series"), m = c(e, "header_text");
|
|
56
56
|
if (!Array.isArray(s) || !s.length) return null;
|
|
57
|
-
const
|
|
58
|
-
return /* @__PURE__ */
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
57
|
+
const { background: g, cardVariant: l, showHeader: f } = h(v(a), d, C.NoHeader, "TransactionBlock");
|
|
58
|
+
return /* @__PURE__ */ o(x, {
|
|
59
|
+
background: g,
|
|
60
|
+
header: f && typeof m == "string" ? m : void 0,
|
|
61
|
+
variant: l,
|
|
62
|
+
rows: s.map((i) => ({
|
|
63
|
+
amount: typeof i.amount == "number" ? _(i.amount, "0,0.00") : "",
|
|
64
|
+
leading: z(i, t),
|
|
65
|
+
subtitle: i.secondary_text ?? "",
|
|
66
|
+
title: i.primary_text ?? ""
|
|
65
67
|
}))
|
|
66
68
|
});
|
|
67
69
|
});
|
|
68
70
|
export {
|
|
69
|
-
|
|
70
|
-
I as TransactionBlockVariant
|
|
71
|
+
F as TransactionBlock
|
|
71
72
|
};
|
|
72
73
|
|
|
73
74
|
//# sourceMappingURL=TransactionBlock.es.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TransactionBlock.es.js","names":[],"sources":["../../../../../src/insights-v2/blocks/ComponentBlocks/TransactionBlock/TransactionBlock.tsx"],"sourcesContent":["import { observer } from 'mobx-react-lite'\n\nimport Box from '@mui/material/Box'\n\nimport { CategoryIcon, InstitutionLogo, MerchantLogo } from '@mxenabled/mxui'\nimport { Icon } from '@mxenabled/mx-icons'\n\nimport { useCategoryStore } from '../../../../common'\nimport { slot } from '../../../../core'\nimport type { InsightsPayload, InstanceSlotRow } from '../../../../core'\nimport { formatCurrency } from '../../../../core/utils/NumberFormatting'\n\nimport TransactionListCard from '../../../components/TransactionListCard'\nimport { logoFromRef } from '../../../components/shared/EntityLogo'\n\
|
|
1
|
+
{"version":3,"file":"TransactionBlock.es.js","names":[],"sources":["../../../../../src/insights-v2/blocks/ComponentBlocks/TransactionBlock/TransactionBlock.tsx"],"sourcesContent":["import { observer } from 'mobx-react-lite'\n\nimport Box from '@mui/material/Box'\nimport { useTheme } from '@mui/material/styles'\n\nimport { CategoryIcon, InstitutionLogo, MerchantLogo } from '@mxenabled/mxui'\nimport { Icon } from '@mxenabled/mx-icons'\n\nimport { useCategoryStore } from '../../../../common'\nimport { slot } from '../../../../core'\nimport type { InsightsPayload, InstanceSlotRow } from '../../../../core'\nimport { formatCurrency } from '../../../../core/utils/NumberFormatting'\n\nimport TransactionListCard from '../../../components/TransactionListCard'\nimport { logoFromRef } from '../../../components/shared/EntityLogo'\n\nimport { resolveVariantConfig } from '../../resolveVariantConfig'\nimport { getLayoutConfig, transactionBlockVariant } from './layout'\n\ninterface TransactionBlockProps {\n payload: InsightsPayload\n beatGuid?: string\n}\n\nconst ROW_LOGO_SIZE = 32\n// Same glyph-to-tile ratio mxui's `CategoryIcon` uses, so a status icon sits like the other logos.\nconst ROW_ICON_SIZE = Math.round(ROW_LOGO_SIZE * 0.625)\n\n/**\n * Renders the row's leading logo from its `LogoRef`: a status icon, or an entity guid whose prefix\n * names the entity. An unrecognized prefix renders no logo rather than guessing.\n *\n * `resolveTopLevelCategory`: mxui's `CategoryIcon` only knows the top-level category guids and\n * silently falls back to the Uncategorized icon for a sub-category. The details drawer avoids\n * this by passing `transaction.top_level_category_guid`; the row only has the raw guid, so it is\n * walked up to its parent here (identity until categories load). That applies both to a `CAT-`\n * row logo and to a merchant's `fallback_guid`, which `MerchantLogo` draws through the same\n * `CategoryIcon` when the merchant image fails to load.\n */\nconst renderRowLogo = (row: InstanceSlotRow, resolveTopLevelCategory: (guid: string) => string) => {\n const logo = logoFromRef(row.logo, row.primary_text)\n\n if (!logo) return undefined\n\n if (logo.logo_name) {\n // A fixed box the size of the other logos keeps the row's text column aligned.\n return (\n <Box\n sx={{\n alignItems: 'center',\n display: 'flex',\n height: ROW_LOGO_SIZE,\n justifyContent: 'center',\n width: ROW_LOGO_SIZE,\n }}\n >\n <Icon name={logo.logo_name} size={ROW_ICON_SIZE} sx={{ color: logo.logo_color }} />\n </Box>\n )\n }\n\n if (logo.merchant_guid) {\n return (\n <MerchantLogo\n alt={logo.merchant_name ?? ''}\n categoryGuid={logo.category_guid ? resolveTopLevelCategory(logo.category_guid) : ''}\n merchantGuid={logo.merchant_guid}\n size={ROW_LOGO_SIZE}\n />\n )\n }\n\n if (logo.institution_guid) {\n return (\n <InstitutionLogo\n alt={logo.institution_name ?? ''}\n institutionGuid={logo.institution_guid}\n size={ROW_LOGO_SIZE}\n />\n )\n }\n\n if (logo.category_guid) {\n const topLevelGuid = resolveTopLevelCategory(logo.category_guid)\n return (\n <Box data-testid={`category-icon-${topLevelGuid}`} sx={{ display: 'flex' }}>\n <CategoryIcon categoryGuid={topLevelGuid} size={ROW_LOGO_SIZE} />\n </Box>\n )\n }\n\n return undefined\n}\n\n/**\n * The `transaction_block`: rows the backend already localized, carried inline on\n * `instance_slot.data.series` (`logo`, `primary_text`, `secondary_text`, `amount`). Only the\n * amount is formatted here, because the contract sends it as a number. `instance_slot.variant`\n * picks the header and slot treatment from `./layout.ts`.\n *\n * This is the full/mini shape. The reduced widgets (micro, embedded) resolve to the row logo\n * alone, carried flat on `data.logo` with no `series`, and are drawn by `CompactInsightCard`.\n *\n * A header, when the variant shows one, comes from `instance_slot.data.header_text` (the\n * transaction date, or \"{count} transactions\"). It deliberately does *not* come from the first\n * row: on a `with_merchant` card a row's `secondary_text` is the category, so reading it here\n * rendered the category twice and dropped the date entirely.\n */\nexport const TransactionBlock = observer(({ payload }: TransactionBlockProps) => {\n const theme = useTheme()\n const { getTopLevelCategoryGuid } = useCategoryStore()\n const { data, variant } = payload.instance_slot\n const series = slot<InstanceSlotRow[]>(data, 'series')\n const headerText = slot<string>(data, 'header_text')\n\n if (!Array.isArray(series) || !series.length) return null\n\n // The plain row is the safe default: it adds nothing a wrong variant could misstate.\n const { background, cardVariant, showHeader } = resolveVariantConfig(\n getLayoutConfig(theme),\n variant,\n transactionBlockVariant.NoHeader,\n 'TransactionBlock',\n )\n const header = showHeader && typeof headerText === 'string' ? headerText : undefined\n\n return (\n <TransactionListCard\n background={background}\n header={header}\n variant={cardVariant}\n rows={series.map((row) => ({\n amount: typeof row.amount === 'number' ? formatCurrency(row.amount, '0,0.00') : '',\n leading: renderRowLogo(row, getTopLevelCategoryGuid),\n subtitle: row.secondary_text ?? '',\n title: row.primary_text ?? '',\n }))}\n />\n )\n})\n"],"mappings":";;;;;;;;;;;;;AAwBA,IAAM,IAAgB,IAEhB,IAAgB,KAAK,MAAM,IAAgB,KAAK,GAahD,IAAA,CAAiB,GAAsB,MAAsD;AACjG,QAAM,IAAO,EAAY,EAAI,MAAM,EAAI,YAAY;AAEnD,MAAK,GAEL;AAAA,QAAI,EAAK,UAEP,QACE,gBAAA,EAAC,GAAD;AAAA,MACE,IAAI;AAAA,QACF,YAAY;AAAA,QACZ,SAAS;AAAA,QACT,QAAQ;AAAA,QACR,gBAAgB;AAAA,QAChB,OAAO;AAAA,MACT;AAAA,MAEA,UAAA,gBAAA,EAAC,GAAD;AAAA,QAAM,MAAM,EAAK;AAAA,QAAW,MAAM;AAAA,QAAe,IAAI,EAAE,OAAO,EAAK,WAAW;AAAA,MAAI,CAAA;AAAA,IAC/E,CAAA;AAIT,QAAI,EAAK,cACP,QACE,gBAAA,EAAC,GAAD;AAAA,MACE,KAAK,EAAK,iBAAiB;AAAA,MAC3B,cAAc,EAAK,gBAAgB,EAAwB,EAAK,aAAa,IAAI;AAAA,MACjF,cAAc,EAAK;AAAA,MACnB,MAAM;AAAA,IACP,CAAA;AAIL,QAAI,EAAK,iBACP,QACE,gBAAA,EAAC,GAAD;AAAA,MACE,KAAK,EAAK,oBAAoB;AAAA,MAC9B,iBAAiB,EAAK;AAAA,MACtB,MAAM;AAAA,IACP,CAAA;AAIL,QAAI,EAAK,eAAe;AACtB,YAAM,IAAe,EAAwB,EAAK,aAAa;AAC/D,aACE,gBAAA,EAAC,GAAD;AAAA,QAAK,eAAa,iBAAiB,CAAA;AAAA,QAAgB,IAAI,EAAE,SAAS,OAAO;AAAA,QACvE,UAAA,gBAAA,EAAC,GAAD;AAAA,UAAc,cAAc;AAAA,UAAc,MAAM;AAAA,QAAgB,CAAA;AAAA,MAC7D,CAAA;AAAA,IAET;AAAA;AAGF,GAgBa,IAAmB,EAAA,CAAU,EAAE,SAAA,EAAA,MAAqC;AAC/E,QAAM,IAAQ,EAAS,GACjB,EAAE,yBAAA,EAAA,IAA4B,EAAiB,GAC/C,EAAE,MAAA,GAAM,SAAA,EAAA,IAAY,EAAQ,eAC5B,IAAS,EAAwB,GAAM,QAAQ,GAC/C,IAAa,EAAa,GAAM,aAAa;AAEnD,MAAI,CAAC,MAAM,QAAQ,CAAM,KAAK,CAAC,EAAO,OAAQ,QAAO;AAGrD,QAAM,EAAE,YAAA,GAAY,aAAA,GAAa,YAAA,EAAA,IAAe,EAC9C,EAAgB,CAAK,GACrB,GACA,EAAwB,UACxB,kBACF;AAGA,SACE,gBAAA,EAAC,GAAD;AAAA,IACc,YAAA;AAAA,IACJ,QALG,KAAc,OAAO,KAAe,WAAW,IAAa;AAAA,IAMvE,SAAS;AAAA,IACT,MAAM,EAAO,IAAA,CAAK,OAAS;AAAA,MACzB,QAAQ,OAAO,EAAI,UAAW,WAAW,EAAe,EAAI,QAAQ,QAAQ,IAAI;AAAA,MAChF,SAAS,EAAc,GAAK,CAAuB;AAAA,MACnD,UAAU,EAAI,kBAAkB;AAAA,MAChC,OAAO,EAAI,gBAAgB;AAAA,IAC7B,EAAE;AAAA,EACH,CAAA;AAEL,CAAC"}
|
|
@@ -1 +1,2 @@
|
|
|
1
|
-
export { TransactionBlock
|
|
1
|
+
export { TransactionBlock } from './TransactionBlock';
|
|
2
|
+
export { transactionBlockVariant } from './layout';
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { Theme } from '@mui/material/styles';
|
|
2
|
+
/**
|
|
3
|
+
* Transaction block variants, keyed by the backend `instance_slot.variant`. All render the same
|
|
4
|
+
* pre-localized rows through `TransactionListCard`; only the header and the slot differ.
|
|
5
|
+
*
|
|
6
|
+
* - `WithHeader` — row under a date header (Fee Detected, Large Transaction).
|
|
7
|
+
* - `NoHeader` — the row alone (Large Transaction without a merchant).
|
|
8
|
+
* - `UncategorizedTransaction` — filled primary header ("{count} transactions").
|
|
9
|
+
* - `SubscriptionDetected` — borderless row on the blue slot wash.
|
|
10
|
+
* - `UnexpectedSubscriptionPayment` — borderless row on the warning slot wash. Its flag badge and
|
|
11
|
+
* subscribed / not-subscribed status row are not drawn yet.
|
|
12
|
+
*/
|
|
13
|
+
export declare const transactionBlockVariant: {
|
|
14
|
+
readonly WithHeader: "with_header";
|
|
15
|
+
readonly NoHeader: "no_header";
|
|
16
|
+
readonly UncategorizedTransaction: "uncategorized_transaction";
|
|
17
|
+
readonly SubscriptionDetected: "subscription_detected";
|
|
18
|
+
readonly UnexpectedSubscriptionPayment: "unexpected_subscription_payment";
|
|
19
|
+
};
|
|
20
|
+
export type TransactionBlockVariant = (typeof transactionBlockVariant)[keyof typeof transactionBlockVariant];
|
|
21
|
+
export interface TransactionLayoutConfig {
|
|
22
|
+
/** Show `instance_slot.data.header_text` above the rows. */
|
|
23
|
+
showHeader: boolean;
|
|
24
|
+
/** `TransactionListCard` style: grey utility header, or filled primary header. */
|
|
25
|
+
cardVariant?: 'default' | 'primary';
|
|
26
|
+
/** CSS background for the slot behind the card; the card then renders borderless on paper. */
|
|
27
|
+
background?: string;
|
|
28
|
+
}
|
|
29
|
+
/** Per-variant `TransactionListCard` props (mirrors DirectDepositBlock's `getLayoutConfig`). */
|
|
30
|
+
export declare const getLayoutConfig: (theme: Theme) => Record<TransactionBlockVariant, TransactionLayoutConfig>;
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { WARNING_WASH_GRADIENT as r, getPrimaryWashGradient as t } from "../../../components/celebrationGradients.es.js";
|
|
2
|
+
var e = {
|
|
3
|
+
WithHeader: "with_header",
|
|
4
|
+
NoHeader: "no_header",
|
|
5
|
+
UncategorizedTransaction: "uncategorized_transaction",
|
|
6
|
+
SubscriptionDetected: "subscription_detected",
|
|
7
|
+
UnexpectedSubscriptionPayment: "unexpected_subscription_payment"
|
|
8
|
+
}, i = (a) => ({
|
|
9
|
+
[e.WithHeader]: { showHeader: !0 },
|
|
10
|
+
[e.NoHeader]: { showHeader: !1 },
|
|
11
|
+
[e.UncategorizedTransaction]: {
|
|
12
|
+
showHeader: !0,
|
|
13
|
+
cardVariant: "primary"
|
|
14
|
+
},
|
|
15
|
+
[e.SubscriptionDetected]: {
|
|
16
|
+
showHeader: !1,
|
|
17
|
+
background: t(a)
|
|
18
|
+
},
|
|
19
|
+
[e.UnexpectedSubscriptionPayment]: {
|
|
20
|
+
showHeader: !1,
|
|
21
|
+
background: r
|
|
22
|
+
}
|
|
23
|
+
});
|
|
24
|
+
export {
|
|
25
|
+
i as getLayoutConfig,
|
|
26
|
+
e as transactionBlockVariant
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
//# sourceMappingURL=layout.es.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"layout.es.js","names":[],"sources":["../../../../../src/insights-v2/blocks/ComponentBlocks/TransactionBlock/layout.ts"],"sourcesContent":["import type { Theme } from '@mui/material/styles'\n\nimport {\n WARNING_WASH_GRADIENT,\n getPrimaryWashGradient,\n} from '../../../components/celebrationGradients'\n\n/**\n * Transaction block variants, keyed by the backend `instance_slot.variant`. All render the same\n * pre-localized rows through `TransactionListCard`; only the header and the slot differ.\n *\n * - `WithHeader` — row under a date header (Fee Detected, Large Transaction).\n * - `NoHeader` — the row alone (Large Transaction without a merchant).\n * - `UncategorizedTransaction` — filled primary header (\"{count} transactions\").\n * - `SubscriptionDetected` — borderless row on the blue slot wash.\n * - `UnexpectedSubscriptionPayment` — borderless row on the warning slot wash. Its flag badge and\n * subscribed / not-subscribed status row are not drawn yet.\n */\nexport const transactionBlockVariant = {\n WithHeader: 'with_header',\n NoHeader: 'no_header',\n UncategorizedTransaction: 'uncategorized_transaction',\n SubscriptionDetected: 'subscription_detected',\n UnexpectedSubscriptionPayment: 'unexpected_subscription_payment',\n} as const\n\nexport type TransactionBlockVariant =\n (typeof transactionBlockVariant)[keyof typeof transactionBlockVariant]\n\nexport interface TransactionLayoutConfig {\n /** Show `instance_slot.data.header_text` above the rows. */\n showHeader: boolean\n /** `TransactionListCard` style: grey utility header, or filled primary header. */\n cardVariant?: 'default' | 'primary'\n /** CSS background for the slot behind the card; the card then renders borderless on paper. */\n background?: string\n}\n\n/** Per-variant `TransactionListCard` props (mirrors DirectDepositBlock's `getLayoutConfig`). */\nexport const getLayoutConfig = (\n theme: Theme,\n): Record<TransactionBlockVariant, TransactionLayoutConfig> => ({\n [transactionBlockVariant.WithHeader]: { showHeader: true },\n [transactionBlockVariant.NoHeader]: { showHeader: false },\n [transactionBlockVariant.UncategorizedTransaction]: { showHeader: true, cardVariant: 'primary' },\n [transactionBlockVariant.SubscriptionDetected]: {\n showHeader: false,\n background: getPrimaryWashGradient(theme),\n },\n [transactionBlockVariant.UnexpectedSubscriptionPayment]: {\n showHeader: false,\n background: WARNING_WASH_GRADIENT,\n },\n})\n"],"mappings":";AAkBA,IAAa,IAA0B;AAAA,EACrC,YAAY;AAAA,EACZ,UAAU;AAAA,EACV,0BAA0B;AAAA,EAC1B,sBAAsB;AAAA,EACtB,+BAA+B;AACjC,GAea,IAAA,CACX,OAC8D;AAAA,EAC7D,CAAA,EAAwB,UAAA,GAAa,EAAE,YAAY,GAAK;AAAA,EACxD,CAAA,EAAwB,QAAA,GAAW,EAAE,YAAY,GAAM;AAAA,EACvD,CAAA,EAAwB,wBAAA,GAA2B;AAAA,IAAE,YAAY;AAAA,IAAM,aAAa;AAAA,EAAU;AAAA,EAC9F,CAAA,EAAwB,oBAAA,GAAuB;AAAA,IAC9C,YAAY;AAAA,IACZ,YAAY,EAAuB,CAAK;AAAA,EAC1C;AAAA,EACC,CAAA,EAAwB,6BAAA,GAAgC;AAAA,IACvD,YAAY;AAAA,IACZ,YAAY;AAAA,EACd;AACF"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Picks a block's per-variant config from its `layout.ts` table by the backend
|
|
3
|
+
* `instance_slot.variant`, falling back to `fallback` for anything the table does not own.
|
|
4
|
+
*
|
|
5
|
+
* `Object.hasOwn` rather than a bare index: the key is backend-controlled, and an inherited
|
|
6
|
+
* name like `constructor` would otherwise return a truthy non-config that `??` lets through.
|
|
7
|
+
* Unknown variants warn, like `createVariantBlock`, so a backend typo or a new server variant
|
|
8
|
+
* is visible instead of silently degrading.
|
|
9
|
+
*/
|
|
10
|
+
export declare const resolveVariantConfig: <K extends string, C>(table: Record<K, C>, variant: string | null | undefined, fallback: K, blockName: string) => C;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
var u = (o, n, r, e) => n != null && Object.hasOwn(o, n) ? o[n] : (n != null && console.warn(`[${e}] Unknown variant "${n}" — rendering "${r}". Add it to layout.ts.`), o[r]);
|
|
2
|
+
export {
|
|
3
|
+
u as resolveVariantConfig
|
|
4
|
+
};
|
|
5
|
+
|
|
6
|
+
//# sourceMappingURL=resolveVariantConfig.es.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolveVariantConfig.es.js","names":[],"sources":["../../../src/insights-v2/blocks/resolveVariantConfig.ts"],"sourcesContent":["/**\n * Picks a block's per-variant config from its `layout.ts` table by the backend\n * `instance_slot.variant`, falling back to `fallback` for anything the table does not own.\n *\n * `Object.hasOwn` rather than a bare index: the key is backend-controlled, and an inherited\n * name like `constructor` would otherwise return a truthy non-config that `??` lets through.\n * Unknown variants warn, like `createVariantBlock`, so a backend typo or a new server variant\n * is visible instead of silently degrading.\n */\nexport const resolveVariantConfig = <K extends string, C>(\n table: Record<K, C>,\n variant: string | null | undefined,\n fallback: K,\n blockName: string,\n): C => {\n if (variant != null && Object.hasOwn(table, variant)) return table[variant as K]\n\n if (variant != null) {\n console.warn(\n `[${blockName}] Unknown variant \"${variant}\" — rendering \"${fallback}\". Add it to layout.ts.`,\n )\n }\n\n return table[fallback]\n}\n"],"mappings":"AASA,IAAa,IAAA,CACX,GACA,GACA,GACA,MAEI,KAAW,QAAQ,OAAO,OAAO,GAAO,CAAO,IAAU,EAAM,CAAA,KAE/D,KAAW,QACb,QAAQ,KACN,IAAI,CAAA,sBAA+B,CAAA,kBAAyB,CAAA,yBAC9D,GAGK,EAAM,CAAA"}
|
|
@@ -1,12 +1,13 @@
|
|
|
1
|
+
import { Theme } from '@mui/material/styles';
|
|
1
2
|
/**
|
|
2
|
-
* Decorative
|
|
3
|
-
*
|
|
4
|
-
*
|
|
3
|
+
* Decorative slot washes shared by the block layouts and the presentational components, so
|
|
4
|
+
* one source holds each gradient. The 20%–25% washes layer over `background.paper` via
|
|
5
|
+
* `backgroundImage`; `DISCOVERED_ACCOUNTS_GRADIENT` is opaque and stands alone.
|
|
5
6
|
*
|
|
6
|
-
* - WARM_LIME_ACCENT_GRADIENT:
|
|
7
|
-
*
|
|
8
|
-
* -
|
|
9
|
-
* -
|
|
7
|
+
* - WARM_LIME_ACCENT_GRADIENT: merchant categorization and deposit celebration states.
|
|
8
|
+
* - CELEBRATION_GRADIENT / ACCOUNT_CONNECTED_GRADIENT: balance milestones, account connected.
|
|
9
|
+
* - WARNING_WASH_GRADIENT: a flagged charge (Unexpected Subscription Payment).
|
|
10
|
+
* - getPrimaryWashGradient(theme): pending connect / detected subscription, from the palette.
|
|
10
11
|
*/
|
|
11
12
|
/**
|
|
12
13
|
* Warm → lime accent wash at 20% opacity. Used as a tinted background behind
|
|
@@ -23,3 +24,14 @@ export declare const DISCOVERED_ACCOUNTS_GRADIENT = "linear-gradient(200.73deg,
|
|
|
23
24
|
* `background` shorthand — a 20% gradient over transparency renders wrong.
|
|
24
25
|
*/
|
|
25
26
|
export declare const ACCOUNT_CONNECTED_GRADIENT = "linear-gradient(257deg, rgba(255, 224, 153, 0.2) 1.86%, rgba(255, 129, 230, 0.2) 101.54%)";
|
|
27
|
+
/**
|
|
28
|
+
* Orange → red-orange wash at 25% opacity behind a flagged charge (Unexpected Subscription
|
|
29
|
+
* Payment). Figma "Warning Gradient 1": a bespoke two-stop blend with no palette token, so it
|
|
30
|
+
* stays a literal like the other washes here rather than being derived from `palette.warning`.
|
|
31
|
+
*/
|
|
32
|
+
export declare const WARNING_WASH_GRADIENT = "linear-gradient(201deg, rgba(255, 170, 0, 0.25) 1.86%, rgba(255, 68, 0, 0.25) 101.54%)";
|
|
33
|
+
/**
|
|
34
|
+
* Blue slot wash behind a pending connect / detected-subscription row: `primary.light` →
|
|
35
|
+
* `primary.main` at 75% over paper, built from the live palette so it follows the theme.
|
|
36
|
+
*/
|
|
37
|
+
export declare const getPrimaryWashGradient: ({ palette }: Theme) => string;
|
|
@@ -1,8 +1,11 @@
|
|
|
1
|
-
|
|
1
|
+
import { alpha as a } from "@mui/material/styles";
|
|
2
|
+
var i = "linear-gradient(200.73deg, rgba(255, 223, 152, 0.2) 1.86%, rgba(173, 248, 43, 0.2) 101.54%)", e = "linear-gradient(200.73deg, rgba(255, 223, 152, 0.2) 1.86%, rgba(255, 128, 229, 0.2) 101.54%)", n = "linear-gradient(257deg, rgba(255, 224, 153, 0.2) 1.86%, rgba(255, 129, 230, 0.2) 101.54%)", d = "linear-gradient(201deg, rgba(255, 170, 0, 0.25) 1.86%, rgba(255, 68, 0, 0.25) 101.54%)", N = ({ palette: r }) => `linear-gradient(173deg, ${a(r.primary.light, 0.75)} 46.41%, ${a(r.primary.main, 0.75)} 78.14%)`;
|
|
2
3
|
export {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
4
|
+
n as ACCOUNT_CONNECTED_GRADIENT,
|
|
5
|
+
e as CELEBRATION_GRADIENT,
|
|
6
|
+
i as WARM_LIME_ACCENT_GRADIENT,
|
|
7
|
+
d as WARNING_WASH_GRADIENT,
|
|
8
|
+
N as getPrimaryWashGradient
|
|
6
9
|
};
|
|
7
10
|
|
|
8
11
|
//# sourceMappingURL=celebrationGradients.es.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"celebrationGradients.es.js","names":[],"sources":["../../../src/insights-v2/components/celebrationGradients.ts"],"sourcesContent":["
|
|
1
|
+
{"version":3,"file":"celebrationGradients.es.js","names":[],"sources":["../../../src/insights-v2/components/celebrationGradients.ts"],"sourcesContent":["import { alpha, type Theme } from '@mui/material/styles'\n\n/**\n * Decorative slot washes shared by the block layouts and the presentational components, so\n * one source holds each gradient. The 20%–25% washes layer over `background.paper` via\n * `backgroundImage`; `DISCOVERED_ACCOUNTS_GRADIENT` is opaque and stands alone.\n *\n * - WARM_LIME_ACCENT_GRADIENT: merchant categorization and deposit celebration states.\n * - CELEBRATION_GRADIENT / ACCOUNT_CONNECTED_GRADIENT: balance milestones, account connected.\n * - WARNING_WASH_GRADIENT: a flagged charge (Unexpected Subscription Payment).\n * - getPrimaryWashGradient(theme): pending connect / detected subscription, from the palette.\n */\n\n/**\n * Warm → lime accent wash at 20% opacity. Used as a tinted background behind\n * merchant categorization highlights and deposit celebration callouts.\n */\nexport const WARM_LIME_ACCENT_GRADIENT =\n 'linear-gradient(200.73deg, rgba(255, 223, 152, 0.2) 1.86%, rgba(173, 248, 43, 0.2) 101.54%)'\n\n/** Warm → pink wash behind balance/savings milestones. */\nexport const CELEBRATION_GRADIENT =\n 'linear-gradient(200.73deg, rgba(255, 223, 152, 0.2) 1.86%, rgba(255, 128, 229, 0.2) 101.54%)'\n\n/** Peach → pink gradient for Discovered Accounts success state. */\nexport const DISCOVERED_ACCOUNTS_GRADIENT =\n 'linear-gradient(200.73deg, rgba(255, 224, 153, 1) 1.86%, rgba(255, 129, 230, 1) 101.54%)'\n\n/**\n * Warm → pink wash at 20% opacity for the account-connected success state.\n * Layer over `background.paper` (the Figma spec's `#FFF` base), not the\n * `background` shorthand — a 20% gradient over transparency renders wrong.\n */\nexport const ACCOUNT_CONNECTED_GRADIENT =\n 'linear-gradient(257deg, rgba(255, 224, 153, 0.2) 1.86%, rgba(255, 129, 230, 0.2) 101.54%)'\n\n/**\n * Orange → red-orange wash at 25% opacity behind a flagged charge (Unexpected Subscription\n * Payment). Figma \"Warning Gradient 1\": a bespoke two-stop blend with no palette token, so it\n * stays a literal like the other washes here rather than being derived from `palette.warning`.\n */\nexport const WARNING_WASH_GRADIENT =\n 'linear-gradient(201deg, rgba(255, 170, 0, 0.25) 1.86%, rgba(255, 68, 0, 0.25) 101.54%)'\n\n/**\n * Blue slot wash behind a pending connect / detected-subscription row: `primary.light` →\n * `primary.main` at 75% over paper, built from the live palette so it follows the theme.\n */\nexport const getPrimaryWashGradient = ({ palette }: Theme) =>\n `linear-gradient(173deg, ${alpha(palette.primary.light, 0.75)} 46.41%, ${alpha(palette.primary.main, 0.75)} 78.14%)`\n"],"mappings":";AAiBA,IAAa,IACX,+FAGW,IACX,gGAWW,IACX,6FAOW,IACX,0FAMW,IAAA,CAA0B,EAAE,SAAA,EAAA,MACvC,2BAA2B,EAAM,EAAQ,QAAQ,OAAO,IAAI,CAAA,YAAa,EAAM,EAAQ,QAAQ,MAAM,IAAI,CAAA"}
|
|
@@ -25,94 +25,95 @@ import Y from "./components/SaveAnExtraCard.es.js";
|
|
|
25
25
|
import $ from "./blocks/ComponentBlocks/SaveExtraBlock/SaveExtraBlock.es.js";
|
|
26
26
|
import or from "./components/InsightTransactionRow.es.js";
|
|
27
27
|
import mr from "./components/TransactionListCard.es.js";
|
|
28
|
-
import {
|
|
29
|
-
import
|
|
30
|
-
import
|
|
31
|
-
import
|
|
32
|
-
import
|
|
33
|
-
import
|
|
34
|
-
import
|
|
35
|
-
import
|
|
36
|
-
import
|
|
37
|
-
import
|
|
38
|
-
import
|
|
39
|
-
import
|
|
40
|
-
import {
|
|
41
|
-
import {
|
|
42
|
-
import {
|
|
43
|
-
import {
|
|
44
|
-
import {
|
|
45
|
-
import {
|
|
46
|
-
import {
|
|
47
|
-
import
|
|
48
|
-
import
|
|
49
|
-
import
|
|
50
|
-
import
|
|
51
|
-
import
|
|
52
|
-
import
|
|
53
|
-
import
|
|
54
|
-
import
|
|
55
|
-
import
|
|
28
|
+
import { transactionBlockVariant as ar } from "./blocks/ComponentBlocks/TransactionBlock/layout.es.js";
|
|
29
|
+
import { TransactionBlock as fr } from "./blocks/ComponentBlocks/TransactionBlock/TransactionBlock.es.js";
|
|
30
|
+
import nr from "./components/WithdrawalCard.es.js";
|
|
31
|
+
import sr from "./blocks/ComponentBlocks/WithdrawalBlock/WithdrawalBlock.es.js";
|
|
32
|
+
import { SVGImageBlock as dr } from "./blocks/ImageBlocks/SVGImageBlock/SVGImageBlock.es.js";
|
|
33
|
+
import gr from "./components/ConnectionDetailDrillDown.es.js";
|
|
34
|
+
import ur from "./components/AmountPill.es.js";
|
|
35
|
+
import Sr from "./components/DesignateEmergencySavingsCard.es.js";
|
|
36
|
+
import Dr from "./components/shared/StatusSnackbar.es.js";
|
|
37
|
+
import br from "./components/FeedbackDialog.es.js";
|
|
38
|
+
import Ir from "./components/FeedbackModal.es.js";
|
|
39
|
+
import vr from "./components/SurveyModal.es.js";
|
|
40
|
+
import { ErrorCard as wr } from "./components/ErrorCard.es.js";
|
|
41
|
+
import { HOST_ACTIONS as Or } from "./ctaActions/hostActions.es.js";
|
|
42
|
+
import { useBeatCtaActions as Pr, useCtaHandler as Rr } from "./ctaActions/useCtaAction.es.js";
|
|
43
|
+
import { FeedbackBar as Fr } from "./components/FeedbackBar.es.js";
|
|
44
|
+
import { DismissInsightDialog as xr } from "./components/DismissInsightDialog.es.js";
|
|
45
|
+
import { HiddenConfirmationCard as _r } from "./components/HiddenConfirmationCard.es.js";
|
|
46
|
+
import { LoadingCard as Wr } from "./components/LoadingCard.es.js";
|
|
47
|
+
import { ObsolesceBanner as jr } from "./components/ObsolesceBanner.es.js";
|
|
48
|
+
import zr from "./components/BaseLayout.es.js";
|
|
49
|
+
import Kr from "./components/StatusMessageCard.es.js";
|
|
50
|
+
import Xr from "./components/LogoTile.es.js";
|
|
51
|
+
import Zr from "./components/LogoClusterCard.es.js";
|
|
52
|
+
import ro from "./components/MerchantHighlightCard.es.js";
|
|
53
|
+
import to from "./components/P2PLogoStack.es.js";
|
|
54
|
+
import io from "./components/SavingsOpportunityCard.es.js";
|
|
55
|
+
import po from "./components/SubscriptionHeroCard.es.js";
|
|
56
|
+
import eo from "./components/UpcomingBillCard.es.js";
|
|
56
57
|
export {
|
|
57
58
|
V as AccountBlock,
|
|
58
59
|
U as AccountHeroCard,
|
|
59
60
|
N as AccountSwitchBlock,
|
|
60
|
-
|
|
61
|
+
ur as AmountPill,
|
|
61
62
|
A as BAR_CHART_VARIANTS,
|
|
62
63
|
f as BadgedTile,
|
|
63
64
|
v as BarchartBlock,
|
|
64
|
-
|
|
65
|
+
zr as BaseLayout,
|
|
65
66
|
Q as BudgetBlock,
|
|
66
67
|
k as CompactInsightCard,
|
|
67
|
-
|
|
68
|
-
|
|
68
|
+
gr as ConnectionDetailDrillDown,
|
|
69
|
+
Sr as DesignateEmergencySavingsCard,
|
|
69
70
|
J as DirectDepositBlock,
|
|
70
71
|
q as DirectDepositCard,
|
|
71
|
-
|
|
72
|
+
xr as DismissInsightDialog,
|
|
72
73
|
P as DonutChartBlock,
|
|
73
74
|
w as DoubleBarChartBlock,
|
|
74
75
|
y as DoubleProgressBarBlock,
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
76
|
+
wr as ErrorCard,
|
|
77
|
+
Fr as FeedbackBar,
|
|
78
|
+
br as FeedbackDialog,
|
|
79
|
+
Ir as FeedbackModal,
|
|
80
|
+
Or as HOST_ACTIONS,
|
|
81
|
+
_r as HiddenConfirmationCard,
|
|
81
82
|
h as InsightErrorCard,
|
|
82
83
|
s as InsightOptionsMenu,
|
|
83
84
|
or as InsightTransactionRow,
|
|
84
|
-
|
|
85
|
-
|
|
85
|
+
Wr as LoadingCard,
|
|
86
|
+
Zr as LogoClusterCard,
|
|
86
87
|
d as LogoFromGuid,
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
88
|
+
Xr as LogoTile,
|
|
89
|
+
ro as MerchantHighlightCard,
|
|
90
|
+
jr as ObsolesceBanner,
|
|
90
91
|
n as OverflowMenu,
|
|
91
|
-
|
|
92
|
-
|
|
92
|
+
to as P2PLogoStack,
|
|
93
|
+
dr as SVGImageBlock,
|
|
93
94
|
Y as SaveAnExtraCard,
|
|
94
95
|
$ as SaveExtraBlock,
|
|
95
|
-
|
|
96
|
+
io as SavingsOpportunityCard,
|
|
96
97
|
B as StatusBadge,
|
|
97
|
-
|
|
98
|
+
Kr as StatusMessageCard,
|
|
98
99
|
o as StatusPill,
|
|
99
|
-
|
|
100
|
+
Dr as StatusSnackbar,
|
|
100
101
|
O as StepChartBlock,
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
pr as TransactionBlockVariant,
|
|
102
|
+
po as SubscriptionHeroCard,
|
|
103
|
+
vr as SurveyModal,
|
|
104
|
+
fr as TransactionBlock,
|
|
105
105
|
mr as TransactionListCard,
|
|
106
106
|
G as TransferLogoCard,
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
107
|
+
eo as UpcomingBillCard,
|
|
108
|
+
sr as WithdrawalBlock,
|
|
109
|
+
nr as WithdrawalCard,
|
|
110
110
|
b as barChartVariant,
|
|
111
111
|
T as buildChartData,
|
|
112
112
|
I as buildDataSeries,
|
|
113
113
|
C as isLogoGuid,
|
|
114
114
|
m as resolveInsightRender,
|
|
115
|
+
ar as transactionBlockVariant,
|
|
115
116
|
a as useBeatActions,
|
|
116
|
-
|
|
117
|
-
|
|
117
|
+
Pr as useBeatCtaActions,
|
|
118
|
+
Rr as useCtaHandler
|
|
118
119
|
};
|