@zeniai/web-components 4.1.63 → 4.1.64-betaAK1

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 (41) hide show
  1. package/dist/{SessionTimeoutPopup-BnKJzGOq.js → SessionTimeoutPopup--msE6Ijf.js} +73084 -70570
  2. package/dist/{SessionTimeoutPopup-CNwcw2Cm.cjs → SessionTimeoutPopup-OGfFivrB.cjs} +15579 -14740
  3. package/dist/appLocale.d.ts +185 -0
  4. package/dist/cockpit.cjs.js +2 -2
  5. package/dist/cockpit.esm.js +291 -287
  6. package/dist/components/common/StyledCapsule.d.ts +3 -1
  7. package/dist/components/expenseAutomation/ExpenseAutomationPage.d.ts +1 -0
  8. package/dist/components/expenseAutomation/sections/jeSchedules/JEScheduleDraftListRow.d.ts +6 -1
  9. package/dist/components/expenseAutomation/sections/jeSchedules/JEScheduleListWrapperRow.d.ts +3 -1
  10. package/dist/components/expenseAutomation/sections/jeSchedules/JESchedulePage.d.ts +1 -1
  11. package/dist/components/expenseAutomation/sections/jeSchedules/JEScheduleReadOnlyListRow.d.ts +6 -1
  12. package/dist/components/expenseAutomation/sections/jeSchedules/JEScheduleRecommendationIcon.d.ts +3 -2
  13. package/dist/components/expenseAutomation/sections/jeSchedules/JEScheduleResolveListRow.d.ts +6 -1
  14. package/dist/components/expenseAutomation/sections/jeSchedules/JESchedulesList.d.ts +2 -1
  15. package/dist/components/expenseAutomation/sections/jeSchedules/jeScheduleListRow.helpers.d.ts +3 -1
  16. package/dist/components/expenseAutomation/sections/jeSchedules/jeScheduleListRow.helpers.test.d.ts +1 -0
  17. package/dist/components/spendManagement/autoTransferRules/AutoTransferRulePage.d.ts +7 -1
  18. package/dist/components/spendManagement/autoTransferRules/ExistingRulesSection.d.ts +7 -2
  19. package/dist/components/spendManagement/autoTransferRules/ReviewAutoTransferRuleDrawer.d.ts +0 -1
  20. package/dist/components/spendManagement/cashManagement/AutoSweepFlow.d.ts +69 -0
  21. package/dist/components/spendManagement/cashManagement/AutoSweepReviewPage.d.ts +39 -0
  22. package/dist/components/spendManagement/cashManagement/AutoSweepSetupPage.d.ts +37 -0
  23. package/dist/components/spendManagement/cashManagement/CashManagementBanner.d.ts +21 -0
  24. package/dist/components/spendManagement/cashManagement/CashManagementNavCTA.d.ts +14 -0
  25. package/dist/components/spendManagement/cashManagement/CashOverview.d.ts +47 -0
  26. package/dist/components/spendManagement/cashManagement/OutflowSection.d.ts +8 -0
  27. package/dist/components/spendManagement/cashManagement/SweepAmountCard.d.ts +8 -0
  28. package/dist/components/spendManagement/cashManagement/SweepFlowRow.d.ts +21 -0
  29. package/dist/components/spendManagement/cashManagement/skeletons/CashManagementBannerSkeleton.d.ts +6 -0
  30. package/dist/components/spendManagement/treasury/TreasuryNavBarPieces.d.ts +2 -1
  31. package/dist/components/spendManagement/treasury/TreasuryOverviewPage.d.ts +8 -0
  32. package/dist/components/spendManagement/zeniAccounts/ZeniAccountHelper.d.ts +10 -1
  33. package/dist/components/spendManagement/zeniAccounts/ZeniAccountListViewPage.d.ts +9 -1
  34. package/dist/components/spendManagement/zeniAccounts/ZeniAccountNavBarPieces.d.ts +2 -1
  35. package/dist/context/featureProvider/FeatureGateNameConstants.d.ts +4 -0
  36. package/dist/index.cjs.js +1 -1
  37. package/dist/index.d.ts +10 -0
  38. package/dist/index.esm.js +319 -315
  39. package/dist/strings/strings.d.ts +185 -0
  40. package/package.json +3 -3
  41. package/dist/components/common/skeletons/StatementListSkeleton.d.ts +0 -5
@@ -1,6 +1,7 @@
1
+ import { Colors } from '../../designSystem/zeniConstants';
1
2
  export type StyledCapsuleThemeType = "default" | "warning" | "info" | "success" | "attention";
