@sapia-ai/chatbot-v3 1.0.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 (108) hide show
  1. package/dist/EmbeddedVideoPlayer-SaMMfDIW.js +1277 -0
  2. package/dist/EmbeddedVideoPlayer-SaMMfDIW.js.map +1 -0
  3. package/dist/Preview-Db-hgkTh.js +83 -0
  4. package/dist/Preview-Db-hgkTh.js.map +1 -0
  5. package/dist/api/client.d.ts +60 -0
  6. package/dist/api/config.d.ts +18 -0
  7. package/dist/api/constants.d.ts +5 -0
  8. package/dist/api/index.d.ts +5 -0
  9. package/dist/api/sse.d.ts +12 -0
  10. package/dist/api/types/branding.d.ts +17 -0
  11. package/dist/api/types/messages.d.ts +148 -0
  12. package/dist/api/types/responses.d.ts +106 -0
  13. package/dist/api.js +2 -0
  14. package/dist/classPrivateFieldSet2-DtQPURVD.js +32 -0
  15. package/dist/core/bubbles/convert.d.ts +18 -0
  16. package/dist/core/bubbles/types.d.ts +55 -0
  17. package/dist/core/constants.d.ts +14 -0
  18. package/dist/core/events.d.ts +44 -0
  19. package/dist/core/i18n/fallback.d.ts +2 -0
  20. package/dist/core/i18n/languages.d.ts +11 -0
  21. package/dist/core/i18n/translator.d.ts +13 -0
  22. package/dist/core/interview.d.ts +207 -0
  23. package/dist/core/media/mimeTypes.d.ts +10 -0
  24. package/dist/core/media/recorder.d.ts +61 -0
  25. package/dist/core/persistence.d.ts +4 -0
  26. package/dist/core/store.d.ts +49 -0
  27. package/dist/core/theme/branding.d.ts +6 -0
  28. package/dist/core/theme/cssVariables.d.ts +16 -0
  29. package/dist/core/theme/types.d.ts +11 -0
  30. package/dist/core/validation/phoneCountries.d.ts +21 -0
  31. package/dist/core/validation/pii.d.ts +30 -0
  32. package/dist/dash.all.min-DZ1yEcJk.js +27302 -0
  33. package/dist/dash.all.min-DZ1yEcJk.js.map +1 -0
  34. package/dist/defineProperty-DiFpLzd2.js +39 -0
  35. package/dist/dist-BSi28_cP.js +702 -0
  36. package/dist/dist-BSi28_cP.js.map +1 -0
  37. package/dist/dist-DGBYKC8c.js +14327 -0
  38. package/dist/dist-DGBYKC8c.js.map +1 -0
  39. package/dist/dist-FvHBWiRa.js +76 -0
  40. package/dist/dist-FvHBWiRa.js.map +1 -0
  41. package/dist/embed/compat.d.ts +82 -0
  42. package/dist/embed/constants.d.ts +2 -0
  43. package/dist/embed/createChatbot.d.ts +22 -0
  44. package/dist/fix-webm-duration-BW9Fbdzt.js +1057 -0
  45. package/dist/fix-webm-duration-BW9Fbdzt.js.map +1 -0
  46. package/dist/hls-mBncGwsE.js +18657 -0
  47. package/dist/hls-mBncGwsE.js.map +1 -0
  48. package/dist/index.d.ts +7 -0
  49. package/dist/index.js +4428 -0
  50. package/dist/index.js.map +1 -0
  51. package/dist/max-Btet1snX.js +12212 -0
  52. package/dist/max-Btet1snX.js.map +1 -0
  53. package/dist/messages-C4jqrtSG.js +187 -0
  54. package/dist/messages-C4jqrtSG.js.map +1 -0
  55. package/dist/react/AnswerInput.d.ts +21 -0
  56. package/dist/react/SapiaChatbot.d.ts +23 -0
  57. package/dist/react/bubbleViewModel.d.ts +50 -0
  58. package/dist/react/strings.d.ts +98 -0
  59. package/dist/react/useBeforeUnload.d.ts +5 -0
  60. package/dist/react/useVideoRecorder.d.ts +24 -0
  61. package/dist/react-BGJ7Szvq.js +216 -0
  62. package/dist/react-BGJ7Szvq.js.map +1 -0
  63. package/dist/react-BMxM8TWJ.js +192 -0
  64. package/dist/react-BMxM8TWJ.js.map +1 -0
  65. package/dist/react-BVzcquey.js +457 -0
  66. package/dist/react-BVzcquey.js.map +1 -0
  67. package/dist/react-BrCGR7Ca.js +2208 -0
  68. package/dist/react-BrCGR7Ca.js.map +1 -0
  69. package/dist/react-Bujo1aK5.js +334 -0
  70. package/dist/react-Bujo1aK5.js.map +1 -0
  71. package/dist/react-CRTg4gz8.js +367 -0
  72. package/dist/react-CRTg4gz8.js.map +1 -0
  73. package/dist/react-GXf8sbzf.js +311 -0
  74. package/dist/react-GXf8sbzf.js.map +1 -0
  75. package/dist/react-lp7yfM94.js +371 -0
  76. package/dist/react-lp7yfM94.js.map +1 -0
  77. package/dist/sapia-chatbot.css +3 -0
  78. package/dist/sapia.d.ts +4 -0
  79. package/dist/ui/chat/ChatBubble/ChatBubble.d.ts +47 -0
  80. package/dist/ui/chat/ChatLog/ChatLog.d.ts +33 -0
  81. package/dist/ui/chat/TypingIndicator/TypingIndicator.d.ts +17 -0
  82. package/dist/ui/chat/types.d.ts +71 -0
  83. package/dist/ui/constants.d.ts +2 -0
  84. package/dist/ui/inputs/DropdownInput/DropdownInput.d.ts +18 -0
  85. package/dist/ui/inputs/OptionList/OptionList.d.ts +18 -0
  86. package/dist/ui/inputs/PhoneAnswerInput/PhoneAnswerInput.d.ts +19 -0
  87. package/dist/ui/inputs/SliderInput/SliderInput.d.ts +19 -0
  88. package/dist/ui/inputs/TextAnswerInput/TextAnswerInput.d.ts +32 -0
  89. package/dist/ui/inputs/VideoRecorder/VideoRecorder.d.ts +54 -0
  90. package/dist/ui/media/EmbeddedVideo/EmbeddedVideo.d.ts +11 -0
  91. package/dist/ui/media/EmbeddedVideo/EmbeddedVideoPlayer.d.ts +16 -0
  92. package/dist/ui/media/EmbeddedVideo/VimeoPlayer.d.ts +20 -0
  93. package/dist/ui/media/UploadProgress/UploadProgress.d.ts +7 -0
  94. package/dist/ui/media/VideoPlayer/VideoPlayer.d.ts +13 -0
  95. package/dist/ui/primitives/Button/Button.d.ts +6 -0
  96. package/dist/ui/primitives/Dialog/Dialog.d.ts +16 -0
  97. package/dist/ui/richText.d.ts +6 -0
  98. package/dist/ui/shell/AccessVerificationForm/AccessVerificationForm.d.ts +21 -0
  99. package/dist/ui/shell/CopyLinkButton/CopyLinkButton.d.ts +11 -0
  100. package/dist/ui/shell/DoneScreen/DoneScreen.d.ts +15 -0
  101. package/dist/ui/shell/Header/Header.d.ts +13 -0
  102. package/dist/ui/shell/PreparingScreen/PreparingScreen.d.ts +9 -0
  103. package/dist/ui/shell/ProgressBar/ProgressBar.d.ts +9 -0
  104. package/dist/ui/shell/WelcomeScreen/WelcomeScreen.d.ts +22 -0
  105. package/dist/ui/shell/WidgetRoot/WidgetRoot.d.ts +12 -0
  106. package/dist-umd/sapia-chatbot.umd.js +3655 -0
  107. package/dist-umd/sapia-chatbot.umd.js.map +1 -0
  108. package/package.json +94 -0
