@zeniai/web-components 4.3.68 → 4.3.70-beta0ND

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 (52) hide show
  1. package/dist/{SessionTimeoutPopup--NB-YNOH.cjs → SessionTimeoutPopup-Bd5Ri9a6.cjs} +17447 -16482
  2. package/dist/{SessionTimeoutPopup-Boc-BbqY.js → SessionTimeoutPopup-CMIfSK_t.js} +94717 -91991
  3. package/dist/appLocale.d.ts +146 -0
  4. package/dist/cockpit.cjs.js +2 -2
  5. package/dist/cockpit.esm.js +168 -166
  6. package/dist/common/recommendationSelectionFeedback.d.ts +2 -13
  7. package/dist/components/aiCfo/AiCfoPage.d.ts +68 -0
  8. package/dist/components/aiCfo/components/AiCfoCombobox.d.ts +24 -0
  9. package/dist/components/aiCfo/components/AiCfoRoutineDetail.d.ts +29 -0
  10. package/dist/components/aiCfo/components/AiCfoRoutineEditor.d.ts +46 -0
  11. package/dist/components/aiCfo/components/AiCfoRoutineRunsPanel.d.ts +42 -0
  12. package/dist/components/aiCfo/components/AiCfoRoutinesBrowser.d.ts +41 -0
  13. package/dist/components/aiCfo/components/AiCfoScrollArea.d.ts +11 -0
  14. package/dist/components/aiCfo/components/helpers/aiCfoRoutines.d.ts +197 -0
  15. package/dist/components/aiCfo/stories/hooks/useAiCfoStreamingState.d.ts +1 -0
  16. package/dist/components/appDrawerContent/AiCfoMenuContent.d.ts +29 -1
  17. package/dist/components/appDrawerContent/AppDrawerContent.d.ts +8 -1
  18. package/dist/components/appDrawerContent/MenuButton.d.ts +4 -3
  19. package/dist/components/appDrawerContent/MenuList.d.ts +8 -1
  20. package/dist/components/appDrawerContent/appDrawerContent.helpers.d.ts +5 -0
  21. package/dist/components/common/Picker.d.ts +7 -1
  22. package/dist/components/{transactionDetail/TransactionSidePanelLayout.d.ts → common/sidePanel/SidePanelLayout.d.ts} +17 -2
  23. package/dist/components/commonSetUp/approval/ApprovalStageRow.d.ts +24 -0
  24. package/dist/components/commonSetUp/approval/ApprovalStagesSection.d.ts +9 -1
  25. package/dist/components/commonSetUp/approval/ConditionRow.d.ts +7 -4
  26. package/dist/components/expenseAutomation/ExpenseAutomationPage.d.ts +15 -0
  27. package/dist/components/expenseAutomation/sections/jeSchedules/JESchedulePage.d.ts +15 -2
  28. package/dist/components/expenseAutomation/sections/jeSchedules/accrualDetail/JEOneTimeAccrualDetailPage.d.ts +8 -4
  29. package/dist/components/expenseAutomation/sections/jeSchedules/list/jeScheduleConfig.d.ts +12 -1
  30. package/dist/components/expenseAutomation/sections/jeSchedules/list/jeScheduleListRow.helpers.d.ts +9 -1
  31. package/dist/components/expenseAutomation/sections/jeSchedules/list/useJEScheduleRowClick.d.ts +13 -0
  32. package/dist/components/expenseAutomation/sections/jeSchedules/sections/JEExistingSection.d.ts +11 -1
  33. package/dist/components/expenseAutomation/sections/jeSchedules/sections/JESchedulesSection.d.ts +11 -1
  34. package/dist/components/expenseAutomation/sections/missingReceipts/completedTab/CompletedTab.d.ts +1 -1
  35. package/dist/components/expenseAutomation/sections/missingReceipts/missingReceiptsSidePanelListMargin.d.ts +1 -1
  36. package/dist/components/expenseAutomation/sections/missingReceipts/missingTab/MissingReceiptsListTable.d.ts +1 -1
  37. package/dist/components/invoicing/catalogForm/catalogItemForm.shared.d.ts +1 -0
  38. package/dist/components/jeSchedules/scheduleDetails/ScheduleDetailsAccruedExpensesPage.d.ts +4 -1
  39. package/dist/components/jeSchedules/scheduleDetails/ScheduleDetailsFixedAssetsPage.d.ts +4 -1
  40. package/dist/components/jeSchedules/scheduleDetails/ScheduleDetailsPage.d.ts +4 -1
  41. package/dist/components/singleSelect/SingleSelect.d.ts +8 -1
  42. package/dist/components/singleSelect/SingleSelectField.d.ts +3 -1
  43. package/dist/components/spendManagement/activitySection/activitySectionUtil.d.ts +1 -0
  44. package/dist/components/spendManagement/billPay/billPaySetUp/components/formElements/UserMultiSelect.d.ts +35 -1
  45. package/dist/components/spendManagement/billPay/billPaySetUp/components/formElements/UserMultiSelectField.d.ts +9 -1
  46. package/dist/context/SidePanelContext.d.ts +25 -11
  47. package/dist/index.cjs.js +1 -1
  48. package/dist/index.d.ts +6 -4
  49. package/dist/index.esm.js +258 -256
  50. package/dist/strings/strings.d.ts +146 -0
  51. package/package.json +5 -5
  52. /package/dist/components/{transactionDetail → common/sidePanel}/panelSelectedMixin.d.ts +0 -0