2
3
  export interface StyledCapsuleProps {
3
- label: string;
4
+ label: string | React.ReactElement;
4
5
  capsuleBackground?: string;
5
6
  className?: string;
6
7
  dataTestId?: string;
@@ -11,4 +12,5 @@ export interface StyledCapsuleProps {
11
12
  type?: StyledCapsuleThemeType;
12
13
  onClick?: () => void;
13
14
  }
15
+ export declare const getCapsuleBGColor: (type: StyledCapsuleThemeType, mode: "light" | "dark") => Colors.tagDefaultBgLight | Colors.tagDefaultBgDark | Colors.tagWarningBgLight | Colors.tagWarningBgDark | Colors.tagInfoBgLight | Colors.tagInfoBgDark | Colors.tagSuccessBgLight | Colors.tagSuccessBgDark | Colors.tagAttentionBgLight | Colors.tagAttentionBgDark;
14
16
  export default function StyledCapsule({ label, labelColor, labelStyle, capsuleBackground, showChevron, style, dataTestId, type, onClick, }: Readonly<StyledCapsuleProps>): import("react/jsx-runtime").JSX.Element;
@@ -17,6 +17,7 @@ export interface ExpenseAutomationPageProps extends MonthEndReportPageProps {
17
17
  isAccountingClassesEnabled: boolean;
18
18
  isCOTEnabled: boolean;
19
19
  isDisabled: boolean;
20
+ isJEScheduleCOTEnabled: boolean;
20
21
  isProjectsTransactionsEnabled: boolean;
21
22
  isRealtimeInsightsFeatureEnabled: boolean;
22
23
  isTransactionActivityEnabled: boolean;
@@ -4,11 +4,16 @@ export interface JEScheduleDraftListRowProps {
4
4
  dataListColumnKey: JEScheduleColumnKey;
5
5
  draft: JEScheduledTransaction;
6
6
  ignoreStatus: FetchStateAndError;
7
+ isJEScheduleCOTEnabled: boolean;
7
8
  recommendedCategoryName?: string;
8
9
  recommendedClassName?: string;
10
+ recommendedDepCategoryName?: string;
11
+ recommendedPeriodName?: string;
12
+ recommendedPostingDateName?: string;
13
+ recommendedTypeName?: string;
9
14
  ignoreRecommendedJeSchedule: (jeScheduleTransactionKey: JEScheduleTransactionKey, scheduleType: ScheduleTypes) => void;
10
15
  onReviewClickHandler: (jeScheduleId: ID, jeScheduleKey: JEScheduleTransactionKey, jeScheduleType: ScheduleTypes) => void;
11
16
  onConfirmCategoryRecommendation?: (jeScheduleTransactionKey: JEScheduleTransactionKey, recommendedCategoryId: ID) => void;
12
17
  }
13
- declare const _default: import('react').MemoExoticComponent<({ dataListColumnKey, draft, ignoreRecommendedJeSchedule, ignoreStatus, recommendedCategoryName, recommendedClassName, onConfirmCategoryRecommendation, onReviewClickHandler, }: JEScheduleDraftListRowProps) => import("react/jsx-runtime").JSX.Element | null>;
18
+ declare const _default: import('react').MemoExoticComponent<({ dataListColumnKey, draft, ignoreRecommendedJeSchedule, ignoreStatus, isJEScheduleCOTEnabled, recommendedCategoryName, recommendedClassName, recommendedDepCategoryName, recommendedPeriodName, recommendedPostingDateName, recommendedTypeName, onConfirmCategoryRecommendation, onReviewClickHandler, }: JEScheduleDraftListRowProps) => import("react/jsx-runtime").JSX.Element | null>;
14
19
  export default _default;
@@ -11,6 +11,7 @@ export interface JEScheduleListWrapperRowProps {
11
11
  classListNestedAccountHierarchy: NestedClassHierarchyForReport[];
12
12
  dataListColumnKey: JEScheduleColumnKey;
13
13
  ignoreStatusById: Record<string, FetchStateAndError>;
14
+ isJEScheduleCOTEnabled: boolean;
14
15
  localDataByID: Record<string, JEScheduleLocalData>;
15
16
  postStatusById: Record<string, FetchStateAndError>;
16
17
  row: JEScheduledTransaction;
@@ -18,6 +19,7 @@ export interface JEScheduleListWrapperRowProps {
18
19
  vendorSearchAutoCompleteActions: AutoCompleteActions;
19
20
  vendorSearchAutoCompleteData: AutoCompleteData;
20
21
  align?: TextAlign;
22
+ isReadOnly?: boolean;
21
23
  ignoreRecommendedJeSchedule: (jeScheduleTransactionKey: JEScheduleTransactionKey, scheduleType: ScheduleTypes) => void;
22
24
  jeScheduleClickHandler: (event: React.MouseEvent<HTMLDivElement>, jeScheduleId: ID, jeScheduleKey: JEScheduleTransactionKey, jeScheduleType: ScheduleTypes) => void;
23
25
  onFormDataChange: (scheduleJournalEntryId: ID, localData: JEScheduleResolveComponentFormData) => void;
@@ -25,5 +27,5 @@ export interface JEScheduleListWrapperRowProps {
25
27
  onReviewClickHandler: (jeScheduleId: ID, jeScheduleKey: JEScheduleTransactionKey, jeScheduleType: ScheduleTypes) => void;
26
28
  onConfirmCategoryRecommendation?: (jeScheduleTransactionKey: JEScheduleTransactionKey, recommendedCategoryId: ID) => void;
27
29
  }
28
- declare const _default: import('react').MemoExoticComponent<({ accountListNestedAccountHierarchy, align, allAccountList, allDepAccountList, allDepreciationAccountListNestedAccountHierarchy, classListNestedAccountHierarchy, dataListColumnKey, ignoreStatusById, localDataByID, postStatusById, row, uncategorizedAccounts, vendorSearchAutoCompleteActions, vendorSearchAutoCompleteData, ignoreRecommendedJeSchedule, jeScheduleClickHandler, onConfirmCategoryRecommendation, onFormDataChange, onPostJESchedule, onReviewClickHandler, }: JEScheduleListWrapperRowProps) => import("react/jsx-runtime").JSX.Element | null>;
30
+ declare const _default: import('react').MemoExoticComponent<({ accountListNestedAccountHierarchy, align, allAccountList, allDepAccountList, allDepreciationAccountListNestedAccountHierarchy, classListNestedAccountHierarchy, dataListColumnKey, ignoreStatusById, isJEScheduleCOTEnabled, isReadOnly, localDataByID, postStatusById, row, uncategorizedAccounts, vendorSearchAutoCompleteActions, vendorSearchAutoCompleteData, ignoreRecommendedJeSchedule, jeScheduleClickHandler, onConfirmCategoryRecommendation, onFormDataChange, onPostJESchedule, onReviewClickHandler, }: JEScheduleListWrapperRowProps) => import("react/jsx-runtime").JSX.Element | null>;
29
31
  export default _default;
@@ -11,5 +11,5 @@ export interface JESchedulePageProps extends Omit<JEScheduleListProps, "jeSchedu
11
11
  setIsJeAccountSettingsOpened: (isOpened: boolean) => void;
12
12
  setResetJeAccountSettingsForm: (resetFn: () => void) => void;
13
13
  }
14
- declare function JESchedulePage({ expenseAutomationViewSelector, currentFooterFormId, isAccountingClassesEnabled, selectedMainTab, setResetJeAccountSettingsForm, vendorSearchAutoCompleteData, onJESchedulesFormDataChange, onPostJESchedule, handleJeScheduleClick, onJeAccountSettingsChange, onSaveJeAccountSettingsClick, ignoreRecommendedJeSchedule, vendorSearchAutoCompleteActions, setCurrentFooterFormId, setIsJeAccountSettingsOpened, onUpdateJESchedulesUIState, }: Readonly<JESchedulePageProps>): import("react/jsx-runtime").JSX.Element | null;
14
+ declare function JESchedulePage({ expenseAutomationViewSelector, currentFooterFormId, isAccountingClassesEnabled, isJEScheduleCOTEnabled, selectedMainTab, setResetJeAccountSettingsForm, vendorSearchAutoCompleteData, onJESchedulesFormDataChange, onPostJESchedule, handleJeScheduleClick, onJeAccountSettingsChange, onSaveJeAccountSettingsClick, ignoreRecommendedJeSchedule, vendorSearchAutoCompleteActions, setCurrentFooterFormId, setIsJeAccountSettingsOpened, onUpdateJESchedulesUIState, }: Readonly<JESchedulePageProps>): import("react/jsx-runtime").JSX.Element | null;
15
15
  export default JESchedulePage;
@@ -2,7 +2,12 @@ import { JEScheduledTransaction } from '@zeniai/client-epic-state';
2
2
  import { JEScheduleColumnKey } from './jeScheduleConfig';
3
3
  export interface JEScheduleReadOnlyListRowProps {
4
4
  dataListColumnKey: JEScheduleColumnKey;
5
+ isJEScheduleCOTEnabled: boolean;
5
6
  row: JEScheduledTransaction;
7
+ recommendedCategoryName?: string;
8
+ recommendedClassName?: string;
9
+ recommendedDepCategoryName?: string;
10
+ recommendedTypeName?: string;
6
11
  }
7
- declare const _default: import('react').MemoExoticComponent<({ dataListColumnKey, row, }: JEScheduleReadOnlyListRowProps) => import("react/jsx-runtime").JSX.Element | null>;
12
+ declare const _default: import('react').MemoExoticComponent<({ dataListColumnKey, isJEScheduleCOTEnabled, recommendedCategoryName, recommendedClassName, recommendedDepCategoryName, recommendedTypeName, row, }: JEScheduleReadOnlyListRowProps) => import("react/jsx-runtime").JSX.Element | null>;
8
13
  export default _default;
@@ -1,12 +1,13 @@
1
1
  import { ID, JEScheduleFieldRecommendation, TransactionLineRecommendationFieldTypes } from '@zeniai/client-epic-state';
2
- type JERecommendationType = Extract<TransactionLineRecommendationFieldTypes, "category" | "class">;
2
+ type JERecommendationType = Extract<TransactionLineRecommendationFieldTypes, "category" | "class"> | "scheduleType" | "period" | "postingDate";
3
3
  interface JEScheduleRecommendationIconProps {
4
4
  currentValueId: string | string[] | undefined;
5
+ isJEScheduleCOTEnabled: boolean;
5
6
  recommendation: JEScheduleFieldRecommendation | undefined;
6
7
  recommendedId: string | undefined;
7
8
  type: JERecommendationType;
8
9
  recommendedName?: string;
9
10
  onConfirmRecommendation?: (recommendedId: ID) => void;
10
11
  }
11
- declare const JEScheduleRecommendationIcon: ({ recommendation, currentValueId, recommendedId, recommendedName, type, onConfirmRecommendation, }: JEScheduleRecommendationIconProps) => import("react/jsx-runtime").JSX.Element;
12
+ declare const JEScheduleRecommendationIcon: ({ recommendation, currentValueId, isJEScheduleCOTEnabled, recommendedId, recommendedName, type, onConfirmRecommendation, }: JEScheduleRecommendationIconProps) => import("react/jsx-runtime").JSX.Element;
12
13
  export default JEScheduleRecommendationIcon;
@@ -10,6 +10,7 @@ export interface JEScheduleResolveListRowProps {
10
10
  allDepAccountList: AccountBase[];
11
11
  dataListColumnKey: JEScheduleColumnKey;
12
12
  draft: JEScheduledTransactionWithFailedEntries;
13
+ isJEScheduleCOTEnabled: boolean;
13
14
  localData: JEScheduleLocalData;
14
15
  postStatus: FetchStateAndError;
15
16
  uncategorizedAccounts: UncategorizedAccounts;
@@ -17,10 +18,14 @@ export interface JEScheduleResolveListRowProps {
17
18
  vendorSearchAutoCompleteData: AutoCompleteData;
18
19
  recommendedCategoryName?: string;
19
20
  recommendedClassName?: string;
21
+ recommendedDepCategoryName?: string;
22
+ recommendedPeriodName?: string;
23
+ recommendedPostingDateName?: string;
24
+ recommendedTypeName?: string;
20
25
  onFormDataChange: (scheduleJournalEntryId: ID, localData: JEScheduleResolveComponentFormData) => void;
21
26
  onPostJESchedule: (scheduledJournalEntryId: ID, jeScheduleTransactionKey: JEScheduleTransactionKey) => void;
22
27
  onReviewClickHandler: (jeScheduleId: ID, jeScheduleKey: JEScheduleTransactionKey, jeScheduleType: ScheduleTypes) => void;
23
28
  onConfirmCategoryRecommendation?: (jeScheduleTransactionKey: JEScheduleTransactionKey, recommendedCategoryId: ID) => void;
24
29
  }
25
- declare const _default: import('react').MemoExoticComponent<({ allAccountGroupedOptions, allAccountList, allDepAccountGroupedOptions, allDepAccountList, dataListColumnKey, draft, localData, postStatus, recommendedCategoryName, recommendedClassName, uncategorizedAccounts, vendorSearchAutoCompleteActions, vendorSearchAutoCompleteData, onConfirmCategoryRecommendation, onFormDataChange, onPostJESchedule, onReviewClickHandler, }: JEScheduleResolveListRowProps) => import("react/jsx-runtime").JSX.Element | null>;
30
+ declare const _default: import('react').MemoExoticComponent<({ allAccountGroupedOptions, allAccountList, allDepAccountGroupedOptions, allDepAccountList, dataListColumnKey, draft, isJEScheduleCOTEnabled, localData, postStatus, recommendedCategoryName, recommendedClassName, recommendedDepCategoryName, recommendedPeriodName, recommendedPostingDateName, recommendedTypeName, uncategorizedAccounts, vendorSearchAutoCompleteActions, vendorSearchAutoCompleteData, onConfirmCategoryRecommendation, onFormDataChange, onPostJESchedule, onReviewClickHandler, }: JEScheduleResolveListRowProps) => import("react/jsx-runtime").JSX.Element | null>;
26
31
  export default _default;
@@ -14,10 +14,11 @@ export interface JESchedulesListProps {
14
14
  }
15
15
  export interface Props extends JESchedulesListProps {
16
16
  isAccountingClassesEnabled: boolean;
17
+ isJEScheduleCOTEnabled: boolean;
17
18
  jeSchedules: ExpenseAutomationJESchedulesViewSelector;
18
19
  selectedMainTab: JEScheduleMainTab;
19
20
  vendorSearchAutoCompleteActions: AutoCompleteActions;
20
21
  vendorSearchAutoCompleteData: AutoCompleteData;
21
22
  }
22
- declare function JESchedulesListPage({ isAccountingClassesEnabled, jeSchedules, selectedMainTab, vendorSearchAutoCompleteData, handleJeScheduleClick, onConfirmCategoryRecommendation, onJESchedulesFormDataChange, onPostJESchedule, ignoreRecommendedJeSchedule, onUpdateJESchedulesUIState, vendorSearchAutoCompleteActions, setCurrentFooterFormId, }: Readonly<Props>): import("react/jsx-runtime").JSX.Element;
23
+ declare function JESchedulesListPage({ isAccountingClassesEnabled, isJEScheduleCOTEnabled, jeSchedules, selectedMainTab, vendorSearchAutoCompleteData, handleJeScheduleClick, onConfirmCategoryRecommendation, onJESchedulesFormDataChange, onPostJESchedule, ignoreRecommendedJeSchedule, onUpdateJESchedulesUIState, vendorSearchAutoCompleteActions, setCurrentFooterFormId, }: Readonly<Props>): import("react/jsx-runtime").JSX.Element;
23
24
  export default JESchedulesListPage;
@@ -1,12 +1,14 @@
1
1
  import { ID, JEScheduleFieldRecommendation, JEScheduledTransaction, TransactionLineRecommendationFieldTypes } from '@zeniai/client-epic-state';
2
2
  import { ChainOfThoughtData } from '../../../common/tooltipVariants/types';
3
3
  interface BuildJEScheduleCOTDataOptions {
4
+ /** Current caller (JEScheduleRecommendationIcon) pre-gates on this; kept for future callers that may not. */
5
+ isCOTEnabled: boolean;
4
6
  isDisabled: boolean;
5
7
  isSelected: boolean;
6
8
  recommendation: JEScheduleFieldRecommendation;
7
9
  recommendedId: ID;
8
10
  recommendedName: string;
9
- type: Extract<TransactionLineRecommendationFieldTypes, "category" | "class">;
11
+ type: Extract<TransactionLineRecommendationFieldTypes, "category" | "class"> | "scheduleType" | "period" | "postingDate";
10
12
  onConfirmClick?: (recommendedId: ID) => void;
11
13
  }
12
14
  export declare function buildJEScheduleCOTData(options: BuildJEScheduleCOTDataOptions): ChainOfThoughtData | null;
@@ -17,6 +17,12 @@ export interface AutoTransferRulePageProps {
17
17
  depositAccountListView?: DepositAccountListSelectorView;
18
18
  downloadAccountDetailEndPoint?: string;
19
19
  editingRuleId?: string | null;
20
+ /**
21
+ * When `true`, suppresses the page-level NavBar. Use when embedding this
22
+ * page inside another page (e.g. as a sub-tab of cash management) that
23
+ * already owns the chrome.
24
+ */
25
+ hideNavBar?: boolean;
20
26
  isEditDrawerOpen?: boolean;
21
27
  scrollToAddRule?: boolean;
22
28
  zeniAccountsConfigDetail?: ZeniAccountsConfigSelectorView;
@@ -33,7 +39,7 @@ export interface AutoTransferRulePageProps {
33
39
  onUpdateRuleLocalData: (localData: AutoTransferRuleLocalData, ruleId?: string) => void;
34
40
  onEditClick?: (ruleId: string) => void;
35
41
  }
36
- declare const AutoTransferRulePage: ({ autoTransferRuleView, hasAdminLevelAccess, companyName, analytics, authParams, currentTenant, depositAccountListView, downloadAccountDetailEndPoint, transferLimit, zeniAccountsConfigDetail, onBackClick, onDeleteClick, onPauseClick, onResumeClick, onActivityClick, onUpdateRule, onCreateRule, onReviewClick, includeTreasuryOption, isEditDrawerOpen, editingRuleId, onUpdateRuleLocalData, onEditClick, clearRuleLocalData, onEditDrawerClose, scrollToAddRule, }: AutoTransferRulePageProps) => import("react/jsx-runtime").JSX.Element;
42
+ declare const AutoTransferRulePage: ({ autoTransferRuleView, hasAdminLevelAccess, companyName, analytics, authParams, currentTenant, depositAccountListView, downloadAccountDetailEndPoint, transferLimit, zeniAccountsConfigDetail, onBackClick, onDeleteClick, onPauseClick, onResumeClick, onActivityClick, onUpdateRule, onCreateRule, onReviewClick, hideNavBar, includeTreasuryOption, isEditDrawerOpen, editingRuleId, onUpdateRuleLocalData, onEditClick, clearRuleLocalData, onEditDrawerClose, scrollToAddRule, }: AutoTransferRulePageProps) => import("react/jsx-runtime").JSX.Element;
37
43
  export default AutoTransferRulePage;
38
44
  export declare const getAccountLabel: (account?: FundingAccount | {
39
45
  accType: string;
@@ -1,5 +1,5 @@
1
1
  import { ClientAnalytics } from '@zeniai/client-analytics';
2
- import { AutoTransferRule, FundingAccount, TreasuryAccount } from '@zeniai/client-epic-state';
2
+ import { AutoTransferRule, CashManagementRule, FundingAccount, TreasuryAccount } from '@zeniai/client-epic-state';
3
3
  /** Single destination for distribute-by-percentage (e.g. "50% To Zeni Checking ... 2213") */
4
4
  export interface AllocationDestination {
5
5
  accountLabel: string;
@@ -12,7 +12,12 @@ export interface ExistingRulesSectionProps {
12
12
  rules: AutoTransferRule[];
13
13
  transferMoneyParties: FundingAccount[];
14
14
  analytics?: ClientAnalytics;
15
+ /**
16
+ * Saved auto-sweep cash-management config. When present, rendered as the
17
+ * first card above the regular auto-transfer rules.
18
+ */
19
+ cashManagementRule?: CashManagementRule;
15
20
  treasuryAccount?: TreasuryAccount;
16
21
  onRuleMenuAction: (ruleId: string, action: RuleMenuAction) => void;
17
22
  }
18
- export declare function ExistingRulesSection({ analytics, hasAdminLevelAccess, rules, transferMoneyParties, treasuryAccount, onRuleMenuAction, }: ExistingRulesSectionProps): import("react/jsx-runtime").JSX.Element | null;
23
+ export declare function ExistingRulesSection({ analytics, hasAdminLevelAccess, rules, transferMoneyParties, cashManagementRule, treasuryAccount, onRuleMenuAction, }: ExistingRulesSectionProps): import("react/jsx-runtime").JSX.Element | null;
@@ -12,5 +12,4 @@ export interface ReviewAutoTransferRuleDrawerProps {
12
12
  onClose: () => void;
13
13
  onCreateRule: () => void;
14
14
  }
15
- export declare function getNextTransferDate(frequency: string | undefined): string;
16
15
  export declare function ReviewAutoTransferRuleDrawer({ open, ruleType, formLocalData, companyName, autoTransferReviewDetail, transferMoneyParties, ruleUpdateStatus, isEdit, onBack, onClose, onCreateRule, }: ReviewAutoTransferRuleDrawerProps): import("react/jsx-runtime").JSX.Element | null;
@@ -0,0 +1,69 @@
1
+ import { default as React } from 'react';
2
+ import { Amount, FundingAccount, RiskLevel } from '@zeniai/client-epic-state';
3
+ import { SweepFrequency } from './AutoSweepSetupPage';
4
+ interface TreasurySummaryWithBalance {
5
+ availableBalance: Amount;
6
+ fundAllocations: {
7
+ amount: Amount;
8
+ fundCode: string;
9
+ }[];
10
+ insuredFunds: Amount;
11
+ processingBalance: Amount;
12
+ totalBalance: Amount;
13
+ totalYield: Amount;
14
+ }
15
+ export interface AutoSweepFlowProps {
16
+ primaryAccount: FundingAccount;
17
+ sweepAmount: Amount;
18
+ initialFrequency?: SweepFrequency;
19
+ initialMemo?: string;
20
+ /** Initial state for the form. */
21
+ initialRisk?: RiskLevel;
22
+ /**
23
+ * Pass `true` while the PUT save is in flight so the Review page renders
24
+ * the Confirm button with a loading spinner and blocks edits. Driven off
25
+ * the slice's `saveStatus.fetchState` in the container.
26
+ */
27
+ isSaving?: boolean;
28
+ treasurySummary?: TreasurySummaryWithBalance;
29
+ /**
30
+ * Fired when the user clicks "Confirm Sweep" on the review screen.
31
+ * Carries no payload — the form values have already been staged into
32
+ * Redux via the preceding `onSaveDraft` dispatch on Review, so the
33
+ * container can dispatch the save action with no payload.
34
+ */
35
+ onConfirm?: () => void;
36
+ /** Fired when the user clicks the back arrow on the setup screen. */
37
+ onExit?: () => void;
38
+ /**
39
+ * Fired whenever the risk band changes on the setup screen (live, not just
40
+ * on review). Consumers wire this to update the buffer in Redux so the
41
+ * recommended sweep amount recomputes and both screens stay in sync.
42
+ */
43
+ onRiskChange?: (risk: RiskLevel) => void;
44
+ /**
45
+ * Fired when the user transitions from setup → review (i.e. clicks the
46
+ * "Review Sweep" button). Consumers wire this to persist the in-flight
47
+ * form values into Redux so the draft is observable to other selectors
48
+ * before the user confirms.
49
+ */
50
+ onSaveDraft?: (params: {
51
+ frequency: SweepFrequency;
52
+ memo: string;
53
+ risk: RiskLevel;
54
+ }) => void;
55
+ }
56
+ /**
57
+ * Step state machine that pairs `AutoSweepSetupPage` and `AutoSweepReviewPage`.
58
+ *
59
+ * - Setup → Review: triggered by `onReviewClick` (Review Sweep button).
60
+ * - Review → Setup: triggered by `onEditClick` (Edit button).
61
+ * - Review → Confirm: triggered by `onConfirmClick`; bubbles up via `onConfirm`.
62
+ *
63
+ * Use this component in stories or screens that need the full
64
+ * "configure → review → confirm" flow without their own routing layer.
65
+ * In production a router-driven container can render the two pages on
66
+ * separate routes instead of using this wrapper.
67
+ */
68
+ declare const AutoSweepFlow: React.FC<AutoSweepFlowProps>;
69
+ export default AutoSweepFlow;
@@ -0,0 +1,39 @@
1
+ import { default as React } from 'react';
2
+ import { Amount, FundingAccount, RiskLevel } from '@zeniai/client-epic-state';
3
+ interface TreasurySummaryWithBalance {
4
+ availableBalance: Amount;
5
+ fundAllocations: {
6
+ amount: Amount;
7
+ fundCode: string;
8
+ }[];
9
+ insuredFunds: Amount;
10
+ processingBalance: Amount;
11
+ totalBalance: Amount;
12
+ totalYield: Amount;
13
+ }
14
+ export interface AutoSweepReviewPageProps {
15
+ bufferAmount: number;
16
+ bufferCushionAmount: number;
17
+ operatingBalance: number;
18
+ primaryAccount: FundingAccount;
19
+ risk: RiskLevel;
20
+ sweepAmount: Amount;
21
+ estimatedDaysLabel?: string;
22
+ /**
23
+ * Renders the Confirm Sweep button in a loading state and blocks further
24
+ * clicks. Driven off `saveStatus.fetchState === 'In-Progress'` by the
25
+ * container.
26
+ */
27
+ isSaving?: boolean;
28
+ /**
29
+ * Treasury account summary used to render the destination ("Treasury")
30
+ * label and its current available balance. Source:
31
+ * `getTreasuryDetail(state).accountSummary`.
32
+ */
33
+ treasurySummary?: TreasurySummaryWithBalance;
34
+ onBackClick?: () => void;
35
+ onConfirmClick?: () => void;
36
+ onEditClick?: () => void;
37
+ }
38
+ declare const AutoSweepReviewPage: React.FC<AutoSweepReviewPageProps>;
39
+ export default AutoSweepReviewPage;
@@ -0,0 +1,37 @@
1
+ import { default as React } from 'react';
2
+ import { Amount, FundingAccount, RiskLevel } from '@zeniai/client-epic-state';
3
+ interface TreasurySummaryWithBalance {
4
+ availableBalance: Amount;
5
+ fundAllocations: {
6
+ amount: Amount;
7
+ fundCode: string;
8
+ }[];
9
+ insuredFunds: Amount;
10
+ processingBalance: Amount;
11
+ totalBalance: Amount;
12
+ totalYield: Amount;
13
+ }
14
+ export type SweepFrequency = "daily" | "weekly" | "biweekly" | "monthly";
15
+ export interface AutoSweepSetupPageProps {
16
+ primaryAccount: FundingAccount;
17
+ sweepAmount: Amount;
18
+ frequency?: SweepFrequency;
19
+ memo?: string;
20
+ risk?: RiskLevel;
21
+ treasurySummary?: TreasurySummaryWithBalance;
22
+ onBackClick?: () => void;
23
+ onCancelClick?: () => void;
24
+ onReviewClick?: (params: {
25
+ frequency: SweepFrequency;
26
+ memo: string;
27
+ risk: RiskLevel;
28
+ }) => void;
29
+ /**
30
+ * Fired whenever the risk band changes in the picker (not just on review),
31
+ * so the container can update the buffer in state and the sweep amount can
32
+ * react live.
33
+ */
34
+ onRiskChange?: (risk: RiskLevel) => void;
35
+ }
36
+ declare const AutoSweepSetupPage: React.FC<AutoSweepSetupPageProps>;
37
+ export default AutoSweepSetupPage;
@@ -0,0 +1,21 @@
1
+ import { default as React } from 'react';
2
+ import { Amount, CashManagementOverviewBannerSelectorView } from '@zeniai/client-epic-state';
3
+ /**
4
+ * Direction of the agent's recommended movement. Drives which banner layout
5
+ * we render — `'push'` (sweep cash up to treasury) shows the "Move X to
6
+ * Treasury" recommendation; `'pull'` (pull funds back to checking to cover
7
+ * an outflow) shows the in-progress status row.
8
+ */
9
+ export type CashManagementBannerSubMovementType = "push" | "pull";
10
+ export interface CashManagementBannerProps {
11
+ banner: CashManagementOverviewBannerSelectorView;
12
+ bufferAmount: Amount;
13
+ estimatedAnnualYield?: Amount;
14
+ estimatedDaysLabel?: string;
15
+ frequencyLabel?: string;
16
+ initiatedAtLabel?: string;
17
+ style?: React.CSSProperties;
18
+ onSetUpAutoSweepClick?: () => void;
19
+ }
20
+ declare const CashManagementBanner: React.FC<CashManagementBannerProps>;
21
+ export default CashManagementBanner;
@@ -0,0 +1,14 @@
1
+ import { default as React } from 'react';
2
+ export interface CashManagementNavCTAProps {
3
+ /** Override the gate check (e.g. for storybook). When omitted, reads `is_cash_management_feature_enabled`. */
4
+ isFeatureEnabled?: boolean;
5
+ onClick: () => void;
6
+ }
7
+ /**
8
+ * Right-side navbar CTA that links to the Cash Management page.
9
+ *
10
+ * Gated behind `is_cash_management_feature_enabled`. Renders nothing when
11
+ * the gate is off so it can be safely dropped into existing navbars.
12
+ */
13
+ declare const CashManagementNavCTA: React.FC<CashManagementNavCTAProps>;
14
+ export default CashManagementNavCTA;
@@ -0,0 +1,47 @@
1
+ import { default as React } from 'react';
2
+ import { Amount, CashProjectionPoint, UpcomingPaymentEvent } from '@zeniai/client-epic-state';
3
+ import { AutoTransferRulePageProps } from '../autoTransferRules/AutoTransferRulePage';
4
+ import { CashManagementBannerProps } from './CashManagementBanner';
5
+ export type ProjectionGranularity = "daily" | "weekly" | "monthly";
6
+ export type CashManagementTabId = "overview" | "autoTransferRules";
7
+ export interface CashOverviewProps {
8
+ bufferAmount: Amount;
9
+ cashBalance: Amount;
10
+ cashFlowTotal: Amount;
11
+ inflows: Amount;
12
+ outflowItems: UpcomingPaymentEvent[];
13
+ outflows: Amount;
14
+ projectionData: CashProjectionPoint[];
15
+ totalCash: Amount;
16
+ treasuryBalance: Amount;
17
+ /**
18
+ * Props passed through to `<AutoTransferRulePage />` rendered under the
19
+ * "Auto Transfer Rules" tab. When omitted and `isAutoTransferRulesLoading`
20
+ * is false, that tab renders an empty state.
21
+ */
22
+ autoTransferRulePageProps?: AutoTransferRulePageProps;
23
+ /**
24
+ * When provided, renders `<CashManagementBanner>` just below the NavBar.
25
+ * The consumer is responsible for picking the right `status` and
26
+ * gating on the cash-management feature flag.
27
+ */
28
+ cashManagementBannerProps?: CashManagementBannerProps;
29
+ granularity?: ProjectionGranularity;
30
+ /** Initial active tab; defaults to `"overview"`. */
31
+ initialTab?: CashManagementTabId;
32
+ /**
33
+ * When `true`, the auto transfer rules tab renders a skeleton placeholder
34
+ * instead of the empty state. Use while the rules selector is fetching.
35
+ */
36
+ isAutoTransferRulesLoading?: boolean;
37
+ /**
38
+ * When `true`, the upcoming outflows table renders a skeleton placeholder
39
+ * in place of its rows. Use while the upcoming-payment-events selector is
40
+ * fetching.
41
+ */
42
+ isOutflowsLoading?: boolean;
43
+ onBackClick?: () => void;
44
+ onGranularityChange?: (granularity: ProjectionGranularity) => void;
45
+ }
46
+ declare const CashOverview: React.FC<CashOverviewProps>;
47
+ export default CashOverview;
@@ -0,0 +1,8 @@
1
+ import { default as React } from 'react';
2
+ import { UpcomingPaymentEvent } from '@zeniai/client-epic-state';
3
+ export interface OutflowSectionProps {
4
+ items: UpcomingPaymentEvent[];
5
+ }
6
+ export declare const OUTFLOW_COL_PCTS: readonly [45, 30, 25];
7
+ declare const OutflowSection: React.FC<OutflowSectionProps>;
8
+ export default OutflowSection;
@@ -0,0 +1,8 @@
1
+ import { default as React } from 'react';
2
+ import { Amount } from '@zeniai/client-epic-state';
3
+ export interface SweepAmountCardProps {
4
+ sweepAmount: Amount;
5
+ style?: React.CSSProperties;
6
+ }
7
+ declare const SweepAmountCard: React.FC<SweepAmountCardProps>;
8
+ export default SweepAmountCard;
@@ -0,0 +1,21 @@
1
+ import { default as React } from 'react';
2
+ import { Amount, FundingAccount } from '@zeniai/client-epic-state';
3
+ interface TreasurySummaryWithBalance {
4
+ availableBalance: Amount;
5
+ fundAllocations: {
6
+ amount: Amount;
7
+ fundCode: string;
8
+ }[];
9
+ insuredFunds: Amount;
10
+ processingBalance: Amount;
11
+ totalBalance: Amount;
12
+ totalYield: Amount;
13
+ }
14
+ export interface SweepFlowRowProps {
15
+ /** Primary funding account that performs the actual transfer to Treasury. */
16
+ primaryAccount: FundingAccount;
17
+ /** Treasury account summary; rendered as the destination ("Treasury" + available balance). */
18
+ treasurySummary?: TreasurySummaryWithBalance;
19
+ }
20
+ declare const SweepFlowRow: React.FC<SweepFlowRowProps>;
21
+ export default SweepFlowRow;
@@ -0,0 +1,6 @@
1
+ import { default as React } from 'react';
2
+ interface CashManagementBannerSkeletonProps {
3
+ style?: React.CSSProperties;
4
+ }
5
+ declare const CashManagementBannerSkeleton: React.FC<CashManagementBannerSkeletonProps>;
6
+ export default CashManagementBannerSkeleton;
@@ -13,6 +13,7 @@ export interface TreasuryNavBarPiecesProps {
13
13
  onOptionSelection: (value: MoreOption) => void;
14
14
  onTransferClick: () => void;
15
15
  onAutoTransferClick?: () => void;
16
+ onCashManagementClick?: () => void;
16
17
  onCommentIconClick?: () => void;
17
18
  }
18
- export declare const TreasuryNavBarPieces: ({ isAutoTransferRuleEnabled, onOptionSelection, onTransferClick, onAutoTransferClick, isTreasuryCommentingEnabled, isThreadsLoading, threadsCount, onCommentIconClick, }: TreasuryNavBarPiecesProps) => import("react/jsx-runtime").JSX.Element;
19
+ export declare const TreasuryNavBarPieces: ({ isAutoTransferRuleEnabled, onOptionSelection, onTransferClick, onAutoTransferClick, onCashManagementClick, isTreasuryCommentingEnabled, isThreadsLoading, threadsCount, onCommentIconClick, }: TreasuryNavBarPiecesProps) => import("react/jsx-runtime").JSX.Element;
@@ -1,10 +1,17 @@
1
1
  import { SortOrder, TreasuryDetailSelectorView, TreasurySetupView, TreasuryViewSortKey } from '@zeniai/client-epic-state';
2
2
  import { RequestToOpenThreadType } from '../../commentsAndNotes/utils/ThreadsProvider';
3
+ import { CashManagementBannerProps } from '../cashManagement/CashManagementBanner';
3
4
  import { MoreOption } from './TreasuryNavBarPieces';
4
5
  export interface TreasuryOverviewPageProps {
5
6
  isAutoTransferRuleEnabled: boolean;
6
7
  treasuryDetail: TreasuryDetailSelectorView;
7
8
  treasurySetupView: TreasurySetupView;
9
+ /**
10
+ * When provided, renders `<CashManagementBanner>` just below the NavBar.
11
+ * The consumer is responsible for picking the right `status` and
12
+ * gating on the cash-management feature flag.
13
+ */
14
+ cashManagementBannerProps?: CashManagementBannerProps;
8
15
  initialOpenThreadRequest?: RequestToOpenThreadType;
9
16
  isAiCfoAccessEnabled?: boolean;
10
17
  isLoading?: boolean;
@@ -15,6 +22,7 @@ export interface TreasuryOverviewPageProps {
15
22
  onColumnSortConfigChanged: (sortKey: TreasuryViewSortKey, sortOrder: SortOrder) => void;
16
23
  onTransferClick: () => void;
17
24
  onAskAiCfoClick?: () => void;
25
+ onCashManagementClick?: () => void;
18
26
  onClickMenuIcon?: () => void;
19
27
  onReloadTreasuryTransactions?: () => void;
20
28
  }
@@ -1,4 +1,4 @@
1
- import { AutoTransferRule, DepositAccount, PaymentAccount } from '@zeniai/client-epic-state';
1
+ import { AutoTransferRule, DepositAccount, FundingAccount, ID, PaymentAccount } from '@zeniai/client-epic-state';
2
2
  export declare const buildAccountNameById: (depositAccounts: DepositAccount[], paymentAccounts: PaymentAccount[] | undefined) => Map<string, string>;
3
3
  export interface AutoTransferRuleSummary {
4
4
  subtitle: string;
@@ -10,3 +10,12 @@ export declare const toMoveMoneyOptionTypeStrict: (option?: string) => "transfer
10
10
  export type MoveMoneyOption = NonNullable<ReturnType<typeof toMoveMoneyOptionTypeStrict>>;
11
11
  export declare const ACCOUNTS_COLOR_PALETTE_LIST: string[];
12
12
  export declare const getAccountsColorMappingFromIndex: (index: number) => string;
13
+ /**
14
+ * Renders a logo for a FundingAccount as a 100%-of-parent element.
15
+ * Callers control the size by sizing the wrapping container.
16
+ *
17
+ * - depositAccount → ZeniBrandCheckingAccIcon colored from index
18
+ * - paymentAccount with a logo (base64 or url) → bank logo image
19
+ * - paymentAccount without a logo → ExternalAccountIcon SVG fallback
20
+ */
21
+ export declare const renderAccountIcon: (accounts: FundingAccount[], accountId: ID) => JSX.Element | null;
@@ -1,5 +1,6 @@
1
1
  import { ClientAnalytics } from '@zeniai/client-analytics';
2
2
  import { DepositAccount, ID, ZeniAccountListSelectorView } from '@zeniai/client-epic-state';
3
+ import { CashManagementBannerProps } from '../cashManagement/CashManagementBanner';
3
4
  import { MoveMoneyOption } from './ZeniAccountHelper';
4
5
  export interface ZeniAccountListViewPageProps {
5
6
  analytics: ClientAnalytics;
@@ -8,6 +9,12 @@ export interface ZeniAccountListViewPageProps {
8
9
  isExpressPayEnabled: boolean;
9
10
  maxInsuredAmount: number;
10
11
  zeniAccountListView: ZeniAccountListSelectorView;
12
+ /**
13
+ * When provided, renders `<CashManagementBanner>` just below the NavBar.
14
+ * The consumer is responsible for picking the right `status` and
15
+ * gating on the cash-management feature flag.
16
+ */
17
+ cashManagementBannerProps?: CashManagementBannerProps;
11
18
  isAiCfoAccessEnabled?: boolean;
12
19
  isCheckingCommentingEnabled?: boolean;
13
20
  showTreasuryPromo?: boolean;
@@ -18,10 +25,11 @@ export interface ZeniAccountListViewPageProps {
18
25
  onSettingsClick: () => void;
19
26
  onZeniAccountClick: (id: ID, name: string) => void;
20
27
  onAskAiCfoClick?: () => void;
28
+ onCashManagementClick?: () => void;
21
29
  onClickMenuIcon?: () => void;
22
30
  onCreateCheckingClick?: (nickName: string) => void;
23
31
  onReloadTransactions?: () => void;
24
32
  onTreasuryGetStartedClick?: () => void;
25
33
  }
26
- declare const ZeniAccountListViewPage: ({ zeniAccountListView, analytics, maxInsuredAmount, isBillPayEnabled, isCheckingCommentingEnabled, isExpressPayEnabled, isAutoTransferRuleEnabled, onZeniAccountClick, onSettingsClick, onAutoTransferClick, handleMoveMoneyOptionSelection, onReloadTransactions, onCreateCheckingClick, onClickMenuIcon, onTreasuryGetStartedClick, showTreasuryPromo, treasuryYieldPercentage, treasuryInsuredAmount, isAiCfoAccessEnabled, onAskAiCfoClick, }: ZeniAccountListViewPageProps) => import("react/jsx-runtime").JSX.Element;
34
+ declare const ZeniAccountListViewPage: ({ zeniAccountListView, analytics, maxInsuredAmount, isBillPayEnabled, isCheckingCommentingEnabled, isExpressPayEnabled, isAutoTransferRuleEnabled, onZeniAccountClick, onSettingsClick, onAutoTransferClick, handleMoveMoneyOptionSelection, onReloadTransactions, onCreateCheckingClick, onClickMenuIcon, onTreasuryGetStartedClick, showTreasuryPromo, treasuryYieldPercentage, treasuryInsuredAmount, isAiCfoAccessEnabled, onAskAiCfoClick, onCashManagementClick, cashManagementBannerProps, }: ZeniAccountListViewPageProps) => import("react/jsx-runtime").JSX.Element;
27
35
  export default ZeniAccountListViewPage;
@@ -29,7 +29,8 @@ export interface ZeniAccountNavBarPiecesProps {
29
29
  onAccountDetailClick?: () => void;
30
30
  onAutoTransferClick?: () => void;
31
31
  onBankLetterClick?: () => void;
32
+ onCashManagementClick?: () => void;
32
33
  onCommentIconClick?: () => void;
33
34
  onSettingsClick?: () => void;
34
35
  }
35
- export declare const ZeniAccountNavBarPieces: ({ zeniBankProps, isAutoTransferRuleEnabled, isBillPayEnabled, isCheckingCommentingEnabled, isExpressPayEnabled, isThreadsLoading, analytics, onAutoTransferClick, onCommentIconClick, onSettingsClick, onAccountDetailClick, onBankLetterClick, showLoader, threadsCount, }: ZeniAccountNavBarPiecesProps) => import("react/jsx-runtime").JSX.Element;
36
+ export declare const ZeniAccountNavBarPieces: ({ zeniBankProps, isAutoTransferRuleEnabled, isBillPayEnabled, isCheckingCommentingEnabled, isExpressPayEnabled, isThreadsLoading, analytics, onAutoTransferClick, onCashManagementClick, onCommentIconClick, onSettingsClick, onAccountDetailClick, onBankLetterClick, showLoader, threadsCount, }: ZeniAccountNavBarPiecesProps) => import("react/jsx-runtime").JSX.Element;