@@ -0,0 +1,76 @@
1
+ import { t as e } from "./defineProperty-DiFpLzd2.js";
2
+ //#region ../../node_modules/.pnpm/media-played-ranges-mixin@0.1.0/node_modules/media-played-ranges-mixin/dist/index.js
3
+ function t(t) {
4
+ return class extends t {
5
+ constructor(...t) {
6
+ super(...t), e(this, "_playedRanges", []), e(this, "_currentPlayedRange", null), e(this, "_RANGE_EPSILON", .5), e(this, "_seeking", !1);
7
+ }
8
+ connectedCallback() {
9
+ super.connectedCallback && super.connectedCallback(), this.addEventListener("play", () => this.onPlaybackStart({ time: this.currentTime })), this.addEventListener("pause", () => this.onPlaybackStop({ time: this.currentTime })), this.addEventListener("ended", () => this.onPlaybackStop({ time: this.currentTime })), this.addEventListener("seeking", () => this.onSeeking()), this.addEventListener("seeked", () => this.onSeeked({ time: this.currentTime }));
10
+ }
11
+ onPlaybackStart(e = {}) {
12
+ this._seeking = !1;
13
+ let { time: t } = e, n = typeof t == "number" ? t : this.currentTime;
14
+ this._currentPlayedRange || (this._currentPlayedRange = {
15
+ start: n,
16
+ end: n
17
+ });
18
+ }
19
+ onSeeking() {
20
+ this._seeking = !0, this._commitCurrentRange();
21
+ }
22
+ onSeeked(e = {}) {
23
+ this._seeking = !1;
24
+ let { time: t } = e, n = typeof t == "number" ? t : this.currentTime;
25
+ this._currentPlayedRange = {
26
+ start: n,
27
+ end: n
28
+ };
29
+ }
30
+ onPlaybackStop(e = {}) {
31
+ let { time: t } = e, n = typeof t == "number" ? t : this.currentTime;
32
+ this._commitCurrentRange(n);
33
+ }
34
+ _commitCurrentRange(e) {
35
+ if (!this._currentPlayedRange) return;
36
+ typeof e == "number" && (this._currentPlayedRange.end = e);
37
+ let { start: t, end: n } = this._currentPlayedRange;
38
+ this._currentPlayedRange = null, this.addPlayedRange(t, n);
39
+ }
40
+ addPlayedRange(e, t) {
41
+ if (e >= t) return;
42
+ let n = this._RANGE_EPSILON, r = [...this._playedRanges, {
43
+ start: e,
44
+ end: t
45
+ }];
46
+ r.sort((e, t) => e.start - t.start);
47
+ let i = [];
48
+ for (let e of r) {
49
+ if (!i.length) {
50
+ i.push({ ...e });
51
+ continue;
52
+ }
53
+ let t = i[i.length - 1];
54
+ e.start <= t.end + n ? (t.start = Math.min(t.start, e.start), t.end = Math.max(t.end, e.end)) : i.push({ ...e });
55
+ }
56
+ this._playedRanges = i;
57
+ }
58
+ get played() {
59
+ let e = this.currentTime;
60
+ return !this.paused && !this._currentPlayedRange && typeof e == "number" && (this._currentPlayedRange = {
61
+ start: e,
62
+ end: e
63
+ }), this._currentPlayedRange && typeof e == "number" && (e > this._currentPlayedRange.end && (this._currentPlayedRange.end = e), this.addPlayedRange(this._currentPlayedRange.start, this._currentPlayedRange.end)), this._playedRanges.length ? n(this._playedRanges.map((e) => [e.start, e.end])) : n([[0, 0]]);
64
+ }
65
+ };
66
+ }
67
+ function n(e) {
68
+ return Object.defineProperties(e, {
69
+ start: { value: (t) => e[t][0] },
70
+ end: { value: (t) => e[t][1] }
71
+ }), e;
72
+ }
73
+ //#endregion
74
+ export { t };
75
+
76
+ //# sourceMappingURL=dist-FvHBWiRa.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dist-FvHBWiRa.js","names":[],"sources":["../../../node_modules/.pnpm/media-played-ranges-mixin@0.1.0/node_modules/media-played-ranges-mixin/dist/index.js"],"sourcesContent":["function MediaPlayedRangesMixin(Base) {\n return class MediaPlayedRanges extends Base {\n _playedRanges = [];\n _currentPlayedRange = null;\n _RANGE_EPSILON = 0.5;\n _seeking = false;\n connectedCallback() {\n if (super.connectedCallback) super.connectedCallback();\n this.addEventListener(\"play\", () => this.onPlaybackStart({ time: this.currentTime }));\n this.addEventListener(\"pause\", () => this.onPlaybackStop({ time: this.currentTime }));\n this.addEventListener(\"ended\", () => this.onPlaybackStop({ time: this.currentTime }));\n this.addEventListener(\"seeking\", () => this.onSeeking());\n this.addEventListener(\"seeked\", () => this.onSeeked({ time: this.currentTime }));\n }\n onPlaybackStart(param = {}) {\n this._seeking = false;\n const { time } = param;\n const t = typeof time === \"number\" ? time : this.currentTime;\n if (!this._currentPlayedRange) {\n this._currentPlayedRange = { start: t, end: t };\n }\n }\n onSeeking() {\n this._seeking = true;\n this._commitCurrentRange();\n }\n onSeeked(param = {}) {\n this._seeking = false;\n const { time } = param;\n const t = typeof time === \"number\" ? time : this.currentTime;\n this._currentPlayedRange = { start: t, end: t };\n }\n onPlaybackStop(param = {}) {\n const { time } = param;\n const t = typeof time === \"number\" ? time : this.currentTime;\n this._commitCurrentRange(t);\n }\n _commitCurrentRange(time) {\n if (!this._currentPlayedRange) return;\n if (typeof time === \"number\") {\n this._currentPlayedRange.end = time;\n }\n const { start, end } = this._currentPlayedRange;\n this._currentPlayedRange = null;\n this.addPlayedRange(start, end);\n }\n addPlayedRange(start, end) {\n if (start >= end) return;\n const EPS = this._RANGE_EPSILON;\n const allRanges = [...this._playedRanges, { start, end }];\n allRanges.sort((a, b) => a.start - b.start);\n const merged = [];\n for (const range of allRanges) {\n if (!merged.length) {\n merged.push({ ...range });\n continue;\n }\n const last = merged[merged.length - 1];\n if (range.start <= last.end + EPS) {\n last.start = Math.min(last.start, range.start);\n last.end = Math.max(last.end, range.end);\n } else {\n merged.push({ ...range });\n }\n }\n this._playedRanges = merged;\n }\n get played() {\n const time = this.currentTime;\n if (!this.paused && !this._currentPlayedRange && typeof time === \"number\") {\n this._currentPlayedRange = { start: time, end: time };\n }\n if (this._currentPlayedRange && typeof time === \"number\") {\n if (time > this._currentPlayedRange.end) {\n this._currentPlayedRange.end = time;\n }\n this.addPlayedRange(this._currentPlayedRange.start, this._currentPlayedRange.end);\n }\n if (!this._playedRanges.length) {\n return createTimeRangesObj([[0, 0]]);\n }\n return createTimeRangesObj(this._playedRanges.map((r) => [r.start, r.end]));\n }\n };\n}\nfunction createTimeRangesObj(ranges) {\n Object.defineProperties(ranges, {\n start: { value: (i) => ranges[i][0] },\n end: { value: (i) => ranges[i][1] }\n });\n return ranges;\n}\nexport {\n MediaPlayedRangesMixin\n};\n"],"x_google_ignoreList":[0],"mappings":"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"}
@@ -0,0 +1,82 @@
1
+ import { Env, Region } from '../api/config';
2
+ /** Legacy mount target id (was `predictivehire`'s `CHATBOT_CONTAINER_ID`). */
3
+ export declare const CHATBOT_CONTAINER_ID = "sapiaChatBot";
4
+ /** Legacy callback names (mapped 1:1 onto the new typed event names). */
5
+ export declare enum PHChatBotCallbackFunction {
6
+ FI_ASSESSMENT_ANSWER_SAVED = "FI_ASSESSMENT_ANSWER_SAVED",
7
+ FI_ASSESSMENT_ANSWER_EDITED = "FI_ASSESSMENT_ANSWER_EDITED",
8
+ FI_ASSESSMENT_STARTED = "FI_ASSESSMENT_STARTED",
9
+ FI_ASSESSMENT_ENDED = "FI_ASSESSMENT_ENDED",
10
+ FI_ASSESSMENT_DUPLICATED = "FI_ASSESSMENT_DUPLICATED",
11
+ CHATBOT_ERROR = "CHATBOT_ERROR",
12
+ CHATBOT_LOG = "CHATBOT_LOG"
13
+ }
14
+ export type FIAssessmentDuplicatedCallbackPayload = {
15
+ duplicatedWithAssessmentLink?: string;
16
+ };
17
+ export type PHChatBotCallback = {
18
+ [PHChatBotCallbackFunction.FI_ASSESSMENT_ANSWER_SAVED]?: (payload?: unknown) => void;
19
+ [PHChatBotCallbackFunction.FI_ASSESSMENT_ANSWER_EDITED]?: (payload?: unknown) => void;
20
+ [PHChatBotCallbackFunction.FI_ASSESSMENT_STARTED]?: (payload?: unknown) => void;
21
+ [PHChatBotCallbackFunction.FI_ASSESSMENT_ENDED]?: (payload?: unknown) => void;
22
+ [PHChatBotCallbackFunction.FI_ASSESSMENT_DUPLICATED]?: (payload?: FIAssessmentDuplicatedCallbackPayload) => void;
23
+ [PHChatBotCallbackFunction.CHATBOT_ERROR]?: (payload?: unknown) => void;
24
+ [PHChatBotCallbackFunction.CHATBOT_LOG]?: (payload?: unknown) => void;
25
+ };
26
+ /** Legacy per-section theme element (linkColor had no v3 mapping, dropped). */
27
+ export type ThemeElement = {
28
+ backgroundColor?: string;
29
+ fontColor?: string;
30
+ linkColor?: string;
31
+ };
32
+ /**
33
+ * Legacy theme shape. v3 themes only the header/question/response/button
34
+ * sections; the legacy hint/selectedItem/listItem/progressBar sections have no
35
+ * v3 equivalent and are ignored (documented in docs/MIGRATION.md).
36
+ */
37
+ export type PHChatBotTheme = {
38
+ header?: ThemeElement;
39
+ hint?: ThemeElement;
40
+ question?: ThemeElement;
41
+ response?: ThemeElement;
42
+ selectedItem?: ThemeElement;
43
+ listItem?: ThemeElement;
44
+ button?: ThemeElement;
45
+ progressBar?: ThemeElement;
46
+ };
47
+ /**
48
+ * Retry-resolve a container the host may render slightly after construction —
49
+ * ported from the legacy `getContainer` retry loop in `predictivehire.tsx`.
50
+ */
51
+ export declare const getContainer: (cb: () => HTMLElement | null, retryTimes?: number, intervalMs?: number) => Promise<HTMLElement | null>;
52
+ export type PHChatBotOptions = {
53
+ env: Env;
54
+ region: Region;
55
+ appId: string;
56
+ assessmentId?: string;
57
+ cohortId?: string;
58
+ jobRequisitionShortcode?: string;
59
+ applicationShortcode?: string;
60
+ showHeader?: boolean;
61
+ /** Accepted for source compatibility; the widget does not order assessments. */
62
+ isInternalUser?: boolean;
63
+ apiOrigin?: string;
64
+ };
65
+ /**
66
+ * Drop-in replacement for the legacy `PHChatBot` class. Thin wrapper over
67
+ * `createChatbot` — see docs/MIGRATION.md for the field-by-field mapping.
68
+ */
69
+ export declare class PHChatBot {
70
+ private readonly options;
71
+ private callbacks;
72
+ private theme;
73
+ private chatbot;
74
+ constructor(options: PHChatBotOptions);
75
+ addCallbackHandler(callbacks: PHChatBotCallback): void;
76
+ setTheme({ theme }: {
77
+ theme: PHChatBotTheme;
78
+ }): void;
79
+ attachChatBot(): Promise<void>;
80
+ stopCallingApiWhenUnmount(): void;
81
+ private dispatch;
82
+ }
@@ -0,0 +1,2 @@
1
+ /** Default DOM id createChatbot mounts into when no target is given. */
2
+ export declare const DEFAULT_CONTAINER_ID = "sapia-chatbot";
@@ -0,0 +1,22 @@
1
+ import { Env, Region } from '../api/config';
2
+ import { ChatbotEventName, ChatbotEventMap } from '../core/events';
3
+ import { Theme } from '../core/theme/types';
4
+ export type CreateChatbotOptions = {
5
+ env: Env;
6
+ region: Region;
7
+ appId: string;
8
+ assessmentId: string;
9
+ apiOrigin?: string;
10
+ theme?: Theme;
11
+ showHeader?: boolean;
12
+ /** Interview language override (e.g. "fr"); defaults to the browser language. */
13
+ language?: string;
14
+ };
15
+ export type Chatbot = {
16
+ mount: (target?: string | HTMLElement) => void;
17
+ unmount: () => void;
18
+ setTheme: (theme: Theme) => void;
19
+ on: <E extends ChatbotEventName>(event: E, handler: (payload: ChatbotEventMap[E]) => void) => () => void;
20
+ };
21
+ /** Imperative entry point for non-React hosts (and the UMD build). */
22
+ export declare const createChatbot: (options: CreateChatbotOptions) => Chatbot;