@@ -71,6 +71,16 @@ export interface ExpenseAutomationPageProps extends MonthEndReportPageProps {
71
71
  isExpenseAutomationCommentingEnabled?: boolean;
72
72
  /** Transaction categorization only: when true, the right rail is expanded. */
73
73
  isRightPanelOpen?: boolean;
74
+ /**
75
+ * The JE Schedules side panel, deliberately named apart from `panelContent` /
76
+ * `sidePanelIsOpen`, which drive the page-level split for transactions and reconciliation.
77
+ * The schedules panel lives inside the list section instead, so the KPI strip and type filter
78
+ * stay full-width above it -- and these props are spread on to TableSection, where a shared
79
+ * name would hand the transaction panel to the schedules list.
80
+ *
81
+ * There is no full-view flag: expanding leaves for the schedule's own page.
82
+ */
83
+ isSchedulePanelOpen?: boolean;
74
84
  loggedInUser?: LoggedInUser;
75
85
  newAccrualAccountsView?: NewAccrualAccountsView;
76
86
  /** The draft this form was last left with, for a host that stores it. */
@@ -87,6 +97,11 @@ export interface ExpenseAutomationPageProps extends MonthEndReportPageProps {
87
97
  * Transaction categorization only: inline right rail (activity or transfer panel body).
88
98
  */
89
99
  rightSidePanel?: ReactNode;
100
+ schedulePanelContent?: ReactNode;
101
+ schedulePendingDiscardConfirmation?: {
102
+ onCancel: () => void;
103
+ onDiscard: () => void;
104
+ };
90
105
  sidePanelIsFullView?: boolean;
91
106
  sidePanelIsOpen?: boolean;
92
107
  sidePanelListPercent?: number;
@@ -3,7 +3,7 @@ import { FooterFormIdType } from '../../common';
3
3
  import { FormData as JEScheduleAccountSettingsFormData } from './common/JEScheduleAccountSettings';
4
4
  import { JESchedulesSectionProps } from './sections/JESchedulesSection';
5
5
  import { NewScheduleSaveFormValues } from './sections/NewJEScheduleSection';
6
- export interface JESchedulePageProps extends Omit<JESchedulesSectionProps, "jeSchedules" | "isAccountingClassesEnabled"> {
6
+ export interface JESchedulePageProps extends Omit<JESchedulesSectionProps, "jeSchedules" | "isAccountingClassesEnabled" | "isPanelOpen" | "panelContent" | "pendingDiscardConfirmation"> {
7
7
  accountListNestedAccountHierarchy: NestedAccountHierarchyForReport[];
8
8
  baseTransactionSearchFetchState: FetchStateAndError;
9
9
  baseTransactionSearchResults: ScheduleTransaction[];
@@ -21,8 +21,21 @@ export interface JESchedulePageProps extends Omit<JESchedulesSectionProps, "jeSc
21
21
  /** The draft this form was last left with, for a host that stores it. */
22
22
  /** Cron-2's live gate for this company. Off hides one-time accrual creation. */
23
23
  isAccrualEnabled?: boolean;
24
+ /**
25
+ * Schedule side panel, named apart from the page-level `panelContent` that drives the
26
+ * transaction and reconciliation panels: ExpenseAutomationPage spreads its own props into
27
+ * TableSection, so a shared name would hand the transaction panel to the schedules list.
28
+ *
29
+ * There is no full-view flag: expanding leaves for the schedule's own page.
30
+ */
31
+ isSchedulePanelOpen?: boolean;
24
32
  newAccrualAccountsView?: NewAccrualAccountsView;
25
33
  newScheduleLocalData?: NewScheduleSaveFormValues;
34
+ schedulePanelContent?: React.ReactNode;
35
+ schedulePendingDiscardConfirmation?: {
36
+ onCancel: () => void;
37
+ onDiscard: () => void;
38
+ };
26
39
  onCreateAccruedSchedule: (localData: Partial<ScheduleDetailsLocalDataAccruedExpenses>) => void;
27
40
  onCreateOneTimeAccrual: (formValues: NewOneTimeAccrualLocalData) => void;
28
41
  onJeAccountSettingsChange: (formData: JEScheduleAccountSettingsFormData) => void;
@@ -36,5 +49,5 @@ export interface JESchedulePageProps extends Omit<JESchedulesSectionProps, "jeSc
36
49
  setResetJeAccountSettingsForm: (resetFn: () => void) => void;
37
50
  onNewScheduleFormChange?: (scheduleType: string, formValues: NewScheduleSaveFormValues) => void;
38
51
  }
39
- declare function JESchedulePage({ accountListNestedAccountHierarchy, baseTransactionSearchFetchState, baseTransactionSearchResults, classListNestedAccountHierarchy, expenseAutomationViewSelector, currentFooterFormId, isAccountingClassesEnabled, isCreatingNewSchedule, newScheduleSaveStatus, allDepreciationAccountListNestedAccountHierarchy, initialScheduleDetailsMode, initialScheduleType, newAccrualAccountsView, onCreateAccruedSchedule, onCreateOneTimeAccrual, setResetJeAccountSettingsForm, vendorSearchAutoCompleteData, onJESchedulesFormDataChange, onPostJESchedule, handleJeScheduleClick, onOneTimeAccrualClick, onOneTimeAccrualFeedback, onJeAccountSettingsChange, onSaveJeAccountSettingsClick, onSaveSchedule, onScheduleTypeChange, onSearchBaseTransaction, onViewTransaction, newScheduleLocalData, initialSelectedBaseTransaction, isAccrualEnabled, onNewScheduleFormChange, ignoreRecommendedJeSchedule, vendorSearchAutoCompleteActions, setCurrentFooterFormId, setIsCreatingNewSchedule, setIsJeAccountSettingsOpened, onRevertJeSchedule, onToggleCreatedGroupCollapsed, onTogglePendingGroupCollapsed, onUpdateJEScheduleTypeFilter, onUpdateJESchedulesUIState, }: Readonly<JESchedulePageProps>): import("react/jsx-runtime").JSX.Element;
52
+ declare function JESchedulePage({ accountListNestedAccountHierarchy, baseTransactionSearchFetchState, baseTransactionSearchResults, classListNestedAccountHierarchy, expenseAutomationViewSelector, currentFooterFormId, isAccountingClassesEnabled, isCreatingNewSchedule, newScheduleSaveStatus, allDepreciationAccountListNestedAccountHierarchy, initialScheduleDetailsMode, initialScheduleType, newAccrualAccountsView, onCreateAccruedSchedule, onCreateOneTimeAccrual, setResetJeAccountSettingsForm, vendorSearchAutoCompleteData, onJESchedulesFormDataChange, onPostJESchedule, handleJeScheduleClick, onOneTimeAccrualClick, onOneTimeAccrualFeedback, onJeAccountSettingsChange, onSaveJeAccountSettingsClick, onSaveSchedule, onScheduleTypeChange, onSearchBaseTransaction, onViewTransaction, newScheduleLocalData, initialSelectedBaseTransaction, isAccrualEnabled, onNewScheduleFormChange, ignoreRecommendedJeSchedule, vendorSearchAutoCompleteActions, isSchedulePanelOpen, schedulePanelContent, schedulePendingDiscardConfirmation, setCurrentFooterFormId, setIsCreatingNewSchedule, setIsJeAccountSettingsOpened, onRevertJeSchedule, onToggleCreatedGroupCollapsed, onTogglePendingGroupCollapsed, onUpdateJEScheduleTypeFilter, onUpdateJESchedulesUIState, }: Readonly<JESchedulePageProps>): import("react/jsx-runtime").JSX.Element;
40
53
  export default JESchedulePage;
@@ -8,7 +8,11 @@ export interface JEOneTimeAccrualDetailPageProps {
8
8
  /** Status of the promote / ignore request for this accrual. */
9
9
  actionFetchState: FetchState;
10
10
  isAccountingClassesEnabled: boolean;
11
- /** Unposted edits from this visit. Seeds the form so a remount does not lose them. */
11
+ /** Rendered inside a side panel rather than as its own route: the host page keeps its own
12
+ * nav bar and the panel bounds the height, so this page must supply neither. */
13
+ isRenderedInPanel?: boolean;
14
+ /** Unposted edits from this visit. Seeds the form so a remount does not lose them, which is
15
+ * why this page registers no panel dirty guard: switching rows cannot drop an edit. */
12
16
  localData?: OneTimeAccrualEdits;
13
17
  /** Account and class lists for the editable draft fields. Absent leaves them read-only. */
14
18
  newAccrualAccountsView?: NewAccrualAccountsView;
@@ -25,8 +29,8 @@ export interface JEOneTimeAccrualDetailPageProps {
25
29
  * A single one-time accrual, with the two decisions a human makes about it: post it, or skip the
26
30
  * month with a reason.
27
31
  *
28
- * There is no GET-by-id on the accruals gateway, so the accrual arrives as a prop read from the
29
- * list already in the store this page never fetches.
32
+ * The accrual arrives as a prop. The host resolves it from the store the list fills, falling back
33
+ * to a by-id fetch on a cold load, so this page itself never fetches.
30
34
  */
31
- declare const JEOneTimeAccrualDetailPage: ({ accrual, actionFetchState, isAccountingClassesEnabled, localData, newAccrualAccountsView, onAccrualFormChange, onAccrualFormClear, onApproveAndPost, onNavigateBack, onRevert, onSkip, }: Readonly<JEOneTimeAccrualDetailPageProps>) => import("react/jsx-runtime").JSX.Element;
35
+ declare const JEOneTimeAccrualDetailPage: ({ accrual, actionFetchState, isAccountingClassesEnabled, isRenderedInPanel, localData, newAccrualAccountsView, onAccrualFormChange, onAccrualFormClear, onApproveAndPost, onNavigateBack, onRevert, onSkip, }: Readonly<JEOneTimeAccrualDetailPageProps>) => import("react/jsx-runtime").JSX.Element;
32
36
  export default JEOneTimeAccrualDetailPage;
@@ -30,6 +30,17 @@ export declare const COT_ICON_SIZE_PX = 16;
30
30
  export declare const ACTION_ERROR_ICON_SIZE_PX = 12;
31
31
  export declare const COT_ICON_GAP_PX: number;
32
32
  export declare const jeScheduleHeaderItemsData: JEScheduleHeaderItemData[];
33
+ /**
34
+ * The list compressed to ~34% of the content area beside an open side panel.
35
+ *
36
+ * Vendor identifies the row and Amount is the one figure worth scanning at that width; the panel
37
+ * carries everything else. One set serves both tabs -- the Existing tab drops its Monthly Amount
38
+ * here so the compressed header is identical on both and no row renderer needs a per-tab branch.
39
+ *
40
+ * Neither column is `stickyRight`: the Action column is gone, so nothing needs pinning, and the two
41
+ * tracks fit inside the compressed width without horizontal overflow.
42
+ */
43
+ export declare const compressedJEScheduleHeaderItemsData: JEScheduleHeaderItemData[];
33
44
  export declare const existingHeaderItemsData: JEScheduleHeaderItemData[];
34
45
  /**
35
46
  * Which column fixes each posting error, or undefined when nothing on the row can.
@@ -41,6 +52,6 @@ export declare const existingHeaderItemsData: JEScheduleHeaderItemData[];
41
52
  export declare const FIX_COLUMN_BY_ERROR_CODE: Record<JournalEntryErrorCodeType, JEScheduleColumnKey | undefined>;
42
53
  /** The errors a row cannot show inline, because their column is not in this tab's column set. */
43
54
  export declare function errorsNotShownInColumns(errorCodes: JournalEntryErrorCodeType[]): JournalEntryErrorCodeType[];
44
- export declare function getColumnsForGroupKey(groupKey: JEScheduleGroupKey, isAccountingClassesEnabled: boolean): JEScheduleHeaderItemData[];
55
+ export declare function getColumnsForGroupKey(groupKey: JEScheduleGroupKey, isAccountingClassesEnabled: boolean, isQuickViewMode?: boolean): JEScheduleHeaderItemData[];
45
56
  export declare const PENDING_SUB_TABS: TabSwitcherOption[];
46
57
  export declare const ONGOING_COMPLETED_SUB_TABS: TabSwitcherOption[];
@@ -1,4 +1,4 @@
1
- import { JEOneTimeAccrualKey, JEScheduleKey, JEScheduleRow, JEScheduleTransactionKey } from '@zeniai/client-epic-state';
1
+ import { ID, JEOneTimeAccrualKey, JEScheduleKey, JEScheduleRow, JEScheduleTransactionKey } from '@zeniai/client-epic-state';
2
2
  import { ChainOfThoughtData } from '../../../../common/tooltipVariants/types';
3
3
  /**
4
4
  * The chain-of-thought popover shown on the "Created by" cell of an AI Accountant row.
@@ -20,6 +20,14 @@ export type JEScheduleRowKey = JEOneTimeAccrualKey | JEScheduleTransactionKey |
20
20
  * Stable per-row identity for React keys, data-testids and row commenting.
21
21
  */
22
22
  export declare function getJEScheduleRowKey(row: JEScheduleRow): JEScheduleRowKey;
23
+ /**
24
+ * The plain id the side-panel URL carries for this row — deliberately NOT its row key.
25
+ *
26
+ * The three row-key flavours are template-literal types, so they are assignable to `ID` and the
27
+ * compiler would not catch one being used as a panel id. The panel keys on what the route holds:
28
+ * an accrual's own Mongo id, or the schedule id every other row type shares.
29
+ */
30
+ export declare function getJEScheduleRowPanelId(row: JEScheduleRow): ID | undefined;
23
31
  /**
24
32
  * Whether a row click started inside interactive cell content and so should not navigate.
25
33
  *
@@ -0,0 +1,13 @@
1
+ import { MouseEvent } from 'react';
2
+ import { ID, ScheduleTypes } from '@zeniai/client-epic-state';
3
+ import { JEScheduleRowKey } from './jeScheduleListRow.helpers';
4
+ export type JEScheduleRowClickHandler = (event: MouseEvent<HTMLDivElement>, jeScheduleId: ID, jeScheduleKey: JEScheduleRowKey, jeScheduleType: ScheduleTypes) => void;
5
+ /**
6
+ * Opens a schedule row unless the click started inside cell content that owns it.
7
+ *
8
+ * Both tabs previously inlined their own copy of the guard and they had drifted: the Existing tab
9
+ * only checked two of the six interactive class names, so a click on an open select menu there
10
+ * navigated away instead of picking the option. Both now defer to
11
+ * {@link isInteractiveCellClick}, which is the single list of those class names.
12
+ */
13
+ export declare function useJEScheduleRowClick(onOpenSchedule: (jeScheduleId: ID, jeScheduleKey: JEScheduleRowKey, jeScheduleType: ScheduleTypes) => void): JEScheduleRowClickHandler;
@@ -9,6 +9,16 @@ export interface JEExistingSectionProps {
9
9
  jeSchedules: ExpenseAutomationJESchedulesViewSelector;
10
10
  vendorSearchAutoCompleteActions: AutoCompleteActions;
11
11
  vendorSearchAutoCompleteData: AutoCompleteData;
12
+ /**
13
+ * Rendered beside the list, inside this section, so the KPI strip stays full-width above it.
14
+ * There is no full-view flag: expanding leaves the panel for the schedule's own page.
15
+ */
16
+ isPanelOpen?: boolean;
17
+ panelContent?: React.ReactNode;
18
+ pendingDiscardConfirmation?: {
19
+ onCancel: () => void;
20
+ onDiscard: () => void;
21
+ };
12
22
  handleJeScheduleClick: (jeScheduleId: ID, jeScheduleKey: JEScheduleRowKey, jeScheduleType: ScheduleTypes) => void;
13
23
  ignoreRecommendedJeSchedule: (jeScheduleTransactionKey: JEScheduleTransactionKey, scheduleType: ScheduleTypes, reason: JEAccrualFeedbackReason, note?: string) => void;
14
24
  onJESchedulesFormDataChange: (scheduleJournalEntryId: ID, localData: JEScheduleResolveComponentFormData) => void;
@@ -18,5 +28,5 @@ export interface JEExistingSectionProps {
18
28
  onUpdateJEScheduleTypeFilter: (filter: ScheduleTypes | null) => void;
19
29
  setCurrentFooterFormId: (formId: FooterFormIdType) => void;
20
30
  }
21
- declare function JEExistingSection({ isAccountingClassesEnabled, jeSchedules, vendorSearchAutoCompleteActions, vendorSearchAutoCompleteData, handleJeScheduleClick, onOneTimeAccrualClick, onOneTimeAccrualFeedback, ignoreRecommendedJeSchedule, onJESchedulesFormDataChange, onPostJESchedule, onUpdateJEScheduleTypeFilter, }: Readonly<JEExistingSectionProps>): import("react/jsx-runtime").JSX.Element;
31
+ declare function JEExistingSection({ isAccountingClassesEnabled, jeSchedules, isPanelOpen, panelContent, pendingDiscardConfirmation, vendorSearchAutoCompleteActions, vendorSearchAutoCompleteData, handleJeScheduleClick, onOneTimeAccrualClick, onOneTimeAccrualFeedback, ignoreRecommendedJeSchedule, onJESchedulesFormDataChange, onPostJESchedule, onUpdateJEScheduleTypeFilter, }: Readonly<JEExistingSectionProps>): import("react/jsx-runtime").JSX.Element;
22
32
  export default JEExistingSection;
@@ -9,6 +9,16 @@ export interface JESchedulesSectionProps {
9
9
  jeSchedules: ExpenseAutomationJESchedulesViewSelector;
10
10
  vendorSearchAutoCompleteActions: AutoCompleteActions;
11
11
  vendorSearchAutoCompleteData: AutoCompleteData;
12
+ /**
13
+ * Rendered beside the list, inside this section, so the KPI strip stays full-width above it.
14
+ * There is no full-view flag: expanding leaves the panel for the schedule's own page.
15
+ */
16
+ isPanelOpen?: boolean;
17
+ panelContent?: React.ReactNode;
18
+ pendingDiscardConfirmation?: {
19
+ onCancel: () => void;
20
+ onDiscard: () => void;
21
+ };
12
22
  handleJeScheduleClick: (jeScheduleId: ID, jeScheduleKey: JEScheduleRowKey, jeScheduleType: ScheduleTypes) => void;
13
23
  ignoreRecommendedJeSchedule: (jeScheduleTransactionKey: JEScheduleTransactionKey, scheduleType: ScheduleTypes, reason: JEAccrualFeedbackReason, note?: string) => void;
14
24
  onJESchedulesFormDataChange: (scheduleJournalEntryId: ID, localData: JEScheduleResolveComponentFormData) => void;
@@ -23,5 +33,5 @@ export interface JESchedulesSectionProps {
23
33
  onConfirmCategoryRecommendation?: (jeScheduleTransactionKey: JEScheduleTransactionKey, recommendedCategoryId: ID) => void;
24
34
  onRevertJeSchedule?: (jeScheduleId: ID, jeScheduleTransactionKey: JEScheduleKey | JEScheduleTransactionKey, jeScheduleType: ScheduleTypes, reason: JEAccrualFeedbackReason, note?: string) => void;
25
35
  }
26
- declare function JESchedulesSection({ isAccountingClassesEnabled, jeSchedules, vendorSearchAutoCompleteData, handleJeScheduleClick, onOneTimeAccrualClick, onOneTimeAccrualFeedback, onConfirmCategoryRecommendation, onJESchedulesFormDataChange, onPostJESchedule, onRevertJeSchedule, ignoreRecommendedJeSchedule, onUpdateJESchedulesUIState, onTogglePendingGroupCollapsed, onToggleCreatedGroupCollapsed, onUpdateJEScheduleTypeFilter, vendorSearchAutoCompleteActions, setCurrentFooterFormId, }: Readonly<JESchedulesSectionProps>): import("react/jsx-runtime").JSX.Element;
36
+ declare function JESchedulesSection({ isAccountingClassesEnabled, jeSchedules, isPanelOpen, panelContent, pendingDiscardConfirmation, vendorSearchAutoCompleteData, handleJeScheduleClick, onOneTimeAccrualClick, onOneTimeAccrualFeedback, onConfirmCategoryRecommendation, onJESchedulesFormDataChange, onPostJESchedule, onRevertJeSchedule, ignoreRecommendedJeSchedule, onUpdateJESchedulesUIState, onTogglePendingGroupCollapsed, onToggleCreatedGroupCollapsed, onUpdateJEScheduleTypeFilter, vendorSearchAutoCompleteActions, setCurrentFooterFormId, }: Readonly<JESchedulesSectionProps>): import("react/jsx-runtime").JSX.Element;
27
37
  export default JESchedulesSection;
@@ -1,5 +1,5 @@
1
1
  import { AuthParams, BulkUploadSortKey, FetchStateAndError, ID, SortOrder, SupportedTransaction, TransactionType } from '@zeniai/client-epic-state';
2
- /** Completed bulk-upload list: parent `ExpenseAutomationPage` sets `disableMarginTop` on `TransactionSidePanelLayout` via `shouldDisableTransactionSidePanelListMarginTop`. */
2
+ /** Completed bulk-upload list: parent `ExpenseAutomationPage` sets `disableMarginTop` on `SidePanelLayout` via `shouldDisableTransactionSidePanelListMarginTop`. */
3
3
  interface CompletedTabProps {
4
4
  authParams: AuthParams;
5
5
  fetchState: FetchStateAndError;
@@ -1,7 +1,7 @@
1
1
  import { ExpenseAutomationViewType } from '@zeniai/client-epic-state';
2
2
  /**
3
3
  * When bulk receipt upload is active on the missing-receipts view, ExpenseAutomationPage
4
- * passes `disableMarginTop` to TransactionSidePanelLayout so list content aligns without extra
4
+ * passes `disableMarginTop` to SidePanelLayout so list content aligns without extra
5
5
  * top margin. Covers Missing Receipts, Unmatched, and Completed bulk-upload table flows.
6
6
  */
7
7
  export declare function shouldDisableTransactionSidePanelListMarginTop(currentSelectedView: ExpenseAutomationViewType, isBulkReceiptUploadActive: boolean): boolean;
@@ -2,7 +2,7 @@ import { ListChildComponentProps } from 'react-window';
2
2
  import { AuthParams, ExpenseAutomationMissingReceiptsViewSelector, ExpenseAutomationMissingReceiptsViewUIState, MonthYearPeriod } from '@zeniai/client-epic-state';
3
3
  import { DisableMode } from '../../../../formElements/common/common';
4
4
  import { MissingReceiptsListRowActionProps } from './listRow/MissingReceiptsListRow';
5
- /** Missing-receipts table: parent `ExpenseAutomationPage` sets `disableMarginTop` on `TransactionSidePanelLayout` via `shouldDisableTransactionSidePanelListMarginTop` when bulk upload is active. */
5
+ /** Missing-receipts table: parent `ExpenseAutomationPage` sets `disableMarginTop` on `SidePanelLayout` via `shouldDisableTransactionSidePanelListMarginTop` when bulk upload is active. */
6
6
  /**
7
7
  * Component & its Props
8
8
  */
@@ -86,6 +86,7 @@ interface ApplicableItemOption {
86
86
  label: string;
87
87
  subtitle?: string;
88
88
  }
89
+ export declare const toApplicableItemsValue: (options: readonly ApplicableItemOption[], selectedIds: string[]) => MultiSelectFieldValue;
89
90
  export declare const buildApplicableItemLabelGetter: (options: readonly ApplicableItemOption[]) => ((value: string) => string);
90
91
  export interface PickerValue {
91
92
  allOptions: CatalogSelectOption[];
@@ -15,6 +15,9 @@ export interface Props {
15
15
  shouldNavigateBack: boolean;
16
16
  vendorSearchAutoCompleteActions: AutoCompleteActions;
17
17
  vendorSearchAutoCompleteData: AutoCompleteData;
18
+ /** Rendered inside a side panel rather than as its own route: the host page keeps
19
+ * its own nav bar and the panel bounds the height, so this page must supply neither. */
20
+ isRenderedInPanel?: boolean;
18
21
  scheduleDetailId?: ID;
19
22
  onCancelAccrual: (scheduleType: ScheduleTypes, jeScheduleID: ID, row?: number) => void;
20
23
  onDelete: (jeScheduleDetailId: ID) => void;
@@ -33,6 +36,6 @@ export interface FormData {
33
36
  [scheduleDetailsAccruedExpensesSectionId]: ScheduleDetailsAccruedExpensesSectionFormData;
34
37
  [scheduleDetailsListSectionId]: ScheduleDetailsListSectionFormData[];
35
38
  }
36
- export declare function ScheduleDetailsAccruedExpensesPage({ accountList, accruedAccountList, analytics, classList, controllerUserDetails, isAccountingClassesEnabled, scheduleAccruedDetailsView, vendorSearchAutoCompleteActions, vendorSearchAutoCompleteData, shouldNavigateBack, scheduleDetailId, onDelete, onEditAmount, onJELinkClick, onCancelAccrual, onDetailPageChange, onNavigateBack, onSave, onViewBillExpense, onViewPostedJE, onViewRecordedJE, }: Readonly<Props>): import("react/jsx-runtime").JSX.Element;
39
+ export declare function ScheduleDetailsAccruedExpensesPage({ accountList, accruedAccountList, analytics, classList, controllerUserDetails, isAccountingClassesEnabled, scheduleAccruedDetailsView, vendorSearchAutoCompleteActions, vendorSearchAutoCompleteData, shouldNavigateBack, scheduleDetailId, isRenderedInPanel, onDelete, onEditAmount, onJELinkClick, onCancelAccrual, onDetailPageChange, onNavigateBack, onSave, onViewBillExpense, onViewPostedJE, onViewRecordedJE, }: Readonly<Props>): import("react/jsx-runtime").JSX.Element;
37
40
  export declare const getDefaultVendorOptions: (vendorSearchEntityAutoCompleteView?: EntityAutoCompleteView, selectedVendor?: VendorBase) => AutoCompleteOptionType[];
38
41
  export {};
@@ -11,6 +11,9 @@ export interface Props {
11
11
  usedInExpenseAutomation: boolean;
12
12
  vendorSearchAutoCompleteActions: AutoCompleteActions;
13
13
  vendorSearchAutoCompleteData: AutoCompleteData;
14
+ /** Rendered inside a side panel rather than as its own route: the host page keeps
15
+ * its own nav bar and the panel bounds the height, so this page must supply neither. */
16
+ isRenderedInPanel?: boolean;
14
17
  onDelete: (jeScheduleDetailId: ID) => void;
15
18
  onDetailPageChange: (formData: FormData, onlyAmountChangeInScheduleDetail: boolean) => void;
16
19
  onEditAmount: (row: number, jeScheduleId?: ID) => void;
@@ -28,5 +31,5 @@ export interface FormData {
28
31
  [scheduleDetailsFixedAssetsSectionId]: ScheduleDetailsFixedAssetsSectionFormData;
29
32
  [scheduleDetailsListSectionId]: ScheduleDetailsListSectionFormData[];
30
33
  }
31
- declare function ScheduleDetailsFixedAssetsPage({ analytics, controllerUserDetails, isAccountingClassesEnabled, scheduleDetailsView, vendorSearchAutoCompleteActions, vendorSearchAutoCompleteData, onNavigateBack, onEditAmount, onJELinkClick, onSave, onDelete, onDetailPageChange, onViewLinkedJE, onTransactionClick, onMarkAsComplete, }: Readonly<Props>): import("react/jsx-runtime").JSX.Element;
34
+ declare function ScheduleDetailsFixedAssetsPage({ analytics, controllerUserDetails, isAccountingClassesEnabled, scheduleDetailsView, vendorSearchAutoCompleteActions, isRenderedInPanel, vendorSearchAutoCompleteData, onNavigateBack, onEditAmount, onJELinkClick, onSave, onDelete, onDetailPageChange, onViewLinkedJE, onTransactionClick, onMarkAsComplete, }: Readonly<Props>): import("react/jsx-runtime").JSX.Element;
32
35
  export default ScheduleDetailsFixedAssetsPage;
@@ -12,6 +12,9 @@ export interface Props {
12
12
  usedInExpenseAutomation: boolean;
13
13
  vendorSearchAutoCompleteActions: AutoCompleteActions;
14
14
  vendorSearchAutoCompleteData: AutoCompleteData;
15
+ /** Rendered inside a side panel rather than as its own route: the host page keeps
16
+ * its own nav bar and the panel bounds the height, so this page must supply neither. */
17
+ isRenderedInPanel?: boolean;
15
18
  onDelete: (jeScheduleDetailId: ID) => void;
16
19
  onDetailPageChange: (formData: FormData, onlyAmountChangeInScheduleDetail: boolean) => void;
17
20
  onEditAmount: (row: number, jeScheduleId?: ID) => void;
@@ -29,5 +32,5 @@ export interface FormData {
29
32
  [scheduleDetailsListSectionId]: ScheduleDetailsListSectionFormData[];
30
33
  [scheduleDetailsSectionId]: ScheduleDetailsSectionFormData;
31
34
  }
32
- declare function ScheduleDetailsPage({ analytics, controllerUserDetails, isAccountingClassesEnabled, scheduleDetailsView, scheduleTab, vendorSearchAutoCompleteActions, vendorSearchAutoCompleteData, onMarkAsComplete, onNavigateBack, onEditAmount, onJELinkClick, onSave, onDelete, onDetailPageChange, onViewLinkedJE, onTransactionClick, }: Readonly<Props>): import("react/jsx-runtime").JSX.Element;
35
+ declare function ScheduleDetailsPage({ analytics, controllerUserDetails, isAccountingClassesEnabled, scheduleDetailsView, scheduleTab, isRenderedInPanel, vendorSearchAutoCompleteActions, vendorSearchAutoCompleteData, onMarkAsComplete, onNavigateBack, onEditAmount, onJELinkClick, onSave, onDelete, onDetailPageChange, onViewLinkedJE, onTransactionClick, }: Readonly<Props>): import("react/jsx-runtime").JSX.Element;
33
36
  export default ScheduleDetailsPage;
@@ -19,6 +19,13 @@ export interface Props {
19
19
  isSearchable?: boolean;
20
20
  menuPortalTarget?: HTMLElement | null;
21
21
  placeholder?: string;
22
+ /**
23
+ * Renders `allValues` in the order given instead of the default
24
+ * alphabetical-by-label sort. Opt-in — omit to keep today's behavior.
25
+ * Use when the caller's own order is meaningful (e.g. "Range" before
26
+ * "Is greater than" so it reads as the first, most-common choice).
27
+ */
28
+ preserveOptionOrder?: boolean;
22
29
  selectedValue?: string;
23
30
  showChevron?: boolean;
24
31
  style?: React.CSSProperties;
@@ -34,4 +41,4 @@ export interface Props {
34
41
  isOptionDisabled?: (value: string) => boolean;
35
42
  valueToLabel?: (value: string) => string;
36
43
  }
37
- export declare const SingleSelect: ({ allValues, selectedValue, onSelectedValueChanged, isDisabled, placeholder, style, customStyleConfig, isClearable, isSearchable, menuPortalTarget, valueToLabel, formatOptionLabel, showChevron, backgroundColor, hoverBgColor, valueAlign, valuePadding, chevronSize, isOptionDisabled, }: Props) => import("react/jsx-runtime").JSX.Element;
44
+ export declare const SingleSelect: ({ allValues, selectedValue, onSelectedValueChanged, isDisabled, placeholder, style, customStyleConfig, isClearable, isSearchable, menuPortalTarget, valueToLabel, formatOptionLabel, showChevron, backgroundColor, hoverBgColor, valueAlign, valuePadding, chevronSize, isOptionDisabled, preserveOptionOrder, }: Props) => import("react/jsx-runtime").JSX.Element;
@@ -20,6 +20,8 @@ export interface SingleSelectFieldProps {
20
20
  /** See `SingleSelect.isSearchable`. */
21
21
  isSearchable?: boolean;
22
22
  placeholder?: string;
23
+ /** See `SingleSelect.preserveOptionOrder`. */
24
+ preserveOptionOrder?: boolean;
23
25
  registerOptions?: RegisterOptions;
24
26
  /** See `SingleSelect.showChevron`. */
25
27
  showChevron?: boolean;
@@ -36,5 +38,5 @@ export interface SingleSelectFieldProps {
36
38
  isOptionDisabled?: (value: string) => boolean;
37
39
  valueToLabel?: (value: string) => string;
38
40
  }
39
- declare const SingleSelectField: ({ name, registerOptions, defaultValue, placeholder, isDisabled, style, customStyleConfig, valueToLabel, formatOptionLabel, showChevron, backgroundColor, hoverBgColor, isSearchable, valueAlign, valuePadding, chevronSize, isOptionDisabled, }: SingleSelectFieldProps) => import("react/jsx-runtime").JSX.Element;
41
+ declare const SingleSelectField: ({ name, registerOptions, defaultValue, placeholder, isDisabled, style, customStyleConfig, valueToLabel, formatOptionLabel, showChevron, backgroundColor, hoverBgColor, isSearchable, valueAlign, valuePadding, chevronSize, isOptionDisabled, preserveOptionOrder, }: SingleSelectFieldProps) => import("react/jsx-runtime").JSX.Element;
40
42
  export default SingleSelectField;
@@ -29,6 +29,7 @@ export declare const isNotificationTimeAvailable: (step: StepFormData) => boolea
29
29
  * the boundary and dropped 'less_than'-only rules entirely.
30
30
  */
31
31
  export declare const doesAmountMatchRuleCriteria: (criteria: Criteria[] | null | undefined, amount: number) => boolean;
32
+ export declare const doesRuleMatchBillCriteria: (criteria: Criteria[] | null | undefined, amount: number, vendorId?: ID, departmentId?: ID) => boolean;
32
33
  export declare const getBillActivity: (activities: BillActivity[], amount: number) => BillActivity | undefined;
33
34
  export interface RealTimeApprovalData {
34
35
  allAccountingClass: Class[];
@@ -21,6 +21,13 @@ export interface Props {
21
21
  selectedUsers: User[];
22
22
  shouldHaveBackgroundColor: boolean;
23
23
  showBackgroundColorIfHasAnySelectedOption: boolean;
24
+ /**
25
+ * When true, each selected chip's border and remove ("x") button stay
26
+ * visible even while the menu is closed, instead of only showing them
27
+ * while it's open. Opt-in — existing consumers keep today's
28
+ * open-menu-only behavior.
29
+ */
30
+ alwaysShowRemoveButton?: boolean;
24
31
  /**
25
32
  * When true, `NonUserOption` rows (and their selected chips) render
26
33
  * their avatar at the same `Space.sp3` size real user avatars use,
@@ -37,6 +44,24 @@ export interface Props {
37
44
  disable?: boolean;
38
45
  disabledOptionHint?: string;
39
46
  hideMultiValueOnBlur?: boolean;
47
+ /**
48
+ * When true, the closed-picker chip renders without an avatar icon
49
+ * for `NonUserOption` selections (e.g. roles, which have no photo or
50
+ * identity to represent). Only affects the closed chip — the open
51
+ * dropdown's option rows still show their colored icon. Opt-in —
52
+ * existing non-user consumers (e.g. FollowStepsSection) are
53
+ * unaffected.
54
+ */
55
+ hideNonUserAvatar?: boolean;
56
+ /**
57
+ * When true, the open dropdown's `NonUserOption` rows (e.g. vendors,
58
+ * departments) render without their colored avatar icon too — not
59
+ * just the closed chip. Separate from `hideNonUserAvatar` because
60
+ * some non-user consumers (e.g. `ApprovalStageRow`'s Role picker)
61
+ * want the chip-less look but still want the color-coded avatar in
62
+ * the option list. Opt-in — existing consumers are unaffected.
63
+ */
64
+ hideNonUserOptionAvatar?: boolean;
40
65
  /**
41
66
  * User ids that should render with the "no longer active" avatar
42
67
  * (see `MultiValueLabel`) instead of their photo/initials, when
@@ -47,6 +72,15 @@ export interface Props {
47
72
  isListLoading?: boolean;
48
73
  menuMinWidth?: string;
49
74
  operator?: "or" | "and";
75
+ /**
76
+ * When true, each selected chip renders as an outlined pill: 16px
77
+ * radius, ExtraSmallSemiBold primary text, a 2px gap between
78
+ * avatar/text/remove-icon (via `gap`, so a chip with no avatar gets
79
+ * no extra leading space), and a champion/primary-on-hover remove
80
+ * icon — instead of this component's plain default chip look.
81
+ * Opt-in — existing consumers are unaffected.
82
+ */
83
+ outlinedChip?: boolean;
50
84
  onSelectedUsersChanged: (selectedUsers: User[], nonUsers: NonUserOption[]) => void;
51
85
  disableCurrentOption?: (option: string) => boolean;
52
86
  onBlur?: () => void;
@@ -59,5 +93,5 @@ export interface OptionType extends OptionTypeBase {
59
93
  label: string;
60
94
  value: string;
61
95
  }
62
- export default function UserMultiSelect({ allUsers, allNonUsers, selectedUsers, selectedNonUsers, name, fieldRef, shouldHaveBackgroundColor, hideEmailTooltip, showBackgroundColorIfHasAnySelectedOption, disable, customization: { placeholderLabel }, operator, containerWidth, isListLoading, menuMinWidth, hideMultiValueOnBlur, inactiveUserIds, customStyleConfig, disabledOptionHint, onBlur, disableCurrentOption, onSelectedUsersChanged, valueToSubtitle, compactNonUserAvatar, }: Readonly<Props>): import("react/jsx-runtime").JSX.Element;
96
+ export default function UserMultiSelect({ allUsers, allNonUsers, selectedUsers, selectedNonUsers, name, fieldRef, shouldHaveBackgroundColor, hideEmailTooltip, showBackgroundColorIfHasAnySelectedOption, disable, customization: { placeholderLabel }, operator, containerWidth, isListLoading, menuMinWidth, hideMultiValueOnBlur, inactiveUserIds, customStyleConfig, disabledOptionHint, onBlur, disableCurrentOption, onSelectedUsersChanged, valueToSubtitle, compactNonUserAvatar, hideNonUserAvatar, hideNonUserOptionAvatar, alwaysShowRemoveButton, outlinedChip, }: Readonly<Props>): import("react/jsx-runtime").JSX.Element;
63
97
  export {};
@@ -15,23 +15,31 @@ export interface Props {
15
15
  shouldHaveBackgroundColor: boolean;
16
16
  showBackgroundColorIfHasAnySelectedOption: boolean;
17
17
  value: UserMultiSelectFieldValue;
18
+ /** See `UserMultiSelect.alwaysShowRemoveButton`. */
19
+ alwaysShowRemoveButton?: boolean;
18
20
  /** See `UserMultiSelect.compactNonUserAvatar`. */
19
21
  compactNonUserAvatar?: boolean;
20
22
  containerWidth?: string;
21
23
  customStyleConfig?: StylesConfig<OptionType, boolean>;
22
24
  disabledOptionHint?: string;
23
25
  hideMultiValueOnBlur?: boolean;
26
+ /** See `UserMultiSelect.hideNonUserAvatar`. */
27
+ hideNonUserAvatar?: boolean;
28
+ /** See `UserMultiSelect.hideNonUserOptionAvatar`. */
29
+ hideNonUserOptionAvatar?: boolean;
24
30
  /** See `UserMultiSelect.inactiveUserIds`. */
25
31
  inactiveUserIds?: Set<ID>;
26
32
  isDisabled?: DisableMode;
27
33
  isListLoading?: boolean;
28
34
  menuMinWidth?: string;
29
35
  operator?: "or" | "and";
36
+ /** See `UserMultiSelect.outlinedChip`. */
37
+ outlinedChip?: boolean;
30
38
  placeholderLabel?: string;
31
39
  registerOptions?: RegisterOptions;
32
40
  disableCurrentOption?: (option: string) => boolean;
33
41
  onBlur?: () => void;
34
42
  valueToSubtitle?: (value: string) => (string | JSX.Element)[];
35
43
  }
36
- declare const UserMultiSelectField: ({ name, shouldHaveBackgroundColor, showBackgroundColorIfHasAnySelectedOption, hideEmailTooltip, placeholderLabel, registerOptions, value: defaultValue, operator, isListLoading, isDisabled, containerWidth, menuMinWidth, hideMultiValueOnBlur, inactiveUserIds, customStyleConfig, disabledOptionHint, disableCurrentOption, onBlur, valueToSubtitle, compactNonUserAvatar, }: Props) => import("react/jsx-runtime").JSX.Element;
44
+ declare const UserMultiSelectField: ({ name, shouldHaveBackgroundColor, showBackgroundColorIfHasAnySelectedOption, hideEmailTooltip, placeholderLabel, registerOptions, value: defaultValue, operator, isListLoading, isDisabled, containerWidth, menuMinWidth, hideMultiValueOnBlur, inactiveUserIds, customStyleConfig, disabledOptionHint, disableCurrentOption, onBlur, valueToSubtitle, compactNonUserAvatar, hideNonUserAvatar, hideNonUserOptionAvatar, alwaysShowRemoveButton, outlinedChip, }: Props) => import("react/jsx-runtime").JSX.Element;
37
45
  export default UserMultiSelectField;
@@ -2,15 +2,15 @@ import { ReactNode } from 'react';
2
2
  import { ID } from '@zeniai/client-epic-state';
3
3
  export interface SidePanelState {
4
4
  isQuickViewMode: boolean;
5
- selectedTransactionId: ID | undefined;
5
+ selectedItemId: ID | undefined;
6
6
  }
7
7
  export declare const SidePanelContext: import('react').Context<SidePanelState>;
8
8
  interface SidePanelProviderProps {
9
9
  children: ReactNode;
10
10
  isQuickViewMode: boolean;
11
- selectedTransactionId: ID | undefined;
11
+ selectedItemId: ID | undefined;
12
12
  }
13
- export declare function SidePanelProvider({ children, isQuickViewMode, selectedTransactionId, }: Readonly<SidePanelProviderProps>): import("react/jsx-runtime").JSX.Element;
13
+ export declare function SidePanelProvider({ children, isQuickViewMode, selectedItemId, }: Readonly<SidePanelProviderProps>): import("react/jsx-runtime").JSX.Element;
14
14
  export declare const QuickViewModeContext: import('react').Context<boolean>;
15
15
  /** Portal target for react-select MenuPortal. Typed as HTMLElement (not HTMLDivElement)
16
16
  * because the panel wrapper may be any container element. */
@@ -21,16 +21,30 @@ export interface PanelInternalState {
21
21
  maximize?: () => void;
22
22
  }
23
23
  export declare const PanelInternalContext: import('react').Context<PanelInternalState | null>;
24
- /** @deprecated Use PanelInternalContext instead */
25
- export declare const TransactionPanelInternalContext: import('react').Context<PanelInternalState | null>;
26
- /** @deprecated Use PanelInternalContext instead */
27
- export declare const SchedulePanelInternalContext: import('react').Context<PanelInternalState | null>;
24
+ /**
25
+ * Reported by whatever the panel is currently showing, so navigation away from it
26
+ * can prompt instead of silently discarding edits.
27
+ *
28
+ * `isDirty` is a getter rather than a boolean because the navigation paths that
29
+ * consult it (the action bar, Escape, clicking another row) read it at call time,
30
+ * outside React's render cycle.
31
+ */
32
+ export interface PanelDirtyGuard {
33
+ isDirty: () => boolean;
34
+ }
35
+ export interface PanelDirtyGuardRegistry {
36
+ registerPanelDirtyGuard: (guard: PanelDirtyGuard | null) => void;
37
+ }
38
+ export declare const PanelDirtyGuardContext: import('react').Context<PanelDirtyGuardRegistry | null>;
39
+ export declare function usePanelDirtyGuardRegistry(): PanelDirtyGuardRegistry | null;
40
+ /**
41
+ * Registers the calling component's unsaved-changes state with the host panel for
42
+ * as long as it is mounted. A no-op outside a panel, so a detail page can call it
43
+ * unconditionally and behave identically on its own full page.
44
+ */
45
+ export declare function useRegisterPanelDirtyGuard(isDirty: () => boolean): void;
28
46
  export declare function useSidePanelContext(): SidePanelState;
29
47
  export declare function useQuickViewMode(): boolean;
30
48
  export declare function useDropdownPortal(): HTMLElement | null;
31
49
  export declare function usePanelInternal(): PanelInternalState | null;
32
- /** @deprecated Use usePanelInternal instead */
33
- export declare const useTransactionPanelInternal: typeof usePanelInternal;
34
- /** @deprecated Use usePanelInternal instead */
35
- export declare const useSchedulePanelInternal: typeof usePanelInternal;
36
50
  export {};