@box/box-ai-content-answers 0.49.0
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/LICENSE +379 -0
- package/chunks/answer-content.module.js +8 -0
- package/chunks/answer.module.js +13 -0
- package/chunks/citation.module.js +14 -0
- package/chunks/copy-button.module.js +7 -0
- package/chunks/inline-error.module.js +10 -0
- package/chunks/loading.module.js +9 -0
- package/chunks/references.module.js +7 -0
- package/chunks/types.js +9 -0
- package/esm/index.js +13 -0
- package/esm/lib/box-ai-content-answers.js +82 -0
- package/esm/lib/components/agents/agent-editor.js +55 -0
- package/esm/lib/components/agents/agent-selector.js +76 -0
- package/esm/lib/components/agents/messages.js +14 -0
- package/esm/lib/components/answer/answer-content.js +29 -0
- package/esm/lib/components/answer/answer.js +100 -0
- package/esm/lib/components/answer/citation.js +130 -0
- package/esm/lib/components/answer/constants.js +4 -0
- package/esm/lib/components/answer/copy-button.js +49 -0
- package/esm/lib/components/answer/inline-error.js +64 -0
- package/esm/lib/components/answer/loading-element.js +41 -0
- package/esm/lib/components/answer/messages.js +66 -0
- package/esm/lib/components/answer/no-citations.js +34 -0
- package/esm/lib/components/answer/references.js +67 -0
- package/esm/lib/components/api-wrapper/api-wrapper.js +13 -0
- package/esm/lib/components/api-wrapper/constants.js +49 -0
- package/esm/lib/components/api-wrapper/content-answers-component.js +55 -0
- package/esm/lib/components/api-wrapper/hooks/useContentAnswers.js +197 -0
- package/esm/lib/components/api-wrapper/records.js +33 -0
- package/esm/lib/components/api-wrapper/test-utils/ReadableStreamSimulator.js +38 -0
- package/esm/lib/components/api-wrapper/utils/format.js +9 -0
- package/esm/lib/components/api-wrapper/utils/request.js +7 -0
- package/esm/lib/components/api-wrapper/utils/stream.js +105 -0
- package/esm/lib/components/chat/chat.js +73 -0
- package/esm/lib/components/chat/index.js +4 -0
- package/esm/lib/components/common/constants.js +13 -0
- package/esm/lib/components/common/keyInputUtils.js +6 -0
- package/esm/lib/components/common/markdown.js +13370 -0
- package/esm/lib/components/common/media-container.js +48 -0
- package/esm/lib/components/common/mock-data.js +98 -0
- package/esm/lib/components/content/content.js +94 -0
- package/esm/lib/components/content/index.js +4 -0
- package/esm/lib/components/footer/constants.js +15 -0
- package/esm/lib/components/footer/footer-actions.js +65 -0
- package/esm/lib/components/footer/footer.js +124 -0
- package/esm/lib/components/footer/index.js +4 -0
- package/esm/lib/components/footer/messages.js +30 -0
- package/esm/lib/components/modal/hooks/useEventListeners.js +15 -0
- package/esm/lib/components/modal/hooks/useStopPropagationOnEsc.js +21 -0
- package/esm/lib/components/modal/messages.js +18 -0
- package/esm/lib/components/modal/modal.js +126 -0
- package/esm/lib/components/modal-error/index.js +4 -0
- package/esm/lib/components/modal-error/messages.js +26 -0
- package/esm/lib/components/modal-error/modal-error.js +78 -0
- package/esm/lib/components/question/question.js +50 -0
- package/esm/lib/components/suggested-questions/messages.js +10 -0
- package/esm/lib/components/suggested-questions/mocks.js +16 -0
- package/esm/lib/components/suggested-questions/suggested-questions.js +61 -0
- package/esm/lib/components/welcome-message/messages.js +18 -0
- package/esm/lib/components/welcome-message/welcome-message.js +78 -0
- package/esm/lib/contexts/AgentsContext.js +59 -0
- package/esm/lib/messages.js +54 -0
- package/i18n/bn-IN.js +48 -0
- package/i18n/bn-IN.properties +90 -0
- package/i18n/da-DK.js +48 -0
- package/i18n/da-DK.properties +90 -0
- package/i18n/de-DE.js +48 -0
- package/i18n/de-DE.properties +90 -0
- package/i18n/en-AU.js +48 -0
- package/i18n/en-AU.properties +90 -0
- package/i18n/en-CA.js +48 -0
- package/i18n/en-CA.properties +90 -0
- package/i18n/en-GB.js +48 -0
- package/i18n/en-GB.properties +90 -0
- package/i18n/en-US.js +48 -0
- package/i18n/en-US.properties +92 -0
- package/i18n/en-x-pseudo.js +48 -0
- package/i18n/en-x-pseudo.properties +90 -0
- package/i18n/es-419.js +48 -0
- package/i18n/es-419.properties +90 -0
- package/i18n/es-ES.js +48 -0
- package/i18n/es-ES.properties +90 -0
- package/i18n/fi-FI.js +48 -0
- package/i18n/fi-FI.properties +90 -0
- package/i18n/fr-CA.js +48 -0
- package/i18n/fr-CA.properties +90 -0
- package/i18n/fr-FR.js +48 -0
- package/i18n/fr-FR.properties +90 -0
- package/i18n/hi-IN.js +48 -0
- package/i18n/hi-IN.properties +90 -0
- package/i18n/it-IT.js +48 -0
- package/i18n/it-IT.properties +90 -0
- package/i18n/ja-JP.js +48 -0
- package/i18n/ja-JP.properties +90 -0
- package/i18n/json/src/lib/components/agents/messages.json +1 -0
- package/i18n/json/src/lib/components/answer/messages.json +1 -0
- package/i18n/json/src/lib/components/footer/messages.json +1 -0
- package/i18n/json/src/lib/components/modal/messages.json +1 -0
- package/i18n/json/src/lib/components/modal-error/messages.json +1 -0
- package/i18n/json/src/lib/components/suggested-questions/messages.json +1 -0
- package/i18n/json/src/lib/components/welcome-message/messages.json +1 -0
- package/i18n/json/src/lib/messages.json +1 -0
- package/i18n/ko-KR.js +48 -0
- package/i18n/ko-KR.properties +90 -0
- package/i18n/nb-NO.js +48 -0
- package/i18n/nb-NO.properties +90 -0
- package/i18n/nl-NL.js +48 -0
- package/i18n/nl-NL.properties +90 -0
- package/i18n/pl-PL.js +48 -0
- package/i18n/pl-PL.properties +90 -0
- package/i18n/pt-BR.js +48 -0
- package/i18n/pt-BR.properties +90 -0
- package/i18n/ru-RU.js +48 -0
- package/i18n/ru-RU.properties +90 -0
- package/i18n/sv-SE.js +48 -0
- package/i18n/sv-SE.properties +90 -0
- package/i18n/tr-TR.js +48 -0
- package/i18n/tr-TR.properties +90 -0
- package/i18n/zh-CN.js +48 -0
- package/i18n/zh-CN.properties +90 -0
- package/i18n/zh-TW.js +48 -0
- package/i18n/zh-TW.properties +90 -0
- package/package.json +56 -0
- package/styles/agent-editor.css +1 -0
- package/styles/agent-selector.css +1 -0
- package/styles/answer-content.css +1 -0
- package/styles/answer.css +1 -0
- package/styles/box-ai-content-answers.css +1 -0
- package/styles/chat.css +1 -0
- package/styles/citation.css +1 -0
- package/styles/content.css +1 -0
- package/styles/copy-button.css +1 -0
- package/styles/footer-actions.css +1 -0
- package/styles/footer.css +1 -0
- package/styles/inline-error.css +1 -0
- package/styles/loading.css +1 -0
- package/styles/markdown.css +7 -0
- package/styles/media-container.css +1 -0
- package/styles/modal-error.css +1 -0
- package/styles/modal.css +1 -0
- package/styles/question.css +1 -0
- package/styles/references.css +1 -0
- package/styles/suggested-questions.css +1 -0
- package/styles/welcome-message.css +1 -0
- package/types/index.d.ts +5 -0
- package/types/lib/box-ai-content-answers.d.ts +17 -0
- package/types/lib/components/agents/agent-editor.d.ts +8 -0
- package/types/lib/components/agents/agent-selector.d.ts +6 -0
- package/types/lib/components/agents/messages.d.ts +13 -0
- package/types/lib/components/agents/stories/shared.d.ts +12 -0
- package/types/lib/components/answer/answer-content.d.ts +8 -0
- package/types/lib/components/answer/answer.d.ts +29 -0
- package/types/lib/components/answer/citation.d.ts +19 -0
- package/types/lib/components/answer/constants.d.ts +1 -0
- package/types/lib/components/answer/copy-button.d.ts +7 -0
- package/types/lib/components/answer/inline-error.d.ts +8 -0
- package/types/lib/components/answer/loading-element.d.ts +5 -0
- package/types/lib/components/answer/messages.d.ts +78 -0
- package/types/lib/components/answer/no-citations.d.ts +7 -0
- package/types/lib/components/answer/references.d.ts +13 -0
- package/types/lib/components/answer/stories/shared.d.ts +25 -0
- package/types/lib/components/api-wrapper/api-wrapper.d.ts +3 -0
- package/types/lib/components/api-wrapper/constants.d.ts +6 -0
- package/types/lib/components/api-wrapper/content-answers-component.d.ts +6 -0
- package/types/lib/components/api-wrapper/hooks/useContentAnswers.d.ts +16 -0
- package/types/lib/components/api-wrapper/records.d.ts +28 -0
- package/types/lib/components/api-wrapper/stories/shared.d.ts +2 -0
- package/types/lib/components/api-wrapper/test-utils/ReadableStreamSimulator.d.ts +25 -0
- package/types/lib/components/api-wrapper/types.d.ts +86 -0
- package/types/lib/components/api-wrapper/utils/format.d.ts +3 -0
- package/types/lib/components/api-wrapper/utils/request.d.ts +4 -0
- package/types/lib/components/api-wrapper/utils/stream.d.ts +29 -0
- package/types/lib/components/chat/chat.d.ts +3 -0
- package/types/lib/components/chat/index.d.ts +1 -0
- package/types/lib/components/common/constants.d.ts +10 -0
- package/types/lib/components/common/keyInputUtils.d.ts +2 -0
- package/types/lib/components/common/markdown.d.ts +2 -0
- package/types/lib/components/common/media-container.d.ts +21 -0
- package/types/lib/components/common/mock-data.d.ts +27 -0
- package/types/lib/components/content/content.d.ts +4 -0
- package/types/lib/components/content/index.d.ts +1 -0
- package/types/lib/components/footer/constants.d.ts +12 -0
- package/types/lib/components/footer/footer-actions.d.ts +9 -0
- package/types/lib/components/footer/footer.d.ts +34 -0
- package/types/lib/components/footer/index.d.ts +1 -0
- package/types/lib/components/footer/messages.d.ts +33 -0
- package/types/lib/components/footer/stories/shared.d.ts +130 -0
- package/types/lib/components/footer/stories/tests/mocks.d.ts +2 -0
- package/types/lib/components/modal/hooks/useEventListeners.d.ts +5 -0
- package/types/lib/components/modal/hooks/useStopPropagationOnEsc.d.ts +4 -0
- package/types/lib/components/modal/messages.d.ts +18 -0
- package/types/lib/components/modal/modal.d.ts +32 -0
- package/types/lib/components/modal/stories/shared.d.ts +31 -0
- package/types/lib/components/modal-error/index.d.ts +1 -0
- package/types/lib/components/modal-error/messages.d.ts +28 -0
- package/types/lib/components/modal-error/modal-error.d.ts +13 -0
- package/types/lib/components/modal-error/stories/shared.d.ts +2 -0
- package/types/lib/components/question/question.d.ts +11 -0
- package/types/lib/components/question/stories/shared.d.ts +2 -0
- package/types/lib/components/suggested-questions/messages.d.ts +8 -0
- package/types/lib/components/suggested-questions/mocks.d.ts +2 -0
- package/types/lib/components/suggested-questions/stories/shared.d.ts +3 -0
- package/types/lib/components/suggested-questions/suggested-questions.d.ts +15 -0
- package/types/lib/components/welcome-message/messages.d.ts +18 -0
- package/types/lib/components/welcome-message/stories/shared.d.ts +2 -0
- package/types/lib/components/welcome-message/welcome-message.d.ts +3 -0
- package/types/lib/contexts/AgentsContext.d.ts +15 -0
- package/types/lib/messages.d.ts +63 -0
- package/types/lib/stories/shared.d.ts +36 -0
- package/types/lib/types.d.ts +115 -0
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
# AI agent label
|
|
2
|
+
boxAI.contentAnswers.agent = 代理
|
|
3
|
+
# Content Answers submit input button text
|
|
4
|
+
boxAI.contentAnswers.ask = 詢問
|
|
5
|
+
# Content Answers submit input button disabled tooltip text when answer is generating
|
|
6
|
+
boxAI.contentAnswers.askDisabledTooltip = 您可在 Box AI 完成回覆後提交另一個問題
|
|
7
|
+
# Content Answers modal input placeholder
|
|
8
|
+
boxAI.contentAnswers.askQuestionPlaceholder = 詢問有關此{type}的任何內容
|
|
9
|
+
# Label for the references used for generating the answer from the AI service
|
|
10
|
+
boxAI.contentAnswers.basedOn = 根據:
|
|
11
|
+
# Box AI secondary action when file is too large
|
|
12
|
+
boxAI.contentAnswers.cancel = 取消
|
|
13
|
+
# Title of citation card tooltip in answer references section
|
|
14
|
+
boxAI.contentAnswers.cardTooltipTitle = 來自文件:
|
|
15
|
+
# Title of citation card tooltip in answer references section with document title
|
|
16
|
+
boxAI.contentAnswers.cardTooltipTitleWithDocumentName = 來自「{title}」:
|
|
17
|
+
# Content Answers close button aria label
|
|
18
|
+
boxAI.contentAnswers.closeModalAriaLabel = 關閉互動視窗
|
|
19
|
+
# Content Answers feature name shown on menu item and modal title
|
|
20
|
+
boxAI.contentAnswers.contentAnswersTitle = Box AI
|
|
21
|
+
# Box AI primary action when file is too large
|
|
22
|
+
boxAI.contentAnswers.continueAnyway = 仍繼續
|
|
23
|
+
# Copy to clipboard tooltip
|
|
24
|
+
boxAI.contentAnswers.copyToClipboard = 複製到剪貼簿
|
|
25
|
+
# Notification displayed to the user when the answer has been successfully copied to the clipboard
|
|
26
|
+
boxAI.contentAnswers.copyToClipboardSucceeded = 已複製到您的剪貼簿
|
|
27
|
+
# Default tooltip message for Content Answers entry point button
|
|
28
|
+
boxAI.contentAnswers.defaultTooltip = 使用 Box AI 即時找到此文件的答案
|
|
29
|
+
# Disabled tooltip message for Content Answers entry point button when the file does not have the correct permissions
|
|
30
|
+
boxAI.contentAnswers.disabledTooltipAINotAvailable = Box AI 沒有此檔案的存取權限
|
|
31
|
+
# Disabled tooltip message for Content Answers entry point button when the file type is not supported
|
|
32
|
+
boxAI.contentAnswers.disabledTooltipFileNotCompatible = Box AI Q&A 目前不支援此檔案類型
|
|
33
|
+
# Disabled tooltip message for the Content Answers entry point button when the permissions request fails
|
|
34
|
+
boxAI.contentAnswers.disabledTooltipPermissionsFailed = 目前無法查看權限。重新載入此頁面並再試一次
|
|
35
|
+
# Disabled tooltip message for the Content Answers entry point button while the AI file permissions are being loaded
|
|
36
|
+
boxAI.contentAnswers.disabledTooltipPermissionsLoading = 正在查看權限…
|
|
37
|
+
# Existing questions tooltip message for Content Answers entry point button
|
|
38
|
+
boxAI.contentAnswers.hasQuestionsTooltip = 返回 Box AI
|
|
39
|
+
# Content Answers error message when the service fails
|
|
40
|
+
boxAI.contentAnswers.inlineErrorText = 無法使用 Box AI 服務。
|
|
41
|
+
# Content Answers error message when the service fails due to rate limiting
|
|
42
|
+
boxAI.contentAnswers.inlineRateLimitingErrorText = Box AI 目前容量有限 (我們正致力於擴展頻寬)。請過幾分鐘後再試一次。
|
|
43
|
+
# Box AI Q&A service unavailable error title
|
|
44
|
+
boxAI.contentAnswers.intelligenceUnaivalableHeading = 無法使用 Box AI
|
|
45
|
+
# Box AI Q&A service unavailable error try again later description
|
|
46
|
+
boxAI.contentAnswers.intelligenceUnaivalableTryAgain = 請稍後再試一次。
|
|
47
|
+
# Box AI Q&A service unavailable error description
|
|
48
|
+
boxAI.contentAnswers.intelligenceUnavailableDescription = Box AI 服務未回應。
|
|
49
|
+
# Box AI Q&A file too large error description
|
|
50
|
+
boxAI.contentAnswers.largeFileSizeErrorDescription = Box AI 將無法存取全文,這可能會影響其答案。
|
|
51
|
+
# Box AI Q&A file too large error heading
|
|
52
|
+
boxAI.contentAnswers.largeFileSizeErrorHeading = 此檔案的文字內容對 Box AI 來説太大
|
|
53
|
+
# Aria label to show while waiting for the modal to load
|
|
54
|
+
boxAI.contentAnswers.loading = 載入中......
|
|
55
|
+
# Aria label to show while waiting for an answer
|
|
56
|
+
boxAI.contentAnswers.loadingAnswer = 正在載入答案...
|
|
57
|
+
# Error tooltip to show inside text area if the user reached the character limit
|
|
58
|
+
boxAI.contentAnswers.maxCharactersReachedError = 已達 {characterLimit} 字元上限
|
|
59
|
+
# Loading message if there are no citations for an answer
|
|
60
|
+
boxAI.contentAnswers.noReferences = 基於一般文件解析的回應
|
|
61
|
+
# ARIA label designed for screen readers to enhance clarity during the reading of citations, minimizing confusion.
|
|
62
|
+
boxAI.contentAnswers.referenceAriaLabel = 參考 {number}
|
|
63
|
+
# Reset conversation button label
|
|
64
|
+
boxAI.contentAnswers.resetConversationLabel = 重設對話
|
|
65
|
+
# Error message to be displayed within an answer during streaming mode if there was another error, such as network errors.
|
|
66
|
+
boxAI.contentAnswers.responseFailedError = 回應失敗
|
|
67
|
+
# Error message to be displayed within an answer during streaming mode if the answer was interrupted due to a lack of tokens.
|
|
68
|
+
boxAI.contentAnswers.responseInterruptedError = 回應已中斷
|
|
69
|
+
# Error message to be displayed within an answer during streaming mode if the answer was stopped using the Stop Response button.
|
|
70
|
+
boxAI.contentAnswers.responseStoppedError = 回應已停止
|
|
71
|
+
# Retry button label to send again the question to the service
|
|
72
|
+
boxAI.contentAnswers.retryResponse = 重試
|
|
73
|
+
# Label for the AI agent selector when the user has not selected any agent
|
|
74
|
+
boxAI.contentAnswers.selectAgent = 選擇代理
|
|
75
|
+
# Button label to stop streaming an answer
|
|
76
|
+
boxAI.contentAnswers.stopResponse = 停止回應
|
|
77
|
+
# Suggested questions title
|
|
78
|
+
boxAI.contentAnswers.suggestedQuestions = 建議的問題:
|
|
79
|
+
# Alt text for user avatar image
|
|
80
|
+
boxAI.contentAnswers.userAvatar = 使用者頭像
|
|
81
|
+
# Content Answers welcome message for asking questions {Name} is the name of the content
|
|
82
|
+
boxAI.contentAnswers.welcomeAskQuestionText = 提出有關{name}的問題
|
|
83
|
+
# Content Answers welcome message for clearing the chat. {type} is the type of content that we are going to query
|
|
84
|
+
boxAI.contentAnswers.welcomeClearChatText = 關閉此{type}後會清除此聊天
|
|
85
|
+
# Content Answers welcome message title
|
|
86
|
+
boxAI.contentAnswers.welcomeMessageTitle = 歡迎使用 Box AI
|
|
87
|
+
# Text for close button in popup
|
|
88
|
+
boxAI.popup.closeButtonText = 關閉
|
|
89
|
+
# Text for copy button in input with copy button indicating copy success
|
|
90
|
+
boxAI.textInputWithCopyButton.copyButtonSuccessText = 已複製
|
package/package.json
ADDED
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@box/box-ai-content-answers",
|
|
3
|
+
"version": "0.49.0",
|
|
4
|
+
"peerDependencies": {
|
|
5
|
+
"@box/blueprint-web": "^7.8.0",
|
|
6
|
+
"@box/blueprint-web-assets": "^4.16.0",
|
|
7
|
+
"highlight.js": "^11.9.0",
|
|
8
|
+
"immutable": "^4.0.0",
|
|
9
|
+
"lodash": "^4.17.15",
|
|
10
|
+
"react": "^17.0.0 || ^18.0.0",
|
|
11
|
+
"react-dom": "^17.0.0 || ^18.0.0",
|
|
12
|
+
"react-intl": "^6.4.2",
|
|
13
|
+
"remarkable": "^2.0.1"
|
|
14
|
+
},
|
|
15
|
+
"devDependencies": {
|
|
16
|
+
"@box/blueprint-web": "^7.23.0",
|
|
17
|
+
"@box/blueprint-web-assets": "^4.21.3",
|
|
18
|
+
"@box/storybook-utils": "^0.5.2",
|
|
19
|
+
"@testing-library/react": "^15.0.6",
|
|
20
|
+
"react": "^18.3.0",
|
|
21
|
+
"react-dom": "^18.3.0",
|
|
22
|
+
"react-intl": "^6.4.2"
|
|
23
|
+
},
|
|
24
|
+
"scripts": {
|
|
25
|
+
"prepare": "yarn nx run box-ai-content-answers:prepare"
|
|
26
|
+
},
|
|
27
|
+
"publishConfig": {
|
|
28
|
+
"access": "public",
|
|
29
|
+
"directory": "dist",
|
|
30
|
+
"registry": "https://registry.npmjs.org"
|
|
31
|
+
},
|
|
32
|
+
"main": "./esm/index.js",
|
|
33
|
+
"module": "./esm/index.js",
|
|
34
|
+
"types": "./types/index.d.ts",
|
|
35
|
+
"exports": {
|
|
36
|
+
".": {
|
|
37
|
+
"require": "./esm/index.js",
|
|
38
|
+
"import": "./esm/index.js",
|
|
39
|
+
"types": "./types/index.d.ts"
|
|
40
|
+
},
|
|
41
|
+
"./*": {
|
|
42
|
+
"require": "./esm/*",
|
|
43
|
+
"import": "./esm/*",
|
|
44
|
+
"types": "./types/*"
|
|
45
|
+
},
|
|
46
|
+
"./i18n/*": {
|
|
47
|
+
"require": "./i18n/*",
|
|
48
|
+
"import": "./i18n/*"
|
|
49
|
+
}
|
|
50
|
+
},
|
|
51
|
+
"sideEffects": [
|
|
52
|
+
"**/*.css"
|
|
53
|
+
],
|
|
54
|
+
"license": "SEE LICENSE IN LICENSE",
|
|
55
|
+
"gitHead": "8482d88062723ffbf9d3edbdf5b2c62ce0447cdb"
|
|
56
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
._debug_hgecn_1{flex:1 1 auto;width:auto;max-height:35.375rem;padding:0 1.25rem 1.25rem;overflow:auto;padding:1.25rem}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
._agentSelector_vehz7_1{margin-left:.75rem}._agentStatus_vehz7_5{margin-left:.5rem}._agentStatus_vehz7_5>span{background:linear-gradient(#f4f4f4 0,#f4f4f4 0) padding-box,linear-gradient(135deg,#fe01da,#2486fc) border-box;border:.0625rem solid rgba(0,0,0,0)}._agentStatus_vehz7_5>span span{background:linear-gradient(135deg,#fe01da,#2486fc);color:transparent;-webkit-background-clip:text;background-clip:text;text-transform:uppercase}._agentList_vehz7_20 ._agentListItem_vehz7_20{grid-template-columns:auto;grid-template-areas:"head" "subtitle"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
._answerContent_1s7k1_1{font-weight:400;font-size:.875rem;font-family:Lato,-apple-system,BlinkMacSystemFont,San Francisco,Segoe UI,Roboto,Helvetica Neue,sans-serif;line-height:1.25rem;letter-spacing:.01875rem;text-transform:none;text-decoration:none;font-size:.9375rem;width:100%;overflow-x:auto}._answerContent_1s7k1_1._answerMarkdown_1s7k1_13{white-space:normal}._answerContent_1s7k1_1._answerMarkdown_1s7k1_13 p,._answerContent_1s7k1_1._answerMarkdown_1s7k1_13 ul,._answerContent_1s7k1_1._answerMarkdown_1s7k1_13 ol,._answerContent_1s7k1_1._answerMarkdown_1s7k1_13 table,._answerContent_1s7k1_1._answerMarkdown_1s7k1_13 img,._answerContent_1s7k1_1._answerMarkdown_1s7k1_13 pre,._answerContent_1s7k1_1._answerMarkdown_1s7k1_13 h1,._answerContent_1s7k1_1._answerMarkdown_1s7k1_13 h2,._answerContent_1s7k1_1._answerMarkdown_1s7k1_13 h3,._answerContent_1s7k1_1._answerMarkdown_1s7k1_13 h4,._answerContent_1s7k1_1._answerMarkdown_1s7k1_13 h5,._answerContent_1s7k1_1._answerMarkdown_1s7k1_13 h6,._answerContent_1s7k1_1._answerMarkdown_1s7k1_13 blockquote{color:#222;margin-block-start:0;margin-block-end:1.25rem}._answerContent_1s7k1_1._answerMarkdown_1s7k1_13 p:last-child,._answerContent_1s7k1_1._answerMarkdown_1s7k1_13 ul:last-child,._answerContent_1s7k1_1._answerMarkdown_1s7k1_13 ol:last-child,._answerContent_1s7k1_1._answerMarkdown_1s7k1_13 table:last-child,._answerContent_1s7k1_1._answerMarkdown_1s7k1_13 img:last-child,._answerContent_1s7k1_1._answerMarkdown_1s7k1_13 pre:last-child,._answerContent_1s7k1_1._answerMarkdown_1s7k1_13 h1:last-child,._answerContent_1s7k1_1._answerMarkdown_1s7k1_13 h2:last-child,._answerContent_1s7k1_1._answerMarkdown_1s7k1_13 h3:last-child,._answerContent_1s7k1_1._answerMarkdown_1s7k1_13 h4:last-child,._answerContent_1s7k1_1._answerMarkdown_1s7k1_13 h5:last-child,._answerContent_1s7k1_1._answerMarkdown_1s7k1_13 h6:last-child,._answerContent_1s7k1_1._answerMarkdown_1s7k1_13 blockquote:last-child{margin-block-end:0}._answerContent_1s7k1_1._answerMarkdown_1s7k1_13 hr{margin-block-start:1.25rem;margin-block-end:1.25rem;border:.0625rem solid #e8e8e8}._answerContent_1s7k1_1._answerMarkdown_1s7k1_13 h1{font-weight:700;font-size:1.3125rem;font-family:Lato,-apple-system,BlinkMacSystemFont,San Francisco,Segoe UI,Roboto,Helvetica Neue,sans-serif;line-height:2rem;letter-spacing:.01875rem;text-transform:none;text-decoration:none}._answerContent_1s7k1_1._answerMarkdown_1s7k1_13 h2{font-weight:700;font-size:1.125rem;font-family:Lato,-apple-system,BlinkMacSystemFont,San Francisco,Segoe UI,Roboto,Helvetica Neue,sans-serif;line-height:1.5rem;letter-spacing:.01875rem;text-transform:none;text-decoration:none}._answerContent_1s7k1_1._answerMarkdown_1s7k1_13 h3{font-weight:700;font-size:1rem;font-family:Lato,-apple-system,BlinkMacSystemFont,San Francisco,Segoe UI,Roboto,Helvetica Neue,sans-serif;line-height:1.5rem;letter-spacing:.01875rem;text-transform:none;text-decoration:none}._answerContent_1s7k1_1._answerMarkdown_1s7k1_13 h4{font-weight:700;font-size:.9375rem;font-family:Lato,-apple-system,BlinkMacSystemFont,San Francisco,Segoe UI,Roboto,Helvetica Neue,sans-serif;line-height:1.25rem;letter-spacing:.01875rem;text-transform:none;text-decoration:none}._answerContent_1s7k1_1._answerMarkdown_1s7k1_13 h5{font-weight:700;font-size:.875rem;font-family:Lato,-apple-system,BlinkMacSystemFont,San Francisco,Segoe UI,Roboto,Helvetica Neue,sans-serif;line-height:1.25rem;letter-spacing:.01875rem;text-transform:none;text-decoration:none}._answerContent_1s7k1_1._answerMarkdown_1s7k1_13 h6{font-weight:400;font-size:.75rem;font-family:Lato,-apple-system,BlinkMacSystemFont,San Francisco,Segoe UI,Roboto,Helvetica Neue,sans-serif;line-height:.875rem;letter-spacing:.01875rem;text-transform:none;text-decoration:none;color:#6f6f6f}._answerContent_1s7k1_1._answerMarkdown_1s7k1_13 a{font-weight:400;font-size:.875rem;font-family:Lato,-apple-system,BlinkMacSystemFont,San Francisco,Segoe UI,Roboto,Helvetica Neue,sans-serif;line-height:1.25rem;letter-spacing:.01875rem;text-transform:none;text-decoration:underline;font-size:.9375rem}._answerContent_1s7k1_1._answerMarkdown_1s7k1_13 .footnote-ref a,._answerContent_1s7k1_1._answerMarkdown_1s7k1_13 a.footnote-backref{font-size:.75rem}._answerContent_1s7k1_1._answerMarkdown_1s7k1_13 strong{font-weight:700;font-size:.875rem;font-family:Lato,-apple-system,BlinkMacSystemFont,San Francisco,Segoe UI,Roboto,Helvetica Neue,sans-serif;line-height:1.25rem;letter-spacing:.01875rem;text-transform:none;text-decoration:none;font-size:.9375rem}._answerContent_1s7k1_1._answerMarkdown_1s7k1_13 img{max-width:100%}._answerContent_1s7k1_1._answerMarkdown_1s7k1_13 ul,._answerContent_1s7k1_1._answerMarkdown_1s7k1_13 ol{padding-left:1.25rem;list-style-position:outside}._answerContent_1s7k1_1._answerMarkdown_1s7k1_13 ul ul,._answerContent_1s7k1_1._answerMarkdown_1s7k1_13 ul ol,._answerContent_1s7k1_1._answerMarkdown_1s7k1_13 ol ul,._answerContent_1s7k1_1._answerMarkdown_1s7k1_13 ol ol{padding-left:1.25rem}._answerContent_1s7k1_1._answerMarkdown_1s7k1_13 ul li p,._answerContent_1s7k1_1._answerMarkdown_1s7k1_13 ol li p{display:inline}._answerContent_1s7k1_1._answerMarkdown_1s7k1_13 ul li{list-style-type:disc}._answerContent_1s7k1_1._answerMarkdown_1s7k1_13 ol li{list-style-type:decimal}._answerContent_1s7k1_1._answerMarkdown_1s7k1_13 li>ul,._answerContent_1s7k1_1._answerMarkdown_1s7k1_13 li>ol,._answerContent_1s7k1_1._answerMarkdown_1s7k1_13 li+li{margin-top:.5rem}._answerContent_1s7k1_1._answerMarkdown_1s7k1_13 blockquote{background-color:#f4f4f4;border-left:.125rem solid #e8e8e8;padding:.5rem .75rem;margin-inline-start:1rem;margin-inline-end:1rem}._answerContent_1s7k1_1._answerMarkdown_1s7k1_13 pre{color:#fff}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
@keyframes _heightExpand_13vnd_1{0%{max-height:0}to{max-height:5000px}}._answer_13vnd_9{white-space:pre-wrap}._answer_13vnd_9 ._alertIcon_13vnd_12{margin-left:.5rem}._answer_13vnd_9 ._error_13vnd_15{display:flex;align-items:center}._answer_13vnd_9 ._footer_13vnd_19{display:flex;justify-content:space-between;margin-top:.75rem}._answer_13vnd_9 ._footer_13vnd_19._animated_13vnd_24{overflow-y:hidden;animation:_heightExpand_13vnd_1 .4s ease-in-out}._answer_13vnd_9 ._iconAvatar_13vnd_28{display:flex;align-items:center;justify-content:center;width:var(--size-8);height:var(--size-8);border-radius:50%}@media (max-width: 374px){._answer_13vnd_9 ._iconAvatar_13vnd_28{width:var(--size-6);height:var(--size-6)}}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
._container_hi5vt_1{height:100%}._contentAnswers_hi5vt_5{max-height:39.875rem;height:100%;padding:0;background-color:#f4f4f4;display:flex;flex-direction:column;flex-grow:1;margin-top:0;overflow:hidden}@media (max-width: 374px){._contentAnswers_hi5vt_5{flex-flow:column;max-height:unset;margin-bottom:0}}
|
package/styles/chat.css
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
._chat_fj1ue_1 ul{margin:0;padding:0;list-style:none}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
._citationTrigger_wo5ky_1{pointer-events:"auto"}._citationStatus_wo5ky_5{margin-right:.25rem}._citationStatus_wo5ky_5>button:hover{cursor:pointer}._animate_wo5ky_12{opacity:0;transition:opacity .3s ease-in-out}._animate_wo5ky_12._fadeIn_wo5ky_16{opacity:1}._cardTooltip_wo5ky_20{margin:.3rem;text-align:left}._cardTooltip_wo5ky_20 ._cardTooltipTitle_wo5ky_24{gap:.5rem;margin-bottom:1rem}._cardTooltip_wo5ky_20 ._cardTooltipCitation_wo5ky_28{gap:.6rem;padding-left:1rem;border-left:.125rem solid #e8e8e8}._cardTooltip_wo5ky_20 ._cardTooltipButton_wo5ky_33{margin-top:.6rem}._cardTooltip_wo5ky_20 ._cardTooltipButton_wo5ky_33:focus-visible{box-shadow:none}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
._loadingIndicatorWrapper_12a8t_1{width:100%}._content_12a8t_5{flex:1 1 auto;width:auto;max-height:35.375rem;padding:0 1.25rem 1.25rem;overflow:auto}._content_12a8t_5._isLoading_12a8t_12{display:flex;align-items:center}._content_12a8t_5 ._messagesEnd_12a8t_16{margin-bottom:-1.25rem;padding-bottom:1.25rem}@media (max-width: 374px){._content_12a8t_5{flex:1;max-height:unset;padding:1rem;overflow-x:hidden}._content_12a8t_5 ._messagesEnd_12a8t_16{margin-bottom:-1rem;padding-bottom:1rem}}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
._copyButton_1mhca_1{align-self:end;margin-left:auto}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
._footerActions_poeou_1{position:relative;top:-1rem;right:0;left:0;align-self:flex-start;width:100%;padding:.75rem 0 0}._footerActionButton_poeou_11{margin:auto}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
._questionInput_1pdo1_1{position:relative;z-index:1;display:flex;flex:1 1 auto;align-items:end;padding:1rem 1.25rem;background:#fff;box-shadow:0 0 8px #0000000d,0 -1px #e8e8e8}._questionInput_1pdo1_1 ._avatar_1pdo1_11{margin-bottom:.25rem}._questionInput_1pdo1_1 ._submitButton_1pdo1_14{margin:0}._questionInput_1pdo1_1 ._textArea_1pdo1_17{gap:0;width:100%;margin:0 1rem}._questionInput_1pdo1_1 ._textArea_1pdo1_17 textarea{border:none}._submitButtonTooltip_1pdo1_26{text-align:center}@media (max-width: 767px){._questionInput_1pdo1_1{padding:1rem}._questionInput_1pdo1_1 ._textArea_1pdo1_17{margin:0 .75rem 0 0}}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
._inlineError_ft07o_1{margin-top:1rem}._inlineError_ft07o_1 ._text_ft07o_4{flex-grow:1;margin:0 .75rem;font-size:.875rem}@media (max-width: 767px){._inlineError_ft07o_1 ._text_ft07o_4{flex:2}}._inlineError_ft07o_1 ._icon_ft07o_14{width:1.25rem;height:1.25rem}._inlineError_ft07o_1 ._iconAvatar_ft07o_18{display:flex;align-items:center;justify-content:center;width:var(--size-8);height:var(--size-8);border-radius:50%}@media (max-width: 374px){._inlineError_ft07o_1 ._iconAvatar_ft07o_18{width:var(--size-6);height:var(--size-6)}}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
._loadingElement_1pjir_1 ._loadingIndicator_1pjir_1{position:relative;display:inline-flex}._loadingElement_1pjir_1 ._iconAvatar_1pjir_5{display:flex;align-items:center;justify-content:center;width:var(--size-8);height:var(--size-8);border-radius:50%}@media (max-width: 374px){._loadingElement_1pjir_1 ._iconAvatar_1pjir_5{width:var(--size-6);height:var(--size-6)}}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}/*!
|
|
2
|
+
Theme: a11y-dark
|
|
3
|
+
Author: @ericwbailey
|
|
4
|
+
Maintainer: @ericwbailey
|
|
5
|
+
|
|
6
|
+
Based on the Tomorrow Night Eighties theme: https://github.com/isagalaev/highlight.js/blob/master/src/styles/tomorrow-night-eighties.css
|
|
7
|
+
*/.hljs{background:#2b2b2b;color:#f8f8f2}.hljs-comment,.hljs-quote{color:#d4d0ab}.hljs-deletion,.hljs-name,.hljs-regexp,.hljs-selector-class,.hljs-selector-id,.hljs-tag,.hljs-template-variable,.hljs-variable{color:#ffa07a}.hljs-built_in,.hljs-link,.hljs-literal,.hljs-meta,.hljs-number,.hljs-params,.hljs-type{color:#f5ab35}.hljs-attribute{color:gold}.hljs-addition,.hljs-bullet,.hljs-string,.hljs-symbol{color:#abe338}.hljs-section,.hljs-title{color:#00e0e0}.hljs-keyword,.hljs-selector-tag{color:#dcc6e0}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:700}@media screen and (-ms-high-contrast:active){.hljs-addition,.hljs-attribute,.hljs-built_in,.hljs-bullet,.hljs-comment,.hljs-link,.hljs-literal,.hljs-meta,.hljs-number,.hljs-params,.hljs-quote,.hljs-string,.hljs-symbol,.hljs-type{color:highlight}.hljs-keyword,.hljs-selector-tag{font-weight:700}}._tableWrapper_fkq2u_1{overflow-x:auto;margin:1.25rem 0}._tableWrapper_fkq2u_1 table{border-collapse:collapse;width:max-content}._tableWrapper_fkq2u_1 table,._tableWrapper_fkq2u_1 th,._tableWrapper_fkq2u_1 td{border:.0625rem solid #e8e8e8;padding:.5rem .75rem}._tableWrapper_fkq2u_1 th{font-weight:700;font-size:1rem;font-family:Lato,-apple-system,BlinkMacSystemFont,San Francisco,Segoe UI,Roboto,Helvetica Neue,sans-serif;line-height:1.5rem;letter-spacing:.01875rem;text-transform:none;text-decoration:none;color:#222;background-color:#f4f4f4}._tableWrapper_fkq2u_1 th,._tableWrapper_fkq2u_1 td{max-width:15rem}._hljs_fkq2u_31{display:flex;flex-direction:column;background:#222;overflow-x:auto;position:relative}._hljs_fkq2u_31 code{display:grid;white-space:pre}._hljsLanguage_fkq2u_43{background:#383838;padding:.5rem .75rem;border-bottom:.0625rem solid #4e4e4e;position:sticky;top:0;left:0;font-weight:700;font-size:1rem;font-family:Lato,-apple-system,BlinkMacSystemFont,San Francisco,Segoe UI,Roboto,Helvetica Neue,sans-serif;line-height:1.5rem;letter-spacing:.01875rem;text-transform:none;text-decoration:none;color:#fff}._hljsContent_fkq2u_60{flex:1 1 auto;padding:1.25rem}._hljsLine_fkq2u_65{display:flex;align-items:flex-start}._hljsLineNumber_fkq2u_70{background:#383838;padding:.5rem .25rem;border-right:.0625rem solid #4e4e4e;flex:0 0 auto;text-align:center;color:#a7a7a7;-webkit-user-select:none;user-select:none;box-sizing:border-box;width:2.5rem}._hljsLineContent_fkq2u_82{padding:.5rem 0 0 .25rem;overflow:hidden}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
@keyframes _heightExpand_ydawk_1{0%{max-height:0}to{max-height:5000px}}._mediaContainer_ydawk_9{margin-top:1rem;margin-bottom:1.5rem;align-items:flex-start;display:flex}._mediaContainer_ydawk_9._question_ydawk_15{align-items:center}._mediaContainer_ydawk_9 ._body_ydawk_18{word-wrap:break-word;flex:1 1 100%;min-width:0;overflow-wrap:break-word;word-break:break-word}._mediaContainer_ydawk_9 ._body_ydawk_18 ._animated_ydawk_25{overflow-y:hidden;animation:_heightExpand_ydawk_1 .4s ease-in-out}._mediaContainer_ydawk_9 ._body_ydawk_18._error_ydawk_29{display:flex;align-items:center;padding:.75rem 1rem;background-color:#fdebee;border:.125rem solid #f69bab;border-radius:.75rem}@media (max-width: 767px){._mediaContainer_ydawk_9 ._body_ydawk_18._error_ydawk_29{flex-wrap:wrap}}._mediaContainer_ydawk_9 ._figure_ydawk_42{align-self:flex-start;flex:0 0 auto;justify-self:flex-start;margin:.75rem .75rem 0 0;padding:0}._mediaContainer_ydawk_9 ._figure_ydawk_42._center-aligned_ydawk_49{align-self:center;margin:0 .75rem 0 0}._mediaContainer_ydawk_9 ._figure_ydawk_42._top-aligned_ydawk_53{align-self:top;margin:0 .75rem 0 0}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
._ContentAnswersModalError-secondaryAction_3szwg_1{cursor:pointer}
|
package/styles/modal.css
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
._BoxAIIconColor_8bmuz_1{margin-right:.75rem}._modalHeader_8bmuz_5{display:flex;align-items:center}._contentAnswersModal_8bmuz_10{display:flex;flex-basis:0;width:100%;height:100%;max-height:43.875rem}._contentAnswersModal_8bmuz_10 ._boxAiContentAnswers_8bmuz_17{display:flex;flex-direction:column;flex-grow:1;max-height:43.875rem;overflow:hidden;box-shadow:0 -1px 8px #0000000d,0 -1px #e8e8e8}._contentAnswersModal_8bmuz_10 ._resetButton_8bmuz_25{position:absolute;right:60px}._contentAnswersModal_8bmuz_10 ._modal-close-button_8bmuz_29,._contentAnswersModal_8bmuz_10 ._resetButton_8bmuz_25{top:1.25rem}@media (max-width: 374px){._contentAnswersModal_8bmuz_10,#_contentAnswerModal_8bmuz_1{flex-basis:100%;max-height:unset}._contentAnswersModal_8bmuz_10 ._boxAiContentAnswers_8bmuz_17,#_contentAnswerModal_8bmuz_1 ._boxAiContentAnswers_8bmuz_17{display:flex;flex-flow:column;max-height:unset}._contentAnswersModal_8bmuz_10 ._modal-close-button_8bmuz_29,._contentAnswersModal_8bmuz_10 ._resetButton_8bmuz_25,#_contentAnswerModal_8bmuz_1 ._modal-close-button_8bmuz_29,#_contentAnswerModal_8bmuz_1 ._resetButton_8bmuz_25{top:1rem}}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
._question_1menh_1{margin-top:1rem;white-space:pre-wrap}._question_1menh_1 ._text_1menh_5{font-size:.9375rem}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
._label_1wqmn_1{margin-right:.75rem}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
._wrapper_5v4pj_1{margin:1rem 2.75rem 2rem}._label_5v4pj_5{margin:0 1rem .75rem}._questionGroup_5v4pj_9{flex-wrap:wrap}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
._welcomeMessage_1px1f_1{margin-top:1.25rem}._welcomeMessage_1px1f_1 ._askQuestionText_1px1f_4{margin:.75rem 0;font-size:.9375rem}._welcomeMessage_1px1f_1 ._clearChatText_1px1f_8{color:#6f6f6f;font-size:.8125}._welcomeMessage_1px1f_1 ._warningNotice_1px1f_12{margin-bottom:.75rem}._welcomeMessage_1px1f_1 ._iconAvatar_1px1f_15{display:flex;align-items:center;justify-content:center;width:var(--size-8);height:var(--size-8);border-radius:50%}@media (max-width: 374px){._welcomeMessage_1px1f_1 ._iconAvatar_1px1f_15{width:var(--size-6);height:var(--size-6)}}@media (max-width: 374px){._welcomeMessage_1px1f_1{margin-top:0}}
|
package/types/index.d.ts
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { type AgentType, type CitationResponseRecordType, type ContentProps, type RetryQuestion, type StopQuestion, type SubmitQuestion } from './types';
|
|
3
|
+
export type BoxAiContentAnswersProps = Omit<ContentProps, 'isErrorMessageShown' | 'setIsErrorMessageShown' | 'askSuggestedQuestion' | 'setAskSuggestedQuestion'> & {
|
|
4
|
+
/** Callback when the user clicks on retry */
|
|
5
|
+
retryQuestion?: RetryQuestion;
|
|
6
|
+
/** Callback when the user clicks on stop response */
|
|
7
|
+
stopQuestion?: StopQuestion;
|
|
8
|
+
/** Callback when the user clicks on ask question or a suggested question */
|
|
9
|
+
submitQuestion: SubmitQuestion;
|
|
10
|
+
className?: string;
|
|
11
|
+
/** Callback function when the agent editor is toggled */
|
|
12
|
+
onAgentEditorToggle?: (agent: AgentType) => void;
|
|
13
|
+
/** Callback function when citation button is clicked */
|
|
14
|
+
onCitationClick?: (fileId: CitationResponseRecordType, title: CitationResponseRecordType) => void;
|
|
15
|
+
};
|
|
16
|
+
export declare const BoxAiContentAnswers: React.FC<BoxAiContentAnswersProps>;
|
|
17
|
+
export default BoxAiContentAnswers;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { type AgentType } from '../../types';
|
|
2
|
+
export interface AgentEditorProps {
|
|
3
|
+
onAgentEditorToggle?: (agent: AgentType) => void;
|
|
4
|
+
/** Callback function to handle logging events */
|
|
5
|
+
recordAction?: (payload: Record<string, unknown>) => void;
|
|
6
|
+
setIsDebugModeShown: ((value: boolean) => void) | undefined;
|
|
7
|
+
}
|
|
8
|
+
export declare const AgentEditor: ({ onAgentEditorToggle, recordAction, setIsDebugModeShown }: AgentEditorProps) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { type AgentType, type RecordActionType } from '../../types';
|
|
2
|
+
export interface AgentSelectorProps {
|
|
3
|
+
onSelectAgent?: (agent: AgentType) => void;
|
|
4
|
+
recordAction?: (params: RecordActionType) => void;
|
|
5
|
+
}
|
|
6
|
+
export declare const AgentSelector: ({ onSelectAgent, recordAction }: AgentSelectorProps) => React.JSX.Element;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { type AgentState } from '../../../types';
|
|
2
|
+
import { type AgentEditorProps } from '../agent-editor';
|
|
3
|
+
import { type AgentSelectorProps } from '../agent-selector';
|
|
4
|
+
type AgentSelectorPropsWithAgentState = AgentSelectorProps & {
|
|
5
|
+
agentState: AgentState;
|
|
6
|
+
};
|
|
7
|
+
type AgentEditorPropsWithAgentState = AgentEditorProps & {
|
|
8
|
+
agentState: AgentState;
|
|
9
|
+
};
|
|
10
|
+
export declare const DefaultAgentEditor: ({ agentState, ...props }: AgentEditorPropsWithAgentState) => import("react/jsx-runtime").JSX.Element;
|
|
11
|
+
export declare const DefaultAgentSelector: ({ agentState, ...props }: AgentSelectorPropsWithAgentState) => import("react/jsx-runtime").JSX.Element;
|
|
12
|
+
export {};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
export interface AnswerContentProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
3
|
+
answer?: string;
|
|
4
|
+
/** Whether to render the answer with markdown */
|
|
5
|
+
isMarkdownEnabled?: boolean;
|
|
6
|
+
}
|
|
7
|
+
export declare const AnswerContent: ({ answer, isMarkdownEnabled, className, ...rest }: AnswerContentProps) => import("react/jsx-runtime").JSX.Element;
|
|
8
|
+
export default AnswerContent;
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { ANSWER_ERROR, type CitationResponseRecordType, type CitationType, type HandleScrollToBottomType, type RecordActionType } from '../../types';
|
|
3
|
+
export interface AnswerProps {
|
|
4
|
+
answer?: string;
|
|
5
|
+
/** Citations list */
|
|
6
|
+
citations?: Array<CitationType>;
|
|
7
|
+
/** Errors that could show the Answer */
|
|
8
|
+
error?: ANSWER_ERROR;
|
|
9
|
+
/** Callback function to handle the scroll bottom when an answer is updated */
|
|
10
|
+
handleScrollToBottom?: HandleScrollToBottomType;
|
|
11
|
+
/** Whether if the answer supports citations or not */
|
|
12
|
+
isCitationsEnabled?: boolean;
|
|
13
|
+
/** Whether if the answer finished loading (used to show the references and the copy button) */
|
|
14
|
+
isCompleted?: boolean;
|
|
15
|
+
/** Whether to show the loading state or not if the answer is empty */
|
|
16
|
+
isLoading?: boolean;
|
|
17
|
+
/** Whether the answer supports markdown */
|
|
18
|
+
isMarkdownEnabled?: boolean;
|
|
19
|
+
/** Whether if the client supports streaming or not */
|
|
20
|
+
isStreamingEnabled?: boolean;
|
|
21
|
+
/** Callback function when citation button is clicked */
|
|
22
|
+
onCitationClick?: (fileId: CitationResponseRecordType, title: CitationResponseRecordType) => void;
|
|
23
|
+
/** Callback function to handle logging events */
|
|
24
|
+
recordAction?: (params: RecordActionType) => void;
|
|
25
|
+
/** If keyframe animation for appearing answer should be applied */
|
|
26
|
+
useAnimation?: boolean;
|
|
27
|
+
}
|
|
28
|
+
export declare const Answer: React.NamedExoticComponent<AnswerProps>;
|
|
29
|
+
export default Answer;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { type CitationResponseRecordType, type RecordActionType } from '../../types';
|
|
2
|
+
export interface CitationProps {
|
|
3
|
+
/** Whether or not to animate the citation while appearing */
|
|
4
|
+
animate: boolean;
|
|
5
|
+
/** Citation content */
|
|
6
|
+
content: CitationResponseRecordType;
|
|
7
|
+
/** Citation file id */
|
|
8
|
+
fileId: CitationResponseRecordType;
|
|
9
|
+
/** Citation id */
|
|
10
|
+
id: number;
|
|
11
|
+
/** Callback function when citation button is clicked */
|
|
12
|
+
onCitationClick?: (fileId: CitationResponseRecordType, title: CitationResponseRecordType) => void;
|
|
13
|
+
/** Callback function to handle logging events */
|
|
14
|
+
recordAction?: (params: RecordActionType) => void;
|
|
15
|
+
/** Citation title */
|
|
16
|
+
title?: CitationResponseRecordType;
|
|
17
|
+
}
|
|
18
|
+
export declare const Citation: ({ animate, content, id, recordAction, fileId, title, onCitationClick }: CitationProps) => import("react/jsx-runtime").JSX.Element;
|
|
19
|
+
export default Citation;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const MAX_CITATION_LENGTH = 500;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { type RecordActionType } from '../../types';
|
|
2
|
+
export type CopyButtonProps = {
|
|
3
|
+
answer?: string;
|
|
4
|
+
recordAction?: (params: RecordActionType) => void;
|
|
5
|
+
};
|
|
6
|
+
export declare const CopyButton: ({ answer, recordAction }: CopyButtonProps) => import("react/jsx-runtime").JSX.Element;
|
|
7
|
+
export default CopyButton;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { type RecordActionType } from '../../types';
|
|
2
|
+
export type InlineErrorProps = {
|
|
3
|
+
error: string | null;
|
|
4
|
+
recordAction?: (params: RecordActionType) => void;
|
|
5
|
+
useAnimation?: boolean;
|
|
6
|
+
};
|
|
7
|
+
export declare const InlineError: ({ error, recordAction, useAnimation }: InlineErrorProps) => import("react/jsx-runtime").JSX.Element;
|
|
8
|
+
export default InlineError;
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
declare const messages: {
|
|
2
|
+
basedOn: {
|
|
3
|
+
defaultMessage: string;
|
|
4
|
+
description: string;
|
|
5
|
+
id: string;
|
|
6
|
+
};
|
|
7
|
+
cardTooltipButton: {
|
|
8
|
+
defaultMessage: string;
|
|
9
|
+
description: string;
|
|
10
|
+
id: string;
|
|
11
|
+
};
|
|
12
|
+
cardTooltipTitle: {
|
|
13
|
+
defaultMessage: string;
|
|
14
|
+
description: string;
|
|
15
|
+
id: string;
|
|
16
|
+
};
|
|
17
|
+
cardTooltipTitleWithDocumentName: {
|
|
18
|
+
defaultMessage: string;
|
|
19
|
+
description: string;
|
|
20
|
+
id: string;
|
|
21
|
+
};
|
|
22
|
+
copyButtonSuccessText: {
|
|
23
|
+
defaultMessage: string;
|
|
24
|
+
description: string;
|
|
25
|
+
id: string;
|
|
26
|
+
};
|
|
27
|
+
copyToClipboard: {
|
|
28
|
+
defaultMessage: string;
|
|
29
|
+
description: string;
|
|
30
|
+
id: string;
|
|
31
|
+
};
|
|
32
|
+
copyToClipboardSucceeded: {
|
|
33
|
+
defaultMessage: string;
|
|
34
|
+
description: string;
|
|
35
|
+
id: string;
|
|
36
|
+
};
|
|
37
|
+
inlineErrorText: {
|
|
38
|
+
defaultMessage: string;
|
|
39
|
+
description: string;
|
|
40
|
+
id: string;
|
|
41
|
+
};
|
|
42
|
+
inlineRateLimitingErrorText: {
|
|
43
|
+
defaultMessage: string;
|
|
44
|
+
description: string;
|
|
45
|
+
id: string;
|
|
46
|
+
};
|
|
47
|
+
loadingAnswer: {
|
|
48
|
+
defaultMessage: string;
|
|
49
|
+
description: string;
|
|
50
|
+
id: string;
|
|
51
|
+
};
|
|
52
|
+
noReferences: {
|
|
53
|
+
defaultMessage: string;
|
|
54
|
+
description: string;
|
|
55
|
+
id: string;
|
|
56
|
+
};
|
|
57
|
+
referenceAriaLabel: {
|
|
58
|
+
defaultMessage: string;
|
|
59
|
+
description: string;
|
|
60
|
+
id: string;
|
|
61
|
+
};
|
|
62
|
+
responseInterruptedError: {
|
|
63
|
+
defaultMessage: string;
|
|
64
|
+
description: string;
|
|
65
|
+
id: string;
|
|
66
|
+
};
|
|
67
|
+
responseFailedError: {
|
|
68
|
+
defaultMessage: string;
|
|
69
|
+
description: string;
|
|
70
|
+
id: string;
|
|
71
|
+
};
|
|
72
|
+
responseStoppedError: {
|
|
73
|
+
defaultMessage: string;
|
|
74
|
+
description: string;
|
|
75
|
+
id: string;
|
|
76
|
+
};
|
|
77
|
+
};
|
|
78
|
+
export default messages;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { type RecordActionType } from '../../types';
|
|
2
|
+
export interface NoCitationsIconProps {
|
|
3
|
+
/** Callback function to handle logging events */
|
|
4
|
+
recordAction?: (params: RecordActionType) => void;
|
|
5
|
+
}
|
|
6
|
+
export declare const NoCitationsIcon: ({ recordAction }: NoCitationsIconProps) => import("react/jsx-runtime").JSX.Element;
|
|
7
|
+
export default NoCitationsIcon;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { type CitationResponseRecordType, type CitationType, type RecordActionType } from '../../types';
|
|
2
|
+
export interface ReferencesProps {
|
|
3
|
+
/** Whether or not to animate the citation while appearing */
|
|
4
|
+
animate?: boolean;
|
|
5
|
+
/** Citations list */
|
|
6
|
+
citations?: Array<CitationType>;
|
|
7
|
+
/** Callback function when citation button is clicked */
|
|
8
|
+
onCitationClick?: (fileId: CitationResponseRecordType, title: CitationResponseRecordType) => void;
|
|
9
|
+
/** Callback function to handle logging events */
|
|
10
|
+
recordAction?: (params: RecordActionType) => void;
|
|
11
|
+
}
|
|
12
|
+
export declare const References: ({ animate, citations, recordAction, onCitationClick }: ReferencesProps) => import("react/jsx-runtime").JSX.Element;
|
|
13
|
+
export default References;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { type AnswerProps } from '../answer';
|
|
2
|
+
export declare const shortAnswer = "This is a short answer";
|
|
3
|
+
export declare const longAnswer = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed hendrerit nisi eget ligula suscipit, id tempus lorem volutpat. Nam eget placerat justo. Fusce vitae tortor id mi accumsan vestibulum. Integer auctor fermentum nisi, et consequat orci facilisis ac. Ut vitae nisl sit amet orci ullamcorper fringilla non a turpis. Proin nec turpis sed elit mattis efficitur. Sed consequat dui et nisi malesuada, sed sodales nulla hendrerit. Nullam tristique, lorem nec aliquet varius, mauris purus eleifend justo, vitae varius purus mauris sit amet purus. Duis ac odio ut nulla fermentum congue. Integer consequat dui sed libero vulputate commodo. \n Donec rhoncus purus nec turpis pulvinar, ac aliquam neque aliquet. Sed semper libero quis massa vehicula, sit amet rhoncus tortor fringilla. Nulla facilisi. In ut nibh eget mauris dictum suscipit vel eget lacus. Nullam sollicitudin leo nec ligula convallis, eget pharetra nisi tristique. Nulla facilisi. Phasellus vestibulum tristique sollicitudin. Cras lacinia velit quis sapien tristique, sed luctus elit ultricies. Suspendisse ut dictum tortor. Phasellus sed purus nec odio congue ullamcorper. Sed auctor lorem id venenatis cursus. Sed ac quam tortor. Sed vel ante nec nulla vulputate placerat. Maecenas sed ante eget leo ultrices posuere. Vivamus sit amet feugiat risus.";
|
|
4
|
+
export declare const answerWithMarkdown = "\nParagraphs\nLorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc auctor eleifend odio, id cursus nisl sollicitudin vitae.\nMauris eget iaculis nisl. Praesent at tincidunt dolor. Mauris in pharetra ante, nec laoreet nibh. Sed id ornare dolor, quis aliquam libero.\n\nHeaders\n# Header 1\n## Header 2\n### Header 3\n#### Header 4\n##### Header 5\n###### Header 6\n\n---\n\nEmphasis\n*italic* or _italic_\n**bold** or __bold__\n~~Strikethrough~~\n\n---\n\nUnordered List\n- Item 1\n- Item 2\n - Subitem A\n - Subitem B\n\nOrdered List\n1. Item 1\n2. Item 2\n 1. Subitem A\n 2. Subitem B\n\n---\n\nLinks\n[Link text](https://www.example.com)\n\n---\n\nBlockquotes\n> This is a blockquote.\n> - Anonymous\n\n---\nFootnotes\nHere is a footnote[^1].\n\n[^1]: Footnote content.\n\nReferences\n[Reference link][1]\n\n[1]: https://www.example.com\n";
|
|
5
|
+
export declare const defaultProps: {
|
|
6
|
+
answer: string;
|
|
7
|
+
isCompleted: boolean;
|
|
8
|
+
useAnimation: boolean;
|
|
9
|
+
};
|
|
10
|
+
export declare const citations: {
|
|
11
|
+
location: string;
|
|
12
|
+
fileId: string;
|
|
13
|
+
content: string;
|
|
14
|
+
}[];
|
|
15
|
+
export declare const citationsWithDocumentName: {
|
|
16
|
+
location: string;
|
|
17
|
+
content: string;
|
|
18
|
+
fileId: string;
|
|
19
|
+
title: string;
|
|
20
|
+
}[];
|
|
21
|
+
export declare const answerWithLargeTable = "\n| English | Spanish | French | German | Italian | Portuguese | Dutch | Russian | Japanese | Color | Origin | Taste | Uses | Season | Nutritional Benefits |\n|---------------|---------------|---------------|--------------|--------------|--------------|--------------|--------------|--------------|--------------|--------------|--------------|---------------------|------------------|-------------------------------------------|\n| Apple | Manzana | Pomme | Apfel | Mela | Ma\u00E7\u00E3 | Appel | \u042F\u0431\u043B\u043E\u043A\u043E | \u308A\u3093\u3054 | Red | Europe | Sweet | Eating, Cooking | Autumn | High in fiber, vitamin C |\n| Banana | Pl\u00E1tano | Banane | Banane | Banana | Banana | Banaan | \u0411\u0430\u043D\u0430\u043D | \u30D0\u30CA\u30CA | Yellow | Tropical | Sweet | Eating, Smoothies | Year-round | High in potassium, vitamin B6 |\n| Orange | Naranja | Orange | Orange | Arancia | Laranja | Sinaasappel | \u0410\u043F\u0435\u043B\u044C\u0441\u0438\u043D | \u30AA\u30EC\u30F3\u30B8 | Orange | Asia | Tangy | Juice, Eating | Winter | High in vitamin C, antioxidants |\n| Grape | Uva | Raisin | Traube | Uva | Uva | Druif | \u0412\u0438\u043D\u043E\u0433\u0440\u0430\u0434 | \u3076\u3069\u3046 | Purple | Europe | Sweet | Eating, Wine | Autumn | High in antioxidants |\n| Strawberry | Fresa | Fraisier | Erdbeere | Fragola | Morango | Aardbei | \u041A\u043B\u0443\u0431\u043D\u0438\u043A\u0430 | \u3044\u3061\u3054 | Red | Europe | Sweet | Eating, Desserts | Spring | High in vitamin C, fiber |\n| Blueberry | Ar\u00E1ndano | Myrtille | Heidelbeere | Mirtillo | Mirtilo | Bosbes | \u0413\u043E\u043B\u0443\u0431\u0438\u043A\u0430 | \u30D6\u30EB\u30FC\u30D9\u30EA\u30FC | Blue | North America| Sweet | Eating, Baking | Summer | High in antioxidants |\n| Lemon | Lim\u00F3n | Citron | Zitrone | Limone | Lim\u00E3o | Citroen | \u041B\u0438\u043C\u043E\u043D | \u30EC\u30E2\u30F3 | Yellow | Asia | Sour | Juice, Cooking | Year-round | High in vitamin C, aids digestion |\n| Pineapple | Pi\u00F1a | Ananas | Ananas | Ananas | Abacaxi | Ananas | \u0410\u043D\u0430\u043D\u0430\u0441 | \u30D1\u30A4\u30CA\u30C3\u30D7\u30EB | Brown/Yellow | South America| Sweet | Eating, Juicing | Summer | Rich in vitamin C, aids digestion |\n| Watermelon | Sand\u00EDa | Past\u00E8que | Wassermelone | Anguria | Melancia | Watermeloen | \u0410\u0440\u0431\u0443\u0437 | \u30B9\u30A4\u30AB | Green/Red | Africa | Sweet | Eating, Juicing | Summer | Hydrating, low in calories |\n| Cherry | Cereza | Cerise | Kirsche | Ciliegia | Cereja | Kers | \u0412\u0438\u0448\u043D\u044F | \u3055\u304F\u3089\u3093\u307C | Red | Europe | Sweet | Eating, Desserts | Spring | High in antioxidants, anti-inflammatory |\nLorem ipsum dolor sit amet, consectetur adipiscing elit. Sed hendrerit nisi eget ligula suscipit, id tempus lorem volutpat. Nam eget placerat justo. Fusce vitae tortor id mi accumsan vestibulum. Integer auctor fermentum nisi, et consequat orci facilisis ac. Ut vitae nisl sit amet orci ullamcorper fringilla non a turpis. Proin nec turpis sed elit mattis efficitur. Sed consequat dui et nisi malesuada, sed sodales nulla hendrerit. Nullam tristique, lorem nec aliquet varius, mauris purus eleifend justo, vitae varius purus mauris sit amet purus. Duis ac odio ut nulla fermentum congue. Integer consequat dui sed libero vulputate commodo. \n Donec rhoncus purus nec turpis pulvinar, ac aliquam neque aliquet. Sed semper libero quis massa vehicula, sit amet rhoncus tortor fringilla. Nulla facilisi. In ut nibh eget mauris dictum suscipit vel eget lacus. Nullam sollicitudin leo nec ligula convallis, eget pharetra nisi tristique. Nulla facilisi. Phasellus vestibulum tristique sollicitudin. Cras lacinia velit quis sapien tristique, sed luctus elit ultricies. Suspendisse ut dictum tortor. Phasellus sed purus nec odio congue ullamcorper. Sed auctor lorem id venenatis cursus. Sed ac quam tortor. Sed vel ante nec nulla vulputate placerat. Maecenas sed ante eget leo ultrices posuere. Vivamus sit amet feugiat risus.\n";
|
|
22
|
+
export declare const answerWithTable = "\n| English | Spanish | Color |\n|---------------|---------------|-------------|\n| Apple | Manzana | Red |\n| Banana | Pl\u00E1tano | Yellow |\n| Orange | Naranja | Orange |\n| Grape | Uva | Purple |\n| Strawberry | Fresa | Red |\n| Blueberry | Ar\u00E1ndano | Blue |\n| Lemon | Lim\u00F3n | Yellow |\n| Pineapple | Pi\u00F1a | Brown/Yellow|\n| Watermelon | Sand\u00EDa | Green/Red |\n| Cherry | Cereza | Red |\n";
|
|
23
|
+
export declare const answerWithCodeBlocks = "\nCode Blocks\n```html\n<div>\n <p>This is a paragraph inside a <div> block.</p>\n</div>\n```\n\n```\nfunction greet(name) {\n console.log('Hello, ' + name + '!');\n}\n\ngreet('World');\n```\n\n```c++\n#include <iostream>\n\nint main() {\n std::cout << \"Hello, world! This is a long line that will cause overflow in the code block when displayed on a narrow screen or container.\" << std::endl;\n return 0;\n}\n```\n";
|
|
24
|
+
export declare const DefaultAnswer: (props: AnswerProps) => import("react/jsx-runtime").JSX.Element;
|
|
25
|
+
export declare const WithUpdatedAnswer: (props: AnswerProps) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { type ApiWrapperProps } from './types';
|
|
2
|
+
export type ContentAnswersComponentProps = ApiWrapperProps & {
|
|
3
|
+
WrappedComponent: React.ComponentType<ApiWrapperProps>;
|
|
4
|
+
};
|
|
5
|
+
export declare const ContentAnswersComponent: ({ WrappedComponent, ...props }: ContentAnswersComponentProps) => import("react/jsx-runtime").JSX.Element;
|
|
6
|
+
export default ContentAnswersComponent;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { type AgentType, type QuestionType } from '../../../types';
|
|
2
|
+
import { type ContentAnswersRecordType, type QuestionRecordType } from '../records';
|
|
3
|
+
import { type UseContentAnswersProps } from '../types';
|
|
4
|
+
export declare function useContentAnswers({ contentAnswers, createSessionRequest, fetchTimeout, getAgentConfig, getAnswerStreaming, getAnswer, isCitationsEnabled, isStreamingEnabled, itemID, sendLog, setContentAnswers, formatCitations, }: UseContentAnswersProps): {
|
|
5
|
+
clearChatHistory: () => void;
|
|
6
|
+
createSession: () => Promise<void>;
|
|
7
|
+
fetchAgentConfig: (agent: AgentType) => Promise<void>;
|
|
8
|
+
getState: (shouldDeleteItem?: boolean) => ContentAnswersRecordType;
|
|
9
|
+
resetContentAnswers: () => void;
|
|
10
|
+
retryQuestion: (question: QuestionRecordType, aiAgent?: unknown) => Promise<void>;
|
|
11
|
+
sendQuestion: (question: QuestionType, aiAgent?: unknown, shouldCreateQuestion?: boolean) => import("immutable").Record<QuestionType> & Readonly<QuestionType>;
|
|
12
|
+
sendQuestionAnswerRequest: (questionRecord: any, aiAgent: any) => Promise<void>;
|
|
13
|
+
stopQuestion: (lastQuestion: QuestionRecordType) => void;
|
|
14
|
+
setState: (record: ContentAnswersRecordType) => void;
|
|
15
|
+
updateQuestionInState: (newQuestion: QuestionType, session?: Record<string, unknown>) => void;
|
|
16
|
+
};
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { Record } from 'immutable';
|
|
2
|
+
import { type QuestionType } from '../../types';
|
|
3
|
+
export type ContentAnswersRecordParams = {
|
|
4
|
+
config: ContentAnswersConfigRecordParams;
|
|
5
|
+
encodedSession?: string;
|
|
6
|
+
contextSession?: string;
|
|
7
|
+
error?: string;
|
|
8
|
+
isLoading: boolean;
|
|
9
|
+
hasRequestInProgress: boolean;
|
|
10
|
+
item: ContentAnswersItemRecordParams;
|
|
11
|
+
questions: QuestionType[];
|
|
12
|
+
};
|
|
13
|
+
export type ContentAnswersConfigRecordParams = {
|
|
14
|
+
has_streamed_responses: boolean;
|
|
15
|
+
has_citations_enabled: boolean;
|
|
16
|
+
};
|
|
17
|
+
export type ContentAnswersItemRecordParams = {
|
|
18
|
+
type: 'file';
|
|
19
|
+
id: string;
|
|
20
|
+
version_id: string;
|
|
21
|
+
};
|
|
22
|
+
export declare const ContentAnswersConfigRecord: Record.Factory<ContentAnswersConfigRecordParams>;
|
|
23
|
+
export declare const ContentAnswersItemRecord: Record.Factory<ContentAnswersItemRecordParams>;
|
|
24
|
+
export type ContentAnswersItemRecordType = ReturnType<typeof ContentAnswersItemRecord>;
|
|
25
|
+
export declare const ContentAnswersRecord: Record.Factory<ContentAnswersRecordParams>;
|
|
26
|
+
export type ContentAnswersRecordType = ReturnType<typeof ContentAnswersRecord>;
|
|
27
|
+
export declare const QuestionRecord: Record.Factory<QuestionType>;
|
|
28
|
+
export type QuestionRecordType = ReturnType<typeof QuestionRecord>;
|