@zeniai/web-components 4.4.70-beta0DI → 4.4.71-beta0AN
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/Editor-CbBxvSmp.js +919 -0
- package/dist/{SessionTimeoutPopup-LC6wnjVS.js → SessionTimeoutPopup-BMerO3g4.js} +116442 -117259
- package/dist/TaskDescriptionEditor-DyTyMxvk.js +700 -0
- package/dist/appLocale.d.ts +45 -34
- package/dist/apple-wallet-DMr790ZM.js +19 -0
- package/dist/assets/interface/microphone.svg +5 -0
- package/dist/bank-verification-HpVi21UA.js +5 -0
- package/dist/cockpit.esm.js +5751 -5992
- package/dist/common/audio/wav.d.ts +35 -0
- package/dist/common/audio/wav.test.d.ts +1 -0
- package/dist/common/hooks/useVoiceDictation.d.ts +32 -0
- package/dist/common/hooks/useVoiceDictation.test.d.ts +1 -0
- package/dist/components/aiCfo/AiCfoPage.d.ts +5 -0
- package/dist/components/aiCfo/AiCfoSidePanel.d.ts +5 -0
- package/dist/components/aiCfo/components/AiCfoInput.d.ts +10 -0
- package/dist/components/aiCfo/components/VoiceWaveform.d.ts +10 -0
- package/dist/components/aiCfo/hooks/useSyncTranscriptIntoLocalInput.d.ts +16 -0
- package/dist/components/animations/{DashboardSidebarHalloweenBottomAnimation.d.ts → DashboardHalloweenBatsAnimation.d.ts} +1 -1
- package/dist/components/animations/DashboardSidebarBottomAnimation.d.ts +0 -1
- package/dist/components/cockpit/common/parentSubsidiaryTag/components/ParentSubsidiaryTag.d.ts +3 -1
- package/dist/components/cockpit/common/userMultiSelect/UserMultiSelect.d.ts +1 -2
- package/dist/components/cockpit/common/userMultiSelect/UserMultiSelectField.d.ts +1 -2
- package/dist/components/commentsAndNotes/utils/CollaborationHelpers.d.ts +8 -2
- package/dist/components/common/ButtonWithDropDown.d.ts +32 -1
- package/dist/components/common/downloadReport/types/downloadReportOptions.d.ts +8 -0
- package/dist/components/common/downloadReport/types/downloadReportOptionsPayload.d.ts +3 -0
- package/dist/components/common/lazyLottie.d.ts +8 -0
- package/dist/components/common/lazyReactPdf.d.ts +13 -0
- package/dist/components/common/lazySvg.d.ts +17 -0
- package/dist/components/common/listPageSearchInputBox/ListPageSearchInputBox.d.ts +4 -1
- package/dist/components/common/listPageSearchSection/ListPageSearchSection.d.ts +3 -0
- package/dist/components/common/searchDiscoveryCoachmark/SearchDiscoveryCoachmark.d.ts +12 -0
- package/dist/components/customers/common/CustomerHierarchyTag.d.ts +10 -0
- package/dist/components/customers/common/CustomerNameCell.d.ts +7 -0
- package/dist/components/customers/customerDetail/CustomerDetailPage.d.ts +5 -1
- package/dist/components/customers/customerDetail/CustomerFamilyTree.d.ts +16 -0
- package/dist/components/customers/customerList/CustomerListPage.d.ts +4 -1
- package/dist/components/dataListTable/DataListTable.d.ts +1 -1
- package/dist/components/dataListTable/DataListTableHeader.d.ts +3 -1
- package/dist/components/dataListTable/DataListTablePlaceholderRow.d.ts +3 -1
- package/dist/components/dataListTable/types.d.ts +4 -0
- package/dist/components/expenseAutomation/ExpenseAutomationPage.d.ts +3 -0
- package/dist/components/expenseAutomation/components/NavBarWithHeader.d.ts +2 -0
- package/dist/components/expenseAutomation/sections/actualMatching/actualMatchingHelpers.d.ts +8 -0
- package/dist/components/expenseAutomation/sections/jeSchedules/accrualDetail/JEAccrualBillingPatternCard.d.ts +6 -0
- package/dist/components/expenseAutomation/sections/jeSchedules/accrualDetail/JEOneTimeAccrualDetailPage.d.ts +2 -1
- package/dist/components/expenseAutomation/sections/jeSchedules/accrualDetail/JEOneTimeAccrualLinkedEntriesButton.d.ts +3 -3
- package/dist/components/expenseAutomation/sections/jeSchedules/common/JEJournalEntryBlock.d.ts +92 -0
- package/dist/components/formElements/autoCompleteSingleSelectField/AutoCompleteSingleSelectField.d.ts +3 -1
- package/dist/components/formElements/singleSelectPickerField/SingleSelectPickerField.d.ts +2 -1
- package/dist/components/formElements/timeSpentField/TimeSpentField.d.ts +1 -8
- package/dist/components/invoicing/common/InvoicingListScaffold.d.ts +3 -1
- package/dist/components/invoicing/createInvoice/InvoicingCreateInvoicePage.d.ts +3 -1
- package/dist/components/invoicing/subscriptionForm/InvoicingSubscriptionFormPage.d.ts +3 -1
- package/dist/components/invoicing/subscriptionForm/subscriptionForm.shared.d.ts +4 -0
- package/dist/components/reportTree/CustomDateRangeColumnContext.d.ts +11 -0
- package/dist/components/reports/ReportsPage.d.ts +19 -2
- package/dist/components/reports/common/isGroupedReportId.d.ts +7 -0
- package/dist/components/settingsPage/Integrations/components/integrationLogos.d.ts +2874 -12
- package/dist/components/spendManagement/common/filters/components/DateRangeFilterField.d.ts +4 -2
- package/dist/components/spendManagement/common/filters/spendManagementFiltersHelpers.d.ts +1 -1
- package/dist/components/taskManagement/TaskDetailPage.d.ts +3 -9
- package/dist/components/taskManagement/TaskDetailPage.styled.d.ts +0 -65
- package/dist/components/taskManagement/TaskListFlatRowRenderer.d.ts +0 -1
- package/dist/components/taskManagement/TaskListRow.d.ts +2 -5
- package/dist/components/taskManagement/TaskManagementPage.d.ts +1 -2
- package/dist/components/taskManagement/taskDetailLabels.d.ts +1 -1
- package/dist/components/taskManagement/taskManagementHeaderItemsData.d.ts +0 -20
- package/dist/components/transactionDetail/create/CreateTransactionButton.d.ts +3 -3
- package/dist/components/transactionDetail/create/CreateTransactionLinesTable.d.ts +3 -1
- package/dist/components/transactionDetail/create/createTransactionFieldSchema.d.ts +4 -1
- package/dist/components/transactionDetail/create/createTransactionFormNames.d.ts +0 -5
- package/dist/components/transactionDetail/items/journalEntryTable/header/JournalEntryTableHeader.d.ts +4 -1
- package/dist/components/transactionDetail/items/journalEntryTable/journalEntryTableTypes.d.ts +10 -1
- package/dist/components/transactionDetail/items/journalEntryTable/listRow/JournalEntryTableListRow.d.ts +1 -1
- package/dist/components/transactionDetail/items/journalEntryTable/totals/JournalEntryTotalsRow.d.ts +2 -2
- package/dist/components/transactionDetail/items/transactionLineTable/header/TransactionLineTableHeader.d.ts +4 -2
- package/dist/components/uncategorizedAccountsMapping/UncategorizedAccountsMappingPage.d.ts +6 -2
- package/dist/components/vendorDetail/PageHeader.d.ts +4 -1
- package/dist/context/featureProvider/FeatureGateNameConstants.d.ts +4 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.esm.js +335 -334
- package/dist/mcdonalds-logo-BTFuGR4i.js +5 -0
- package/dist/mercury-logo-Xd1WsXHh.js +5 -0
- package/dist/mercury-logo-dark-WebeUx9w.js +5 -0
- package/dist/more-providers-avatars-Dt7HPmCt.js +5 -0
- package/dist/netsuite-logo-Dp53a_wk.js +5 -0
- package/dist/netsuite-logo-dark-C53BYo7C.js +5 -0
- package/dist/paypal-logo-RhbjaD58.js +5 -0
- package/dist/paypal-logo-dark-_jTZA_FH.js +5 -0
- package/dist/phone-otp-DI7iHM2C.js +7 -0
- package/dist/strings/strings.d.ts +45 -34
- package/dist/subway-logo-B-Kc0fke.js +5 -0
- package/dist/underline-BNKkE4Fr.js +223 -0
- package/dist/vendor-@stripe-stripe-js-BmvP0myE.js +108 -0
- package/dist/vendor-react-lottie-player-Qhg4gMF8.js +174 -0
- package/dist/zeni-card-trust-BpxZYDve.js +5 -0
- package/dist/zeni-thanksgiving-logo-full-BLmLHEXd.js +5 -0
- package/package.json +8 -10
- package/dist/SessionTimeoutPopup-LoxZXeK3.cjs +0 -92665
- package/dist/assets/illustrative/ai-cfo.svg +0 -13
- package/dist/assets/illustrative/rewardsEmailTemplate/business-banking-icon.svg +0 -21
- package/dist/assets/illustrative/rewardsEmailTemplate/cards-icon.svg +0 -11
- package/dist/assets/interface/ai-icon-color-selected-filled-small.svg +0 -27
- package/dist/assets/interface/ai-icon-color-selected-small.svg +0 -20
- package/dist/assets/interface/ai-icon-selected-filled-plain.svg +0 -5
- package/dist/assets/interface/arrow-2-left.svg +0 -4
- package/dist/assets/interface/autofill-3.svg +0 -3
- package/dist/assets/interface/graph-trend.svg +0 -11
- package/dist/assets/interface/growth-round.svg +0 -5
- package/dist/assets/interface/saving-money-egg.svg +0 -15
- package/dist/assets/interface/timer-play.svg +0 -4
- package/dist/assets/interface/treasury-thumbnail.png +0 -0
- package/dist/assets/logos/gmail-logo.svg +0 -20
- package/dist/assets/logos/microsoft365-logo.svg +0 -25
- package/dist/assets/oldicons/promoPages/usp-line.svg +0 -3
- package/dist/cockpit.cjs.js +0 -5882
- package/dist/components/expenseAutomation/sections/jeSchedules/accrualDetail/JEAccrualJournalEntryCard.d.ts +0 -21
- package/dist/components/expenseAutomation/sections/jeSchedules/common/JEJournalEntryPreview.d.ts +0 -28
- package/dist/components/formElements/timeSpentField/timeSpentDisplayFormat.d.ts +0 -10
- package/dist/components/taskManagement/TaskListFilterBar.d.ts +0 -10
- package/dist/components/taskManagement/TaskTimerButton.d.ts +0 -28
- package/dist/components/taskManagement/formatTimeSpent.d.ts +0 -22
- package/dist/components/taskManagement/taskListGrid.d.ts +0 -21
- package/dist/index.cjs.js +0 -1
- package/dist/vendor-@babel-runtime-_D8QudKm.cjs +0 -4
- package/dist/vendor-@floating-ui-core-Dyvby5gX.cjs +0 -1
- package/dist/vendor-@floating-ui-dom-CexqkosJ.cjs +0 -1
- package/dist/vendor-@floating-ui-utils-sUr78tUz.cjs +0 -1
- package/dist/vendor-@popperjs-core-Da5z8R8_.cjs +0 -1
- package/dist/vendor-@react-oauth-google-RY6l5Pdi.cjs +0 -1
- package/dist/vendor-@statsig-client-core-CcuuGlfw.cjs +0 -1
- package/dist/vendor-@statsig-js-client-C6n1oYZG.cjs +0 -1
- package/dist/vendor-@statsig-react-bindings-DVuaLZfm.cjs +0 -1
- package/dist/vendor-@ungap-structured-clone-BSqP9FP7.cjs +0 -1
- package/dist/vendor-@zeniai-client-epic-state-DWdyw6ma.cjs +0 -1
- package/dist/vendor-autosuggest-highlight-BrLUL75m.cjs +0 -1
- package/dist/vendor-bail-CPU4onRe.cjs +0 -1
- package/dist/vendor-big.js-BfsYTtpv.cjs +0 -1
- package/dist/vendor-browser-image-compression-BZPRtRQ2.cjs +0 -20
- package/dist/vendor-ccount-B3JMtXU-.cjs +0 -1
- package/dist/vendor-clsx-CAED27AB.cjs +0 -1
- package/dist/vendor-color-BlJDv7Qx.cjs +0 -1
- package/dist/vendor-color-convert-DNxf_t0v.cjs +0 -1
- package/dist/vendor-color-name-DMfyNIC_.cjs +0 -1
- package/dist/vendor-color-string-DlngRZWO.cjs +0 -1
- package/dist/vendor-comma-separated-tokens-CM2uar_0.cjs +0 -1
- package/dist/vendor-countries-list-DdDJCIea.cjs +0 -1
- package/dist/vendor-country-flag-icons-CaT9dyG0.cjs +0 -1
- package/dist/vendor-cross-fetch-BcrCP3uC.cjs +0 -2
- package/dist/vendor-decode-named-character-reference-CpsLJx05.cjs +0 -1
- package/dist/vendor-devlop-IYc_KfOj.cjs +0 -1
- package/dist/vendor-escape-string-regexp-CXe2COqk.cjs +0 -1
- package/dist/vendor-estree-util-is-identifier-name-DqXb06tQ.cjs +0 -1
- package/dist/vendor-extend-Xv02IcfV.cjs +0 -1
- package/dist/vendor-fast-deep-equal-xp5wgv1k.cjs +0 -1
- package/dist/vendor-hast-util-to-jsx-runtime-Cn0tASh-.cjs +0 -1
- package/dist/vendor-hast-util-whitespace-B7YrIln0.cjs +0 -1
- package/dist/vendor-html-url-attributes-B55Ir3vo.cjs +0 -1
- package/dist/vendor-inline-style-parser-BwLpyraz.cjs +0 -2
- package/dist/vendor-input-format-B4RKCxE4.cjs +0 -3
- package/dist/vendor-is-arrayish-DfXUb1DJ.cjs +0 -1
- package/dist/vendor-is-plain-obj-DH-Kh8FX.cjs +0 -1
- package/dist/vendor-js-file-download-Cbb6agEb.cjs +0 -1
- package/dist/vendor-libphonenumber-js-DkZ7WT-u.cjs +0 -13
- package/dist/vendor-lodash-CNz95YDD.cjs +0 -1
- package/dist/vendor-lodash.debounce-C9YP0rOk.cjs +0 -1
- package/dist/vendor-longest-streak-CpfJ7Pkv.cjs +0 -1
- package/dist/vendor-lottie-web-Cnpvoe-Q.cjs +0 -2
- package/dist/vendor-markdown-table-BIbVC1pY.cjs +0 -2
- package/dist/vendor-mdast-util-find-and-replace-BqOMYvvg.cjs +0 -1
- package/dist/vendor-mdast-util-from-markdown-DmcqmoHq.cjs +0 -1
- package/dist/vendor-mdast-util-gfm-DYVYZtQo.cjs +0 -1
- package/dist/vendor-mdast-util-gfm-autolink-literal-B7Jk_6Zc.cjs +0 -1
- package/dist/vendor-mdast-util-gfm-footnote-BqZr5GmF.cjs +0 -2
- package/dist/vendor-mdast-util-gfm-strikethrough-DkmBmVZz.cjs +0 -1
- package/dist/vendor-mdast-util-gfm-table-GRkZEL2K.cjs +0 -3
- package/dist/vendor-mdast-util-gfm-task-list-item-COkL7umh.cjs +0 -1
- package/dist/vendor-mdast-util-phrasing-B3pE6Gyd.cjs +0 -1
- package/dist/vendor-mdast-util-to-hast-DZGTy4jY.cjs +0 -11
- package/dist/vendor-mdast-util-to-markdown-CFDJSkr8.cjs +0 -12
- package/dist/vendor-mdast-util-to-string-epeputJu.cjs +0 -1
- package/dist/vendor-memoize-one-DetCWhre.cjs +0 -1
- package/dist/vendor-micromark-QT1lJ_9G.cjs +0 -3
- package/dist/vendor-micromark-core-commonmark-CHMYvCou.cjs +0 -1
- package/dist/vendor-micromark-extension-gfm-DOHEv_Ow.cjs +0 -1
- package/dist/vendor-micromark-extension-gfm-autolink-literal-BIi53Rt2.cjs +0 -1
- package/dist/vendor-micromark-extension-gfm-footnote-CuTbB2_e.cjs +0 -1
- package/dist/vendor-micromark-extension-gfm-strikethrough-CcuQ-v4I.cjs +0 -1
- package/dist/vendor-micromark-extension-gfm-table-CoYdjDBk.cjs +0 -1
- package/dist/vendor-micromark-extension-gfm-tagfilter-Dyvby5gX.cjs +0 -1
- package/dist/vendor-micromark-extension-gfm-task-list-item-eGtf7dwN.cjs +0 -1
- package/dist/vendor-micromark-factory-destination-DODxvNwQ.cjs +0 -1
- package/dist/vendor-micromark-factory-label-DRCYHbTp.cjs +0 -1
- package/dist/vendor-micromark-factory-space-BxE8R4nI.cjs +0 -1
- package/dist/vendor-micromark-factory-title-HTScd-95.cjs +0 -1
- package/dist/vendor-micromark-factory-whitespace-Cfovfawt.cjs +0 -1
- package/dist/vendor-micromark-util-character-ThpXZ0p5.cjs +0 -1
- package/dist/vendor-micromark-util-chunked-CCaF1jRh.cjs +0 -1
- package/dist/vendor-micromark-util-classify-character-BXzv_u9-.cjs +0 -1
- package/dist/vendor-micromark-util-combine-extensions-ymdtWEAr.cjs +0 -1
- package/dist/vendor-micromark-util-decode-numeric-character-reference-sKQehvtv.cjs +0 -1
- package/dist/vendor-micromark-util-decode-string-Coo2FPbM.cjs +0 -1
- package/dist/vendor-micromark-util-encode-Dyvby5gX.cjs +0 -1
- package/dist/vendor-micromark-util-html-tag-name-BqwwRvi2.cjs +0 -1
- package/dist/vendor-micromark-util-normalize-identifier-CZzRW9lF.cjs +0 -1
- package/dist/vendor-micromark-util-resolve-all-B1vkj8Lj.cjs +0 -1
- package/dist/vendor-micromark-util-sanitize-uri-fWsohj9C.cjs +0 -1
- package/dist/vendor-micromark-util-subtokenize-B5hanNMp.cjs +0 -1
- package/dist/vendor-object-assign-5rXDT7QN.cjs +0 -1
- package/dist/vendor-prop-types-D7ILSZ36.cjs +0 -2
- package/dist/vendor-property-information-B58jd_xz.cjs +0 -1
- package/dist/vendor-react-CzqSQR9J.cjs +0 -14
- package/dist/vendor-react-circular-progressbar-BnDuoTgW.cjs +0 -6
- package/dist/vendor-react-datepicker-GIiaQhgI.cjs +0 -2
- package/dist/vendor-react-draggable-rHHMjzs1.cjs +0 -3
- package/dist/vendor-react-error-boundary-DUjnAjoQ.cjs +0 -1
- package/dist/vendor-react-fast-compare-DjJCSAPj.cjs +0 -1
- package/dist/vendor-react-google-autocomplete-Du5iErAd.cjs +0 -2
- package/dist/vendor-react-hook-form-DowHtP8_.cjs +0 -1
- package/dist/vendor-react-is-DK4cIQ7j.cjs +0 -1
- package/dist/vendor-react-lottie-player-Cwb-Xhoz.cjs +0 -1
- package/dist/vendor-react-lottie-player-DcNoEdGF.js +0 -155
- package/dist/vendor-react-markdown-sVAdj9xV.cjs +0 -1
- package/dist/vendor-react-merge-refs-Daoz85kW.cjs +0 -1
- package/dist/vendor-react-number-format-QGmN0d2v.cjs +0 -7
- package/dist/vendor-react-onclickoutside-CjoT6SX4.cjs +0 -1
- package/dist/vendor-react-phone-number-input-BBnFN-wD.cjs +0 -4
- package/dist/vendor-react-popper-DEi6sOBD.cjs +0 -1
- package/dist/vendor-react-select-DufBhudz.cjs +0 -4
- package/dist/vendor-react-virtualized-auto-sizer-DS8s5Nqf.cjs +0 -1
- package/dist/vendor-react-vtree-CtDSz2Mv.cjs +0 -1
- package/dist/vendor-react-webcam-CPpkXthK.cjs +0 -1
- package/dist/vendor-react-window-CuU_qzaW.cjs +0 -1
- package/dist/vendor-react-window-infinite-loader-CdyCIjx6.cjs +0 -1
- package/dist/vendor-remark-gfm-Bou12kJi.cjs +0 -1
- package/dist/vendor-remark-parse-BYKtvo5n.cjs +0 -1
- package/dist/vendor-remark-rehype-CuqXXG-2.cjs +0 -1
- package/dist/vendor-rfdc-sZ2eP5eF.cjs +0 -1
- package/dist/vendor-simple-swizzle-BNELyqz6.cjs +0 -1
- package/dist/vendor-space-separated-tokens-0etuzMC1.cjs +0 -1
- package/dist/vendor-style-to-js-CUjGi3ge.cjs +0 -1
- package/dist/vendor-style-to-object--fzklQoy.cjs +0 -1
- package/dist/vendor-trim-lines-BO73c4j-.cjs +0 -1
- package/dist/vendor-trough-CZIkZM5d.cjs +0 -1
- package/dist/vendor-unified-hdBFtaBE.cjs +0 -1
- package/dist/vendor-unist-util-is-C5fG5pIe.cjs +0 -1
- package/dist/vendor-unist-util-position-DsgljCtl.cjs +0 -1
- package/dist/vendor-unist-util-stringify-position-DfmUoPWR.cjs +0 -1
- package/dist/vendor-unist-util-visit-Cyg51Aas.cjs +0 -1
- package/dist/vendor-unist-util-visit-parents-BFfGpcYZ.cjs +0 -1
- package/dist/vendor-us-bank-account-validator-DOz5Vc9n.cjs +0 -1
- package/dist/vendor-use-isomorphic-layout-effect-CkGv31zs.cjs +0 -1
- package/dist/vendor-use-resize-observer-FgrE0mfc.cjs +0 -1
- package/dist/vendor-utils-CN5UYrS0.cjs +0 -1
- package/dist/vendor-vfile-DagMcMZP.cjs +0 -1
- package/dist/vendor-vfile-message-DB4fwBOw.cjs +0 -1
- package/dist/vendor-warning-FOT2NNRo.cjs +0 -1
- package/dist/vendor-zwitch-Dyvby5gX.cjs +0 -1
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* PCM → 16-bit mono WAV, for voice dictation uploads.
|
|
3
|
+
*
|
|
4
|
+
* The browser records raw PCM rather than using MediaRecorder because Chrome's
|
|
5
|
+
* MediaRecorder only produces `audio/webm`, which the transcription model does
|
|
6
|
+
* not accept (it takes wav/mp3/aiff/aac/ogg/flac). Encoding WAV here also makes
|
|
7
|
+
* the payload identical across browsers instead of varying by vendor codec.
|
|
8
|
+
*/
|
|
9
|
+
/** 16 kHz is the standard speech-recognition rate; more bandwidth buys no accuracy. */
|
|
10
|
+
export declare const DICTATION_SAMPLE_RATE = 16000;
|
|
11
|
+
/**
|
|
12
|
+
* Resample to a lower rate by averaging each source window.
|
|
13
|
+
*
|
|
14
|
+
* Averaging rather than picking the nearest sample: plain decimation aliases
|
|
15
|
+
* high frequencies down into the speech band as audible chirp, which costs
|
|
16
|
+
* recognition accuracy for a couple of lines of arithmetic.
|
|
17
|
+
*
|
|
18
|
+
* @param input Mono samples in [-1, 1].
|
|
19
|
+
* @param inputRate Source sample rate, typically the AudioContext's 44.1/48 kHz.
|
|
20
|
+
* @param targetRate Desired rate; must not exceed inputRate.
|
|
21
|
+
* @returns Resampled mono samples, or `input` unchanged when no downsampling is needed.
|
|
22
|
+
*/
|
|
23
|
+
export declare function downsample(input: Float32Array, inputRate: number, targetRate: number): Float32Array;
|
|
24
|
+
/** Concatenate the captured chunks into one contiguous buffer. */
|
|
25
|
+
export declare function mergeChunks(chunks: Float32Array[]): Float32Array;
|
|
26
|
+
/** Root-mean-square level of a chunk, used to detect a silent microphone. */
|
|
27
|
+
export declare function rms(samples: Float32Array): number;
|
|
28
|
+
/**
|
|
29
|
+
* Wrap mono float samples in a canonical 44-byte RIFF/WAVE header.
|
|
30
|
+
*
|
|
31
|
+
* @param samples Mono samples in [-1, 1]; values outside are clipped, not wrapped.
|
|
32
|
+
* @param sampleRate Rate of `samples`.
|
|
33
|
+
* @returns A complete `.wav` file.
|
|
34
|
+
*/
|
|
35
|
+
export declare function encodeWav(samples: Float32Array, sampleRate: number): ArrayBuffer;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
export interface VoiceDictationErrorMessages {
|
|
2
|
+
/** The user (or browser policy) blocked microphone access. */
|
|
3
|
+
permissionDenied: string;
|
|
4
|
+
/** Capture failed for any other reason. */
|
|
5
|
+
unavailable: string;
|
|
6
|
+
}
|
|
7
|
+
export interface UseVoiceDictationResult {
|
|
8
|
+
error: string | null;
|
|
9
|
+
isRecording: boolean;
|
|
10
|
+
/** True between start() and the mic actually going live (permission pending). */
|
|
11
|
+
isStarting: boolean;
|
|
12
|
+
/** False when the browser cannot capture audio — hide the control entirely. */
|
|
13
|
+
isSupported: boolean;
|
|
14
|
+
/**
|
|
15
|
+
* Latest windowed input level (RMS, 0–1), refreshed about ten times a second.
|
|
16
|
+
* A ref rather than state: a level that re-rendered the composer on every
|
|
17
|
+
* update would re-render it ten times a second for a decoration.
|
|
18
|
+
*/
|
|
19
|
+
levelRef: React.MutableRefObject<number>;
|
|
20
|
+
/** Dismisses a capture error — it is otherwise only cleared by the next start(). */
|
|
21
|
+
clearError: () => void;
|
|
22
|
+
start: () => void;
|
|
23
|
+
/** `discard` drops the take instead of emitting it (e.g. the message was sent). */
|
|
24
|
+
stop: (options?: {
|
|
25
|
+
discard?: boolean;
|
|
26
|
+
}) => void;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* @param onRecordingComplete Called with a finished WAV once recording stops.
|
|
30
|
+
* Not called when the take held no audio, so a mis-click costs nothing.
|
|
31
|
+
*/
|
|
32
|
+
export declare function useVoiceDictation(onRecordingComplete: (audio: Blob) => void, errorMessages: VoiceDictationErrorMessages): UseVoiceDictationResult;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -168,7 +168,10 @@ export interface AiCfoPageProps {
|
|
|
168
168
|
isRoutinesOpen?: boolean;
|
|
169
169
|
/** Replaces the chat body with the Skills browser. Driven by the left-rail entry. */
|
|
170
170
|
isSkillsOpen?: boolean;
|
|
171
|
+
isTranscribing?: boolean;
|
|
172
|
+
isTranscriptionFailed?: boolean;
|
|
171
173
|
isUploadPromoVisible?: boolean;
|
|
174
|
+
isVoiceInputEnabled?: boolean;
|
|
172
175
|
/** Debounced (300ms) flush of the card-policy RHF watch subscription. */
|
|
173
176
|
onCardPolicyFormChange?: AiCfoQuestionAnswerProps["onCardPolicyFormChange"];
|
|
174
177
|
/** Submission handler for the AI Card Policy interactive form. */
|
|
@@ -312,6 +315,8 @@ export interface AiCfoPageProps {
|
|
|
312
315
|
/** Publish or unpublish in place. Absent withholds the control. */
|
|
313
316
|
onSetSkillVisibility?: (macroId: string, visibility: SkillVisibility) => void;
|
|
314
317
|
onUploadPromoClose?: () => void;
|
|
318
|
+
/** Receives a finished WAV recording to send for transcription. */
|
|
319
|
+
onVoiceRecordingComplete?: (audio: Blob, chatSessionId?: ID) => void;
|
|
315
320
|
/**
|
|
316
321
|
* Resolves a newly-created card id to a `{ title, subtitle? }` tile.
|
|
317
322
|
* Used by the synthetic "Created cards" answer bubble rendered after a
|
|
@@ -44,7 +44,10 @@ export interface AiCfoSidePanelProps {
|
|
|
44
44
|
isInteractiveFormSubmitting?: AiCfoQuestionAnswerProps["isInteractiveFormSubmitting"];
|
|
45
45
|
/** Passed by connect() / drawer; not used by panel */
|
|
46
46
|
isOpen?: boolean;
|
|
47
|
+
isTranscribing?: boolean;
|
|
48
|
+
isTranscriptionFailed?: boolean;
|
|
47
49
|
isUploadPromoVisible?: boolean;
|
|
50
|
+
isVoiceInputEnabled?: boolean;
|
|
48
51
|
location?: unknown;
|
|
49
52
|
navigate?: unknown;
|
|
50
53
|
/** Debounced card-policy watch flush → `updateAiCardPolicyFormDraft`. */
|
|
@@ -87,6 +90,8 @@ export interface AiCfoSidePanelProps {
|
|
|
87
90
|
onEmailLinkQuestionProcessed?: () => void;
|
|
88
91
|
onMenuClick?: () => void;
|
|
89
92
|
onUploadPromoClose?: () => void;
|
|
93
|
+
/** Receives a finished WAV recording to send for transcription. */
|
|
94
|
+
onVoiceRecordingComplete?: (audio: Blob, chatSessionId?: ID) => void;
|
|
90
95
|
/**
|
|
91
96
|
* Look up a newly-created card's preview tile data by `cardId`. Used by
|
|
92
97
|
* the synthetic "Created cards" bubble to render the tile list. Optional
|
|
@@ -22,7 +22,13 @@ export interface AiCfoInputProps {
|
|
|
22
22
|
*/
|
|
23
23
|
isCreateSkillEnabled?: boolean;
|
|
24
24
|
isFileUploadEnabled?: boolean;
|
|
25
|
+
/** True while a finished recording is being transcribed server-side. */
|
|
26
|
+
isTranscribing?: boolean;
|
|
27
|
+
/** True when the last transcription request failed, so the composer can say so. */
|
|
28
|
+
isTranscriptionFailed?: boolean;
|
|
25
29
|
isUploadPromoVisible?: boolean;
|
|
30
|
+
/** Gates the mic; the control also needs a browser that can capture audio. */
|
|
31
|
+
isVoiceInputEnabled?: boolean;
|
|
26
32
|
selectedFiles?: FileAttachment[];
|
|
27
33
|
shouldFocus?: boolean;
|
|
28
34
|
/** Chat-visible skills for the `/` menu (from getSkills). */
|
|
@@ -31,6 +37,8 @@ export interface AiCfoInputProps {
|
|
|
31
37
|
skillsEnabled?: boolean;
|
|
32
38
|
/** First-person next message suggestion; shown as ghost placeholder + Tab-to-fill when the input is empty. */
|
|
33
39
|
suggestedReply?: string;
|
|
40
|
+
/** Session the composer is in, snapshotted when a recording starts. */
|
|
41
|
+
voiceChatSessionId?: ID;
|
|
34
42
|
onInputChange: (value: string) => void;
|
|
35
43
|
onStopSubmit: () => void;
|
|
36
44
|
onSubmit: () => void;
|
|
@@ -42,6 +50,8 @@ export interface AiCfoInputProps {
|
|
|
42
50
|
/** Called when a skill is picked from the `/` menu. */
|
|
43
51
|
onSelectSkill?: (skill: SkillMenuItem) => void;
|
|
44
52
|
onUploadPromoClose?: () => void;
|
|
53
|
+
/** Receives a finished WAV recording plus the session it was dictated into. */
|
|
54
|
+
onVoiceRecordingComplete?: (audio: Blob, chatSessionId?: ID) => void;
|
|
45
55
|
}
|
|
46
56
|
declare const AiCfoInput: React.FC<AiCfoInputProps>;
|
|
47
57
|
export default AiCfoInput;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
export interface VoiceWaveformProps {
|
|
3
|
+
levelRef: React.MutableRefObject<number>;
|
|
4
|
+
}
|
|
5
|
+
/**
|
|
6
|
+
* Live input level while dictating, as a strip of bars scrolling right to left.
|
|
7
|
+
* Reads the level from a ref on an interval so the composer is not re-rendered
|
|
8
|
+
* ten times a second.
|
|
9
|
+
*/
|
|
10
|
+
export declare const VoiceWaveform: ({ levelRef, }: VoiceWaveformProps) => React.ReactElement;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { MutableRefObject } from 'react';
|
|
2
|
+
/** The one method this hook needs off the debounced writer — `lodash` itself is a forbidden import here. */
|
|
3
|
+
interface FlushableDebouncedFunc {
|
|
4
|
+
flush: () => void;
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* Keeps the composer's local draft in step with a dictation take.
|
|
8
|
+
*
|
|
9
|
+
* The transcript is appended to Redux `currentInput` by the reducer, but the textarea
|
|
10
|
+
* renders `localInput`, which is not otherwise subscribed to Redux. Flushing the pending
|
|
11
|
+
* debounced write when transcription starts makes Redux match the draft exactly, and the
|
|
12
|
+
* composer is read-only until the take lands, so neither side can move in between — the
|
|
13
|
+
* refresh cannot drop anything typed while recording.
|
|
14
|
+
*/
|
|
15
|
+
export declare const useSyncTranscriptIntoLocalInput: (isTranscribing: boolean, currentInput: string, debouncedUpdateRedux: MutableRefObject<FlushableDebouncedFunc>, setLocalInput: (input: string) => void) => void;
|
|
16
|
+
export {};
|
package/dist/components/cockpit/common/parentSubsidiaryTag/components/ParentSubsidiaryTag.d.ts
CHANGED
|
@@ -4,7 +4,9 @@ export interface Props {
|
|
|
4
4
|
companyName: string;
|
|
5
5
|
parentSubsidiaryRelationship: ParentSubsidiaryInfo;
|
|
6
6
|
isEnabled?: boolean;
|
|
7
|
+
/** Overrides the "Parent" / "Subsidiary" tag text. */
|
|
8
|
+
label?: string;
|
|
7
9
|
onViewDetailsLinkClicked?: (parentID: ID) => void;
|
|
8
10
|
}
|
|
9
|
-
declare const ParentSubsidiaryTag: ({ companyId, companyName, isEnabled, parentSubsidiaryRelationship, onViewDetailsLinkClicked, }: Props) => import("react/jsx-runtime").JSX.Element | null;
|
|
11
|
+
declare const ParentSubsidiaryTag: ({ companyId, companyName, isEnabled, label, parentSubsidiaryRelationship, onViewDetailsLinkClicked, }: Props) => import("react/jsx-runtime").JSX.Element | null;
|
|
10
12
|
export default ParentSubsidiaryTag;
|
|
@@ -26,8 +26,7 @@ export interface Props {
|
|
|
26
26
|
isReadOnly?: boolean;
|
|
27
27
|
pickerStyles?: Partial<PickerStyles>;
|
|
28
28
|
selectedUserGroups?: UserGroup[];
|
|
29
|
-
showDropdownIndicator?: boolean;
|
|
30
29
|
onSelectedUsersChanged: (selectedUsers: RoleSelectableUser[], deSelectedUsers: RoleSelectableUser[]) => void;
|
|
31
30
|
onSelectedUserGroupsChanged?: (selectedUserGroups: UserGroup[]) => void;
|
|
32
31
|
}
|
|
33
|
-
export default function UserMultiSelect({ name, allUsers, allUserGroups, selectedUserGroups, onSelectedUserGroupsChanged, onSelectedUsersChanged, selectedUsers, disable, pickerStyles: { optionBackgroundColor, optionTextStyle, titleTextStyle, backgroundColor, titleTextAlignment, selectedOptionColor, multiValueLabelTitleStyle, }, customization: { placeholderLabel }, isReadOnly,
|
|
32
|
+
export default function UserMultiSelect({ name, allUsers, allUserGroups, selectedUserGroups, onSelectedUserGroupsChanged, onSelectedUsersChanged, selectedUsers, disable, pickerStyles: { optionBackgroundColor, optionTextStyle, titleTextStyle, backgroundColor, titleTextAlignment, selectedOptionColor, multiValueLabelTitleStyle, }, customization: { placeholderLabel }, isReadOnly, }: Readonly<Props>): import("react/jsx-runtime").JSX.Element;
|
|
@@ -16,7 +16,6 @@ export interface Props {
|
|
|
16
16
|
pickerStyles?: Partial<PickerStyles>;
|
|
17
17
|
placeholderLabel?: string;
|
|
18
18
|
registerOptions?: RegisterOptions;
|
|
19
|
-
showDropdownIndicator?: boolean;
|
|
20
19
|
}
|
|
21
|
-
declare const UserMultiSelectField: ({ name, placeholderLabel, registerOptions, value: defaultValue, isReadOnly,
|
|
20
|
+
declare const UserMultiSelectField: ({ name, placeholderLabel, registerOptions, value: defaultValue, isReadOnly, isDisabled, pickerStyles, }: Props) => import("react/jsx-runtime").JSX.Element;
|
|
22
21
|
export default UserMultiSelectField;
|
|
@@ -49,12 +49,18 @@ export declare const isTransactionDetailFieldEntityType: (entityType: string) =>
|
|
|
49
49
|
* those to this form on read so they still resolve.
|
|
50
50
|
* Returns undefined for null balances so callers can skip commenting on empty cells.
|
|
51
51
|
*/
|
|
52
|
-
|
|
52
|
+
/**
|
|
53
|
+
* Column part of a cell's comment anchor.
|
|
54
|
+
*
|
|
55
|
+
* `customRangeEndDate` is the end of the custom date range the user committed
|
|
56
|
+
* on the page (see CustomDateRangeColumnContext), if any.
|
|
57
|
+
*/
|
|
58
|
+
export declare const toColumnKey: (balance: COABalance | null, customRangeEndDate?: string) => string | undefined;
|
|
53
59
|
/**
|
|
54
60
|
* Builds a per-cell entityId by combining a row-level stable ID with a column key.
|
|
55
61
|
* Returns undefined if either part is missing (commenting should be disabled for that cell).
|
|
56
62
|
*/
|
|
57
|
-
export declare const toCellEntityId: (rowStableId: string | undefined, balance: COABalance | null) => string | undefined;
|
|
63
|
+
export declare const toCellEntityId: (rowStableId: string | undefined, balance: COABalance | null, customRangeEndDate?: string) => string | undefined;
|
|
58
64
|
/**
|
|
59
65
|
* Normalizes a column key to its canonical, timezone-independent form.
|
|
60
66
|
* Date-pair keys become `YYYY-MM-DD_YYYY-MM-DD`; calculated-column keys
|
|
@@ -1,4 +1,10 @@
|
|
|
1
1
|
import { ReactNode } from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* `default` is the JE Schedules look. `iconMenu` is the Create Transaction design: a white
|
|
4
|
+
* button that opens its menu on hover anywhere over it, darkens its border while open, and
|
|
5
|
+
* shows a wider menu of {@link IconMenuItem} rows.
|
|
6
|
+
*/
|
|
7
|
+
export type ButtonWithDropDownVariant = "default" | "iconMenu";
|
|
2
8
|
export interface ButtonWithDropDownProps {
|
|
3
9
|
/**
|
|
4
10
|
* Supplied by the caller rather than derived from `label`: deriving it would tie every
|
|
@@ -10,6 +16,7 @@ export interface ButtonWithDropDownProps {
|
|
|
10
16
|
/** Shown above the chevron on hover. */
|
|
11
17
|
chevronTooltip?: string;
|
|
12
18
|
isDisabled?: boolean;
|
|
19
|
+
variant?: ButtonWithDropDownVariant;
|
|
13
20
|
/**
|
|
14
21
|
* `close` lets the caller dismiss the menu on selection without its own selection types
|
|
15
22
|
* having to pass through this component. With a plain ReactNode the popover could not be
|
|
@@ -26,7 +33,7 @@ export interface ButtonWithDropDownProps {
|
|
|
26
33
|
* The split button used for "New"-style actions: a labelled primary segment and a chevron that
|
|
27
34
|
* opens a menu.
|
|
28
35
|
*/
|
|
29
|
-
declare function ButtonWithDropDown({ dataTestId, label, renderMenu, chevronTooltip, isDisabled, onPrimaryClick, }: Readonly<ButtonWithDropDownProps>): import("react/jsx-runtime").JSX.Element;
|
|
36
|
+
declare function ButtonWithDropDown({ dataTestId, label, renderMenu, chevronTooltip, isDisabled, onPrimaryClick, variant, }: Readonly<ButtonWithDropDownProps>): import("react/jsx-runtime").JSX.Element;
|
|
30
37
|
export default ButtonWithDropDown;
|
|
31
38
|
export declare const MenuItemLabel: import('@emotion/styled').StyledComponent<{
|
|
32
39
|
theme?: import('@emotion/react').Theme;
|
|
@@ -57,3 +64,27 @@ export declare const SectionLabel: import('@emotion/styled').StyledComponent<{
|
|
|
57
64
|
} & import('react').ClassAttributes<HTMLDivElement> & import('react').HTMLAttributes<HTMLDivElement> & {
|
|
58
65
|
theme?: import('@emotion/react').Theme;
|
|
59
66
|
}, {}, {}>;
|
|
67
|
+
export declare const IconMenuItemIcon: import('@emotion/styled').StyledComponent<{
|
|
68
|
+
theme?: import('@emotion/react').Theme;
|
|
69
|
+
as?: React.ElementType;
|
|
70
|
+
}, import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
|
|
71
|
+
export declare const IconMenuItemText: import('@emotion/styled').StyledComponent<{
|
|
72
|
+
theme?: import('@emotion/react').Theme;
|
|
73
|
+
as?: React.ElementType;
|
|
74
|
+
}, import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
|
|
75
|
+
export declare const IconMenuItemLabel: import('@emotion/styled').StyledComponent<{
|
|
76
|
+
theme?: import('@emotion/react').Theme;
|
|
77
|
+
as?: React.ElementType;
|
|
78
|
+
} & import('react').ClassAttributes<HTMLDivElement> & import('react').HTMLAttributes<HTMLDivElement> & {
|
|
79
|
+
theme?: import('@emotion/react').Theme;
|
|
80
|
+
}, {}, {}>;
|
|
81
|
+
export declare const IconMenuItemDescription: import('@emotion/styled').StyledComponent<{
|
|
82
|
+
theme?: import('@emotion/react').Theme;
|
|
83
|
+
as?: React.ElementType;
|
|
84
|
+
} & import('react').ClassAttributes<HTMLDivElement> & import('react').HTMLAttributes<HTMLDivElement> & {
|
|
85
|
+
theme?: import('@emotion/react').Theme;
|
|
86
|
+
}, {}, {}>;
|
|
87
|
+
export declare const IconMenuItem: import('@emotion/styled').StyledComponent<{
|
|
88
|
+
theme?: import('@emotion/react').Theme;
|
|
89
|
+
as?: React.ElementType;
|
|
90
|
+
}, import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
|
|
@@ -30,6 +30,14 @@ export interface DownloadReportOptions {
|
|
|
30
30
|
cashFlowProjectsToFilterOut?: ID[];
|
|
31
31
|
/** Profit & Loss by class only: matches on-screen "By Class (Horizontal)" vs vertical. */
|
|
32
32
|
classViewLayout?: ClassViewLayout;
|
|
33
|
+
/**
|
|
34
|
+
* Custom date range (`YYYY-MM-DD`) shown on screen; the export then covers
|
|
35
|
+
* exactly this range. Absent for the default period-based export.
|
|
36
|
+
*/
|
|
37
|
+
customDateRange?: {
|
|
38
|
+
endDate: string;
|
|
39
|
+
startDate: string;
|
|
40
|
+
};
|
|
33
41
|
dataAvailable?: TimeframeTick;
|
|
34
42
|
disabledAdditionalColumns?: COABalanceType[];
|
|
35
43
|
nestedClassHierarchy?: NestedClassHierarchyForReport[];
|
|
@@ -41,6 +41,9 @@ export default interface DownloadReportOptionsPayload {
|
|
|
41
41
|
cash_flow_classes_to_filter_out?: NestedClassID[];
|
|
42
42
|
cash_flow_projects_to_filter_out?: ID[];
|
|
43
43
|
class_view_layout?: ClassViewLayout;
|
|
44
|
+
/** Same names as the reports API: export exactly this range when present. */
|
|
45
|
+
custom_end_date?: string;
|
|
46
|
+
custom_start_date?: string;
|
|
44
47
|
data_available?: {
|
|
45
48
|
end_date: string;
|
|
46
49
|
start_date: string;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { ForwardRefExoticComponent, PropsWithoutRef, Ref, RefAttributes } from 'react';
|
|
2
|
+
import { LottieProps } from 'react-lottie-player';
|
|
3
|
+
type PlayerProps = PropsWithoutRef<LottieProps>;
|
|
4
|
+
type LottieInstance = LottieProps["ref"] extends Ref<infer Instance> | undefined ? Instance : never;
|
|
5
|
+
export type LazyLottieComponent = ForwardRefExoticComponent<PlayerProps & RefAttributes<LottieInstance>>;
|
|
6
|
+
export declare const LottiePlayerLight: LazyLottieComponent;
|
|
7
|
+
export declare const LottiePlayer: LazyLottieComponent;
|
|
8
|
+
export {};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { ComponentPropsWithoutRef } from 'react';
|
|
2
|
+
import { Document as PdfDocument, Page as PdfPage } from 'react-pdf';
|
|
3
|
+
type DocumentProps = ComponentPropsWithoutRef<typeof PdfDocument>;
|
|
4
|
+
type PageProps = ComponentPropsWithoutRef<typeof PdfPage>;
|
|
5
|
+
/**
|
|
6
|
+
* react-pdf's `Document` and `Page`, loaded on first render. Imported directly,
|
|
7
|
+
* react-pdf and pdf.js land in the first-load bundle of every app; through
|
|
8
|
+
* `import()` they load only where a PDF is shown. While the library loads,
|
|
9
|
+
* `Document` shows its own `loading` element, so the spinner is unchanged.
|
|
10
|
+
*/
|
|
11
|
+
export declare const Document: (props: DocumentProps) => import("react/jsx-runtime").JSX.Element;
|
|
12
|
+
export declare const Page: (props: PageProps) => import("react/jsx-runtime").JSX.Element;
|
|
13
|
+
export {};
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { ComponentType, SVGProps } from 'react';
|
|
2
|
+
type SvgProps = Omit<SVGProps<SVGSVGElement>, "ref">;
|
|
3
|
+
/**
|
|
4
|
+
* An SVG component loaded on first render, for large SVGs (Figma exports that
|
|
5
|
+
* embed raster images as base64). Imported directly they compile into the main
|
|
6
|
+
* bundle and every page load downloads them; through `import()` each becomes
|
|
7
|
+
* its own chunk that loads only where it is shown. Same call sites and
|
|
8
|
+
* `styled()` wrappers as the directly imported component; renders nothing
|
|
9
|
+
* until its chunk arrives.
|
|
10
|
+
*/
|
|
11
|
+
export declare const lazySvg: (load: () => Promise<{
|
|
12
|
+
ReactComponent: ComponentType<SvgProps>;
|
|
13
|
+
}>) => {
|
|
14
|
+
(props: SvgProps): import("react/jsx-runtime").JSX.Element;
|
|
15
|
+
displayName: string;
|
|
16
|
+
};
|
|
17
|
+
export {};
|
|
@@ -2,6 +2,8 @@ export interface Props {
|
|
|
2
2
|
disabled?: boolean;
|
|
3
3
|
enableSearchHotkey?: boolean;
|
|
4
4
|
inputWrapperStyle?: React.CSSProperties;
|
|
5
|
+
/** When true, a one-time discovery coachmark is shown anchored to the search icon. */
|
|
6
|
+
isSearchDiscoveryCoachmarkOpen?: boolean;
|
|
5
7
|
keepSearchBoxOpen?: boolean;
|
|
6
8
|
placeholder?: string;
|
|
7
9
|
/** When set, applied to the search bar container (icon + input). */
|
|
@@ -12,7 +14,8 @@ export interface Props {
|
|
|
12
14
|
styledSearchCancelIconWrapperStyle?: React.CSSProperties;
|
|
13
15
|
styledSearchIconContainerStyle?: React.CSSProperties;
|
|
14
16
|
styledSearchIconWrapperStyle?: React.CSSProperties;
|
|
17
|
+
onDismissSearchDiscoveryCoachmark?: () => void;
|
|
15
18
|
onSearchOpen?: (isOpen: boolean) => void;
|
|
16
19
|
onSearchTextChanged?: (text: string) => void;
|
|
17
20
|
}
|
|
18
|
-
export declare function ListPageSearchInputBox({ enableSearchHotkey, disabled, inputWrapperStyle, keepSearchBoxOpen, placeholder, searchBarDataTestId, searchIconMarginRight, searchText, style, styledSearchCancelIconWrapperStyle, styledSearchIconContainerStyle, styledSearchIconWrapperStyle, onSearchOpen, onSearchTextChanged, }: Readonly<Props>): import("react/jsx-runtime").JSX.Element;
|
|
21
|
+
export declare function ListPageSearchInputBox({ enableSearchHotkey, disabled, inputWrapperStyle, isSearchDiscoveryCoachmarkOpen, keepSearchBoxOpen, placeholder, searchBarDataTestId, searchIconMarginRight, searchText, style, styledSearchCancelIconWrapperStyle, styledSearchIconContainerStyle, styledSearchIconWrapperStyle, onDismissSearchDiscoveryCoachmark, onSearchOpen, onSearchTextChanged, }: Readonly<Props>): import("react/jsx-runtime").JSX.Element;
|
|
@@ -8,6 +8,8 @@ export interface ListPageSearchSectionProps {
|
|
|
8
8
|
enableSearchHotkey?: boolean;
|
|
9
9
|
hideSearchBtn?: boolean;
|
|
10
10
|
inputWrapperStyle?: React.CSSProperties;
|
|
11
|
+
/** When true, a one-time discovery coachmark is shown anchored to the search icon (non-mobile). */
|
|
12
|
+
isSearchDiscoveryCoachmarkOpen?: boolean;
|
|
11
13
|
/** When set, applied to each search bar container (icon + input). */
|
|
12
14
|
searchBarDataTestId?: string;
|
|
13
15
|
searchIconMarginRight?: string;
|
|
@@ -24,6 +26,7 @@ export interface ListPageSearchSectionProps {
|
|
|
24
26
|
styledSearchCancelIconWrapperStyle?: React.CSSProperties;
|
|
25
27
|
styledSearchIconContainerStyle?: React.CSSProperties;
|
|
26
28
|
styledSearchIconWrapperStyle?: React.CSSProperties;
|
|
29
|
+
onDismissSearchDiscoveryCoachmark?: () => void;
|
|
27
30
|
onSearchTextChanged?: (searchText: string) => void;
|
|
28
31
|
}
|
|
29
32
|
export default function ListPageSearchSection(listPageSearchSectionProps: Readonly<ListPageSearchSectionProps>): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export interface SearchDiscoveryCoachmarkProps {
|
|
2
|
+
onDismiss: () => void;
|
|
3
|
+
}
|
|
4
|
+
/**
|
|
5
|
+
* One-time discovery coachmark rendered as the `title` of a controlled dark
|
|
6
|
+
* Tooltip anchored to the transaction search icon. Content-only — the Tooltip
|
|
7
|
+
* supplies the dark surface; the upward tick is drawn here to match the design.
|
|
8
|
+
* Dismissed via the close button or Escape (plus the search icon / Cmd+K in the
|
|
9
|
+
* host). There is deliberately no click-away: a stray click shouldn't
|
|
10
|
+
* permanently dismiss a one-time coachmark.
|
|
11
|
+
*/
|
|
12
|
+
export declare function SearchDiscoveryCoachmark({ onDismiss, }: Readonly<SearchDiscoveryCoachmarkProps>): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { CustomerSummary, ID } from '@zeniai/client-epic-state';
|
|
2
|
+
/**
|
|
3
|
+
* A sub-customer's or project's tag (like cockpit's Subsidiary tag). With its parent and `onParentClick`, its popover
|
|
4
|
+
* shows the parent, with View Details opening it; otherwise it's a plain tag.
|
|
5
|
+
*/
|
|
6
|
+
export declare function CustomerHierarchyTag({ customer, onParentClick, }: Readonly<{
|
|
7
|
+
customer: CustomerSummary;
|
|
8
|
+
onParentClick?: (id: ID) => void;
|
|
9
|
+
}>): import("react/jsx-runtime").JSX.Element | null;
|
|
10
|
+
export default CustomerHierarchyTag;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { CustomerSummary, ID } from '@zeniai/client-epic-state';
|
|
2
|
+
/** A customer's initials avatar (like the vendor list's) and name, with its Sub-customer / Project tag. */
|
|
3
|
+
export declare function CustomerNameCell({ customer, onParentClick, }: Readonly<{
|
|
4
|
+
customer: CustomerSummary;
|
|
5
|
+
onParentClick?: (id: ID) => void;
|
|
6
|
+
}>): import("react/jsx-runtime").JSX.Element;
|
|
7
|
+
export default CustomerNameCell;
|
|
@@ -17,6 +17,8 @@ export interface CustomerDetailPageProps {
|
|
|
17
17
|
timePeriod: TimeframeTick;
|
|
18
18
|
};
|
|
19
19
|
allTransactionsView?: TransactionListByEntityView;
|
|
20
|
+
/** Tenant setting: the figures cover the customer's sub-customers and projects too. */
|
|
21
|
+
includeSubCustomersInTotals?: boolean;
|
|
20
22
|
panelContent?: ReactNode;
|
|
21
23
|
sidePanelIsFullView?: boolean;
|
|
22
24
|
sidePanelIsOpen?: boolean;
|
|
@@ -26,6 +28,8 @@ export interface CustomerDetailPageProps {
|
|
|
26
28
|
onTabChange: (tab: CustomerDetailTabType) => void;
|
|
27
29
|
onTrendFilterChange: (filter: VendorSpendTrendFilterTabType) => void;
|
|
28
30
|
onBackClick?: () => void;
|
|
31
|
+
/** Opens another customer's details: one in its family tree, or its parent from the tag. */
|
|
32
|
+
onCustomerClick?: (customerId: ID) => void;
|
|
29
33
|
onTransactionItemClick?: (id: TransactionID) => void;
|
|
30
34
|
onTrendRetry?: () => void;
|
|
31
35
|
onTrendSelectedPeriodChange?: (selectedPeriod?: {
|
|
@@ -34,5 +38,5 @@ export interface CustomerDetailPageProps {
|
|
|
34
38
|
currentTimePeriod?: TimeframeTick;
|
|
35
39
|
}) => void;
|
|
36
40
|
}
|
|
37
|
-
export declare function CustomerDetailPage({ allTransactionsTabData, allTransactionsView, detailView, firstMonthOfFY, panelContent, readOnlyMode, selectedTab, sidePanelIsFullView, sidePanelIsOpen, trendFilter, trendWithTransactions, onBackClick, onLoadPreviousTransactionsClick, onSave, onTabChange, onTransactionItemClick, onTrendFilterChange, onTrendRetry, onTrendSelectedPeriodChange, }: Readonly<CustomerDetailPageProps>): import("react/jsx-runtime").JSX.Element;
|
|
41
|
+
export declare function CustomerDetailPage({ allTransactionsTabData, allTransactionsView, detailView, firstMonthOfFY, includeSubCustomersInTotals, panelContent, readOnlyMode, selectedTab, sidePanelIsFullView, sidePanelIsOpen, trendFilter, trendWithTransactions, onBackClick, onCustomerClick, onLoadPreviousTransactionsClick, onSave, onTabChange, onTransactionItemClick, onTrendFilterChange, onTrendRetry, onTrendSelectedPeriodChange, }: Readonly<CustomerDetailPageProps>): import("react/jsx-runtime").JSX.Element;
|
|
38
42
|
export default CustomerDetailPage;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { CustomerSummary, ID } from '@zeniai/client-epic-state';
|
|
2
|
+
export interface CustomerFamilyTreeProps {
|
|
3
|
+
currentCustomerId: ID;
|
|
4
|
+
/** The family, flat: its top-level customer and every active descendant (`CustomerSummary.familyTree`). */
|
|
5
|
+
familyTree: CustomerSummary[];
|
|
6
|
+
/** "Show totals including sub-customers": parents show totals and get a "Total <name>" row when expanded. */
|
|
7
|
+
includeSubCustomersInTotals: boolean;
|
|
8
|
+
currencySymbol?: string;
|
|
9
|
+
onCustomerClick: (customerId: ID) => void;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* The whole family a customer belongs to, as a report-style tree: each level indented under its parent, opened down
|
|
13
|
+
* to the current customer, which is highlighted. Other rows open their own details page.
|
|
14
|
+
*/
|
|
15
|
+
export declare function CustomerFamilyTree({ currencySymbol, currentCustomerId, familyTree, includeSubCustomersInTotals, onCustomerClick, }: Readonly<CustomerFamilyTreeProps>): import("react/jsx-runtime").JSX.Element;
|
|
16
|
+
export default CustomerFamilyTree;
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
import { CustomerRevenueKey, CustomerSummary, CustomerSummarySortKey, FetchState, SortOrder } from '@zeniai/client-epic-state';
|
|
2
2
|
export declare const getCustomerRevenueLabel: (key: CustomerRevenueKey) => string;
|
|
3
|
-
/**
|
|
3
|
+
/**
|
|
4
|
+
* Customers tab (Accounts Receivable) list: revenue, open AR, category and class per customer. Which levels it
|
|
5
|
+
* lists and whether the figures include sub-customers and projects follow the tenant's Customers settings.
|
|
6
|
+
*/
|
|
4
7
|
export interface CustomerListPageProps {
|
|
5
8
|
customers: CustomerSummary[];
|
|
6
9
|
fetchState: FetchState;
|
|
@@ -37,4 +37,4 @@ export interface ListItemData<TData> {
|
|
|
37
37
|
onToggleRow?: (rowId: string) => void;
|
|
38
38
|
renderPlaceholderRow?: (index: number) => ReactNode;
|
|
39
39
|
}
|
|
40
|
-
export declare function DataListTable<TData>({ columns, columnOrder, onColumnOrderChange, data, getRowId, stickyColumnKeys, maxWidthByColumnKey, sortState, onSortChange, selectedRowIds, onSelectedRowIdsChange, features, renderCheckboxRailCell, renderCheckboxRailHeader, renderRowBorderIcon, renderRowComment, renderRowCommentHeader, renderRowMenu, getRowMeta, infiniteLoader, estimatedRowHeight, getEstimatedRowHeight, cellVerticalAlign, centerWhenNarrow, bodyHeightIncludesHeader, disableInternalScroll, expandFrameWidthToViewport, bodyHeight, fillParent, className, "data-testid": dataTestId, rowLayoutVersion, rowMinHeight, onScroll, showOuterBorder, initialScrollOffset, onVirtualListRef, placeholderRowRootProps, renderFooterBelowFrame, isResponsiveTable, responsiveTableMinWidth, responsiveTableMaxWidth, isHorizontalScroll, columnGapPx, }: DataListTableProps<TData>): import("react/jsx-runtime").JSX.Element;
|
|
40
|
+
export declare function DataListTable<TData>({ columns, columnOrder, onColumnOrderChange, data, getRowId, stickyColumnKeys, maxWidthByColumnKey, sortState, defaultSortState, onSortChange, selectedRowIds, onSelectedRowIdsChange, features, renderCheckboxRailCell, renderCheckboxRailHeader, renderRowBorderIcon, renderRowComment, renderRowCommentHeader, renderRowMenu, getRowMeta, infiniteLoader, estimatedRowHeight, getEstimatedRowHeight, cellVerticalAlign, centerWhenNarrow, bodyHeightIncludesHeader, disableInternalScroll, expandFrameWidthToViewport, bodyHeight, fillParent, fitHeightToContent, className, "data-testid": dataTestId, rowLayoutVersion, rowMinHeight, onScroll, showOuterBorder, initialScrollOffset, onVirtualListRef, placeholderRowRootProps, renderFooterBelowFrame, isResponsiveTable, responsiveTableMinWidth, responsiveTableMaxWidth, isHorizontalScroll, columnGapPx, }: DataListTableProps<TData>): import("react/jsx-runtime").JSX.Element;
|
|
@@ -13,6 +13,8 @@ export interface DataListTableHeaderProps<TData> {
|
|
|
13
13
|
columnGapPx?: number;
|
|
14
14
|
/** When set (responsive table), fixed pixel width per data column. */
|
|
15
15
|
columnWidthPxByKey?: ColumnKeyMap;
|
|
16
|
+
/** When set, a sort other than this one shows a ⊗ on the active column that resets to it. */
|
|
17
|
+
defaultSortState?: SortState | null;
|
|
16
18
|
features?: {
|
|
17
19
|
checkboxRail?: boolean;
|
|
18
20
|
columnReorder?: boolean;
|
|
@@ -39,6 +41,6 @@ export interface DataListTableHeaderProps<TData> {
|
|
|
39
41
|
renderCheckboxRailHeader?: () => ReactNode;
|
|
40
42
|
renderRowCommentHeader?: () => ReactNode;
|
|
41
43
|
}
|
|
42
|
-
declare function DataListTableHeaderInner<TData>({ headerRowRef, paneColumns, maxWidthByColumnKey, sortState, onSortChange, features, onColumnOrderChange, columnOrder, paneMinWidth, allSelected, someSelected, onToggleAll, renderCheckboxRailHeader, renderRowCommentHeader, includeCheckboxRail, includeRightRails, stickyLeftOffsets, lastStickyColumnKey, columnWidthPxByKey, columnGapPx, }: DataListTableHeaderProps<TData>): import("react/jsx-runtime").JSX.Element;
|
|
44
|
+
declare function DataListTableHeaderInner<TData>({ headerRowRef, paneColumns, maxWidthByColumnKey, sortState, defaultSortState, onSortChange, features, onColumnOrderChange, columnOrder, paneMinWidth, allSelected, someSelected, onToggleAll, renderCheckboxRailHeader, renderRowCommentHeader, includeCheckboxRail, includeRightRails, stickyLeftOffsets, lastStickyColumnKey, columnWidthPxByKey, columnGapPx, }: DataListTableHeaderProps<TData>): import("react/jsx-runtime").JSX.Element;
|
|
43
45
|
export declare const DataListTableHeader: typeof DataListTableHeaderInner;
|
|
44
46
|
export {};
|
|
@@ -13,9 +13,11 @@ export interface DataListTablePlaceholderRowProps<TData> {
|
|
|
13
13
|
/** Spread onto the root flex row (e.g. `data-*` for host styling). */
|
|
14
14
|
placeholderRowRootProps?: HTMLAttributes<HTMLDivElement>;
|
|
15
15
|
rightRailWidth?: number;
|
|
16
|
+
/** Alternates the bar widths row by row. */
|
|
17
|
+
rowIndex?: number;
|
|
16
18
|
rowMinHeight?: number;
|
|
17
19
|
stickyLeftOffsets?: Map<ColumnKey, number>;
|
|
18
20
|
}
|
|
19
|
-
declare function DataListTablePlaceholderRowInner<TData>({ paneColumns, paneMinWidth, columnGapPx, columnWidthPxByKey, includeCheckboxRail, maxWidthByColumnKey, rightRailWidth, rowMinHeight, stickyLeftOffsets, lastStickyColumnKey, placeholderRowRootProps, }: DataListTablePlaceholderRowProps<TData>): import("react/jsx-runtime").JSX.Element;
|
|
21
|
+
declare function DataListTablePlaceholderRowInner<TData>({ paneColumns, paneMinWidth, columnGapPx, columnWidthPxByKey, includeCheckboxRail, maxWidthByColumnKey, rightRailWidth, rowIndex, rowMinHeight, stickyLeftOffsets, lastStickyColumnKey, placeholderRowRootProps, }: DataListTablePlaceholderRowProps<TData>): import("react/jsx-runtime").JSX.Element;
|
|
20
22
|
export declare const DataListTablePlaceholderRow: typeof DataListTablePlaceholderRowInner;
|
|
21
23
|
export {};
|
|
@@ -119,6 +119,8 @@ export interface DataListTableProps<TData> {
|
|
|
119
119
|
*/
|
|
120
120
|
columnGapPx?: number;
|
|
121
121
|
"data-testid"?: string;
|
|
122
|
+
/** When set, a sort other than this one shows a ⊗ on the active column header that resets to it. */
|
|
123
|
+
defaultSortState?: SortState | null;
|
|
122
124
|
/**
|
|
123
125
|
* When true, sets `overflow: hidden` on the react-window List to suppress internal
|
|
124
126
|
* scrollbars. Use with content-height mode where the outer page handles scrolling.
|
|
@@ -138,6 +140,8 @@ export interface DataListTableProps<TData> {
|
|
|
138
140
|
features?: DataListTableFeatures;
|
|
139
141
|
/** Parent must have definite height; uses AutoSizer for body. */
|
|
140
142
|
fillParent?: boolean;
|
|
143
|
+
/** With `fillParent`, the frame ends at its last row instead of filling the parent, until it's that tall. */
|
|
144
|
+
fitHeightToContent?: boolean;
|
|
141
145
|
infiniteLoader?: DataListTableInfiniteConfig;
|
|
142
146
|
/** Initial vertical scroll offset for the virtual list (scroll restore). */
|
|
143
147
|
initialScrollOffset?: number;
|
|
@@ -95,6 +95,8 @@ export interface ExpenseAutomationPageProps extends MonthEndReportPageProps, Act
|
|
|
95
95
|
* There is no full-view flag: expanding leaves for the schedule's own page.
|
|
96
96
|
*/
|
|
97
97
|
isSchedulePanelOpen?: boolean;
|
|
98
|
+
/** When true, shows the one-time transaction-search discovery coachmark. */
|
|
99
|
+
isSearchDiscoveryCoachmarkOpen?: boolean;
|
|
98
100
|
loggedInUser?: LoggedInUser;
|
|
99
101
|
matchPanelContent?: ReactNode;
|
|
100
102
|
newAccrualAccountsView?: NewAccrualAccountsView;
|
|
@@ -234,6 +236,7 @@ export interface ExpenseAutomationPageProps extends MonthEndReportPageProps, Act
|
|
|
234
236
|
onConfirmBulkUploadMatch?: (batchId: ID, attachmentId: ID, transactionId: ID, transactionType: string, fileName: string) => void;
|
|
235
237
|
onCreateTransactionSelect?: (transactionType: CreatableTransactionType) => void;
|
|
236
238
|
onDeleteUnmatchedReceipt?: (attachmentId: ID) => void;
|
|
239
|
+
onDismissSearchDiscoveryCoachmark?: () => void;
|
|
237
240
|
onExpenseAutomationCommentingThreadClick?: (target: ExpenseAutomationThreadClickTarget) => void;
|
|
238
241
|
onFetchBulkUploadBatches?: (input?: {
|
|
239
242
|
cacheOverride?: boolean;
|
|
@@ -62,6 +62,7 @@ interface NavBarWithHeaderProps {
|
|
|
62
62
|
isAiCfoAccessEnabled?: boolean;
|
|
63
63
|
isCompletionLoading?: boolean;
|
|
64
64
|
isReconV3Enabled?: boolean;
|
|
65
|
+
isSearchDiscoveryCoachmarkOpen?: boolean;
|
|
65
66
|
lastRefreshTime?: ZeniDate;
|
|
66
67
|
navBarCustomElement?: JSX.Element;
|
|
67
68
|
/** Optional "New" button (e.g. New JE Schedule) rendered in the right-side navbar area. */
|
|
@@ -86,6 +87,7 @@ interface NavBarWithHeaderProps {
|
|
|
86
87
|
onUpdateTab: (tab: ExpenseAutomationTransactionsTab) => void;
|
|
87
88
|
onAskAiCfoClick?: () => void;
|
|
88
89
|
onCommentDrawerClick?: () => void;
|
|
90
|
+
onDismissSearchDiscoveryCoachmark?: () => void;
|
|
89
91
|
onFiltersChange?: (filters: TransactionFilters) => void;
|
|
90
92
|
onGenericTabChange?: (tab: TabSwitcherOption) => void;
|
|
91
93
|
onJeTabUpdate?: (tab: JEPageTab) => void;
|
package/dist/components/expenseAutomation/sections/actualMatching/actualMatchingHelpers.d.ts
CHANGED
|
@@ -60,6 +60,14 @@ export declare function getReversalJournalEntryTransaction(accrual: {
|
|
|
60
60
|
id: string;
|
|
61
61
|
type: string;
|
|
62
62
|
} | null;
|
|
63
|
+
/**
|
|
64
|
+
* The transaction Actual Matching cleared the accrual against. Only the `cleared` stamp counts: a
|
|
65
|
+
* match suggestion has not reversed anything yet.
|
|
66
|
+
*/
|
|
67
|
+
export declare function getClearedMatchedTransaction(accrual: Pick<JEOneTimeAccrual, "cleared">): {
|
|
68
|
+
id: string;
|
|
69
|
+
type: string;
|
|
70
|
+
} | null;
|
|
63
71
|
export declare function getMatchedBillTransaction(match: Pick<ActualMatchingMatch, "members" | "transactionType"> & {
|
|
64
72
|
leftovers?: ActualMatchingMatch["leftovers"];
|
|
65
73
|
transactionIntegrationId?: string;
|