@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.
Files changed (210) hide show
  1. package/LICENSE +379 -0
  2. package/chunks/answer-content.module.js +8 -0
  3. package/chunks/answer.module.js +13 -0
  4. package/chunks/citation.module.js +14 -0
  5. package/chunks/copy-button.module.js +7 -0
  6. package/chunks/inline-error.module.js +10 -0
  7. package/chunks/loading.module.js +9 -0
  8. package/chunks/references.module.js +7 -0
  9. package/chunks/types.js +9 -0
  10. package/esm/index.js +13 -0
  11. package/esm/lib/box-ai-content-answers.js +82 -0
  12. package/esm/lib/components/agents/agent-editor.js +55 -0
  13. package/esm/lib/components/agents/agent-selector.js +76 -0
  14. package/esm/lib/components/agents/messages.js +14 -0
  15. package/esm/lib/components/answer/answer-content.js +29 -0
  16. package/esm/lib/components/answer/answer.js +100 -0
  17. package/esm/lib/components/answer/citation.js +130 -0
  18. package/esm/lib/components/answer/constants.js +4 -0
  19. package/esm/lib/components/answer/copy-button.js +49 -0
  20. package/esm/lib/components/answer/inline-error.js +64 -0
  21. package/esm/lib/components/answer/loading-element.js +41 -0
  22. package/esm/lib/components/answer/messages.js +66 -0
  23. package/esm/lib/components/answer/no-citations.js +34 -0
  24. package/esm/lib/components/answer/references.js +67 -0
  25. package/esm/lib/components/api-wrapper/api-wrapper.js +13 -0
  26. package/esm/lib/components/api-wrapper/constants.js +49 -0
  27. package/esm/lib/components/api-wrapper/content-answers-component.js +55 -0
  28. package/esm/lib/components/api-wrapper/hooks/useContentAnswers.js +197 -0
  29. package/esm/lib/components/api-wrapper/records.js +33 -0
  30. package/esm/lib/components/api-wrapper/test-utils/ReadableStreamSimulator.js +38 -0
  31. package/esm/lib/components/api-wrapper/utils/format.js +9 -0
  32. package/esm/lib/components/api-wrapper/utils/request.js +7 -0
  33. package/esm/lib/components/api-wrapper/utils/stream.js +105 -0
  34. package/esm/lib/components/chat/chat.js +73 -0
  35. package/esm/lib/components/chat/index.js +4 -0
  36. package/esm/lib/components/common/constants.js +13 -0
  37. package/esm/lib/components/common/keyInputUtils.js +6 -0
  38. package/esm/lib/components/common/markdown.js +13370 -0
  39. package/esm/lib/components/common/media-container.js +48 -0
  40. package/esm/lib/components/common/mock-data.js +98 -0
  41. package/esm/lib/components/content/content.js +94 -0
  42. package/esm/lib/components/content/index.js +4 -0
  43. package/esm/lib/components/footer/constants.js +15 -0
  44. package/esm/lib/components/footer/footer-actions.js +65 -0
  45. package/esm/lib/components/footer/footer.js +124 -0
  46. package/esm/lib/components/footer/index.js +4 -0
  47. package/esm/lib/components/footer/messages.js +30 -0
  48. package/esm/lib/components/modal/hooks/useEventListeners.js +15 -0
  49. package/esm/lib/components/modal/hooks/useStopPropagationOnEsc.js +21 -0
  50. package/esm/lib/components/modal/messages.js +18 -0
  51. package/esm/lib/components/modal/modal.js +126 -0
  52. package/esm/lib/components/modal-error/index.js +4 -0
  53. package/esm/lib/components/modal-error/messages.js +26 -0
  54. package/esm/lib/components/modal-error/modal-error.js +78 -0
  55. package/esm/lib/components/question/question.js +50 -0
  56. package/esm/lib/components/suggested-questions/messages.js +10 -0
  57. package/esm/lib/components/suggested-questions/mocks.js +16 -0
  58. package/esm/lib/components/suggested-questions/suggested-questions.js +61 -0
  59. package/esm/lib/components/welcome-message/messages.js +18 -0
  60. package/esm/lib/components/welcome-message/welcome-message.js +78 -0
  61. package/esm/lib/contexts/AgentsContext.js +59 -0
  62. package/esm/lib/messages.js +54 -0
  63. package/i18n/bn-IN.js +48 -0
  64. package/i18n/bn-IN.properties +90 -0
  65. package/i18n/da-DK.js +48 -0
  66. package/i18n/da-DK.properties +90 -0
  67. package/i18n/de-DE.js +48 -0
  68. package/i18n/de-DE.properties +90 -0
  69. package/i18n/en-AU.js +48 -0
  70. package/i18n/en-AU.properties +90 -0
  71. package/i18n/en-CA.js +48 -0
  72. package/i18n/en-CA.properties +90 -0
  73. package/i18n/en-GB.js +48 -0
  74. package/i18n/en-GB.properties +90 -0
  75. package/i18n/en-US.js +48 -0
  76. package/i18n/en-US.properties +92 -0
  77. package/i18n/en-x-pseudo.js +48 -0
  78. package/i18n/en-x-pseudo.properties +90 -0
  79. package/i18n/es-419.js +48 -0
  80. package/i18n/es-419.properties +90 -0
  81. package/i18n/es-ES.js +48 -0
  82. package/i18n/es-ES.properties +90 -0
  83. package/i18n/fi-FI.js +48 -0
  84. package/i18n/fi-FI.properties +90 -0
  85. package/i18n/fr-CA.js +48 -0
  86. package/i18n/fr-CA.properties +90 -0
  87. package/i18n/fr-FR.js +48 -0
  88. package/i18n/fr-FR.properties +90 -0
  89. package/i18n/hi-IN.js +48 -0
  90. package/i18n/hi-IN.properties +90 -0
  91. package/i18n/it-IT.js +48 -0
  92. package/i18n/it-IT.properties +90 -0
  93. package/i18n/ja-JP.js +48 -0
  94. package/i18n/ja-JP.properties +90 -0
  95. package/i18n/json/src/lib/components/agents/messages.json +1 -0
  96. package/i18n/json/src/lib/components/answer/messages.json +1 -0
  97. package/i18n/json/src/lib/components/footer/messages.json +1 -0
  98. package/i18n/json/src/lib/components/modal/messages.json +1 -0
  99. package/i18n/json/src/lib/components/modal-error/messages.json +1 -0
  100. package/i18n/json/src/lib/components/suggested-questions/messages.json +1 -0
  101. package/i18n/json/src/lib/components/welcome-message/messages.json +1 -0
  102. package/i18n/json/src/lib/messages.json +1 -0
  103. package/i18n/ko-KR.js +48 -0
  104. package/i18n/ko-KR.properties +90 -0
  105. package/i18n/nb-NO.js +48 -0
  106. package/i18n/nb-NO.properties +90 -0
  107. package/i18n/nl-NL.js +48 -0
  108. package/i18n/nl-NL.properties +90 -0
  109. package/i18n/pl-PL.js +48 -0
  110. package/i18n/pl-PL.properties +90 -0
  111. package/i18n/pt-BR.js +48 -0
  112. package/i18n/pt-BR.properties +90 -0
  113. package/i18n/ru-RU.js +48 -0
  114. package/i18n/ru-RU.properties +90 -0
  115. package/i18n/sv-SE.js +48 -0
  116. package/i18n/sv-SE.properties +90 -0
  117. package/i18n/tr-TR.js +48 -0
  118. package/i18n/tr-TR.properties +90 -0
  119. package/i18n/zh-CN.js +48 -0
  120. package/i18n/zh-CN.properties +90 -0
  121. package/i18n/zh-TW.js +48 -0
  122. package/i18n/zh-TW.properties +90 -0
  123. package/package.json +56 -0
  124. package/styles/agent-editor.css +1 -0
  125. package/styles/agent-selector.css +1 -0
  126. package/styles/answer-content.css +1 -0
  127. package/styles/answer.css +1 -0
  128. package/styles/box-ai-content-answers.css +1 -0
  129. package/styles/chat.css +1 -0
  130. package/styles/citation.css +1 -0
  131. package/styles/content.css +1 -0
  132. package/styles/copy-button.css +1 -0
  133. package/styles/footer-actions.css +1 -0
  134. package/styles/footer.css +1 -0
  135. package/styles/inline-error.css +1 -0
  136. package/styles/loading.css +1 -0
  137. package/styles/markdown.css +7 -0
  138. package/styles/media-container.css +1 -0
  139. package/styles/modal-error.css +1 -0
  140. package/styles/modal.css +1 -0
  141. package/styles/question.css +1 -0
  142. package/styles/references.css +1 -0
  143. package/styles/suggested-questions.css +1 -0
  144. package/styles/welcome-message.css +1 -0
  145. package/types/index.d.ts +5 -0
  146. package/types/lib/box-ai-content-answers.d.ts +17 -0
  147. package/types/lib/components/agents/agent-editor.d.ts +8 -0
  148. package/types/lib/components/agents/agent-selector.d.ts +6 -0
  149. package/types/lib/components/agents/messages.d.ts +13 -0
  150. package/types/lib/components/agents/stories/shared.d.ts +12 -0
  151. package/types/lib/components/answer/answer-content.d.ts +8 -0
  152. package/types/lib/components/answer/answer.d.ts +29 -0
  153. package/types/lib/components/answer/citation.d.ts +19 -0
  154. package/types/lib/components/answer/constants.d.ts +1 -0
  155. package/types/lib/components/answer/copy-button.d.ts +7 -0
  156. package/types/lib/components/answer/inline-error.d.ts +8 -0
  157. package/types/lib/components/answer/loading-element.d.ts +5 -0
  158. package/types/lib/components/answer/messages.d.ts +78 -0
  159. package/types/lib/components/answer/no-citations.d.ts +7 -0
  160. package/types/lib/components/answer/references.d.ts +13 -0
  161. package/types/lib/components/answer/stories/shared.d.ts +25 -0
  162. package/types/lib/components/api-wrapper/api-wrapper.d.ts +3 -0
  163. package/types/lib/components/api-wrapper/constants.d.ts +6 -0
  164. package/types/lib/components/api-wrapper/content-answers-component.d.ts +6 -0
  165. package/types/lib/components/api-wrapper/hooks/useContentAnswers.d.ts +16 -0
  166. package/types/lib/components/api-wrapper/records.d.ts +28 -0
  167. package/types/lib/components/api-wrapper/stories/shared.d.ts +2 -0
  168. package/types/lib/components/api-wrapper/test-utils/ReadableStreamSimulator.d.ts +25 -0
  169. package/types/lib/components/api-wrapper/types.d.ts +86 -0
  170. package/types/lib/components/api-wrapper/utils/format.d.ts +3 -0
  171. package/types/lib/components/api-wrapper/utils/request.d.ts +4 -0
  172. package/types/lib/components/api-wrapper/utils/stream.d.ts +29 -0
  173. package/types/lib/components/chat/chat.d.ts +3 -0
  174. package/types/lib/components/chat/index.d.ts +1 -0
  175. package/types/lib/components/common/constants.d.ts +10 -0
  176. package/types/lib/components/common/keyInputUtils.d.ts +2 -0
  177. package/types/lib/components/common/markdown.d.ts +2 -0
  178. package/types/lib/components/common/media-container.d.ts +21 -0
  179. package/types/lib/components/common/mock-data.d.ts +27 -0
  180. package/types/lib/components/content/content.d.ts +4 -0
  181. package/types/lib/components/content/index.d.ts +1 -0
  182. package/types/lib/components/footer/constants.d.ts +12 -0
  183. package/types/lib/components/footer/footer-actions.d.ts +9 -0
  184. package/types/lib/components/footer/footer.d.ts +34 -0
  185. package/types/lib/components/footer/index.d.ts +1 -0
  186. package/types/lib/components/footer/messages.d.ts +33 -0
  187. package/types/lib/components/footer/stories/shared.d.ts +130 -0
  188. package/types/lib/components/footer/stories/tests/mocks.d.ts +2 -0
  189. package/types/lib/components/modal/hooks/useEventListeners.d.ts +5 -0
  190. package/types/lib/components/modal/hooks/useStopPropagationOnEsc.d.ts +4 -0
  191. package/types/lib/components/modal/messages.d.ts +18 -0
  192. package/types/lib/components/modal/modal.d.ts +32 -0
  193. package/types/lib/components/modal/stories/shared.d.ts +31 -0
  194. package/types/lib/components/modal-error/index.d.ts +1 -0
  195. package/types/lib/components/modal-error/messages.d.ts +28 -0
  196. package/types/lib/components/modal-error/modal-error.d.ts +13 -0
  197. package/types/lib/components/modal-error/stories/shared.d.ts +2 -0
  198. package/types/lib/components/question/question.d.ts +11 -0
  199. package/types/lib/components/question/stories/shared.d.ts +2 -0
  200. package/types/lib/components/suggested-questions/messages.d.ts +8 -0
  201. package/types/lib/components/suggested-questions/mocks.d.ts +2 -0
  202. package/types/lib/components/suggested-questions/stories/shared.d.ts +3 -0
  203. package/types/lib/components/suggested-questions/suggested-questions.d.ts +15 -0
  204. package/types/lib/components/welcome-message/messages.d.ts +18 -0
  205. package/types/lib/components/welcome-message/stories/shared.d.ts +2 -0
  206. package/types/lib/components/welcome-message/welcome-message.d.ts +3 -0
  207. package/types/lib/contexts/AgentsContext.d.ts +15 -0
  208. package/types/lib/messages.d.ts +63 -0
  209. package/types/lib/stories/shared.d.ts +36 -0
  210. package/types/lib/types.d.ts +115 -0
