@mx-cartographer/experiences 4.0.14-alpha.JB0 → 4.0.14-alpha.JB2

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.
Files changed (75) hide show
  1. package/dist/AccountStore-B23-oV1B.mjs +244 -0
  2. package/dist/AccountStore-B23-oV1B.mjs.map +1 -0
  3. package/dist/BeatApi-BxXgbSJY.mjs +99 -0
  4. package/dist/BeatApi-BxXgbSJY.mjs.map +1 -0
  5. package/dist/BudgetUtil-BSn9Zr71.mjs +208 -0
  6. package/dist/BudgetUtil-BSn9Zr71.mjs.map +1 -0
  7. package/dist/CashflowApi-zcebgnO1.mjs +103 -0
  8. package/dist/CashflowApi-zcebgnO1.mjs.map +1 -0
  9. package/dist/CashflowStore-gPEEBiXo.mjs +53 -0
  10. package/dist/CashflowStore-gPEEBiXo.mjs.map +1 -0
  11. package/dist/Categories-XVFviD23.mjs +117 -0
  12. package/dist/Categories-XVFviD23.mjs.map +1 -0
  13. package/dist/CategoryStore-CSNSMNA6.mjs +298 -0
  14. package/dist/CategoryStore-CSNSMNA6.mjs.map +1 -0
  15. package/dist/ConnectMiniWidget-Ep65CtHH.mjs +10854 -0
  16. package/dist/ConnectMiniWidget-Ep65CtHH.mjs.map +1 -0
  17. package/dist/DebtsStore-Duf3n1vZ.mjs +127 -0
  18. package/dist/DebtsStore-Duf3n1vZ.mjs.map +1 -0
  19. package/dist/Donut-DgMeKScZ.mjs +53 -0
  20. package/dist/Donut-DgMeKScZ.mjs.map +1 -0
  21. package/dist/Fetch-DpUi1_Dx.mjs +99 -0
  22. package/dist/Fetch-DpUi1_Dx.mjs.map +1 -0
  23. package/dist/GoalStore-BYoRLx99.mjs +128 -0
  24. package/dist/GoalStore-BYoRLx99.mjs.map +1 -0
  25. package/dist/MerchantStore-RhLvDvX-.mjs +118 -0
  26. package/dist/MerchantStore-RhLvDvX-.mjs.map +1 -0
  27. package/dist/NetWorthStore-syD1VnxE.mjs +66 -0
  28. package/dist/NetWorthStore-syD1VnxE.mjs.map +1 -0
  29. package/dist/NotificationStore-CqTYHfJC.mjs +141 -0
  30. package/dist/NotificationStore-CqTYHfJC.mjs.map +1 -0
  31. package/dist/RecurringActivityStore-B_COvGWG.mjs +304 -0
  32. package/dist/RecurringActivityStore-B_COvGWG.mjs.map +1 -0
  33. package/dist/StackedLineChart-CCqGRwvs.mjs +342 -0
  34. package/dist/StackedLineChart-CCqGRwvs.mjs.map +1 -0
  35. package/dist/TransactionStore-BUrjBWkk.mjs +478 -0
  36. package/dist/TransactionStore-BUrjBWkk.mjs.map +1 -0
  37. package/dist/index.es.js +12 -17869
  38. package/dist/index.es.js.map +1 -1
  39. package/dist/index.es10.js +107 -0
  40. package/dist/index.es10.js.map +1 -0
  41. package/dist/index.es11.js +159 -0
  42. package/dist/index.es11.js.map +1 -0
  43. package/dist/index.es12.js +483 -0
  44. package/dist/index.es12.js.map +1 -0
  45. package/dist/index.es13.js +620 -0
  46. package/dist/index.es13.js.map +1 -0
  47. package/dist/index.es14.js +788 -0
  48. package/dist/index.es14.js.map +1 -0
  49. package/dist/index.es15.js +891 -0
  50. package/dist/index.es15.js.map +1 -0
  51. package/dist/index.es16.js +962 -0
  52. package/dist/index.es16.js.map +1 -0
  53. package/dist/index.es17.js +1904 -0
  54. package/dist/index.es17.js.map +1 -0
  55. package/dist/index.es2.js +11 -0
  56. package/dist/index.es2.js.map +1 -0
  57. package/dist/index.es3.js +10 -0
  58. package/dist/index.es3.js.map +1 -0
  59. package/dist/index.es4.js +9 -0
  60. package/dist/index.es4.js.map +1 -0
  61. package/dist/index.es5.js +7 -0
  62. package/dist/index.es5.js.map +1 -0
  63. package/dist/index.es6.js +7 -0
  64. package/dist/index.es6.js.map +1 -0
  65. package/dist/index.es7.js +10 -0
  66. package/dist/index.es7.js.map +1 -0
  67. package/dist/index.es8.js +10 -0
  68. package/dist/index.es8.js.map +1 -0
  69. package/dist/index.es9.js +18 -0
  70. package/dist/index.es9.js.map +1 -0
  71. package/dist/useCombineEvents-CZUDHE96.mjs +170 -0
  72. package/dist/useCombineEvents-CZUDHE96.mjs.map +1 -0
  73. package/dist/usePrevious-BLb3umpI.mjs +11 -0
  74. package/dist/usePrevious-BLb3umpI.mjs.map +1 -0
  75. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.es17.js","sources":["../src/microinsights/stores/CopyStore.ts","../src/microinsights/constants/Analytics.ts","../src/microinsights/analytics.ts","../src/microinsights/stores/InsightsMicroWidgetStore.ts","../src/microinsights/stores/AppStore.ts","../src/microinsights/context/InsightsMicroWidgetDataProvider.tsx","../src/microinsights/components/beaticons/BeatCategoryIcon.tsx","../src/microinsights/components/beaticons/BeatMerchantLogo.tsx","../src/microinsights/components/beaticons/ChartFilledIcon.tsx","../src/microinsights/utils/DataSeries.ts","../src/microinsights/components/beaticons/MonthlySpendComparisonIcon.tsx","../src/microinsights/components/beaticons/ZeroStateIcon.tsx","../src/microinsights/components/beaticons/BeatIcon.tsx","../src/microinsights/constants/App.ts","../src/microinsights/context/hooks.tsx","../src/microinsights/components/beatCard/BeatCard.tsx","../src/microinsights/components/microBeatCarousel/CarouselControls.tsx","../src/microinsights/components/microBeatCarousel/MicroBeatCarousel.tsx","../src/microinsights/components/microInsightCard/MicroInsightCard.tsx","../src/microinsights/components/carouselheader/CarouselHeader.tsx","../src/microinsights/components/spinner/Spinner.tsx","../src/microinsights/components/insightsmicrowidget/InsightsMicroWidget.tsx","../src/microinsights/components/noRelevantInsightsCard/NoRelevantInsightsCard.tsx","../src/microinsights/components/viewMoreMicroCard/ViewMoreMicroCard.tsx","../src/microinsights/components/zeroStateCard/ZeroStateCard.tsx"],"sourcesContent":["import { makeAutoObservable, runInAction } from 'mobx'\nimport { GlobalCopyApi, type MicroInsightsCopy } from '../../common'\n\nexport class CopyStore {\n copyApi: GlobalCopyApi = new GlobalCopyApi('/', '')\n copyObject: MicroInsightsCopy = {} as MicroInsightsCopy\n namespace = 'experiences'\n translationKey = 'micro_insights'\n\n constructor() {\n makeAutoObservable(this)\n }\n\n initialize = async (endpoint: string, token: string) => {\n this.copyApi = new GlobalCopyApi(endpoint, token)\n await this.loadCopy()\n }\n\n loadCopy = async () => {\n const copy = await this.copyApi.getGlobalCopy(this.namespace, this.translationKey)\n\n runInAction(() => {\n this.copyObject = copy[this.translationKey]\n })\n }\n\n get cardsCopy(): any {\n return this.copyObject.cards\n }\n\n get carouselCopy(): any {\n return this.copyObject.carousel\n }\n\n get zeroStateCopy(): any {\n return this.copyObject.zero_state\n }\n}\n","import type { BasicAnalyticsEvent } from '../../common'\n\nexport const TEMPLATE_NAMES = {\n BillAmountNotStandard: 'BillAmountNotStandard',\n CanadianUpcomingDeadlineAlert: 'CanadianUpcomingDeadlineAlert',\n DuplicatePaymentV2: 'DuplicatePaymentV2',\n IntroducePulse: 'IntroducePulse',\n LargeTransaction: 'LargeTransaction',\n MonthlySpendToIncomeComparisonV2: 'MonthlySpendToIncomeComparisonV2',\n QuarterlySummary: 'QuarterlySummary',\n SpendingPlanCategorySpending: 'SpendingPlanCategorySpending',\n SubscriptionPriceIncrease: 'SubscriptionPriceIncrease',\n UncategorizedTransactionsV2: 'UncategorizedTransactionsV2',\n UpcomingBill: 'UpcomingBill',\n UnifiedDeposit: 'UnifiedDeposit',\n WeeklySpendingPlanSummary: 'WeeklySpendingPlanSummary',\n WeeklyNewMerchantsV2: 'WeeklyNewMerchantsV2',\n MonthlySpendComparison: 'MonthlySpendComparison',\n MonthlySpendToIncomeComparison: 'MonthlySpendToIncomeComparison',\n}\n\nconst instanceId = (window as any)?.app?.clientConfig?.microwidget_instance_id || ''\n\nconst PATHS = {\n INSIGHTS_MICRO_WIDGET: '/micro-insights-carousel',\n}\n\nexport const ON_CLICK_EVENT = (name: string) => `on${name}Click`\nexport const ON_VIEW_EVENT = (name: string) => `on${name}View`\nexport const ON_VIEW_FIRST_TIME_EVENT = (name: string) => `on${name}ViewFirstTime`\nexport const readableTemplateName = (name: string) => name.replace(/([a-z])([A-Z])/g, '$1 $2')\nexport const onBeatClickedEvents = () => {\n return Object.values(TEMPLATE_NAMES).reduce(\n (acc, name) => ({\n ...acc,\n [ON_CLICK_EVENT(name)]: {\n action: ANALYTICS_ACTIONS.MICRO_BEAT_CLICKED,\n category: ANALYTICS_CATEGORIES.BEAT_INTERACTION,\n label: readableTemplateName(name),\n value: instanceId,\n },\n }),\n {},\n ) as Record<keyof AnalyticsEventsType, string>\n}\n\nexport const onBeatDisplayedEvents = () => {\n return Object.values(TEMPLATE_NAMES).reduce(\n (acc, name) => ({\n ...acc,\n [ON_VIEW_EVENT(name)]: {\n action: ANALYTICS_ACTIONS.MICRO_BEAT_DISPLAYED,\n category: ANALYTICS_CATEGORIES.BEAT_INTERACTION,\n label: readableTemplateName(name),\n value: instanceId,\n },\n }),\n {},\n ) as Record<keyof AnalyticsEventsType, string>\n}\n\nexport const onBeatDisplayedForFirstTimeEvents = () => {\n return Object.values(TEMPLATE_NAMES).reduce(\n (acc, name) => ({\n ...acc,\n [ON_VIEW_FIRST_TIME_EVENT(name)]: {\n action: ANALYTICS_ACTIONS.MICRO_BEAT_DISPLAYED_FIRST_TIME,\n category: ANALYTICS_CATEGORIES.BEAT_INTERACTION,\n label: readableTemplateName(name),\n value: instanceId,\n },\n }),\n {},\n ) as Record<keyof AnalyticsEventsType, string>\n}\n\nexport const ANALYTICS_LABELS = {\n CARD: 'Card',\n CAROUSEL_CONTROL: 'Carousel Control',\n MICRO_WIDGET: 'Micro Widget',\n VIEW_MORE: 'View More',\n}\n\nexport const ANALYTICS_CATEGORIES = {\n MICRO_WIDGET_INTERACTION: 'Micro Widget Interaction',\n BEAT_INTERACTION: 'Beat Interaction',\n}\n\nexport const ANALYTICS_CLICK_EVENTS = {\n ON_CAROUSEL_BACK_CLICK: 'onCarouselBackClick',\n ON_CAROUSEL_BACK_SWIPE: 'onCarouselBackSwipe',\n ON_CAROUSEL_FORWARD_CLICK: 'onCarouselForwardClick',\n ON_CAROUSEL_FORWARD_SWIPE: 'onCarouselForwardSwipe',\n ON_NO_RELEVANT_INSIGHTS_CLICKED: 'onNoRelevantInsightsClicked',\n ON_VIEW_MORE_CLICKED: 'onViewMoreClicked',\n}\n\nexport const ANALYTICS_VIEW_EVENTS = {\n ON_VIEW_MORE_VIEWED: 'onViewMoreCardView',\n}\n\nexport const ANALYTICS_ACTIONS = {\n CONTROL_BACKWARD: 'Control Backward',\n CONTROL_FORWARD: 'Control Forward',\n MICRO_BEAT_CLICKED: 'Micro Beat Clicked',\n MICRO_BEAT_DISPLAYED: 'Micro Beat Displayed',\n MICRO_BEAT_DISPLAYED_FIRST_TIME: 'Micro Beat Displayed For First Time',\n SWIPE_BACKWARD: 'Swipe Backward',\n SWIPE_FORWARD: 'Swipe Forward',\n}\n\nexport const ANALYTICS_PAGE_NAMES = {\n MICRO_WIDGET_CAROUSEL: 'Micro Widget Carousel',\n MICRO_WIDGET_CAROUSEL_ZERO_STATE: 'Micro Widget Carousel Zero State',\n MICRO_WIDGET_CAROUSEL_NO_RELEVANT_INSIGHTS: 'Micro Widget Carousel No Relevant Insights',\n}\n\nexport const ANALYTICS_PAGEVIEWS = {\n [ANALYTICS_PAGE_NAMES.MICRO_WIDGET_CAROUSEL]: {\n label: ANALYTICS_LABELS.MICRO_WIDGET,\n name: ANALYTICS_PAGE_NAMES.MICRO_WIDGET_CAROUSEL,\n path: PATHS.INSIGHTS_MICRO_WIDGET,\n value: instanceId,\n },\n // zero state\n [ANALYTICS_PAGE_NAMES.MICRO_WIDGET_CAROUSEL_ZERO_STATE]: {\n label: ANALYTICS_LABELS.MICRO_WIDGET,\n name: ANALYTICS_PAGE_NAMES.MICRO_WIDGET_CAROUSEL_ZERO_STATE,\n path: PATHS.INSIGHTS_MICRO_WIDGET,\n value: instanceId,\n },\n // no relevant cards\n [ANALYTICS_PAGE_NAMES.MICRO_WIDGET_CAROUSEL_NO_RELEVANT_INSIGHTS]: {\n label: ANALYTICS_LABELS.MICRO_WIDGET,\n name: ANALYTICS_PAGE_NAMES.MICRO_WIDGET_CAROUSEL_NO_RELEVANT_INSIGHTS,\n path: '/micro-widget',\n value: instanceId,\n },\n}\n\nexport const ANALYTICS_EVENTS = {\n // carousel control interaction events - clicks and swipes\n [ANALYTICS_CLICK_EVENTS.ON_CAROUSEL_BACK_CLICK]: {\n action: ANALYTICS_ACTIONS.CONTROL_BACKWARD,\n category: ANALYTICS_CATEGORIES.MICRO_WIDGET_INTERACTION,\n label: ANALYTICS_LABELS.CAROUSEL_CONTROL,\n value: instanceId,\n },\n [ANALYTICS_CLICK_EVENTS.ON_CAROUSEL_FORWARD_CLICK]: {\n action: ANALYTICS_ACTIONS.CONTROL_FORWARD,\n category: ANALYTICS_CATEGORIES.MICRO_WIDGET_INTERACTION,\n label: ANALYTICS_LABELS.CAROUSEL_CONTROL,\n value: instanceId,\n },\n [ANALYTICS_CLICK_EVENTS.ON_CAROUSEL_BACK_SWIPE]: {\n action: ANALYTICS_ACTIONS.SWIPE_BACKWARD,\n category: ANALYTICS_CATEGORIES.MICRO_WIDGET_INTERACTION,\n label: ANALYTICS_LABELS.CAROUSEL_CONTROL,\n value: instanceId,\n },\n [ANALYTICS_CLICK_EVENTS.ON_CAROUSEL_FORWARD_SWIPE]: {\n action: ANALYTICS_ACTIONS.SWIPE_FORWARD,\n category: ANALYTICS_CATEGORIES.MICRO_WIDGET_INTERACTION,\n label: ANALYTICS_LABELS.CAROUSEL_CONTROL,\n value: instanceId,\n },\n // read more card events\n [ANALYTICS_CLICK_EVENTS.ON_VIEW_MORE_CLICKED]: {\n action: ANALYTICS_ACTIONS.MICRO_BEAT_CLICKED,\n category: ANALYTICS_CATEGORIES.BEAT_INTERACTION,\n label: ANALYTICS_LABELS.VIEW_MORE,\n value: instanceId,\n },\n [ANALYTICS_VIEW_EVENTS.ON_VIEW_MORE_VIEWED]: {\n action: ANALYTICS_ACTIONS.MICRO_BEAT_DISPLAYED,\n category: ANALYTICS_CATEGORIES.BEAT_INTERACTION,\n label: ANALYTICS_LABELS.VIEW_MORE,\n value: instanceId,\n },\n\n ...onBeatClickedEvents(),\n ...onBeatDisplayedEvents(),\n ...onBeatDisplayedForFirstTimeEvents(),\n}\n\nexport interface AnalyticsEventsObjectType extends BasicAnalyticsEvent {\n value: string\n}\n\nexport type AnalyticsEventsType = {\n [key: string]: AnalyticsEventsObjectType\n}\n","import { analyticsSession } from '../common'\nimport { AnalyticsPageviewObjectType } from '../common/types/Analytics'\n\nimport { ANALYTICS_EVENTS, ANALYTICS_PAGEVIEWS } from './constants/Analytics'\nimport type { AnalyticsEventsObjectType } from './constants/Analytics'\n\nexport type AnalyticSession = Awaited<ReturnType<typeof analyticsSession>>\n\nexport const onAnalyticEvent = async (event: string, session: AnalyticSession) => {\n if (!session || !ANALYTICS_EVENTS[event]) return null\n\n return session\n .sendAnalyticEvent(ANALYTICS_EVENTS[event] as AnalyticsEventsObjectType)\n .then((response) => response)\n .catch((error) => {\n throw error\n })\n}\n\nexport const onAnalyticPageView = async (page: string, session: AnalyticSession) => {\n if (!session || !ANALYTICS_PAGEVIEWS[page]) {\n return null\n }\n\n return session\n .sendAnalyticsPageview(ANALYTICS_PAGEVIEWS[page] as AnalyticsPageviewObjectType)\n .then((response) => response)\n .catch((error) => {\n throw error\n })\n}\n","import { type AnalyticSession, onAnalyticEvent, onAnalyticPageView } from '../analytics'\nimport { BeatApi } from '../../common/api/BeatApi'\nimport type { Beat } from '../../common'\nimport { makeAutoObservable } from 'mobx'\n\nexport interface ErrPromise<TSuccess, TError = unknown> {\n then<TResult1 = TSuccess, TResult2 = never>(\n onfulfilled?: ((value: TSuccess) => TResult1 | PromiseLike<TResult1>) | undefined | null,\n onrejected?: ((reason: TError) => TResult2 | PromiseLike<TResult2>) | undefined | null,\n ): Promise<TResult1 | TResult2>\n catch<TResult = never>(\n onrejected?: ((reason: TError) => TResult | PromiseLike<TResult>) | undefined | null,\n ): Promise<TSuccess | TResult>\n}\n\nexport class InsightsMicroWidgetStore {\n onAnalyticEvent: (\n event: string,\n session: AnalyticSession,\n ) => ErrPromise<string, AnalyticSession> = onAnalyticEvent\n onAnalyticPageView: (\n event: string,\n session: AnalyticSession,\n ) => ErrPromise<string, AnalyticSession> = onAnalyticPageView\n\n beatApi = new BeatApi('/', '')\n\n constructor() {\n makeAutoObservable(this)\n }\n\n initialize = async (endpoint: string, token: string, logOutUser: () => void) => {\n this.onAnalyticEvent = (event: string, session: AnalyticSession): any => {\n onAnalyticEvent(event, session)\n .then((res) => res)\n .catch((err) => {\n if (err.status === 401) {\n logOutUser()\n }\n throw err\n })\n }\n\n this.onAnalyticPageView = (page: string, session: AnalyticSession): any => {\n onAnalyticPageView(page, session)\n .then((res) => res)\n .catch((err) => {\n if (err.status === 401) {\n logOutUser()\n }\n throw err\n })\n }\n\n this.beatApi = new BeatApi(endpoint, token)\n }\n\n updateBeat = async (beat: Beat) => {\n this.beatApi.updateBeat(beat)\n }\n}\n","import { makeAutoObservable, runInAction } from 'mobx'\n\nimport { analyticsSession } from '../../common'\n\nimport { CopyStore } from './CopyStore'\nimport { InsightsMicroWidgetStore } from './InsightsMicroWidgetStore'\n\nimport type { AnalyticSession } from '../analytics'\n\nexport class AppStore {\n copyStore\n endpoint = '/'\n insightsMicroWidgetStore\n session: AnalyticSession | null = null\n token = ''\n\n isInitialized = false\n\n constructor() {\n this.copyStore = new CopyStore()\n this.insightsMicroWidgetStore = new InsightsMicroWidgetStore()\n makeAutoObservable(this)\n }\n\n initialize = async (endpoint: string, token: string, logOutUser: () => void) => {\n await this.copyStore.initialize(endpoint, token)\n await this.insightsMicroWidgetStore.initialize(endpoint, token, logOutUser)\n this.session = await analyticsSession(endpoint, token, '1.0.0', 'Micro Insights Carousel')\n\n runInAction(() => {\n this.isInitialized = true\n })\n }\n}\n","import React from 'react'\n\nimport type { AppStore } from '../stores/AppStore'\n\nexport interface InsightsMicroWidgetContextTypes {\n children: React.ReactNode\n onEvent: (event: string, props?: object) => void\n onPageview: (page: string) => void\n store: AppStore\n}\n\nexport const InsightsMicroWidgetDataContext =\n React.createContext<InsightsMicroWidgetContextTypes | null>(null)\n\nexport const InsightsMicroWidgetDataProvider: React.FC<InsightsMicroWidgetContextTypes> = ({\n onEvent,\n onPageview,\n store,\n children,\n}) => (\n <InsightsMicroWidgetDataContext.Provider value={{ onEvent, onPageview, store, children }}>\n {children}\n </InsightsMicroWidgetDataContext.Provider>\n)\n","import { FC, useEffect, useState } from 'react'\n\nimport { CategoryIcon } from '@kyper/mui'\n\nimport { BeatUIComponent } from '../../types/BeatUIComponent'\nimport { CategoryGuids } from '../../../common'\n\nexport const BeatCategoryIcon: FC<BeatUIComponent> = ({ beat }) => {\n const [categoryGuid, setCategoryGuid] = useState<string>(CategoryGuids.UNCATEGORIZED)\n\n useEffect(() => {\n if (beat.primary_category_guid) {\n setCategoryGuid(beat.primary_category_guid)\n } else if (beat.category_guids?.length) {\n setCategoryGuid(beat.category_guids[0])\n }\n }, [])\n\n return <CategoryIcon categoryGuid={categoryGuid} size={16} sx={{ minWidth: 16 }} />\n}\n","import { FC } from 'react'\nimport { observer } from 'mobx-react-lite'\n\nimport { css } from '@mxenabled/cssinjs'\nimport { useTokens, MerchantLogo } from '@kyper/mui'\n\nimport { BeatUIComponent } from '../../types/BeatUIComponent'\n\nconst BeatMerchantLogo: FC<BeatUIComponent> = ({ beat }) => {\n const tokens = useTokens()\n const styles = getStyles(tokens)\n\n return (\n <MerchantLogo\n categoryGuid={\n beat.primary_category_guid || (beat.category_guids && beat.category_guids[0]) || ''\n }\n className={styles}\n merchantGuid={beat.primary_merchant_guid || beat.merchant_guids[0]}\n size={16}\n />\n )\n}\n\nconst getStyles = (tokens: any) =>\n css({\n marginTop: tokens.Spacing.XTiny,\n '& .kyper-categoryicon': {\n display: 'flex',\n },\n })\n\nexport default observer(BeatMerchantLogo)\n","import React from 'react'\n\ninterface ChartFilledIconProps {\n color?: string\n height?: number\n size?: number\n styles?: object\n viewBox?: string\n width?: number\n}\n\nexport const ChartFilledIcon: React.FC<ChartFilledIconProps> = ({\n color = 'currentColor',\n height,\n size = 16,\n styles,\n viewBox = '0 0 16 16',\n width,\n}) => {\n return (\n <svg\n aria-hidden={true}\n className=\"kyper-icon\"\n focusable={false}\n height={height || size}\n style={styles}\n viewBox={viewBox}\n width={width || size}\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M16 1.5C16 0.671573 15.3284 0 14.5 0H1.5C0.671573 0 0 0.671573 0 1.5V14.5C0 15.3284 0.671573 16 1.5 16H14.5C15.3284 16 16 15.3284 16 14.5V1.5ZM12.8 5.1C13.0209 5.26568 13.0657 5.57909 12.9 5.8L9.90003 9.8C9.71746 10.0434 9.36163 10.0687 9.14648 9.85355L6.55413 7.2612L3.90003 10.8C3.73434 11.0209 3.42094 11.0657 3.20003 10.9C2.97912 10.7343 2.93434 10.4209 3.10003 10.2L6.10003 6.2C6.28259 5.95658 6.63843 5.93129 6.85358 6.14645L9.44593 8.7388L12.1 5.2C12.2657 4.97908 12.5791 4.93431 12.8 5.1Z\"\n fill={color}\n />\n </svg>\n )\n}\n","import { DataSeries } from '../../common'\n\nexport const buildDataSeries = (data: DataSeries | undefined) => {\n if (!data) {\n return []\n }\n\n if (data.data) {\n return data.data.map((d) => {\n const item: any = {}\n\n data.names?.map((name, index) => {\n item[name] = d[index]\n })\n return item\n })\n } else {\n return []\n }\n}\n","import { FC } from 'react'\nimport { Icon, useTokens } from '@kyper/mui'\n\nimport type { BeatUIComponent } from '../../types/BeatUIComponent'\nimport { DataSeries } from '../../../common'\nimport { buildDataSeries } from '../../utils/DataSeries'\n\nexport const getIconColor = (data: DataSeries | undefined, designTokens: any) => {\n const fullDataSeries = buildDataSeries(data)\n const chunkSize = fullDataSeries.length / 2\n\n const spendChunk = fullDataSeries.slice(0, chunkSize)\n const incomeChunk = fullDataSeries.slice(chunkSize)\n\n if (!spendChunk.length || !incomeChunk.length) return designTokens.Color.Primary300\n\n if (spendChunk[0].amount > incomeChunk[0].amount) {\n return designTokens.Color.Error300\n } else if (spendChunk[0].amount < incomeChunk[0].amount) {\n return designTokens.Color.Success300\n }\n\n return designTokens.Color.Primary300\n}\n\nexport const MonthlySpendComparisonIcon: FC<BeatUIComponent> = ({ beat }) => {\n const tokens = useTokens()\n const iconColor = getIconColor(beat.data_series, tokens)\n return <Icon name=\"bar_chart\" sx={{ color: iconColor }} />\n}\n","export const ZeroStateIcon = () => (\n <svg fill=\"none\" height=\"36\" viewBox=\"0 0 40 36\" width=\"40\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n clipRule=\"evenodd\"\n d=\"M24.9618 32.6003H9.92084C9.60559 32.6003 9.34766 32.3424 9.34766 32.0271V18.3125C9.34766 17.9972 9.60559 17.7393 9.92084 17.7393H24.9618C25.2771 17.7393 25.535 17.9972 25.535 18.3125V32.0271C25.535 32.3424 25.2771 32.6003 24.9618 32.6003Z\"\n fill=\"#CDD3DD\"\n fillRule=\"evenodd\"\n />\n <path\n clipRule=\"evenodd\"\n d=\"M25.535 18.3124V19.5952H9.34766V18.3124C9.34766 17.9974 9.6055 17.7393 9.92084 17.7393H24.9618C25.2771 17.7393 25.535 17.9974 25.535 18.3124Z\"\n fill=\"#E8F6FF\"\n fillRule=\"evenodd\"\n />\n <path\n clipRule=\"evenodd\"\n d=\"M10.8689 18.7157C10.8689 18.96 10.6709 19.158 10.4266 19.158C10.1824 19.158 9.98438 18.96 9.98438 18.7157C9.98438 18.4714 10.1824 18.2734 10.4266 18.2734C10.6709 18.2734 10.8689 18.4714 10.8689 18.7157Z\"\n fill=\"#C3E4FF\"\n fillRule=\"evenodd\"\n />\n <path\n clipRule=\"evenodd\"\n d=\"M12.2986 18.7157C12.2986 18.96 12.1006 19.158 11.8563 19.158C11.6121 19.158 11.4141 18.96 11.4141 18.7157C11.4141 18.4714 11.6121 18.2734 11.8563 18.2734C12.1006 18.2734 12.2986 18.4714 12.2986 18.7157Z\"\n fill=\"#C3E4FF\"\n fillRule=\"evenodd\"\n />\n <path\n clipRule=\"evenodd\"\n d=\"M13.7263 18.7157C13.7263 18.96 13.5283 19.158 13.2841 19.158C13.0398 19.158 12.8418 18.96 12.8418 18.7157C12.8418 18.4714 13.0398 18.2734 13.2841 18.2734C13.5283 18.2734 13.7263 18.4714 13.7263 18.7157Z\"\n fill=\"#C3E4FF\"\n fillRule=\"evenodd\"\n />\n <path\n clipRule=\"evenodd\"\n d=\"M26.7313 35.6692H11.6904C11.3751 35.6692 11.1172 35.4112 11.1172 35.096V21.3813C11.1172 21.0661 11.3751 20.8081 11.6904 20.8081H26.7313C27.0466 20.8081 27.3045 21.0661 27.3045 21.3813V35.096C27.3045 35.4112 27.0466 35.6692 26.7313 35.6692Z\"\n fill=\"#E4E8EE\"\n fillRule=\"evenodd\"\n />\n <path\n clipRule=\"evenodd\"\n d=\"M27.3045 21.3813V22.6641H11.1172V21.3813C11.1172 21.0662 11.375 20.8081 11.6904 20.8081H26.7313C27.0467 20.8081 27.3045 21.0662 27.3045 21.3813Z\"\n fill=\"#E8F6FF\"\n fillRule=\"evenodd\"\n />\n <path\n clipRule=\"evenodd\"\n d=\"M12.6404 21.7846C12.6404 22.0288 12.4424 22.2268 12.1981 22.2268C11.9539 22.2268 11.7559 22.0288 11.7559 21.7846C11.7559 21.5403 11.9539 21.3423 12.1981 21.3423C12.4424 21.3423 12.6404 21.5403 12.6404 21.7846Z\"\n fill=\"#C3E4FF\"\n fillRule=\"evenodd\"\n />\n <path\n clipRule=\"evenodd\"\n d=\"M14.0701 21.7846C14.0701 22.0288 13.8721 22.2268 13.6278 22.2268C13.3836 22.2268 13.1855 22.0288 13.1855 21.7846C13.1855 21.5403 13.3836 21.3423 13.6278 21.3423C13.8721 21.3423 14.0701 21.5403 14.0701 21.7846Z\"\n fill=\"#C3E4FF\"\n fillRule=\"evenodd\"\n />\n <path\n clipRule=\"evenodd\"\n d=\"M15.4959 21.7846C15.4959 22.0288 15.2979 22.2268 15.0536 22.2268C14.8094 22.2268 14.6113 22.0288 14.6113 21.7846C14.6113 21.5403 14.8094 21.3423 15.0536 21.3423C15.2979 21.3423 15.4959 21.5403 15.4959 21.7846Z\"\n fill=\"#C3E4FF\"\n fillRule=\"evenodd\"\n />\n <path\n clipRule=\"evenodd\"\n d=\"M38.0145 25.175H22.9736C22.6584 25.175 22.4004 24.9171 22.4004 24.6018V10.8871C22.4004 10.5719 22.6584 10.314 22.9736 10.314H38.0145C38.3298 10.314 38.5878 10.5719 38.5878 10.8871V24.6018C38.5878 24.9171 38.3298 25.175 38.0145 25.175Z\"\n fill=\"#EEF1F6\"\n fillRule=\"evenodd\"\n />\n <mask height=\"3\" id=\"mask0_1565_98011\" maskUnits=\"userSpaceOnUse\" width=\"17\" x=\"22\" y=\"10\">\n <path\n clipRule=\"evenodd\"\n d=\"M22.4004 10.3022H38.5878V12.1582H22.4004V10.3022Z\"\n fill=\"white\"\n fillRule=\"evenodd\"\n />\n </mask>\n <g mask=\"url(#mask0_1565_98011)\">\n <path\n clipRule=\"evenodd\"\n d=\"M38.5878 10.8754V12.1582H22.4004V10.8754C22.4004 10.5604 22.6582 10.3022 22.9736 10.3022H38.0146C38.3299 10.3022 38.5878 10.5604 38.5878 10.8754Z\"\n fill=\"#CDD3DD\"\n fillRule=\"evenodd\"\n />\n </g>\n <path\n clipRule=\"evenodd\"\n d=\"M23.9099 11.2802C23.9099 11.5244 23.7119 11.7224 23.4677 11.7224C23.2234 11.7224 23.0254 11.5244 23.0254 11.2802C23.0254 11.0359 23.2234 10.8379 23.4677 10.8379C23.7119 10.8379 23.9099 11.0359 23.9099 11.2802Z\"\n fill=\"#C3E4FF\"\n fillRule=\"evenodd\"\n />\n <path\n clipRule=\"evenodd\"\n d=\"M25.3377 11.2802C25.3377 11.5244 25.1397 11.7224 24.8954 11.7224C24.6511 11.7224 24.4531 11.5244 24.4531 11.2802C24.4531 11.0359 24.6511 10.8379 24.8954 10.8379C25.1397 10.8379 25.3377 11.0359 25.3377 11.2802Z\"\n fill=\"#C3E4FF\"\n fillRule=\"evenodd\"\n />\n <path\n clipRule=\"evenodd\"\n d=\"M26.7654 11.2802C26.7654 11.5244 26.5674 11.7224 26.3231 11.7224C26.0789 11.7224 25.8809 11.5244 25.8809 11.2802C25.8809 11.0359 26.0789 10.8379 26.3231 10.8379C26.5674 10.8379 26.7654 11.0359 26.7654 11.2802Z\"\n fill=\"#C3E4FF\"\n fillRule=\"evenodd\"\n />\n <path\n clipRule=\"evenodd\"\n d=\"M29.1719 27.6866H32.7022V27.0142H29.1719V27.6866Z\"\n fill=\"#C3E4FF\"\n fillRule=\"evenodd\"\n />\n <path\n clipRule=\"evenodd\"\n d=\"M29.1719 28.6871H39.2264V28.3726H29.1719V28.6871Z\"\n fill=\"#EEF1F6\"\n fillRule=\"evenodd\"\n />\n <path\n clipRule=\"evenodd\"\n d=\"M29.1719 30.5064H39.5626V30.1919H29.1719V30.5064Z\"\n fill=\"#EEF1F6\"\n fillRule=\"evenodd\"\n />\n <path\n clipRule=\"evenodd\"\n d=\"M29.1719 31.4156H40.0029V31.1011H29.1719V31.4156Z\"\n fill=\"#EEF1F6\"\n fillRule=\"evenodd\"\n />\n <path\n clipRule=\"evenodd\"\n d=\"M29.1719 32.3253H35.7521V32.0107H29.1719V32.3253Z\"\n fill=\"#EEF1F6\"\n fillRule=\"evenodd\"\n />\n <path\n clipRule=\"evenodd\"\n d=\"M29.1719 29.5953H40.0029V29.2808H29.1719V29.5953Z\"\n fill=\"#EEF1F6\"\n fillRule=\"evenodd\"\n />\n <path\n clipRule=\"evenodd\"\n d=\"M9.98438 11.9322H13.1338V11.2598H9.98438V11.9322Z\"\n fill=\"#C3E4FF\"\n fillRule=\"evenodd\"\n />\n <path\n clipRule=\"evenodd\"\n d=\"M9.98438 12.9327H18.954V12.6182H9.98438V12.9327Z\"\n fill=\"#D6EEFF\"\n fillRule=\"evenodd\"\n />\n <path\n clipRule=\"evenodd\"\n d=\"M9.98438 14.7506H19.254V14.436H9.98438V14.7506Z\"\n fill=\"#D6EEFF\"\n fillRule=\"evenodd\"\n />\n <path\n clipRule=\"evenodd\"\n d=\"M9.98438 15.6602H16.8127V15.3457H9.98438V15.6602Z\"\n fill=\"#D6EEFF\"\n fillRule=\"evenodd\"\n />\n <path\n clipRule=\"evenodd\"\n d=\"M9.98438 13.8409H19.6468V13.5264H9.98438V13.8409Z\"\n fill=\"#D6EEFF\"\n fillRule=\"evenodd\"\n />\n <g filter=\"url(#filter0_d_1565_98011)\">\n <mask height=\"22\" id=\"mask1_1565_98011\" maskUnits=\"userSpaceOnUse\" width=\"17\" x=\"16\" y=\"12\">\n <path\n clipRule=\"evenodd\"\n d=\"M16.5098 12.2725H32.8412V33.707H16.5098V12.2725Z\"\n fill=\"white\"\n fillRule=\"evenodd\"\n />\n </mask>\n <g mask=\"url(#mask1_1565_98011)\">\n <path\n clipRule=\"evenodd\"\n d=\"M32.3427 33.707H17.0083C16.7341 33.707 16.5098 33.4827 16.5098 33.2086V12.7709C16.5098 12.4968 16.7341 12.2725 17.0083 12.2725H32.3427C32.6169 12.2725 32.8412 12.4968 32.8412 12.7709V33.2086C32.8412 33.4827 32.6169 33.707 32.3427 33.707Z\"\n fill=\"white\"\n fillRule=\"evenodd\"\n />\n </g>\n <path\n clipRule=\"evenodd\"\n d=\"M20.875 21.5786H31.134V21.1816H20.875V21.5786Z\"\n fill=\"#E4E8EE\"\n fillRule=\"evenodd\"\n />\n <path\n clipRule=\"evenodd\"\n d=\"M20.875 22.4077H28.1023V22.0107H20.875V22.4077Z\"\n fill=\"#E4E8EE\"\n fillRule=\"evenodd\"\n />\n <path\n clipRule=\"evenodd\"\n d=\"M20.875 31.8461H27.8799V31.3003H20.875V31.8461Z\"\n fill=\"#E4E8EE\"\n fillRule=\"evenodd\"\n />\n <path\n clipRule=\"evenodd\"\n d=\"M18.7308 22.7869C18.1849 22.7869 17.7383 22.3404 17.7383 21.7946C17.7383 21.2488 18.1849 20.8022 18.7308 20.8022C19.2767 20.8022 19.7233 21.2488 19.7233 21.7946C19.7233 22.3404 19.2767 22.7869 18.7308 22.7869Z\"\n fill=\"#E4E8EE\"\n fillRule=\"evenodd\"\n stroke=\"#E4E8EE\"\n strokeWidth=\"0.176004\"\n />\n <path\n clipRule=\"evenodd\"\n d=\"M18.7308 29.3841C18.1849 29.3841 17.7383 28.9375 17.7383 28.3917C17.7383 27.8459 18.1849 27.3994 18.7308 27.3994C19.2767 27.3994 19.7233 27.8459 19.7233 28.3917C19.7233 28.9375 19.2767 29.3841 18.7308 29.3841Z\"\n fill=\"#E4E8EE\"\n fillRule=\"evenodd\"\n stroke=\"#E4E8EE\"\n strokeWidth=\"0.176004\"\n />\n <path\n clipRule=\"evenodd\"\n d=\"M18.7308 26.0862C18.1849 26.0862 17.7383 25.6397 17.7383 25.0939C17.7383 24.5481 18.1849 24.1016 18.7308 24.1016C19.2767 24.1016 19.7233 24.5481 19.7233 25.0939C19.7233 25.6397 19.2767 26.0862 18.7308 26.0862Z\"\n fill=\"#E4E8EE\"\n fillRule=\"evenodd\"\n stroke=\"#E4E8EE\"\n strokeWidth=\"0.176004\"\n />\n <path\n clipRule=\"evenodd\"\n d=\"M20.875 24.8764H31.134V24.4795H20.875V24.8764Z\"\n fill=\"#E4E8EE\"\n fillRule=\"evenodd\"\n />\n <path\n clipRule=\"evenodd\"\n d=\"M20.875 25.707H28.1023V25.3101H20.875V25.707Z\"\n fill=\"#E4E8EE\"\n fillRule=\"evenodd\"\n />\n <path\n clipRule=\"evenodd\"\n d=\"M20.875 28.1758H31.134V27.7788H20.875V28.1758Z\"\n fill=\"#E4E8EE\"\n fillRule=\"evenodd\"\n />\n <path\n clipRule=\"evenodd\"\n d=\"M20.875 29.0049H28.1023V28.6079H20.875V29.0049Z\"\n fill=\"#E4E8EE\"\n fillRule=\"evenodd\"\n />\n <path\n clipRule=\"evenodd\"\n d=\"M17.7383 18.0811L18.4668 18.657L19.758 17.1641\"\n fill=\"#E4E8EE\"\n fillRule=\"evenodd\"\n />\n <path\n d=\"M17.7383 18.0811L18.4668 18.657L19.758 17.1641\"\n stroke=\"#E4E8EE\"\n strokeWidth=\"0.264005\"\n />\n <path\n clipRule=\"evenodd\"\n d=\"M17.7383 14.7823L18.4668 15.3582L19.758 13.8652\"\n fill=\"#E4E8EE\"\n fillRule=\"evenodd\"\n />\n <path\n d=\"M17.7383 14.7823L18.4668 15.3582L19.758 13.8652\"\n stroke=\"#E4E8EE\"\n strokeWidth=\"0.264005\"\n />\n <path\n clipRule=\"evenodd\"\n d=\"M20.875 14.3389H31.134V13.8369H20.875V14.3389Z\"\n fill=\"#E4E8EE\"\n fillRule=\"evenodd\"\n />\n <path\n clipRule=\"evenodd\"\n d=\"M20.875 15.3878H28.1023V14.8857H20.875V15.3878Z\"\n fill=\"#E4E8EE\"\n fillRule=\"evenodd\"\n />\n <path\n clipRule=\"evenodd\"\n d=\"M20.4648 14.0869H31.545H20.4648Z\"\n fill=\"#E4E8EE\"\n fillRule=\"evenodd\"\n />\n <path d=\"M20.4648 14.0869H31.545\" stroke=\"#E4E8EE\" strokeWidth=\"0.0880018\" />\n <path\n clipRule=\"evenodd\"\n d=\"M20.4648 15.1372H28.4939H20.4648Z\"\n fill=\"#E4E8EE\"\n fillRule=\"evenodd\"\n />\n <path d=\"M20.4648 15.1372H28.4939\" stroke=\"#E4E8EE\" strokeWidth=\"0.0880018\" />\n <path\n clipRule=\"evenodd\"\n d=\"M20.875 17.6368H31.134V17.1348H20.875V17.6368Z\"\n fill=\"#E4E8EE\"\n fillRule=\"evenodd\"\n />\n <path\n clipRule=\"evenodd\"\n d=\"M20.875 18.6861H28.1023V18.1841H20.875V18.6861Z\"\n fill=\"#E4E8EE\"\n fillRule=\"evenodd\"\n />\n <path\n clipRule=\"evenodd\"\n d=\"M20.4648 17.3858H31.545H20.4648Z\"\n fill=\"#E4E8EE\"\n fillRule=\"evenodd\"\n />\n <path d=\"M20.4648 17.3858H31.545\" stroke=\"#E4E8EE\" strokeWidth=\"0.0880018\" />\n <path\n clipRule=\"evenodd\"\n d=\"M20.4648 18.4356H28.4939H20.4648Z\"\n fill=\"#E4E8EE\"\n fillRule=\"evenodd\"\n />\n <path d=\"M20.4648 18.4356H28.4939\" stroke=\"#E4E8EE\" strokeWidth=\"0.0880018\" />\n <path\n clipRule=\"evenodd\"\n d=\"M18.2832 19.8984H31.0117H18.2832Z\"\n fill=\"#E4E8EE\"\n fillRule=\"evenodd\"\n />\n <path d=\"M18.2832 19.8984H31.0117\" stroke=\"#E4E8EE\" strokeWidth=\"0.0880018\" />\n <path\n clipRule=\"evenodd\"\n d=\"M18.7295 30.8101V32.3377V30.8101Z\"\n fill=\"#E4E8EE\"\n fillRule=\"evenodd\"\n />\n <path d=\"M18.7295 30.8101V32.3377\" stroke=\"#E4E8EE\" strokeWidth=\"0.264005\" />\n <path\n clipRule=\"evenodd\"\n d=\"M17.9668 31.5737H19.4947H17.9668Z\"\n fill=\"#E4E8EE\"\n fillRule=\"evenodd\"\n />\n <path d=\"M17.9668 31.5737H19.4947\" stroke=\"#E4E8EE\" strokeWidth=\"0.264005\" />\n </g>\n <g filter=\"url(#filter1_d_1565_98011)\">\n <circle cx=\"15.0441\" cy=\"16.0441\" fill=\"#CDD3DD\" r=\"15.0441\" />\n <mask height=\"30\" id=\"mask2_1565_98011\" maskUnits=\"userSpaceOnUse\" width=\"30\" x=\"0\" y=\"1\">\n <circle cx=\"15.0435\" cy=\"16.0445\" fill=\"#F8F9FB\" r=\"14.3951\" />\n </mask>\n <g mask=\"url(#mask2_1565_98011)\">\n <rect fill=\"white\" height=\"31.1359\" transform=\"translate(0 0.162598)\" width=\"31.0101\" />\n <rect fill=\"#A8B1BD\" height=\"3.0172\" rx=\"0.167622\" width=\"3.0172\" x=\"3.26953\" y=\"4.52002\" />\n <rect fill=\"#A8B1BD\" height=\"3.0172\" rx=\"0.167622\" width=\"3.0172\" x=\"3.26953\" y=\"17.1758\" />\n <rect fill=\"#A8B1BD\" height=\"3.0172\" rx=\"0.167622\" width=\"3.0172\" x=\"3.26953\" y=\"26.0186\" />\n <rect fill=\"#A8B1BD\" height=\"3.0172\" rx=\"0.167622\" width=\"3.0172\" x=\"3.26953\" y=\"9.04541\" />\n <rect\n fill=\"#CDD3DD\"\n height=\"1.17336\"\n rx=\"0.167622\"\n width=\"10.9793\"\n x=\"6.87305\"\n y=\"4.52002\"\n />\n <rect\n fill=\"#CDD3DD\"\n height=\"1.17336\"\n rx=\"0.167622\"\n width=\"10.9793\"\n x=\"6.87305\"\n y=\"17.1758\"\n />\n <rect\n fill=\"#CDD3DD\"\n height=\"1.17336\"\n rx=\"0.167622\"\n width=\"10.9793\"\n x=\"6.87305\"\n y=\"26.0186\"\n />\n <rect\n fill=\"#CDD3DD\"\n height=\"1.17336\"\n rx=\"0.167622\"\n width=\"10.9793\"\n x=\"6.87305\"\n y=\"9.04541\"\n />\n <rect\n fill=\"#EEF1F6\"\n height=\"0.880018\"\n rx=\"0.167622\"\n width=\"10.9793\"\n x=\"3.26953\"\n y=\"2.34131\"\n />\n <rect\n fill=\"#EEF1F6\"\n height=\"0.880018\"\n rx=\"0.167622\"\n width=\"10.9793\"\n x=\"3.26953\"\n y=\"14.9971\"\n />\n <rect\n fill=\"#EEF1F6\"\n height=\"0.880018\"\n rx=\"0.167622\"\n width=\"10.9793\"\n x=\"3.26953\"\n y=\"23.8389\"\n />\n <rect\n fill=\"#EEF1F6\"\n height=\"1.17336\"\n rx=\"0.167622\"\n width=\"8.50684\"\n x=\"6.87305\"\n y=\"6.36377\"\n />\n <rect\n fill=\"#EEF1F6\"\n height=\"1.17336\"\n rx=\"0.167622\"\n width=\"8.50684\"\n x=\"6.87305\"\n y=\"19.0195\"\n />\n <rect\n fill=\"#EEF1F6\"\n height=\"1.17336\"\n rx=\"0.167622\"\n width=\"8.50684\"\n x=\"6.87305\"\n y=\"27.8613\"\n />\n <rect\n fill=\"#EEF1F6\"\n height=\"1.17336\"\n rx=\"0.167622\"\n width=\"8.50684\"\n x=\"6.87305\"\n y=\"10.8892\"\n />\n <rect\n fill=\"#A8B1BD\"\n height=\"1.17336\"\n rx=\"0.167622\"\n width=\"5.15439\"\n x=\"21.666\"\n y=\"5.44238\"\n />\n <rect\n fill=\"#A8B1BD\"\n height=\"1.17336\"\n rx=\"0.167622\"\n width=\"5.15439\"\n x=\"21.666\"\n y=\"18.0972\"\n />\n <rect\n fill=\"#A8B1BD\"\n height=\"1.17336\"\n rx=\"0.167622\"\n width=\"5.15439\"\n x=\"21.666\"\n y=\"26.9399\"\n />\n <rect\n fill=\"#A8B1BD\"\n height=\"1.17336\"\n rx=\"0.167622\"\n width=\"5.15439\"\n x=\"21.666\"\n y=\"9.96826\"\n />\n <path d=\"M2.64062 8.25H27.4487\" stroke=\"#E4E8EE\" strokeWidth=\"0.0838112\" />\n <path d=\"M2.64062 20.9058H27.4487\" stroke=\"#E4E8EE\" strokeWidth=\"0.0838112\" />\n <path d=\"M2.64062 29.7476H27.4487\" stroke=\"#E4E8EE\" strokeWidth=\"0.0838112\" />\n <path d=\"M2.64062 12.7759H27.4487\" stroke=\"#E4E8EE\" strokeWidth=\"0.0838112\" />\n <path d=\"M2.64062 3.72412H27.4487\" stroke=\"#E4E8EE\" strokeWidth=\"0.0838112\" />\n <path d=\"M2.64062 16.3799H27.4487\" stroke=\"#E4E8EE\" strokeWidth=\"0.0838112\" />\n <path d=\"M2.64062 25.2217H27.4487\" stroke=\"#E4E8EE\" strokeWidth=\"0.0838112\" />\n <path d=\"M2.64062 8.25H27.4487\" stroke=\"#E4E8EE\" strokeWidth=\"0.0838112\" />\n <path d=\"M2.64062 20.9058H27.4487\" stroke=\"#E4E8EE\" strokeWidth=\"0.0838112\" />\n <path d=\"M2.64062 29.7476H27.4487\" stroke=\"#E4E8EE\" strokeWidth=\"0.0838112\" />\n </g>\n </g>\n <path\n d=\"M24.1888 27.3166L24.4326 27.0728L25.6395 27.8404L32.2915 34.4924C32.4911 34.6919 32.4911 35.0154 32.2915 35.215C32.092 35.4145 31.7685 35.4145 31.569 35.215L24.9487 28.5947L24.1888 27.3166Z\"\n fill=\"#CDD3DD\"\n />\n <defs>\n <filter\n colorInterpolationFilters=\"sRGB\"\n filterUnits=\"userSpaceOnUse\"\n height=\"22.1051\"\n id=\"filter0_d_1565_98011\"\n width=\"17.0025\"\n x=\"16.1745\"\n y=\"12.0629\"\n >\n <feFlood floodOpacity=\"0\" result=\"BackgroundImageFix\" />\n <feColorMatrix\n in=\"SourceAlpha\"\n result=\"hardAlpha\"\n type=\"matrix\"\n values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\"\n />\n <feOffset dy=\"0.125717\" />\n <feGaussianBlur stdDeviation=\"0.167622\" />\n <feColorMatrix\n type=\"matrix\"\n values=\"0 0 0 0 0.341176 0 0 0 0 0.4 0 0 0 0 0.458824 0 0 0 0.15 0\"\n />\n <feBlend in2=\"BackgroundImageFix\" mode=\"normal\" result=\"effect1_dropShadow_1565_98011\" />\n <feBlend\n in=\"SourceGraphic\"\n in2=\"effect1_dropShadow_1565_98011\"\n mode=\"normal\"\n result=\"shape\"\n />\n </filter>\n <filter\n colorInterpolationFilters=\"sRGB\"\n filterUnits=\"userSpaceOnUse\"\n height=\"31.7646\"\n id=\"filter1_d_1565_98011\"\n width=\"31.7641\"\n x=\"-0.838112\"\n y=\"0.580944\"\n >\n <feFlood floodOpacity=\"0\" result=\"BackgroundImageFix\" />\n <feColorMatrix\n in=\"SourceAlpha\"\n result=\"hardAlpha\"\n type=\"matrix\"\n values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\"\n />\n <feOffset dy=\"0.419056\" />\n <feGaussianBlur stdDeviation=\"0.419056\" />\n <feColorMatrix\n type=\"matrix\"\n values=\"0 0 0 0 0.341176 0 0 0 0 0.4 0 0 0 0 0.458824 0 0 0 0.16 0\"\n />\n <feBlend in2=\"BackgroundImageFix\" mode=\"normal\" result=\"effect1_dropShadow_1565_98011\" />\n <feBlend\n in=\"SourceGraphic\"\n in2=\"effect1_dropShadow_1565_98011\"\n mode=\"normal\"\n result=\"shape\"\n />\n </filter>\n </defs>\n </svg>\n)\n","import React from 'react'\n\nimport { Icon } from '@kyper/mui'\nimport useTheme from '@mui/material/styles/useTheme'\n\nimport { clientColorSchemeProps } from '../..'\n\nimport { BeatCategoryIcon, BeatMerchantLogo, MonthlySpendComparisonIcon } from '.'\n\nimport { Beat } from '../../../common'\n\nexport interface BeatIconProps {\n beat?: Beat\n clientColorScheme?: clientColorSchemeProps\n color?: string | null\n type?: number | null\n}\n\nexport const BeatIcon: React.FC<BeatIconProps> = ({ beat, clientColorScheme, color, type }) => {\n const theme = useTheme()\n\n const primaryColor = clientColorScheme?.primary_300\n ? clientColorScheme.primary_300\n : theme.palette.primary.main\n\n if (type === 0)\n return <Icon fill={true} name=\"error\" sx={{ color: color ? color : primaryColor }} /> // This is the attention icon\n\n if (type === 1 && beat) return <BeatCategoryIcon beat={beat} />\n\n if (type === 2 && beat) return <BeatMerchantLogo beat={beat} />\n\n if (type === 3 && beat) return <MonthlySpendComparisonIcon beat={beat} />\n\n // This is for the default and type 4 logo\n return (\n <Icon\n fill={true}\n name=\"info\"\n sx={{\n color: primaryColor,\n }}\n />\n )\n}\n","export const SUPPORTED_CAROUSEL_HEIGHTS: any = {\n LARGE: 180,\n STANDARD: 154,\n XLARGE: 200,\n XXLARGE: 248,\n}\n\nexport const CAROUSEL_FONT_STYLES: any = {\n LARGE: {\n DESCRIPTION: 15,\n DESCRIPTION_LINE_CLAMP: 2,\n DESCRIPTION_LINE_HEIGHT: 20,\n TITLE: 15,\n TITLE_LINE_CLAMP: 1,\n TITLE_LINE_HEIGHT: 20,\n LINK_ICON_HEIGHT: 11,\n LINK_ICON_WIDTH: 6,\n },\n STANDARD: {\n DESCRIPTION: 14,\n DESCRIPTION_LINE_CLAMP: 2,\n DESCRIPTION_LINE_HEIGHT: 19,\n TITLE: 14,\n TITLE_LINE_CLAMP: 2,\n TITLE_LINE_HEIGHT: 19,\n LINK_ICON_HEIGHT: 11,\n LINK_ICON_WIDTH: 6,\n },\n XLARGE: {\n DESCRIPTION: 17,\n DESCRIPTION_LINE_CLAMP: 2,\n DESCRIPTION_LINE_HEIGHT: 24,\n TITLE: 19,\n TITLE_LINE_CLAMP: 2,\n TITLE_LINE_HEIGHT: 24,\n LINK_ICON_HEIGHT: 24,\n LINK_ICON_WIDTH: 24,\n },\n XXLARGE: {\n DESCRIPTION: 19,\n DESCRIPTION_LINE_CLAMP: 3,\n DESCRIPTION_LINE_HEIGHT: 24,\n TITLE: 21,\n TITLE_LINE_CLAMP: 2,\n TITLE_LINE_HEIGHT: 28,\n LINK_ICON_HEIGHT: 24,\n LINK_ICON_WIDTH: 24,\n },\n}\n\nexport const MINIMUM_SWIPE_DISTANCE = 50\n\nexport const VIEW_THRESHOLD = 1 // card is 100% in view\n","import React from 'react'\n\nimport { InsightsMicroWidgetDataContext } from './InsightsMicroWidgetDataProvider'\n\nexport const useDataContext = () => {\n const context = React.useContext(InsightsMicroWidgetDataContext)\n\n if (!context) {\n throw new Error('useDataContext() must be used within the InsightsMicroWidgetDataProvider')\n }\n\n return context\n}\n\nexport const useStore = () => {\n const context = React.useContext(InsightsMicroWidgetDataContext)\n\n if (!context) {\n throw new Error('useStore() must be used within the InsightsMicroWidgetDataProvider')\n }\n\n return context.store\n}\n\nexport const useCopyStore = () => {\n const context = React.useContext(InsightsMicroWidgetDataContext)\n\n if (!context) {\n throw new Error('useCopyStore() must be used within the InsightsMicroWidgetDataProvider')\n }\n\n return context.store.copyStore\n}\n\nexport const useInsightsMicroWidgetStore = () => {\n const context = React.useContext(InsightsMicroWidgetDataContext)\n\n if (!context?.store?.insightsMicroWidgetStore) {\n throw new Error(\n 'useInsightsMicroWidgetStore() must be used within the InsightsMicroWidgetDataProvider',\n )\n }\n\n return context.store.insightsMicroWidgetStore\n}\n\nexport const useEvent = () => {\n const context = React.useContext(InsightsMicroWidgetDataContext)\n\n if (!context) {\n throw new Error('useEvent() must be used within the InsightsMicroWidgetDataProvider')\n }\n\n return { onEvent: context.onEvent }\n}\n\nexport const usePageview = () => {\n const context = React.useContext(InsightsMicroWidgetDataContext)\n\n if (!context) {\n throw new Error('usePageview() must be used within the InsightsMicroWidgetDataProvider')\n }\n\n return { onPageview: context.onPageview }\n}","import React, { useEffect } from 'react'\nimport { useInView } from 'react-intersection-observer'\n\nimport { MicroWidgetProps, MicroInsightCard } from '../../'\nimport { BeatIcon } from '../beaticons'\n\nimport { Beat } from '../../../common'\n\nimport { ON_CLICK_EVENT, ON_VIEW_EVENT, ON_VIEW_FIRST_TIME_EVENT } from '../../constants/Analytics'\nimport { VIEW_THRESHOLD } from '../../constants/App'\n\nimport { useCopyStore, useEvent, useInsightsMicroWidgetStore } from '../../context/hooks'\n\ndeclare const window: Window &\n typeof globalThis & {\n app: any\n }\n\nexport interface BeatCardProps extends MicroWidgetProps {\n backgroundColor?: string\n beat: Beat\n index?: number\n variant?: 'elevation' | 'outlined'\n}\n\nexport const BeatCard: React.FC<BeatCardProps> = ({\n ariaLabel,\n backgroundColor,\n beat,\n clientColorScheme,\n showCTAColocatedWithText = true,\n heightOverrides,\n index,\n isActiveCard,\n onCardClick,\n posthog,\n showIcon,\n variant,\n widthOverrides,\n}) => {\n const clientGuid = window.app?.config.client_guid\n\n const { ref, inView }: { ref: any; inView: any } = useInView({\n threshold: VIEW_THRESHOLD,\n })\n\n // *************** Context functions *********************\n const { cardsCopy } = useCopyStore()\n const { onEvent } = useEvent()\n const { updateBeat } = useInsightsMicroWidgetStore()\n\n // ************** Use Effects Hooks **********************\n useEffect(() => {\n if (inView) {\n if (!beat.has_been_displayed) {\n updateBeat({\n ...beat,\n has_been_displayed: true,\n })\n onEvent(ON_VIEW_FIRST_TIME_EVENT(beat.template))\n } else {\n onEvent(ON_VIEW_EVENT(beat.template))\n }\n }\n }, [inView])\n useEffect(() => {\n if (posthog?.capture && inView && beat && clientGuid) {\n posthog.capture('micro_widget_viewed_insight', {\n beat_guid: beat.guid,\n insight_template: beat.template,\n position: index,\n $groups: { client: clientGuid },\n })\n }\n }, [beat, clientGuid, posthog, index, inView])\n\n // *************** Click handlers ************************\n const handleClick = () => {\n /* eslint-disable no-unused-expressions */\n onCardClick && onCardClick(beat)\n onEvent(ON_CLICK_EVENT(beat.template))\n if (posthog?.capture && clientGuid) {\n posthog.capture('micro_widget_clicked_insight', {\n beat_guid: beat.guid,\n insight_template: beat.template,\n position: index,\n $groups: { client: clientGuid },\n })\n }\n }\n\n return (\n <MicroInsightCard\n actionText={beat.micro_call_to_action || cardsCopy.micro_card_cta}\n ariaLabel={ariaLabel}\n backgroundColor={backgroundColor}\n description={\n beat?.html_micro_description && beat?.html_micro_description.length > 0\n ? beat.html_micro_description\n : beat.html_description\n }\n fontColors={{ buttonColor: clientColorScheme?.primary_300 }}\n heightOverrides={heightOverrides}\n icon={\n BeatIcon && (\n <BeatIcon\n beat={beat}\n clientColorScheme={clientColorScheme}\n color={beat?.icon_color}\n type={beat?.icon_type}\n />\n )\n }\n isActiveCard={isActiveCard}\n onCardClick={handleClick}\n ref={ref}\n showCTAColocatedWithText={showCTAColocatedWithText}\n showIcon={showIcon}\n title={beat.micro_title && beat.micro_title.length > 0 ? beat.micro_title : beat.title}\n variant={variant}\n widthOverrides={widthOverrides}\n />\n )\n}\n","import React from 'react'\n\nimport { css } from '@mxenabled/cssinjs'\n\nimport Box from '@mui/material/Box'\nimport IconButton from '@mui/material/IconButton'\nimport ChevronLeft from '@mui/icons-material/ChevronLeft'\nimport ChevronRight from '@mui/icons-material/ChevronRight'\n\nimport { clientColorSchemeProps } from '../../'\n\nimport { useCopyStore } from '../../context/hooks'\n\nexport interface CarouselControlsProps {\n clientColorScheme?: clientColorSchemeProps\n currentBeatIndex: number\n numBeats: number\n onNextClick: () => void\n onPreviousClick: () => void\n scrollRightBoundary: number\n scrollX: number\n}\n\nexport const CarouselControls: React.FC<CarouselControlsProps> = ({\n clientColorScheme,\n currentBeatIndex,\n numBeats,\n onNextClick,\n onPreviousClick,\n scrollRightBoundary,\n scrollX,\n}) => {\n const styles = getStyles()\n\n // *************** Context functions *********************\n const { carouselCopy: copy } = useCopyStore()\n\n const disabledLeft = Math.floor(scrollX) > scrollRightBoundary || currentBeatIndex === 0\n const disabledRight = scrollX < 0 || numBeats - 1 === currentBeatIndex\n\n const DISABLED_ICON_COLOR = '#BBBCBC'\n const ICON_COLOR = clientColorScheme?.primary_300 ? clientColorScheme?.primary_300 : '#2D64EF'\n\n return (\n <Box className={styles}>\n <IconButton\n aria-label={copy.previous_insight_cta_aria}\n disabled={disabledLeft}\n onClick={onPreviousClick}\n >\n <ChevronLeft\n style={{\n color: disabledLeft ? DISABLED_ICON_COLOR : ICON_COLOR,\n }}\n />\n </IconButton>\n {Array.from({ length: numBeats }).map((_, i) => (\n <div\n className=\"mx-insights-micro-carousel-dots\"\n key={`carousel-button-${i}`}\n style={{\n backgroundColor: i === currentBeatIndex ? ICON_COLOR : DISABLED_ICON_COLOR,\n }}\n />\n ))}\n <IconButton\n aria-label={copy.next_insight_cta_aria}\n disabled={disabledRight}\n onClick={onNextClick}\n >\n <ChevronRight\n style={{\n color: disabledRight ? DISABLED_ICON_COLOR : ICON_COLOR,\n }}\n />\n </IconButton>\n </Box>\n )\n}\n\nconst getStyles = () =>\n css({\n alignItems: 'center',\n display: 'flex',\n justifyContent: 'center',\n width: '100%',\n // we were using `gap` instead of margin, but it doesn't work in safari browsers older than iOS 14.1\n '& button:first-child': {\n marginRight: 8,\n },\n '& .mx-insights-micro-carousel-dots': {\n borderRadius: '50%',\n height: 8,\n padding: 0,\n width: 8,\n // we were using `gap` instead of margin, but it doesn't work in safari browsers older than iOS 14.1\n marginRight: 8,\n },\n })\n","import React from 'react'\nimport { observer } from 'mobx-react-lite'\nimport { css } from '@mxenabled/cssinjs'\n\nimport { CarouselControls } from './CarouselControls'\n\nimport { BeatCard, MicroWidgetProps, ViewMoreMicroCard } from '../../'\n\nimport { buildDynamicCopy } from '../../../common'\n\nimport { useCopyStore, useEvent } from '../../context/hooks'\n\nimport type { Beat } from '../../../common'\n\nimport { ANALYTICS_CLICK_EVENTS } from '../../constants/Analytics'\nimport { MINIMUM_SWIPE_DISTANCE } from '../../constants/App'\n\nexport interface MicroBeatCarouselProps extends MicroWidgetProps {\n beats?: Beat[]\n showCarouselControls?: boolean\n}\n\nconst MicroBeatCarousel: React.FC<MicroBeatCarouselProps> = ({\n beats = [],\n clientColorScheme,\n showCTAColocatedWithText,\n heightOverrides,\n onCardClick,\n posthog,\n showCarouselControls,\n showIcon,\n showWithMargin,\n variant,\n widthOverrides,\n}) => {\n const styles = getStyles(heightOverrides, showWithMargin, widthOverrides)\n\n // ************** Use Ref Hooks **************************\n const ulRef = React.useRef<HTMLUListElement | null>(null)\n\n // ************** Use States Hooks ***********************\n const [scrollX, setScrollX] = React.useState<number>(0)\n const [touchEnd, setTouchEnd] = React.useState<number | null>(null)\n const [touchStart, setTouchStart] = React.useState<number | null>(null)\n\n // *************** Context functions *********************\n const { carouselCopy: copy } = useCopyStore()\n const { onEvent } = useEvent()\n\n // *************** Click handlers ************************\n const handleNextClick = () => {\n onEvent(ANALYTICS_CLICK_EVENTS.ON_CAROUSEL_FORWARD_CLICK)\n\n if (ulRef.current) {\n ulRef.current.scrollTo({\n left:\n // Adds the flex gap to the carousel ulRef's width\n (ulRef.current.offsetWidth + 8) *\n (Math.floor(scrollX / (ulRef.current.offsetWidth + 8)) + 1),\n top: 0,\n behavior: 'smooth',\n })\n }\n }\n\n const handlePreviousClick = () => {\n onEvent(ANALYTICS_CLICK_EVENTS.ON_CAROUSEL_BACK_CLICK)\n\n if (ulRef.current) {\n ulRef.current.scrollTo({\n left:\n (ulRef.current.offsetWidth + 8) *\n (Math.floor(scrollX / (ulRef.current.offsetWidth + 8)) - 1),\n top: 0,\n behavior: 'smooth',\n })\n }\n }\n\n const handleScroll = () => {\n if (ulRef.current) {\n setScrollX(ulRef.current.scrollLeft)\n }\n }\n\n // *************** Mobile handlers ************************\n const onTouchEnd = () => {\n if (!touchStart || !touchEnd) return\n const distance = touchStart - touchEnd\n\n // swiping left\n if (distance > MINIMUM_SWIPE_DISTANCE) {\n onEvent(ANALYTICS_CLICK_EVENTS.ON_CAROUSEL_FORWARD_SWIPE)\n } else {\n // swiping right\n onEvent(ANALYTICS_CLICK_EVENTS.ON_CAROUSEL_BACK_SWIPE)\n }\n }\n\n const onTouchMove = (e: React.TouchEvent) => {\n setTouchEnd(e.targetTouches[0].clientX)\n }\n\n const onTouchStart = (e: React.TouchEvent) => {\n // otherwise the swipe is fired even with usual touch events\n setTouchEnd(null)\n setTouchStart(e.targetTouches[0].clientX)\n }\n\n // ************** Spreadable Props ***********************\n const generalProps = {\n clientColorScheme,\n showCTAColocatedWithText,\n heightOverrides,\n showIcon,\n variant,\n widthOverrides,\n }\n\n const activeCardIndex =\n ulRef.current && ulRef.current.offsetWidth ? Math.round(scrollX / ulRef.current.offsetWidth) : 0\n const scrollBoundry = ulRef.current ? ulRef.current.scrollWidth - ulRef.current.offsetWidth : 0\n\n return (\n <div className={styles}>\n <ul\n className=\"mx-insights-micro-carousel-container\"\n onScroll={handleScroll}\n onTouchEnd={onTouchEnd}\n onTouchMove={onTouchMove}\n onTouchStart={onTouchStart}\n ref={ulRef}\n >\n {beats.map((beat: Beat, i) => {\n return (\n <BeatCard\n ariaLabel={\n buildDynamicCopy(\n copy.card_position_in_carousel_aria,\n i + 1,\n beats.length + 1,\n ) as string\n }\n beat={beat}\n index={i}\n isActiveCard={i === activeCardIndex}\n key={`${beat.guid} ${i}`}\n onCardClick={onCardClick}\n posthog={posthog}\n {...generalProps}\n />\n )\n })}\n <ViewMoreMicroCard\n isActiveCard={activeCardIndex === beats.length}\n onCardClick={onCardClick}\n {...generalProps}\n />\n </ul>\n {showCarouselControls && (\n <CarouselControls\n clientColorScheme={clientColorScheme}\n currentBeatIndex={activeCardIndex}\n numBeats={beats.length + 1}\n onNextClick={handleNextClick}\n onPreviousClick={handlePreviousClick}\n scrollRightBoundary={scrollBoundry}\n scrollX={scrollX}\n />\n )}\n </div>\n )\n}\n\nexport default observer(MicroBeatCarousel)\n\nconst getStyles = (\n heightOverrides?: number | string,\n showWithMargin = true,\n widthOverrides?: number | string,\n) =>\n css({\n alignItems: 'center',\n boxSizing: 'border-box',\n display: 'flex',\n flexDirection: 'column',\n height: heightOverrides,\n width: widthOverrides ? widthOverrides : '100%',\n '& .mx-insights-micro-carousel-container': {\n alignItems: 'center',\n display: 'flex',\n gap: 8,\n height: heightOverrides && '100%',\n maxWidth: showWithMargin ? `calc(100% - 32px)` : '100%',\n overflowX: 'auto',\n overflowY: 'hidden',\n scrollbarWidth: 'none',\n '-ms-overflow-style': 'none',\n '-webkit-overflow-scrolling': 'touch',\n margin: 0,\n padding: 0,\n listStyleType: 'none',\n '&::-webkit-scrollbar': {\n display: 'none',\n },\n },\n })\n","import React from 'react'\nimport { css } from '@mxenabled/cssinjs'\nimport { P } from '@kyper/mui'\n\nimport Card from '@mui/material/Card'\nimport CardActions from '@mui/material/CardActions'\nimport CardHeader from '@mui/material/CardHeader'\n\nimport { MicroWidgetProps, StyleProps } from '../../'\n\ninterface MicroInsightProps extends MicroWidgetProps {\n actionText?: string\n backgroundColor?: string\n description?: string\n icon: React.ReactNode\n fontColors?: fontColors\n style?: StyleProps\n title?: string\n}\n\ninterface fontColors {\n buttonColor?: string\n headerColor?: string\n iconColor?: string\n textColor?: string\n}\n\nexport const MicroInsightCard = React.forwardRef<HTMLDivElement, MicroInsightProps>(\n function MicroInsight(\n {\n actionText,\n ariaLabel,\n backgroundColor,\n showCTAColocatedWithText,\n description,\n heightOverrides,\n icon,\n isActiveCard,\n onCardClick = () => {},\n showIcon,\n style = {},\n fontColors = {},\n title,\n variant,\n widthOverrides,\n },\n inViewRef,\n ) {\n // ************** Use States Hooks ***********************\n const [lineClamp, setLineClamp] = React.useState(1)\n\n // ************** Use Effects Hooks **********************\n React.useEffect(() => {\n if (widthOverrides && widthOverrides <= 325) setLineClamp(3)\n if (widthOverrides && widthOverrides > 325) setLineClamp(2)\n }, [widthOverrides])\n\n // ************** Style constants ************************\n // The not variant is necessary to overirde the automatic raised style that defaults when no variant is given.\n const { cardStyle, linkTextStyle } = style\n const cardStyles = !variant ? { border: 'none', boxShadow: 'none', ...cardStyle } : cardStyle\n const styles = getStyles(\n cardStyles,\n showCTAColocatedWithText,\n fontColors,\n lineClamp,\n linkTextStyle,\n heightOverrides,\n )\n\n return (\n <li\n aria-hidden={!isActiveCard}\n className={styles}\n onClick={() => onCardClick()}\n ref={inViewRef as React.RefObject<HTMLLIElement>}\n role=\"button\"\n tabIndex={isActiveCard ? 0 : -1}\n >\n {/* This span is so that safari will read out the current card you are on when using a screenreader */}\n {ariaLabel && <span aria-label={ariaLabel} style={{ visibility: 'hidden' }} />}\n <Card className={`mx-micro-card`} sx={{ backgroundColor }} variant={variant}>\n <CardHeader\n avatar={showIcon && icon}\n subheader={\n <div className=\"mx-micro-content-container\">\n <P\n className=\"mx-micro-card-description\"\n color={fontColors.textColor ? 'undefined' : 'text.primary'}\n >\n {description && <span dangerouslySetInnerHTML={{ __html: description }} />}\n </P>\n </div>\n }\n title={title}\n />\n {!!actionText && (\n <CardActions sx={{ paddingLeft: 0 }}>\n <div className=\"mx-insights-micro-card-link-text\">{actionText}</div>\n </CardActions>\n )}\n </Card>\n </li>\n )\n },\n)\n\nconst getStyles = (\n cardStyle: object,\n showCTAColocatedWithText: any,\n fontColors: fontColors,\n lineClamp: number,\n linkTextStyle?: object,\n heightOverrides?: number | string,\n) =>\n css({\n height: '100%',\n listStyleType: 'none',\n userSelect: 'none',\n minWidth: '100%',\n '& .mx-micro-card': {\n borderRadius: 8,\n cursor: 'pointer',\n display: 'flex',\n flexDirection: 'column',\n height: heightOverrides ? '100%' : 124,\n justifyContent: !showCTAColocatedWithText && 'space-between',\n width: '100%',\n padding: 16,\n ...cardStyle,\n },\n '& .mx-micro-content-container': {\n height: '100%',\n },\n '& .mx-micro-card-description': {\n letterSpacing: 0.48,\n color: fontColors.textColor ? fontColors.textColor : '',\n display: '-webkit-box',\n fontSize: 13,\n lineHeight: '20px',\n overflow: 'hidden',\n WebkitLineClamp: lineClamp,\n WebkitBoxOrient: 'vertical',\n wordWrap: 'break-word',\n },\n '& .mx-insights-micro-card-link-text': {\n color: fontColors.buttonColor ? fontColors.buttonColor : '#2D64EF',\n fontSize: 14,\n fontWeight: 'bold',\n marginLeft: 24,\n ...linkTextStyle,\n },\n '& .MuiCardHeader-avatar': {\n color: fontColors.iconColor,\n marginBottom: 'auto',\n marginRight: '8px !important',\n paddingTop: 2,\n },\n '& .MuiCardHeader-root': {\n padding: 0,\n },\n '& .MuiCardHeader-title': {\n fontSize: 15,\n fontWeight: 'bold',\n color: fontColors.headerColor,\n paddingBottom: 8,\n WebkitLineClamp: 2,\n },\n '& .MuiCardContent-root': {\n // Needed to override padding for standard and first and last child conditions\n padding: `${0} !important`,\n },\n })\n","import React from 'react'\nimport type { PostHog } from 'posthog-js'\n\nimport { observer } from 'mobx-react-lite'\n\nimport Link from '@mui/material/Link'\nimport Stack from '@mui/material/Stack'\nimport Typography from '@mui/material/Typography'\n\nimport ChevronRightIcon from '@mui/icons-material/ChevronRight'\n\nimport { clientColorSchemeProps } from '../../'\n\nimport { Beat } from '../../../common'\n\nimport { ANALYTICS_CLICK_EVENTS } from '../../constants/Analytics'\n\nimport { useCopyStore, useEvent } from '../../context/hooks'\n\ndeclare const window: Window &\n typeof globalThis & {\n app: any\n }\n\nexport interface CarouselHeaderProps {\n clientColorScheme?: clientColorSchemeProps\n onCardClick: (beat?: Beat | undefined) => void\n posthog?: PostHog\n widthOverrides?: number | string\n}\n\nconst CarouselHeader: React.FC<CarouselHeaderProps> = ({\n clientColorScheme,\n onCardClick,\n posthog,\n widthOverrides,\n}) => {\n // *************** Context functions *********************\n const { carouselCopy: copy } = useCopyStore()\n const { onEvent } = useEvent()\n\n const clientGuid = window.app?.config.client_guid\n\n // *************** Click handlers ************************\n const handleViewAllClick = () => {\n if (onEvent) {\n onEvent(ANALYTICS_CLICK_EVENTS.ON_VIEW_MORE_CLICKED)\n if (posthog?.capture && clientGuid) {\n onCardClick()\n\n posthog.capture('micro_widget_clicked_insight', {\n insight_template: 'view_all',\n $groups: { client: clientGuid },\n })\n }\n }\n }\n\n return (\n <Stack\n alignItems=\"center\"\n direction=\"row\"\n justifyContent=\"space-between\"\n spacing={2}\n sx={{\n padding: widthOverrides ? 0 : 16,\n width: widthOverrides ? widthOverrides : undefined,\n }}\n >\n <Typography\n sx={{\n fontSize: 18,\n fontWeight: 700,\n lineHeight: '24px',\n }}\n variant=\"h3\"\n >\n {copy.carousel_title}\n </Typography>\n <Link\n onClick={handleViewAllClick}\n sx={{\n display: 'flex',\n alignItems: 'center',\n '&.MuiLink-underlineNone': {\n textDecoration: 'none',\n ':hover': {\n borderBottom: 'none',\n },\n },\n }}\n underline=\"none\"\n >\n <Typography\n sx={{\n color: clientColorScheme?.primary_300,\n fontSize: 15,\n fontWeight: 600,\n lineHeight: '20px',\n }}\n variant=\"body1\"\n >\n {copy.view_all_insights_in_full_feed_cta_aria}\n </Typography>\n <ChevronRightIcon sx={{ color: clientColorScheme?.primary_300, ml: '8px' }} />\n </Link>\n </Stack>\n )\n}\n\nexport default observer(CarouselHeader)\n","import React from 'react'\nimport Box from '@mui/material/Box'\nimport CircularProgress from '@mui/material/CircularProgress'\n\nconst Spinner: React.FC = () => {\n return (\n <Box\n sx={{\n alignItems: 'center',\n display: 'flex',\n height: '100%',\n justifyContent: 'center',\n width: '100%',\n }}\n >\n <CircularProgress />\n </Box>\n )\n}\n\nexport default Spinner\n","import React, { useState } from 'react'\n\nimport { observer } from 'mobx-react-lite'\nimport Box from '@mui/material/Box'\nimport CssBaseline from '@mui/material/CssBaseline'\nimport { ThemeProvider } from '@mui/material/styles'\n\nimport { createMXTheme } from '@kyper/mui'\n\nimport { useCombineEvents, useCombinePageviews, Beat } from '../../../common'\n\nimport { InsightsMicroWidgetDataProvider } from '../../context/InsightsMicroWidgetDataProvider'\n\nimport CarouselHeader from '../carouselheader/CarouselHeader'\n\nimport { MicroWidgetProps, MicroBeatCarousel, NoRelevantInsightsCard, ZeroStateCard } from '../../'\n\nimport Spinner from '../spinner/Spinner'\n\nimport { AppStore } from '../../stores/AppStore'\n\nconst store = new AppStore()\n\nexport interface InsightsMicroWidgetProps extends MicroWidgetProps {\n areBeatsLoading: boolean\n beats: Beat[]\n endpoint: string\n logOutUser: () => void\n onEvent?: (event?: string | undefined) => void\n onPageview?: (event?: string | undefined) => void\n token: string\n userHasFullInsightFeedBeats?: boolean\n}\n\n/*\n This is the parent component / starting point for the general availabile insights micro widget. The Legacy/Cibc version is in a seperate repo\n called insights micro widget. The difference between the No relevent and zero state component is that No relevant is a zero state theat lets the\n user know that although there are no micro insights available but the user has fill insights available and zero state lets the user know that there\n aren't any micro or full insights available.\n*/\n\nconst InsightsMicroWidget: React.FC<InsightsMicroWidgetProps> = ({\n areBeatsLoading,\n beats = [], // This also determines the length of the carousel controls (beat.length + 1)\n clientColorScheme, // Allows certain icons, view all and read more button to reflect the clients color scheme. Currently only supports primary_300\n showCTAColocatedWithText = true,\n endpoint = '/',\n heightOverrides,\n logOutUser,\n onCardClick = () => {},\n onEvent: onConsumerEvent = () => {},\n onPageview: onConsumerPageview = () => {},\n posthog,\n showBorder = true,\n showCarouselControls,\n showHeader,\n showIcon,\n showWithMargin = true,\n token = '',\n useDarkMode,\n userHasFullInsightFeedBeats,\n variant,\n widthOverrides,\n}) => {\n // ************** Use States Hooks ***********************\n const [carouselSize, setCarouselSize] = useState<string>('STANDARD')\n const [isLoaded, setIsLoaded] = useState(false)\n\n // ************** Use Custom Hooks ***********************\n const onEvent = useCombineEvents([onConsumerEvent], store)\n const onPageview = useCombinePageviews([onConsumerPageview], store)\n\n // ************** Use Effects Hooks **********************\n React.useEffect(() => {\n if (!store.isInitialized) {\n store.initialize(endpoint, token, logOutUser)\n }\n }, [endpoint, token, logOutUser, store.isInitialized])\n\n React.useEffect(() => {\n const pageHeight = window.innerHeight\n\n if (pageHeight < 180) {\n setCarouselSize('STANDARD')\n } else if (pageHeight >= 180 && pageHeight < 200) {\n setCarouselSize('LARGE')\n } else if (pageHeight >= 200 && pageHeight < 248) {\n setCarouselSize('XLARGE')\n } else if (pageHeight >= 248) {\n setCarouselSize('XXLARGE')\n }\n }, [window.innerHeight])\n\n React.useEffect(() => {\n setIsLoaded(!areBeatsLoading && store.isInitialized)\n }, [areBeatsLoading, store.isInitialized])\n\n // ************** Spreadable Props ***********************\n const generalProps = {\n showCTAColocatedWithText,\n heightOverrides,\n onCardClick,\n showIcon,\n showWithMargin,\n useDarkMode,\n widthOverrides,\n }\n\n const zeroStateProps = {\n carouselSize,\n posthog,\n variant,\n ...generalProps,\n }\n\n return (\n // The Theme provider must wrap the component so that the styles don't break when imported into other applications.\n <ThemeProvider theme={createMXTheme(useDarkMode ? 'dark' : 'light')}>\n <CssBaseline />\n <InsightsMicroWidgetDataProvider onEvent={onEvent} onPageview={onPageview} store={store}>\n <Box\n sx={{\n boxSizing: 'border-box',\n height: !heightOverrides ? '100%' : undefined,\n margin: '0 auto',\n width: !widthOverrides ? '100%' : undefined,\n }}\n >\n {(areBeatsLoading || !store.isInitialized) && <Spinner />}\n\n {isLoaded && showHeader && (\n <CarouselHeader\n clientColorScheme={clientColorScheme}\n onCardClick={onCardClick}\n posthog={posthog}\n widthOverrides={widthOverrides}\n />\n )}\n\n {isLoaded && !!beats.length && (\n <MicroBeatCarousel\n beats={beats}\n clientColorScheme={clientColorScheme}\n showCarouselControls={showCarouselControls}\n variant={showBorder ? variant : undefined}\n {...generalProps}\n />\n )}\n\n {isLoaded && !beats.length && userHasFullInsightFeedBeats && (\n <NoRelevantInsightsCard clientColorScheme={clientColorScheme} {...zeroStateProps} />\n )}\n\n {isLoaded && !beats.length && !userHasFullInsightFeedBeats && (\n <ZeroStateCard {...zeroStateProps} />\n )}\n </Box>\n </InsightsMicroWidgetDataProvider>\n </ThemeProvider>\n )\n}\n\nexport default observer(InsightsMicroWidget)\n","import React from 'react'\n\nimport { observer } from 'mobx-react-lite'\n\nimport { MicroWidgetProps, MicroInsightCard, ZeroStateIcon } from '../../'\n\nimport { useCopyStore, useEvent, usePageview } from '../../context/hooks'\n\nimport { SUPPORTED_CAROUSEL_HEIGHTS } from '../../constants/App'\nimport { ANALYTICS_CLICK_EVENTS, ANALYTICS_PAGE_NAMES } from '../../constants/Analytics'\n\ndeclare const window: Window &\n typeof globalThis & {\n app: any\n }\n\nexport interface MicroZeroStateCardProps extends MicroWidgetProps {\n carouselSize: string\n}\n\nexport const NoRelevantInsightsCard: React.FC<MicroZeroStateCardProps> = ({\n ariaLabel,\n carouselSize,\n clientColorScheme,\n heightOverrides,\n onCardClick,\n posthog,\n showIcon,\n showWithMargin,\n variant,\n widthOverrides,\n}) => {\n // *************** Context functions *********************git\n const { cardsCopy } = useCopyStore()\n const { onEvent } = useEvent()\n const { onPageview } = usePageview()\n\n const clientGuid = window.app?.config.client_guid\n\n // ************** Use Effects Hooks **********************\n React.useEffect(() => {\n onPageview(ANALYTICS_PAGE_NAMES.MICRO_WIDGET_CAROUSEL_NO_RELEVANT_INSIGHTS)\n }, [])\n\n // *************** Click handlers ************************\n const handleClick = () => {\n if (onCardClick) onCardClick()\n onEvent(ANALYTICS_CLICK_EVENTS.ON_NO_RELEVANT_INSIGHTS_CLICKED)\n if (posthog?.capture && clientGuid) {\n posthog.capture('micro_widget_clicked_insight', {\n insight_template: 'no_relevant_insights',\n $groups: { client: clientGuid },\n })\n }\n }\n\n return (\n <MicroInsightCard\n actionText={cardsCopy.micro_card_cta}\n ariaLabel={ariaLabel}\n description={cardsCopy.no_relevant_insights_card_description}\n fontColors={{ buttonColor: clientColorScheme?.primary_300 }}\n heightOverrides={heightOverrides}\n icon={<ZeroStateIcon />}\n onCardClick={handleClick}\n showIcon={showIcon}\n style={{\n cardStyle: {\n card: {\n height: `calc(${SUPPORTED_CAROUSEL_HEIGHTS[carouselSize]}px - 44px)`,\n margin: '0 auto',\n width: showWithMargin ? `calc(100% - 32px)` : '100%',\n },\n description: {\n WebkitLineClamp: 4,\n },\n },\n linkTextStyle: {\n marginLeft: 48,\n },\n }}\n title={cardsCopy.no_relevant_insights_card_title}\n variant={variant}\n widthOverrides={widthOverrides}\n />\n )\n}\n\nexport default observer(NoRelevantInsightsCard)\n","import React, { useEffect } from 'react'\nimport { useInView } from 'react-intersection-observer'\nimport { useTokens } from '@kyper/mui'\n\nimport { observer } from 'mobx-react-lite'\n\nimport { ChartFilledIcon, MicroWidgetProps, MicroInsightCard } from '../../'\n\nimport { useCopyStore, useEvent } from '../../context/hooks'\n\nimport { ANALYTICS_CLICK_EVENTS, ANALYTICS_VIEW_EVENTS } from '../../constants/Analytics'\nimport { VIEW_THRESHOLD } from '../../constants/App'\n\ndeclare const window: Window &\n typeof globalThis & {\n app: any\n }\n\nexport interface ViewMoreMicroCardProps extends MicroWidgetProps {\n isActiveCard: boolean\n}\n\nexport const ViewMoreMicroCard: React.FC<ViewMoreMicroCardProps> = ({\n isActiveCard,\n ariaLabel,\n clientColorScheme,\n heightOverrides,\n onCardClick,\n posthog,\n showIcon,\n variant,\n widthOverrides,\n}) => {\n const tokens = useTokens()\n\n const clientGuid = window.app?.config.client_guid\n\n const { ref, inView }: { ref: any; inView: any } = useInView({\n threshold: VIEW_THRESHOLD,\n })\n\n // *************** Context functions *********************\n const { cardsCopy } = useCopyStore()\n const { onEvent } = useEvent()\n\n // ************** Use Effects Hooks **********************\n useEffect(() => {\n if (inView) {\n onEvent(ANALYTICS_VIEW_EVENTS.ON_VIEW_MORE_VIEWED)\n }\n }, [inView])\n\n useEffect(() => {\n if (posthog?.capture && inView && clientGuid) {\n posthog.capture('micro_widget_viewed_insight', {\n insight_template: 'read_more_card',\n $groups: { client: clientGuid },\n })\n }\n }, [clientGuid, posthog, inView])\n\n // *************** Click handlers ************************\n const handleClick = () => {\n if (onCardClick) onCardClick()\n onEvent(ANALYTICS_CLICK_EVENTS.ON_VIEW_MORE_CLICKED)\n if (posthog?.capture && clientGuid) {\n posthog.capture('micro_widget_clicked_insight', {\n insight_template: 'read_more_card',\n $groups: { client: clientGuid },\n })\n }\n }\n\n return (\n <MicroInsightCard\n actionText={cardsCopy.micro_card_cta}\n ariaLabel={ariaLabel}\n description={cardsCopy.view_more_card_description}\n fontColors={{ buttonColor: clientColorScheme?.primary_300 }}\n heightOverrides={heightOverrides}\n icon={\n <ChartFilledIcon\n color={\n clientColorScheme?.primary_300\n ? clientColorScheme?.primary_300\n : tokens.Color.Primary300\n }\n />\n }\n isActiveCard={isActiveCard}\n onCardClick={handleClick}\n ref={ref}\n showIcon={showIcon}\n title={cardsCopy.view_more_card_title}\n variant={variant}\n widthOverrides={widthOverrides}\n />\n )\n}\n\nexport default observer(ViewMoreMicroCard)\n","import React from 'react'\n\nimport { observer } from 'mobx-react-lite'\n\nimport { MicroWidgetProps, MicroInsightCard, ZeroStateIcon } from '../../'\n\nimport { useCopyStore, usePageview } from '../../context/hooks'\n\nimport { SUPPORTED_CAROUSEL_HEIGHTS } from '../../constants/App'\nimport { ANALYTICS_PAGE_NAMES } from '../../constants/Analytics'\n\nexport interface ZeroStateCardProps extends MicroWidgetProps {\n carouselSize: string\n}\n\nexport const ZeroStateCard: React.FC<ZeroStateCardProps> = ({\n ariaLabel,\n carouselSize,\n heightOverrides,\n onCardClick,\n showIcon,\n showWithMargin,\n variant,\n widthOverrides,\n}) => {\n // *************** Context functions *********************\n const { onPageview } = usePageview()\n const { zeroStateCopy } = useCopyStore()\n\n // ************** Use Effects Hooks **********************\n React.useEffect(() => {\n onPageview(ANALYTICS_PAGE_NAMES.MICRO_WIDGET_CAROUSEL_ZERO_STATE)\n }, [])\n\n return (\n <MicroInsightCard\n ariaLabel={ariaLabel}\n description={zeroStateCopy.carousel_zero_state_description}\n heightOverrides={heightOverrides}\n icon={<ZeroStateIcon />}\n onCardClick={onCardClick}\n showIcon={showIcon}\n style={{\n cardStyle: {\n card: {\n height: `calc(${SUPPORTED_CAROUSEL_HEIGHTS[carouselSize]}px - 44px)`,\n margin: '0 auto',\n width: showWithMargin ? `calc(100% - 32px)` : '100%',\n },\n description: {\n WebkitLineClamp: 4,\n },\n },\n }}\n title={zeroStateCopy.carousel_zero_state_title}\n variant={variant}\n widthOverrides={widthOverrides}\n />\n )\n}\n\nexport default observer(ZeroStateCard)\n"],"names":["CopyStore","GlobalCopyApi","makeAutoObservable","endpoint","token","copy","runInAction","TEMPLATE_NAMES","instanceId","PATHS","ON_CLICK_EVENT","name","ON_VIEW_EVENT","ON_VIEW_FIRST_TIME_EVENT","readableTemplateName","onBeatClickedEvents","acc","ANALYTICS_ACTIONS","ANALYTICS_CATEGORIES","onBeatDisplayedEvents","onBeatDisplayedForFirstTimeEvents","ANALYTICS_LABELS","ANALYTICS_CLICK_EVENTS","ANALYTICS_VIEW_EVENTS","ANALYTICS_PAGE_NAMES","ANALYTICS_PAGEVIEWS","ANALYTICS_EVENTS","onAnalyticEvent","event","session","response","error","onAnalyticPageView","page","InsightsMicroWidgetStore","BeatApi","logOutUser","res","err","beat","AppStore","analyticsSession","InsightsMicroWidgetDataContext","React","InsightsMicroWidgetDataProvider","onEvent","onPageview","store","children","jsx","BeatCategoryIcon","categoryGuid","setCategoryGuid","useState","CategoryGuids","useEffect","CategoryIcon","BeatMerchantLogo","tokens","useTokens","styles","getStyles","MerchantLogo","css","BeatMerchantLogo$1","observer","ChartFilledIcon","color","height","size","viewBox","width","buildDataSeries","data","d","item","index","getIconColor","designTokens","fullDataSeries","chunkSize","spendChunk","incomeChunk","MonthlySpendComparisonIcon","iconColor","Icon","ZeroStateIcon","jsxs","BeatIcon","clientColorScheme","type","theme","useTheme","primaryColor","SUPPORTED_CAROUSEL_HEIGHTS","MINIMUM_SWIPE_DISTANCE","VIEW_THRESHOLD","useCopyStore","context","useInsightsMicroWidgetStore","useEvent","usePageview","BeatCard","ariaLabel","backgroundColor","showCTAColocatedWithText","heightOverrides","isActiveCard","onCardClick","posthog","showIcon","variant","widthOverrides","clientGuid","ref","inView","useInView","cardsCopy","updateBeat","handleClick","MicroInsightCard","CarouselControls","currentBeatIndex","numBeats","onNextClick","onPreviousClick","scrollRightBoundary","scrollX","disabledLeft","disabledRight","DISABLED_ICON_COLOR","ICON_COLOR","Box","IconButton","ChevronLeft","_","i","ChevronRight","MicroBeatCarousel","beats","showCarouselControls","showWithMargin","ulRef","setScrollX","touchEnd","setTouchEnd","touchStart","setTouchStart","handleNextClick","handlePreviousClick","handleScroll","onTouchEnd","onTouchMove","e","onTouchStart","generalProps","activeCardIndex","scrollBoundry","buildDynamicCopy","ViewMoreMicroCard","MicroBeatCarousel$1","actionText","description","icon","style","fontColors","title","inViewRef","lineClamp","setLineClamp","cardStyle","linkTextStyle","cardStyles","Card","CardHeader","P","CardActions","CarouselHeader","handleViewAllClick","Stack","Typography","Link","ChevronRightIcon","CarouselHeader$1","Spinner","CircularProgress","InsightsMicroWidget","areBeatsLoading","onConsumerEvent","onConsumerPageview","showBorder","showHeader","useDarkMode","userHasFullInsightFeedBeats","carouselSize","setCarouselSize","isLoaded","setIsLoaded","useCombineEvents","useCombinePageviews","pageHeight","zeroStateProps","ThemeProvider","createMXTheme","CssBaseline","NoRelevantInsightsCard","ZeroStateCard","InsightsMicroWidget$1","NoRelevantInsightsCard$1","ViewMoreMicroCard$1","zeroStateCopy","ZeroStateCard$1"],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import { c as s, e as f, d as r } from "./ConnectMiniWidget-Ep65CtHH.mjs";
2
+ import { C } from "./CashflowApi-zcebgnO1.mjs";
3
+ import { C as t } from "./CashflowStore-gPEEBiXo.mjs";
4
+ export {
5
+ C as CashflowApi,
6
+ s as CashflowMiniWidget,
7
+ f as CashflowOnboarding,
8
+ t as CashflowStore,
9
+ r as CashflowWidget
10
+ };
11
+ //# sourceMappingURL=index.es2.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.es2.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;"}
@@ -0,0 +1,10 @@
1
+ import { i as o, f as a, h as t, j as s } from "./ConnectMiniWidget-Ep65CtHH.mjs";
2
+ import { C as g } from "./CategoryStore-CSNSMNA6.mjs";
3
+ export {
4
+ o as CategoryRow,
5
+ a as CategorySelector,
6
+ t as CategorySelectorDrawer,
7
+ g as CategoryStore,
8
+ s as useCategoryUiStore
9
+ };
10
+ //# sourceMappingURL=index.es3.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.es3.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;"}
@@ -0,0 +1,9 @@
1
+ import { k as s, l as a, D as r } from "./ConnectMiniWidget-Ep65CtHH.mjs";
2
+ import { D as b } from "./DebtsStore-Duf3n1vZ.mjs";
3
+ export {
4
+ s as DebtsChart,
5
+ b as DebtsStore,
6
+ a as DebtsTable,
7
+ r as DebtsWidget
8
+ };
9
+ //# sourceMappingURL=index.es4.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.es4.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;"}
@@ -0,0 +1,7 @@
1
+ import { G as a } from "./ConnectMiniWidget-Ep65CtHH.mjs";
2
+ import { G as t } from "./GoalStore-BYoRLx99.mjs";
3
+ export {
4
+ t as GoalStore,
5
+ a as GoalsWidget
6
+ };
7
+ //# sourceMappingURL=index.es5.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.es5.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;"}
@@ -0,0 +1,7 @@
1
+ import { m as e } from "./ConnectMiniWidget-Ep65CtHH.mjs";
2
+ import { M as a } from "./MerchantStore-RhLvDvX-.mjs";
3
+ export {
4
+ e as MerchantLookup,
5
+ a as MerchantStore
6
+ };
7
+ //# sourceMappingURL=index.es6.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.es6.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;"}
@@ -0,0 +1,10 @@
1
+ import { N as o } from "./NetWorthStore-syD1VnxE.mjs";
2
+ import { N as a, n as N, o as h, p as s } from "./ConnectMiniWidget-Ep65CtHH.mjs";
3
+ export {
4
+ a as NetWorthChart,
5
+ N as NetWorthList,
6
+ o as NetWorthStore,
7
+ h as NetWorthSummary,
8
+ s as NetWorthWidget
9
+ };
10
+ //# sourceMappingURL=index.es7.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.es7.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;"}
@@ -0,0 +1,10 @@
1
+ import { q as r, r as e, s as c, R as a } from "./ConnectMiniWidget-Ep65CtHH.mjs";
2
+ import { R as n } from "./RecurringActivityStore-B_COvGWG.mjs";
3
+ export {
4
+ r as ActivitySettings,
5
+ e as ManageIncome,
6
+ c as RecurringActivityMiniWidget,
7
+ n as RecurringActivityStore,
8
+ a as RecurringActivityWidget
9
+ };
10
+ //# sourceMappingURL=index.es8.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.es8.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;"}
@@ -0,0 +1,18 @@
1
+ import { T as o, a as t } from "./TransactionStore-BUrjBWkk.mjs";
2
+ import { E as T, B as i, O as r, T as c, z as e, x as A, w as p, y as S, H as d, v as x, t as l } from "./ConnectMiniWidget-Ep65CtHH.mjs";
3
+ export {
4
+ T as AddAccountModal,
5
+ i as BottomActions,
6
+ r as TRANSACTION_EVENTS,
7
+ c as TopActions,
8
+ o as TransactionApi,
9
+ e as TransactionDetails,
10
+ A as TransactionList,
11
+ p as TransactionRow,
12
+ t as TransactionStore,
13
+ S as TransactionTable,
14
+ d as TransactionWidget,
15
+ x as exportTransactionsToCSV,
16
+ l as useTransactionsUiStore
17
+ };
18
+ //# sourceMappingURL=index.es9.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.es9.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;"}
@@ -0,0 +1,170 @@
1
+ import { getUnixTime as m } from "date-fns/getUnixTime";
2
+ import u from "bowser";
3
+ import { F as c, A as p } from "./Fetch-DpUi1_Dx.mjs";
4
+ import "date-fns/intlFormat";
5
+ import "./ConnectMiniWidget-Ep65CtHH.mjs";
6
+ import "react/jsx-runtime";
7
+ import l from "react";
8
+ import "@mui/material/Button";
9
+ import "@kyper/mui";
10
+ import "@mui/material/Tooltip";
11
+ import "@mui/material/Box";
12
+ import "@mui/material/IconButton";
13
+ import "@mui/material/styles/useTheme";
14
+ import "@mui/material/useMediaQuery";
15
+ import "@mxenabled/cssinjs";
16
+ import "date-fns/addDays";
17
+ import "date-fns/addMonths";
18
+ import "date-fns/eachDayOfInterval";
19
+ import "date-fns/eachWeekOfInterval";
20
+ import "date-fns/endOfMonth";
21
+ import "date-fns/format";
22
+ import "date-fns/isBefore";
23
+ import "date-fns/isSameMonth";
24
+ import "date-fns/startOfMonth";
25
+ import "date-fns/startOfToday";
26
+ import "date-fns/subMonths";
27
+ import "@mui/material/Paper";
28
+ import "@mui/icons-material/KeyboardArrowLeftRounded";
29
+ import "@mui/icons-material/KeyboardArrowRightRounded";
30
+ import "date-fns/isSameDay";
31
+ import "date-fns/isWithinInterval";
32
+ import "d3";
33
+ import "@mui/material/styles";
34
+ import "@mui/x-charts";
35
+ import "@mui/material/Stack";
36
+ import "@mui/material";
37
+ import "date-fns/addYears";
38
+ import "date-fns/differenceInCalendarDays";
39
+ import "date-fns/endOfToday";
40
+ import "date-fns/endOfYear";
41
+ import "date-fns/startOfYear";
42
+ import "date-fns/subDays";
43
+ import "date-fns/subYears";
44
+ import "@mui/material/ButtonGroup";
45
+ import "@mui/material/Tab";
46
+ import "@mui/material/Tabs";
47
+ import "@mui/material/ToggleButton";
48
+ import "@mui/material/ToggleButtonGroup";
49
+ import "@mui/material/Dialog";
50
+ import "@mui/material/DialogContent";
51
+ import "@mui/icons-material/ArrowBackOutlined";
52
+ import "@mui/material/Card";
53
+ import "@mui/material/CardHeader";
54
+ import "@mui/material/CardContent";
55
+ import "uuid";
56
+ import "numeral";
57
+ import "@mui/material/CircularProgress";
58
+ import "@mui/material/FormControlLabel";
59
+ import "@mui/material/Radio";
60
+ import "@mui/material/Avatar";
61
+ import "@mui/material/ListItem";
62
+ import "@mui/material/ListItemAvatar";
63
+ import "@mui/material/ListItemButton";
64
+ import "@mui/material/ListItemText";
65
+ import "@mui/material/ListItemIcon";
66
+ import "mobx";
67
+ import "date-fns/differenceInDays";
68
+ import "date-fns/fromUnixTime";
69
+ import "@mui/x-data-grid-pro";
70
+ import "date-fns";
71
+ import "date-fns/getMonth";
72
+ import "date-fns/isAfter";
73
+ import "date-fns/addQuarters";
74
+ import "date-fns/addWeeks";
75
+ import "date-fns/nextDay";
76
+ import "date-fns/parseISO";
77
+ import "date-fns/setDate";
78
+ import "date-fns/subWeeks";
79
+ import "date-fns/getDay";
80
+ import "date-fns/formatISO";
81
+ import "@honeybadger-io/react";
82
+ const kt = async (s, i, t = "1.0.0", e = "Experiences") => {
83
+ const r = new y(s, i), { analytics_session: n } = await r.initializeAnalyticsSession(
84
+ t,
85
+ e
86
+ ), o = window.location.hostname;
87
+ return {
88
+ sendAnalyticEvent: async (a) => await r.sendAnalyticEvent({
89
+ analytics_event: {
90
+ ...a,
91
+ app_version: "widgets-v2",
92
+ created_at: m(/* @__PURE__ */ new Date()).toString(),
93
+ host: o,
94
+ name: a?.label || "",
95
+ session_id: n.guid,
96
+ user_agent: navigator.userAgent || "",
97
+ version: 2
98
+ }
99
+ }),
100
+ sendAnalyticsPageview: async (a) => await r.sendAnalyticsPageview({
101
+ analytics_pageview: {
102
+ ...a,
103
+ app_version: "widgets-v2",
104
+ created_at: m(/* @__PURE__ */ new Date()).toString(),
105
+ host: o,
106
+ name: a.name,
107
+ session_id: n.guid,
108
+ user_agent: navigator.userAgent || ""
109
+ }
110
+ })
111
+ };
112
+ };
113
+ class y {
114
+ fetchInstance;
115
+ constructor(i, t) {
116
+ this.fetchInstance = new c(i, t);
117
+ }
118
+ initializeAnalyticsSession = async (i, t) => {
119
+ const e = u.getParser(window.navigator.userAgent), { analytics_session: r } = await this.fetchInstance.post(p.ANALYTICS_SESSION, {
120
+ browser_name: e.getBrowserName() || "Unknown",
121
+ browser_version: e.getBrowserVersion() || "0.0.0",
122
+ is_first_visit: !1,
123
+ product_name: "Individual Widget",
124
+ product_version: i
125
+ });
126
+ return r ? (this.fetchInstance.post(p.ANALYTICS_FEATURE_VISITS, {
127
+ feature_visit: {
128
+ analytics_session_guid: r.guid,
129
+ feature_name: t || "Experiences",
130
+ is_first_visit: r.is_first_visit
131
+ }
132
+ }), { analytics_session: r }) : { analytics_session: null };
133
+ };
134
+ sendAnalyticEvent = async (i) => this.fetchInstance.post(p.ANALYTICS_EVENTS, i).catch((t) => {
135
+ throw t;
136
+ });
137
+ sendAnalyticsPageview = async (i) => this.fetchInstance.post(p.ANALYTICS_PAGEVIEWS, i).catch((t) => {
138
+ throw t;
139
+ });
140
+ }
141
+ class zt {
142
+ fetchInstance;
143
+ constructor(i, t) {
144
+ this.fetchInstance = new c(i, t);
145
+ }
146
+ getGlobalCopy = async (i, t) => this.fetchInstance.post(`${p.LOCALIZED_CONTENT}/${i}`, { translation_key: t }).then((e) => e);
147
+ }
148
+ const Mt = (s, i) => {
149
+ const { session: t } = i, e = Object.values(i).reduce((n, o) => t && o?.onAnalyticEvent && typeof o?.onAnalyticEvent == "function" ? [...n, o.onAnalyticEvent] : n, []), r = [...s, ...e];
150
+ return l.useMemo(() => (n) => {
151
+ r.forEach((o) => {
152
+ t ? o(n, t) : o(n);
153
+ });
154
+ }, [s, t]);
155
+ }, Rt = (s, i) => {
156
+ const { session: t } = i, e = Object.values(i).reduce((n, o) => t && o?.onAnalyticPageView && typeof o?.onAnalyticPageView == "function" ? [...n, o.onAnalyticPageView] : n, []), r = [...s, ...e];
157
+ return l.useMemo(() => (n) => {
158
+ r.forEach((o) => {
159
+ t ? o(n, t) : o(n);
160
+ });
161
+ }, [s, t]);
162
+ };
163
+ export {
164
+ y as A,
165
+ zt as G,
166
+ Rt as a,
167
+ kt as b,
168
+ Mt as u
169
+ };
170
+ //# sourceMappingURL=useCombineEvents-CZUDHE96.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useCombineEvents-CZUDHE96.mjs","sources":["../src/common/utils/Analytics.ts","../src/common/api/AnalyticsApi.ts","../src/common/api/GlobalCopyApi.ts","../src/common/hooks/useCombineEvents.tsx"],"sourcesContent":["import { getUnixTime } from 'date-fns/getUnixTime'\n\nimport { AnalyticsApi } from '../api'\nimport { BasicAnalyticsEvent, AnalyticsSession, BasicAnalyticsPageview } from '../types'\n\nexport const analyticsSession = async (\n endpoint: string,\n token: string,\n version = '1.0.0',\n featureName = 'Experiences',\n) => {\n const analyticsApi = new AnalyticsApi(endpoint, token)\n const { analytics_session } = (await analyticsApi.initializeAnalyticsSession(\n version,\n featureName,\n )) as {\n analytics_session: AnalyticsSession\n }\n\n const host = window.location.hostname\n\n return {\n sendAnalyticEvent: async (event: BasicAnalyticsEvent) => {\n return await analyticsApi.sendAnalyticEvent({\n analytics_event: {\n ...event,\n app_version: 'widgets-v2',\n created_at: getUnixTime(new Date()).toString(),\n host,\n name: event?.label || '',\n session_id: analytics_session.guid,\n user_agent: navigator.userAgent || '',\n version: 2,\n },\n })\n },\n sendAnalyticsPageview: async (pageview: BasicAnalyticsPageview) => {\n return await analyticsApi.sendAnalyticsPageview({\n analytics_pageview: {\n ...pageview,\n app_version: 'widgets-v2',\n created_at: getUnixTime(new Date()).toString(),\n host,\n name: pageview.name,\n session_id: analytics_session.guid,\n user_agent: navigator.userAgent || '',\n },\n })\n },\n }\n}\n","import Bowser from 'bowser'\n\nimport { Fetch } from '../utils'\n\nimport { ApiEndpoints } from '../constants'\nimport { AnalyticsEvent } from '../types'\n\nexport class AnalyticsApi {\n fetchInstance: Fetch\n\n constructor(endpoint: string, token: string) {\n this.fetchInstance = new Fetch(endpoint, token)\n }\n\n initializeAnalyticsSession = async (version: string, featureName?: string) => {\n const browser = Bowser.getParser(window.navigator.userAgent)\n\n const { analytics_session } = await this.fetchInstance.post(ApiEndpoints.ANALYTICS_SESSION, {\n browser_name: browser.getBrowserName() || 'Unknown',\n browser_version: browser.getBrowserVersion() || '0.0.0',\n is_first_visit: false,\n product_name: 'Individual Widget',\n product_version: version,\n })\n if (!analytics_session) {\n return { analytics_session: null }\n }\n this.fetchInstance.post(ApiEndpoints.ANALYTICS_FEATURE_VISITS, {\n feature_visit: {\n analytics_session_guid: analytics_session.guid,\n feature_name: featureName ? featureName : 'Experiences',\n is_first_visit: analytics_session.is_first_visit,\n },\n })\n return { analytics_session }\n }\n\n sendAnalyticEvent = async (event: AnalyticsEvent) => {\n return this.fetchInstance.post(ApiEndpoints.ANALYTICS_EVENTS, event).catch((err) => {\n throw err\n })\n }\n\n sendAnalyticsPageview = async (event: any) => {\n return this.fetchInstance.post(ApiEndpoints.ANALYTICS_PAGEVIEWS, event).catch((err) => {\n throw err\n })\n }\n}\n","import Fetch from '../utils/Fetch'\n\nimport { ApiEndpoints } from '../constants/ApiEndpoints'\n\nexport class GlobalCopyApi {\n fetchInstance: Fetch\n\n constructor(endpoint: string, token: string) {\n this.fetchInstance = new Fetch(endpoint, token)\n }\n\n getGlobalCopy = async (namespace: string, translationKey: string) => {\n return this.fetchInstance\n .post(`${ApiEndpoints.LOCALIZED_CONTENT}/${namespace}`, { translation_key: translationKey })\n .then((data) => data)\n }\n}\n","import React from 'react'\n\nimport { AnalyticEventFunction, AnalyticPageviewFunction } from '../types'\n\nexport const useCombineEvents = (events: AnalyticEventFunction[], store: any) => {\n const { session } = store\n\n const storeEvents = Object.values(store).reduce((acc: AnalyticEventFunction[], curr: any) => {\n if (session && curr?.onAnalyticEvent && typeof curr?.onAnalyticEvent === 'function') {\n return [...acc, curr.onAnalyticEvent]\n }\n\n return acc\n }, [])\n const eventFunctions = [...events, ...storeEvents]\n\n return React.useMemo(() => {\n return (event: string) => {\n eventFunctions.forEach((e) => {\n if (!session) {\n e(event)\n } else {\n e(event, session)\n }\n })\n }\n }, [events, session])\n}\n\nexport const useCombinePageviews = (pages: AnalyticPageviewFunction[], store: any) => {\n const { session } = store\n\n const storeEvents = Object.values(store).reduce((acc: AnalyticPageviewFunction[], curr: any) => {\n if (session && curr?.onAnalyticPageView && typeof curr?.onAnalyticPageView === 'function') {\n return [...acc, curr.onAnalyticPageView]\n }\n\n return acc\n }, [])\n const eventFunctions = [...pages, ...storeEvents]\n\n return React.useMemo(() => {\n return (event: string) => {\n eventFunctions.forEach((e) => {\n if (!session) {\n e(event)\n } else {\n e(event, session)\n }\n })\n }\n }, [pages, session])\n}\n"],"names":["analyticsSession","endpoint","token","version","featureName","analyticsApi","AnalyticsApi","analytics_session","host","event","getUnixTime","pageview","Fetch","browser","Bowser","ApiEndpoints","err","GlobalCopyApi","namespace","translationKey","data","useCombineEvents","events","store","session","storeEvents","acc","curr","eventFunctions","React","e","useCombinePageviews","pages"],"mappings":"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"}