@@ -0,0 +1,26 @@
1
+ import { defineMessages as e } from "react-intl";
2
+ const n = e({
3
+ largeFileSizeErrorHeading: {
4
+ id: "boxAI.contentAnswers.largeFileSizeErrorHeading",
5
+ defaultMessage: "The text content of this file is too large for Box AI"
6
+ },
7
+ intelligenceUnaivalableHeading: {
8
+ id: "boxAI.contentAnswers.intelligenceUnaivalableHeading",
9
+ defaultMessage: "Box AI is unavailable"
10
+ },
11
+ largeFileSizeErrorDescription: {
12
+ id: "boxAI.contentAnswers.largeFileSizeErrorDescription",
13
+ defaultMessage: "Box AI won’t be able to access the entire text, which might affect its answers."
14
+ },
15
+ intelligenceUnavailableDescription: {
16
+ id: "boxAI.contentAnswers.intelligenceUnavailableDescription",
17
+ defaultMessage: "The Box AI service is not responding."
18
+ },
19
+ intelligenceUnaivalableTryAgain: {
20
+ id: "boxAI.contentAnswers.intelligenceUnaivalableTryAgain",
21
+ defaultMessage: "Please try again later."
22
+ }
23
+ });
24
+ export {
25
+ n as default
26
+ };
@@ -0,0 +1,78 @@
1
+ import "../../../../styles/modal-error.css";
2
+ import { EmptyState as i, Text as l } from "@box/blueprint-web";
3
+ import { ErrorState404 as w, Unplugged as b } from "@box/blueprint-web-assets/illustrations/Medium";
4
+ import * as n from "react";
5
+ import { useIntl as v } from "react-intl";
6
+ import { C as f } from "../../../../chunks/types.js";
7
+ import g from "../../messages.js";
8
+ import o from "./messages.js";
9
+ import { LOGGER_BASE_CONFIG as c, LOGGER_ACTION_CLICK as E } from "../common/constants.js";
10
+ import { jsx as t, jsxs as p, Fragment as A } from "react/jsx-runtime";
11
+ const F = {
12
+ "ContentAnswersModalError-secondaryAction": "_ContentAnswersModalError-secondaryAction_3szwg_1"
13
+ }, x = ({
14
+ error: u = f.GENERAL,
15
+ onModalClose: m,
16
+ recordAction: e,
17
+ clearError: d
18
+ }) => {
19
+ const a = v(), s = n.useRef(null), r = u === f.LARGE_FILE, C = r ? a.formatMessage(o.largeFileSizeErrorHeading) : a.formatMessage(o.intelligenceUnaivalableHeading), h = r ? a.formatMessage(o.largeFileSizeErrorDescription) : a.formatMessage(o.intelligenceUnavailableDescription), y = r ? w : b;
20
+ n.useEffect(() => {
21
+ e && e({
22
+ ...c,
23
+ target: "modalError",
24
+ data: {
25
+ errorType: r ? "File size error" : "Intelligence service unavailable"
26
+ }
27
+ });
28
+ }, [r, e]);
29
+ const M = n.useCallback((_) => {
30
+ _.preventDefault(), e && e({
31
+ ...c,
32
+ action: E,
33
+ target: "modalErrorCancel"
34
+ }), m();
35
+ }, [m, e]), R = n.useCallback(() => {
36
+ e && e({
37
+ ...c,
38
+ action: E,
39
+ target: "modalErrorContinue"
40
+ }), d();
41
+ }, [d, e]);
42
+ return n.useEffect(() => {
43
+ r && s.current && s.current.focus();
44
+ }, [r]), /* @__PURE__ */ t(i, {
45
+ body: /* @__PURE__ */ p("div", {
46
+ children: [/* @__PURE__ */ t(l, {
47
+ as: "p",
48
+ children: h
49
+ }), !r && /* @__PURE__ */ t(l, {
50
+ as: "p",
51
+ children: a.formatMessage(o.intelligenceUnaivalableTryAgain)
52
+ })]
53
+ }),
54
+ "data-testid": "content-answers-modal-error",
55
+ heading: /* @__PURE__ */ t(l, {
56
+ as: "h2",
57
+ children: C
58
+ }),
59
+ illustration: y,
60
+ children: r && /* @__PURE__ */ p(A, {
61
+ children: [/* @__PURE__ */ t(i.PrimaryAction, {
62
+ ref: s,
63
+ "data-testid": "content-answers-modal-error-continue",
64
+ onClick: R,
65
+ children: a.formatMessage(g.continueAnyway)
66
+ }), /* @__PURE__ */ t(i.SecondaryAction, {
67
+ className: F["ContentAnswersModalError-secondaryAction"],
68
+ "data-testid": "content-answers-modal-error-cancel",
69
+ href: "",
70
+ onClick: M,
71
+ children: a.formatMessage(g.cancel)
72
+ })]
73
+ })
74
+ });
75
+ };
76
+ export {
77
+ x as ModalError
78
+ };
@@ -0,0 +1,50 @@
1
+ import "../../../../styles/question.css";
2
+ import { useBreakpoint as c, Avatar as d, Breakpoint as u, Text as p } from "@box/blueprint-web";
3
+ import { useIntl as x } from "react-intl";
4
+ import h from "../../messages.js";
5
+ import { MediaContainer as e } from "../common/media-container.js";
6
+ import { jsx as t, jsxs as f } from "react/jsx-runtime";
7
+ const v = "_question_1menh_1", q = "_text_1menh_5", s = {
8
+ question: v,
9
+ text: q
10
+ }, j = ({
11
+ prompt: a,
12
+ userInfo: o,
13
+ useAnimation: n
14
+ }) => {
15
+ const {
16
+ avatarURL: r,
17
+ name: i
18
+ } = o, l = c(), {
19
+ formatMessage: m
20
+ } = x();
21
+ return /* @__PURE__ */ t("div", {
22
+ className: s.question,
23
+ "data-testid": "content-answers-question",
24
+ children: /* @__PURE__ */ f(e, {
25
+ className: "question",
26
+ children: [/* @__PURE__ */ t(e.Figure, {
27
+ variant: "top-aligned",
28
+ children: /* @__PURE__ */ t(d, {
29
+ alt: m(h.userAvatar),
30
+ colorIndex: 0,
31
+ size: l === u.Small ? "small" : "large",
32
+ src: r || void 0,
33
+ text: i.charAt(0)
34
+ })
35
+ }), /* @__PURE__ */ t(e.Content, {
36
+ shouldAddCard: !1,
37
+ useAnimation: n,
38
+ children: /* @__PURE__ */ t(p, {
39
+ as: "span",
40
+ className: s.text,
41
+ children: a
42
+ })
43
+ })]
44
+ })
45
+ });
46
+ };
47
+ export {
48
+ j as Question,
49
+ j as default
50
+ };
@@ -0,0 +1,10 @@
1
+ import { defineMessages as s } from "react-intl";
2
+ const t = s({
3
+ suggestedQuestions: {
4
+ id: "boxAI.contentAnswers.suggestedQuestions",
5
+ defaultMessage: "Suggested Questions:"
6
+ }
7
+ });
8
+ export {
9
+ t as default
10
+ };
@@ -0,0 +1,16 @@
1
+ const e = [{
2
+ id: "suggested-question-1",
3
+ prompt: "Summarize this document"
4
+ }, {
5
+ id: "suggested-question-2",
6
+ prompt: "What are the key takeaways?"
7
+ }, {
8
+ id: "suggested-question-3",
9
+ prompt: "How can this document be improved?"
10
+ }, {
11
+ id: "suggested-question-4",
12
+ prompt: "Are there any next steps defined?"
13
+ }];
14
+ export {
15
+ e as DEFAULT_SUGGESTED_QUESTIONS
16
+ };
@@ -0,0 +1,61 @@
1
+ import "../../../../styles/suggested-questions.css";
2
+ import { Text as u, FilterChip as r } from "@box/blueprint-web";
3
+ import * as d from "react";
4
+ import { useIntl as g } from "react-intl";
5
+ import { LOGGER_BASE_CONFIG as _ } from "../common/constants.js";
6
+ import f from "./messages.js";
7
+ import { jsxs as h, jsx as t } from "react/jsx-runtime";
8
+ const b = "_wrapper_5v4pj_1", G = "_label_5v4pj_5", v = "_questionGroup_5v4pj_9", o = {
9
+ wrapper: b,
10
+ label: G,
11
+ questionGroup: v
12
+ }, y = ({
13
+ isLoading: p,
14
+ recordAction: s,
15
+ askSuggestedQuestion: l,
16
+ setAskSuggestedQuestion: a,
17
+ suggestedQuestions: i
18
+ }) => {
19
+ const {
20
+ formatMessage: m
21
+ } = g(), c = d.useCallback((e) => {
22
+ a && (a(e), s && e && s({
23
+ ..._,
24
+ target: "suggested_questions",
25
+ data: {
26
+ selectedQuestion: e
27
+ }
28
+ }));
29
+ }, [a, s]);
30
+ return /* @__PURE__ */ h("div", {
31
+ className: o.wrapper,
32
+ children: [/* @__PURE__ */ t(u, {
33
+ as: "p",
34
+ className: o.label,
35
+ color: "textOnLightSecondary",
36
+ children: m(f.suggestedQuestions)
37
+ }), /* @__PURE__ */ t(r.Group, {
38
+ className: o.questionGroup,
39
+ "data-testid": "content-answers-suggested-questions",
40
+ name: "Singleselect SuggestedQuestions",
41
+ type: "single",
42
+ value: l,
43
+ children: i.map((e) => {
44
+ const n = e.label || e.prompt;
45
+ return /* @__PURE__ */ t(r.ChipButton, {
46
+ "data-testid": `content-answers-${e.id}`,
47
+ disabled: p,
48
+ onClick: () => c(e.prompt),
49
+ value: n,
50
+ children: /* @__PURE__ */ t(r.Label, {
51
+ children: n
52
+ })
53
+ }, e.id);
54
+ })
55
+ })]
56
+ });
57
+ };
58
+ export {
59
+ y as SuggestedQuestions,
60
+ y as default
61
+ };
@@ -0,0 +1,18 @@
1
+ import { defineMessages as e } from "react-intl";
2
+ const t = e({
3
+ welcomeAskQuestionText: {
4
+ id: "boxAI.contentAnswers.welcomeAskQuestionText",
5
+ defaultMessage: "Ask questions about {name}"
6
+ },
7
+ welcomeClearChatText: {
8
+ id: "boxAI.contentAnswers.welcomeClearChatText",
9
+ defaultMessage: "This chat will be cleared when you close this {type}"
10
+ },
11
+ welcomeMessageTitle: {
12
+ id: "boxAI.contentAnswers.welcomeMessageTitle",
13
+ defaultMessage: "Welcome to Box AI"
14
+ }
15
+ });
16
+ export {
17
+ t as default
18
+ };
@@ -0,0 +1,78 @@
1
+ import "../../../../styles/welcome-message.css";
2
+ import { InlineNotice as g, Text as a } from "@box/blueprint-web";
3
+ import { BoxAi as w } from "@box/blueprint-web-assets/icons/Line";
4
+ import { Size6 as c } from "@box/blueprint-web-assets/tokens/tokens";
5
+ import { useIntl as f } from "react-intl";
6
+ import { MediaContainer as n } from "../common/media-container.js";
7
+ import i from "./messages.js";
8
+ import { jsx as e, jsxs as o } from "react/jsx-runtime";
9
+ const _ = "_welcomeMessage_1px1f_1", T = "_askQuestionText_1px1f_4", u = "_clearChatText_1px1f_8", v = "_warningNotice_1px1f_12", N = "_iconAvatar_1px1f_15", t = {
10
+ welcomeMessage: _,
11
+ askQuestionText: T,
12
+ clearChatText: u,
13
+ warningNotice: v,
14
+ iconAvatar: N
15
+ }, j = ({
16
+ contentName: l,
17
+ contentType: m,
18
+ warningNotice: r,
19
+ warningNoticeAriaLabel: d,
20
+ welcomeMessageClearText: h,
21
+ useAnimation: x
22
+ }) => {
23
+ const {
24
+ formatMessage: s
25
+ } = f(), p = r && /* @__PURE__ */ e(g, {
26
+ className: t.warningNotice,
27
+ "data-testid": "content-answers-warning-notice",
28
+ variant: "warning",
29
+ variantIconAriaLabel: d,
30
+ children: /* @__PURE__ */ e(a, {
31
+ as: "p",
32
+ variant: "bodyDefaultBold",
33
+ children: r
34
+ })
35
+ });
36
+ return /* @__PURE__ */ e("div", {
37
+ className: t.welcomeMessage,
38
+ "data-testid": "content-answers-welcome-message",
39
+ children: /* @__PURE__ */ o(n, {
40
+ children: [/* @__PURE__ */ e(n.Figure, {
41
+ children: /* @__PURE__ */ e("div", {
42
+ className: t.iconAvatar,
43
+ children: /* @__PURE__ */ e(w, {
44
+ height: c,
45
+ role: "presentation",
46
+ width: c
47
+ })
48
+ })
49
+ }), /* @__PURE__ */ o(n.Content, {
50
+ useAnimation: x,
51
+ children: [p, /* @__PURE__ */ e(a, {
52
+ as: "h1",
53
+ className: t.title,
54
+ variant: "titleSmall",
55
+ children: s(i.welcomeMessageTitle)
56
+ }), /* @__PURE__ */ e(a, {
57
+ as: "p",
58
+ className: t.askQuestionText,
59
+ children: s(i.welcomeAskQuestionText, {
60
+ name: /* @__PURE__ */ o("b", {
61
+ children: ["“", l, "”"]
62
+ })
63
+ })
64
+ }), /* @__PURE__ */ e(a, {
65
+ as: "p",
66
+ className: t.clearChatText,
67
+ children: h || s(i.welcomeClearChatText, {
68
+ type: m
69
+ })
70
+ })]
71
+ })]
72
+ })
73
+ });
74
+ };
75
+ export {
76
+ j as WelcomeMessage,
77
+ j as default
78
+ };
@@ -0,0 +1,59 @@
1
+ import { useContext as s, useReducer as d, createContext as g } from "react";
2
+ import { agentState as u } from "../components/api-wrapper/constants.js";
3
+ import { jsx as r } from "react/jsx-runtime";
4
+ const o = /* @__PURE__ */ g(u), a = /* @__PURE__ */ g(null);
5
+ function f(t, n) {
6
+ switch (n.type) {
7
+ case "SELECT_AGENT":
8
+ return {
9
+ agents: t.agents.map((e) => ({
10
+ ...e,
11
+ isSelected: e.name === n.agentName
12
+ })),
13
+ selectedAgent: t.agents.find((e) => e.name === n.agentName)
14
+ };
15
+ case "OVERRIDE_AGENT_CONFIG":
16
+ return {
17
+ agents: t.agents.map((e) => e.name === n.agentName ? {
18
+ ...e,
19
+ config: n.agentConfig
20
+ } : e),
21
+ selectedAgent: {
22
+ ...t.selectedAgent,
23
+ config: n.agentConfig
24
+ }
25
+ };
26
+ default:
27
+ return t;
28
+ }
29
+ }
30
+ function p() {
31
+ return s(o);
32
+ }
33
+ function C() {
34
+ return s(a);
35
+ }
36
+ function x({
37
+ children: t,
38
+ value: n = null
39
+ }) {
40
+ const [{
41
+ agents: e,
42
+ selectedAgent: c
43
+ }, i] = d(f, n || u);
44
+ return /* @__PURE__ */ r(o.Provider, {
45
+ value: {
46
+ agents: e,
47
+ selectedAgent: c
48
+ },
49
+ children: /* @__PURE__ */ r(a.Provider, {
50
+ value: i,
51
+ children: t
52
+ })
53
+ });
54
+ }
55
+ export {
56
+ x as AgentsProvider,
57
+ p as useAgents,
58
+ C as useAgentsDispatch
59
+ };
@@ -0,0 +1,54 @@
1
+ import { defineMessages as e } from "react-intl";
2
+ const t = e({
3
+ cancel: {
4
+ id: "boxAI.contentAnswers.cancel",
5
+ defaultMessage: "Cancel"
6
+ },
7
+ closeButtonText: {
8
+ id: "boxAI.popup.closeButtonText",
9
+ defaultMessage: "Close"
10
+ },
11
+ contentAnswersTitle: {
12
+ id: "boxAI.contentAnswers.contentAnswersTitle",
13
+ defaultMessage: "Box AI"
14
+ },
15
+ continueAnyway: {
16
+ id: "boxAI.contentAnswers.continueAnyway",
17
+ defaultMessage: "Continue anyway"
18
+ },
19
+ defaultTooltip: {
20
+ id: "boxAI.contentAnswers.defaultTooltip",
21
+ defaultMessage: "Get instant answers about this document using Box AI"
22
+ },
23
+ disabledTooltipFileNotCompatible: {
24
+ id: "boxAI.contentAnswers.disabledTooltipFileNotCompatible",
25
+ defaultMessage: "Box AI is not currently supported for this file type"
26
+ },
27
+ disabledTooltipAINotAvailable: {
28
+ id: "boxAI.contentAnswers.disabledTooltipAINotAvailable",
29
+ defaultMessage: "Box AI doesn't have permission to access this file"
30
+ },
31
+ disabledTooltipPermissionsFailed: {
32
+ id: "boxAI.contentAnswers.disabledTooltipPermissionsFailed",
33
+ defaultMessage: "Unable to check permissions at this time. Reload this page to try again"
34
+ },
35
+ disabledTooltipPermissionsLoading: {
36
+ id: "boxAI.contentAnswers.disabledTooltipPermissionsLoading",
37
+ defaultMessage: "Checking permissions..."
38
+ },
39
+ hasQuestionsTooltip: {
40
+ id: "boxAI.contentAnswers.hasQuestionsTooltip",
41
+ defaultMessage: "Return to Box AI"
42
+ },
43
+ loading: {
44
+ id: "boxAI.contentAnswers.loading",
45
+ defaultMessage: "Loading..."
46
+ },
47
+ userAvatar: {
48
+ id: "boxAI.contentAnswers.userAvatar",
49
+ defaultMessage: "User avatar"
50
+ }
51
+ });
52
+ export {
53
+ t as default
54
+ };
package/i18n/bn-IN.js ADDED
@@ -0,0 +1,48 @@
1
+ export default {
2
+ "boxAI.contentAnswers.agent": "এজেন্ট",
3
+ "boxAI.contentAnswers.ask": "জিজ্ঞাসা করুন",
4
+ "boxAI.contentAnswers.askDisabledTooltip": "একবার Box AI-এর প্রতিক্রিয়া জানানো শেষ হলে আপনি অন্য প্রশ্ন জমা দিতে পারেন",
5
+ "boxAI.contentAnswers.askQuestionPlaceholder": "এই {type} সম্পর্কে যেকোনো কিছু জিজ্ঞাসা করুন",
6
+ "boxAI.contentAnswers.basedOn": "এর উপর ভিত্তি করে:",
7
+ "boxAI.contentAnswers.cancel": "বাতিল করুন",
8
+ "boxAI.contentAnswers.cardTooltipButton": "Open document",
9
+ "boxAI.contentAnswers.cardTooltipTitle": "ডকুমেন্ট থেকে:",
10
+ "boxAI.contentAnswers.cardTooltipTitleWithDocumentName": "\"{title}\"-এর থেকে:",
11
+ "boxAI.contentAnswers.closeModalAriaLabel": "মোডাল বন্ধ করুন",
12
+ "boxAI.contentAnswers.contentAnswersTitle": "Box AI",
13
+ "boxAI.contentAnswers.continueAnyway": "তবুও চালিয়ে যান",
14
+ "boxAI.contentAnswers.copyToClipboard": "ক্লিপবোর্ডে কপি করুন",
15
+ "boxAI.contentAnswers.copyToClipboardSucceeded": "আপনার ক্লিপবোর্ডে কপি করা হয়েছে",
16
+ "boxAI.contentAnswers.defaultTooltip": "Box AI ব্যবহার করে এই ডকুমেন্ট সম্পর্কে ইন্সট্যান্ট উত্তর পান",
17
+ "boxAI.contentAnswers.disabledTooltipAINotAvailable": "Box AI-এর কাছে এই ফাইলটি অ্যাক্সেস করার অনুমতি নেই",
18
+ "boxAI.contentAnswers.disabledTooltipFileNotCompatible": "Box AI বর্তমানে এই ফাইল টাইপের জন্য সমর্থিত নয়",
19
+ "boxAI.contentAnswers.disabledTooltipPermissionsFailed": "এই মুহূর্তে অনুমতিসমূহ যাচাই করা যাচ্ছে না। আবার চেষ্টা করার জন্য এই পেজটি পুনরায় লোড করুন",
20
+ "boxAI.contentAnswers.disabledTooltipPermissionsLoading": "অনুমতিসমূহ যাচাই করা হচ্ছে...",
21
+ "boxAI.contentAnswers.hasQuestionsTooltip": "Box AI-এ ফিরে যান",
22
+ "boxAI.contentAnswers.inlineErrorText": "Box AI পরিষেবাটি পাওয়া যাচ্ছিল না।",
23
+ "boxAI.contentAnswers.inlineRateLimitingErrorText": "Box AI-এর বর্তমানে সীমিত ক্ষমতা রয়েছে (আমরা ব্যান্ডউইথ প্রসারিত করার জন্য কাজ করছি)। অনুগ্রহ করে কয়েক মিনিটের মধ্যে আবার চেষ্টা করুন।",
24
+ "boxAI.contentAnswers.intelligenceUnaivalableHeading": "Box AI পাওয়া যাচ্ছে না",
25
+ "boxAI.contentAnswers.intelligenceUnaivalableTryAgain": "অনুগ্রহ করে পরে আবার চেষ্টা করুন।",
26
+ "boxAI.contentAnswers.intelligenceUnavailableDescription": "Box AI পরিষেবা উত্তর দিচ্ছে না।",
27
+ "boxAI.contentAnswers.largeFileSizeErrorDescription": "Box AI সম্পূর্ণ টেক্সট অ্যাক্সেস করতে পারবে না, যা এটির উত্তরগুলোতে প্রভাব ফেলতে পারে।",
28
+ "boxAI.contentAnswers.largeFileSizeErrorHeading": "Box AI-এর জন্য এই ফাইলের বিষয়বস্তু খুব বড়",
29
+ "boxAI.contentAnswers.loading": "লোড করা হচ্ছে...",
30
+ "boxAI.contentAnswers.loadingAnswer": "উত্তর লোড হচ্ছে...",
31
+ "boxAI.contentAnswers.maxCharactersReachedError": "সর্বাধিক {characterLimit} অক্ষরে পৌঁছেছে",
32
+ "boxAI.contentAnswers.noReferences": "সাধারণ ডকুমেন্ট বিশ্লেষণের ভিত্তিতে জবাব",
33
+ "boxAI.contentAnswers.referenceAriaLabel": "রেফারেন্স {number}",
34
+ "boxAI.contentAnswers.resetConversationLabel": "কথোপকথন রিসেট করুন",
35
+ "boxAI.contentAnswers.responseFailedError": "জবাব পাওয়া যায়নি",
36
+ "boxAI.contentAnswers.responseInterruptedError": "জবাব বাধাগ্রস্ত হয়েছে",
37
+ "boxAI.contentAnswers.responseStoppedError": "জবাব বন্ধ হয়েছে",
38
+ "boxAI.contentAnswers.retryResponse": "পুনরায় চেষ্টা করুন",
39
+ "boxAI.contentAnswers.selectAgent": "এজেন্ট নির্বাচন করুন",
40
+ "boxAI.contentAnswers.stopResponse": "জবাব বন্ধ করুন",
41
+ "boxAI.contentAnswers.suggestedQuestions": "প্রস্তাবিত প্রশ্ন:",
42
+ "boxAI.contentAnswers.userAvatar": "ব্যবহারকারীর অবতার",
43
+ "boxAI.contentAnswers.welcomeAskQuestionText": "{name} সম্পর্কে প্রশ্ন করুন",
44
+ "boxAI.contentAnswers.welcomeClearChatText": "আপনি যখন এই {type}-টি বন্ধ করবেন, তখন এই চ্যাটটি মুছে দেওয়া হবে",
45
+ "boxAI.contentAnswers.welcomeMessageTitle": "Box AI-এ স্বাগত",
46
+ "boxAI.popup.closeButtonText": "বন্ধ করুন",
47
+ "boxAI.textInputWithCopyButton.copyButtonSuccessText": "অনুলিপি হয়েছে"
48
+ }
@@ -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 বর্তমানে এই ফাইল টাইপের জন্য সমর্থিত নয়
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/i18n/da-DK.js ADDED
@@ -0,0 +1,48 @@
1
+ export default {
2
+ "boxAI.contentAnswers.agent": "Agent",
3
+ "boxAI.contentAnswers.ask": "Spørg",
4
+ "boxAI.contentAnswers.askDisabledTooltip": "Du kan indsende et andet spørgsmål, når Box AI er færdig med at svare",
5
+ "boxAI.contentAnswers.askQuestionPlaceholder": "Spørg om alt om denne {type}",
6
+ "boxAI.contentAnswers.basedOn": "Baseret på:",
7
+ "boxAI.contentAnswers.cancel": "Annuller",
8
+ "boxAI.contentAnswers.cardTooltipButton": "Open document",
9
+ "boxAI.contentAnswers.cardTooltipTitle": "Fra dokument:",
10
+ "boxAI.contentAnswers.cardTooltipTitleWithDocumentName": "Fra \"{title}\":",
11
+ "boxAI.contentAnswers.closeModalAriaLabel": "Luk modal",
12
+ "boxAI.contentAnswers.contentAnswersTitle": "Box AI",
13
+ "boxAI.contentAnswers.continueAnyway": "Fortsæt alligevel",
14
+ "boxAI.contentAnswers.copyToClipboard": "Kopier til udklipsholder",
15
+ "boxAI.contentAnswers.copyToClipboardSucceeded": "Kopieret til din udklipsholder",
16
+ "boxAI.contentAnswers.defaultTooltip": "Få øjeblikkelige svar om dette dokument, ved hjælp af Box AI",
17
+ "boxAI.contentAnswers.disabledTooltipAINotAvailable": "Box AI har ikke tilladelse til at tilgå denne fil",
18
+ "boxAI.contentAnswers.disabledTooltipFileNotCompatible": "Box AI er i øjeblikket ikke understøttet for denne filtype",
19
+ "boxAI.contentAnswers.disabledTooltipPermissionsFailed": "Det er ikke muligt at kontrollere tilladelserne på nuværende tidspunkt. Genindlæs denne side for at prøve igen",
20
+ "boxAI.contentAnswers.disabledTooltipPermissionsLoading": "Kontrollerer tilladelser ...",
21
+ "boxAI.contentAnswers.hasQuestionsTooltip": "Gå tilbage til Box AI",
22
+ "boxAI.contentAnswers.inlineErrorText": "Box AI-tjenesten var ikke tilgængelig.",
23
+ "boxAI.contentAnswers.inlineRateLimitingErrorText": "Box AI har på nuværende tidspunkt begrænset kapacitet (vi arbejder på at udvide båndbredden). Prøv igen om et par minutter.",
24
+ "boxAI.contentAnswers.intelligenceUnaivalableHeading": "Box AI er ikke tilgængelig",
25
+ "boxAI.contentAnswers.intelligenceUnaivalableTryAgain": "Prøv igen senere.",
26
+ "boxAI.contentAnswers.intelligenceUnavailableDescription": "Box AI-tjenesten reagerer ikke.",
27
+ "boxAI.contentAnswers.largeFileSizeErrorDescription": "Box AI vil ikke kunne tilgå hele teksten, hvilket kan påvirke svarene.",
28
+ "boxAI.contentAnswers.largeFileSizeErrorHeading": "Tekstindholdet i denne fil er for stort til Box AI",
29
+ "boxAI.contentAnswers.loading": "Indlæser ...",
30
+ "boxAI.contentAnswers.loadingAnswer": "Indlæser svar ...",
31
+ "boxAI.contentAnswers.maxCharactersReachedError": "Det maksimale antal på {characterLimit} tegn nået",
32
+ "boxAI.contentAnswers.noReferences": "Svar baseret på en generel analyse af dokumentet",
33
+ "boxAI.contentAnswers.referenceAriaLabel": "Reference {number}",
34
+ "boxAI.contentAnswers.resetConversationLabel": "Nulstil samtale",
35
+ "boxAI.contentAnswers.responseFailedError": "Svar mislykkedes",
36
+ "boxAI.contentAnswers.responseInterruptedError": "Svar afbrudt",
37
+ "boxAI.contentAnswers.responseStoppedError": "Svar stoppet",
38
+ "boxAI.contentAnswers.retryResponse": "Prøv igen",
39
+ "boxAI.contentAnswers.selectAgent": "Vælge en agent",
40
+ "boxAI.contentAnswers.stopResponse": "Stop svar",
41
+ "boxAI.contentAnswers.suggestedQuestions": "Foreslåede spørgsmål:",
42
+ "boxAI.contentAnswers.userAvatar": "Brugeravatar",
43
+ "boxAI.contentAnswers.welcomeAskQuestionText": "Stil spørgsmål om {name}",
44
+ "boxAI.contentAnswers.welcomeClearChatText": "Denne chat vil blive ryddet, når du lukker dette {type}",
45
+ "boxAI.contentAnswers.welcomeMessageTitle": "Velkommen til Box AI",
46
+ "boxAI.popup.closeButtonText": "Luk",
47
+ "boxAI.textInputWithCopyButton.copyButtonSuccessText": "Kopieret"
48
+ }