botframework-webchat-fluent-theme 4.17.0-main.20240416.e3f5401 → 4.17.0-main.20240423.ec25060
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/botframework-webchat-fluent-theme.development.css.map +1 -0
- package/dist/botframework-webchat-fluent-theme.development.js +418 -2085
- package/dist/botframework-webchat-fluent-theme.development.js.map +1 -1
- package/dist/botframework-webchat-fluent-theme.production.min.css.map +1 -0
- package/dist/botframework-webchat-fluent-theme.production.min.js +1 -3
- package/dist/botframework-webchat-fluent-theme.production.min.js.map +1 -1
- package/dist/index.css.map +1 -0
- package/dist/index.js +285 -545
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +335 -595
- package/dist/index.mjs.map +1 -1
- package/package.json +4 -5
- package/src/components/Theme.module.css +65 -0
- package/src/components/Theme.tsx +4 -65
- package/src/components/dropZone/index.module.css +23 -0
- package/src/components/dropZone/index.tsx +6 -31
- package/src/components/sendbox/AddAttachmentButton.module.css +10 -0
- package/src/components/sendbox/AddAttachmentButton.tsx +5 -17
- package/src/components/sendbox/Attachments.module.css +7 -0
- package/src/components/sendbox/Attachments.tsx +7 -13
- package/src/components/sendbox/ErrorMessage.module.css +9 -0
- package/src/components/sendbox/ErrorMessage.tsx +2 -13
- package/src/components/sendbox/TelephoneKeypadToolbarButton.tsx +3 -2
- package/src/components/sendbox/TextArea.module.css +63 -0
- package/src/components/sendbox/TextArea.tsx +9 -70
- package/src/components/sendbox/Toolbar.module.css +51 -0
- package/src/components/sendbox/Toolbar.tsx +7 -55
- package/src/components/sendbox/index.module.css +86 -0
- package/src/components/sendbox/index.tsx +18 -77
- package/src/components/suggestedActions/SuggestedAction.module.css +35 -0
- package/src/components/suggestedActions/SuggestedAction.tsx +3 -43
- package/src/components/suggestedActions/index.module.css +23 -0
- package/src/components/suggestedActions/index.tsx +6 -29
- package/src/components/telephoneKeypad/private/Button.module.css +62 -0
- package/src/components/telephoneKeypad/private/Button.tsx +5 -67
- package/src/components/telephoneKeypad/private/TelephoneKeypad.module.css +59 -0
- package/src/components/telephoneKeypad/private/TelephoneKeypad.tsx +17 -35
- package/src/env.d.ts +7 -0
- package/src/icons/AddDocumentIcon.tsx +0 -1
- package/src/icons/AttachmentIcon.tsx +0 -1
- package/src/icons/InfoSmallIcon.tsx +17 -0
- package/src/icons/SendIcon.tsx +0 -1
- package/src/icons/TelephoneKeypad.tsx +0 -1
- package/src/index.ts +3 -0
- package/src/styles/injectStyle.ts +9 -0
- package/src/styles/useStyles.ts +19 -0
- package/src/styles.ts +4 -0
- package/src/tsconfig.json +2 -1
- package/src/private/useStyleToEmotionObject.ts +0 -32
- package/src/styles/index.ts +0 -15
package/dist/index.mjs
CHANGED
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
import { injectMetaTag } from "inject-meta-tag";
|
|
3
3
|
|
|
4
4
|
// src/private/FluentThemeProvider.tsx
|
|
5
|
-
import { Components } from "botframework-webchat-component";
|
|
6
|
-
import
|
|
5
|
+
import { Components as Components2 } from "botframework-webchat-component";
|
|
6
|
+
import React22, { memo as memo16 } from "react";
|
|
7
7
|
|
|
8
8
|
// src/components/telephoneKeypad/Provider.tsx
|
|
9
9
|
import React, { memo, useMemo, useState } from "react";
|
|
@@ -35,125 +35,77 @@ var Provider = memo(({ children }) => {
|
|
|
35
35
|
var Provider_default = Provider;
|
|
36
36
|
|
|
37
37
|
// src/components/telephoneKeypad/Surrogate.tsx
|
|
38
|
-
import
|
|
38
|
+
import React5, { memo as memo5 } from "react";
|
|
39
39
|
|
|
40
40
|
// src/components/telephoneKeypad/private/TelephoneKeypad.tsx
|
|
41
|
-
import
|
|
41
|
+
import React4, { memo as memo4, useCallback as useCallback2, useEffect, useRef } from "react";
|
|
42
|
+
import cx from "classnames";
|
|
42
43
|
import { useRefFrom as useRefFrom2 } from "use-ref-from";
|
|
44
|
+
import { Components } from "botframework-webchat-component";
|
|
43
45
|
|
|
44
|
-
// src/
|
|
45
|
-
import {
|
|
46
|
+
// src/components/telephoneKeypad/private/Button.tsx
|
|
47
|
+
import React2, { forwardRef, memo as memo2, useCallback } from "react";
|
|
48
|
+
import { useRefFrom } from "use-ref-from";
|
|
46
49
|
|
|
47
|
-
// src/private/
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
function useStyleToEmotionObject() {
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
);
|
|
62
|
-
|
|
63
|
-
}, []);
|
|
50
|
+
// src/components/telephoneKeypad/private/Button.module.css
|
|
51
|
+
var Button_default = {
|
|
52
|
+
"telephone-keypad__button": "Button_telephone-keypad__button",
|
|
53
|
+
"telephone-keypad__button__ruby": "Button_telephone-keypad__button__ruby",
|
|
54
|
+
"telephone-keypad__button__text": "Button_telephone-keypad__button__text",
|
|
55
|
+
"telephone-keypad--horizontal": "Button_telephone-keypad--horizontal"
|
|
56
|
+
};
|
|
57
|
+
|
|
58
|
+
// src/styles/injectStyle.ts
|
|
59
|
+
var injectedStyles = "/* src/components/telephoneKeypad/private/Button.module.css */\n.webchat-fluent .Button_telephone-keypad__button {\n -webkit-user-select: none;\n align-items: center;\n appearance: none;\n background-color: White;\n border-radius: 100%;\n border: solid 1px var(--webchat-colorNeutralStroke1);\n color: var(--webchat-colorGray200);\n font-weight: var(--webchat-fontWeightSemibold);\n cursor: pointer;\n display: flex;\n flex-direction: column;\n height: 60px;\n opacity: 0.7;\n padding: 0;\n position: relative;\n touch-action: none;\n user-select: none;\n width: 60px;\n}\n.webchat-fluent .Button_telephone-keypad__button:hover {\n background-color: var(--webchat-colorGray30);\n}\n.webchat-fluent .Button_telephone-keypad__button__ruby {\n color: var(--webchat-colorGray190);\n font-size: 10px;\n}\n.webchat-fluent .Button_telephone-keypad__button__text {\n font-size: 24px;\n margin-top: 8px;\n}\n.webchat-fluent .Button_telephone-keypad--horizontal .Button_telephone-keypad__button {\n height: 32px;\n justify-content: center;\n margin: 8px 4px;\n width: 32px;\n}\n.webchat-fluent .Button_telephone-keypad--horizontal .Button_telephone-keypad__button__ruby {\n display: none;\n}\n.webchat-fluent .Button_telephone-keypad--horizontal .Button_telephone-keypad__button__text {\n font-size: 20px;\n margin-top: 0;\n}\n\n/* src/components/telephoneKeypad/private/TelephoneKeypad.module.css */\n.webchat-fluent .TelephoneKeypad_telephone-keypad {\n align-items: center;\n background: var(--webchat-colorNeutralBackground1);\n border: none;\n border-radius: var(--webchat-borderRadiusXLarge);\n display: flex;\n flex-direction: column;\n font-family: var(--webchat-fontFamilyBase);\n justify-content: center;\n}\n.webchat-fluent .TelephoneKeypad_telephone-keypad__box {\n box-sizing: border-box;\n display: grid;\n gap: 16px;\n grid-template-columns: repeat(3, 1fr);\n grid-template-rows: repeat(4, 1fr);\n justify-items: center;\n padding: 16px;\n width: 100%;\n}\n.webchat-fluent .TelephoneKeypad_telephone-keypad__info-message {\n align-items: center;\n color: var(--webchat-colorNeutralForeground4);\n display: flex;\n font-size: 12px;\n gap: 6px;\n margin-block-end: 6px;\n}\n.webchat-fluent .TelephoneKeypad_telephone-keypad__info-message-link {\n color: var(--webchat-colorBrandForegroundLink);\n text-decoration-color: transparent;\n}\n.webchat-fluent .TelephoneKeypad_telephone-keypad__info-message-link:target {\n color: var(--webchat-colorBrandForegroundLinkSelected);\n}\n.webchat-fluent .TelephoneKeypad_telephone-keypad__info-message-link:hover {\n color: var(--webchat-colorBrandForegroundLinkHover);\n text-decoration: underline 1px currentColor;\n}\n.webchat-fluent .TelephoneKeypad_telephone-keypad__info-message-link:active {\n color: var(--webchat-colorBrandForegroundLinkPressed);\n}\n.webchat-fluent .TelephoneKeypad_telephone-keypad__info-message-link:focus-visible {\n outline: none;\n text-decoration: underline 1px double var(--webchat-colorStrokeFocus2);\n}\n\n/* src/components/Theme.module.css */\n.webchat-fluent.Theme_theme {\n display: contents;\n --webchat-colorNeutralForeground1: var(--colorNeutralForeground1, #242424);\n --webchat-colorNeutralForeground2: var(--colorNeutralForeground2, #424242);\n --webchat-colorNeutralForeground4: var(--colorNeutralForeground4, #707070);\n --webchat-colorNeutralForeground2BrandHover: var(--colorNeutralForeground2BrandHover, #02729c);\n --webchat-colorNeutralForeground2BrandPressed: var(--colorNeutralForeground2BrandPressed, #01678c);\n --webchat-colorNeutralForeground2BrandSelected: var(--colorNeutralForeground2BrandSelected, #067191);\n --webchat-colorNeutralForegroundDisabled: var(--colorNeutralForegroundDisabled, #bdbdbd);\n --webchat-colorNeutralBackground1: var(--colorNeutralBackground1, #ffffff);\n --webchat-colorNeutralBackground4: var(--colorNeutralBackground4, #f0f0f0);\n --webchat-colorNeutralBackground5: var(--colorNeutralBackground5, #ebebeb);\n --webchat-colorNeutralStroke1: var(--colorNeutralStroke1, #d1d1d1);\n --webchat-colorNeutralStroke2: var(--colorNeutralStroke2, #e0e0e0);\n --webchat-colorNeutralStroke1Selected: var(--colorNeutralStroke1Selected, #bdbdbd);\n --webchat-colorStrokeFocus2: var(--colorStrokeFocus2, #000000);\n --webchat-colorBrandStroke2: var(--colorBrandStroke2, #9edcf7);\n --webchat-colorBrandForeground2Hover: var(--colorBrandForeground2Hover, #015a7a);\n --webchat-colorBrandForeground2Pressed: var(--colorBrandForeground2Pressed, #01384d);\n --webchat-colorBrandForegroundLink: var(--colorBrandForegroundLink, #01678c);\n --webchat-colorBrandForegroundLinkHover: var(--colorBrandForegroundLinkHover, #015a7a);\n --webchat-colorBrandForegroundLinkPressed: var(--colorBrandForegroundLinkPressed, #014259);\n --webchat-colorBrandForegroundLinkSelected: var(--colorBrandForegroundLinkSelected, #01678c);\n --webchat-colorBrandBackground2Hover: var(--colorBrandBackground2Hover, #bee7fa);\n --webchat-colorBrandBackground2Pressed: var(--colorBrandBackground2Pressed, #7fd2f5);\n --webchat-colorCompoundBrandForeground1Hover: var(--colorCompoundBrandForeground1Hover, #02729c);\n --webchat-colorStatusDangerForeground1: var(--colorStatusDangerForeground1, #b10e1c);\n --webchat-colorGray30: var(--colorGray30, #edebe9);\n --webchat-colorGray160: var(--colorGray160, #323130);\n --webchat-colorGray190: var(--colorGray190, #201f1e);\n --webchat-colorGray200: var(--colorGray200, #1b1a19);\n --webchat-borderRadiusSmall: var(--borderRadiusSmall, 2px);\n --webchat-borderRadiusLarge: var(--borderRadiusLarge, 6px);\n --webchat-borderRadiusXLarge: var(--borderRadiusXLarge, 8px);\n --webchat-shadow16: var(--shadow16, 0 6.4px 14.4px 0 rgba(0, 0, 0, 0.132), 0 1.2px 3.6px 0 rgba(0, 0, 0, 0.108));\n --webchat-spacingHorizontalMNudge: var(--spacingHorizontalMNudge, 10px);\n --webchat-fontFamilyBase: var(--fontFamilyBase, \"Segoe UI\", \"Segoe UI Web (West European)\", -apple-system, BlinkMacSystemFont, Roboto, \"Helvetica Neue\", sans-serif);\n --webchat-fontFamilyNumeric: var(--fontFamilyNumeric, Bahnschrift, \"Segoe UI\", \"Segoe UI Web (West European)\", -apple-system, BlinkMacSystemFont, Roboto, \"Helvetica Neue\", sans-serif);\n --webchat-fontWeightSemibold: var(--fontWeightSemibold, 600);\n}\n\n/* src/components/dropZone/index.module.css */\n.webchat-fluent .dropZone_sendbox__attachment-drop-zone {\n background-color: var(--webchat-colorNeutralBackground4);\n border-radius: inherit;\n cursor: copy;\n display: grid;\n gap: 8px;\n inset: 0;\n place-content: center;\n place-items: center;\n position: absolute;\n}\n.webchat-fluent .dropZone_sendbox__attachment-drop-zone--droppable {\n background-color: #e00;\n color: White;\n}\n.webchat-fluent .dropZone_sendbox__attachment-drop-zone-icon {\n height: 36px;\n pointer-events: none;\n width: 36px;\n}\n\n/* src/components/suggestedActions/SuggestedAction.module.css */\n.webchat-fluent .SuggestedAction_suggested-action {\n align-items: center;\n background: transparent;\n border-radius: 8px;\n border: 1px solid var(--webchat-colorBrandStroke2);\n color: currentColor;\n cursor: pointer;\n display: flex;\n font-size: 12px;\n gap: 4px;\n padding: 4px 8px 4px;\n text-align: start;\n transition: all .15s ease-out;\n}\n@media (hover: hover) {\n .webchat-fluent .SuggestedAction_suggested-action:not([aria-disabled=true]):hover {\n background-color: var(--webchat-colorBrandBackground2Hover);\n color: var(--webchat-colorBrandForeground2Hover);\n }\n}\n.webchat-fluent .SuggestedAction_suggested-action:not([aria-disabled=true]):active {\n background-color: var(--webchat-colorBrandBackground2Pressed);\n color: var(--webchat-colorBrandForeground2Pressed);\n}\n.webchat-fluent .SuggestedAction_suggested-action[aria-disabled=true] {\n color: var(--webchat-colorNeutralForegroundDisabled);\n cursor: not-allowed;\n}\n.webchat-fluent .SuggestedAction_suggested-action__image {\n font-size: 12px;\n height: 1em;\n width: 1em;\n}\n\n/* src/components/suggestedActions/index.module.css */\n.webchat-fluent .suggestedActions_suggested-actions {\n align-items: flex-end;\n align-self: flex-end;\n display: flex;\n flex-direction: column;\n gap: 8px;\n}\n.webchat-fluent .suggestedActions_suggested-actions:not(:empty) {\n padding-block-end: 8px;\n padding-inline-start: 4px;\n}\n.webchat-fluent .suggestedActions_suggested-actions.suggestedActions_suggested-actions--flow {\n flex-direction: row;\n flex-wrap: wrap;\n justify-content: flex-end;\n}\n.webchat-fluent .suggestedActions_suggested-actions.suggestedActions_suggested-actions--stacked {\n flex-direction: column;\n}\n\n/* src/components/sendbox/Toolbar.module.css */\n.webchat-fluent .Toolbar_sendbox__toolbar {\n display: flex;\n gap: 4px;\n margin-inline-start: auto;\n}\n.webchat-fluent .Toolbar_sendbox__toolbar-button {\n align-items: center;\n appearance: none;\n aspect-ratio: 1;\n background: transparent;\n border-radius: var(--webchat-borderRadiusSmall);\n border: none;\n color: currentColor;\n cursor: pointer;\n display: flex;\n justify-content: center;\n padding: 3px;\n width: 32px;\n}\n.webchat-fluent .Toolbar_sendbox__toolbar-button > svg {\n font-size: 20px;\n pointer-events: none;\n}\n.webchat-fluent .Toolbar_sendbox__toolbar-button.Toolbar_sendbox__toolbar-button--selected {\n color: var(--webchat-colorNeutralForeground2BrandSelected);\n}\n@media (hover: hover) {\n .webchat-fluent .Toolbar_sendbox__toolbar-button:not([aria-disabled=true]):hover {\n color: var(--webchat-colorNeutralForeground2BrandHover);\n }\n}\n.webchat-fluent .Toolbar_sendbox__toolbar-button:not([aria-disabled=true]):active {\n color: var(--webchat-colorNeutralForeground2BrandPressed);\n}\n.webchat-fluent .Toolbar_sendbox__toolbar-button[aria-disabled=true] {\n color: var(--webchat-colorNeutralForegroundDisabled);\n cursor: not-allowed;\n}\n.webchat-fluent .Toolbar_sendbox__toolbar-separator {\n align-self: center;\n border-inline-end: 1px solid var(--webchat-colorNeutralStroke2);\n height: 28px;\n}\n.webchat-fluent .Toolbar_sendbox__toolbar-separator:is(:first-child, :last-child, :only-child) {\n display: none;\n}\n\n/* src/components/sendbox/AddAttachmentButton.module.css */\n.webchat-fluent .AddAttachmentButton_sendbox__add-attachment {\n display: grid;\n}\n.webchat-fluent .AddAttachmentButton_sendbox__add-attachment-input {\n font-size: 0;\n height: 0;\n opacity: 0;\n width: 0;\n}\n\n/* src/components/sendbox/Attachments.module.css */\n.webchat-fluent .Attachments_sendbox__attachment {\n border-radius: var(--webchat-borderRadiusLarge);\n border: 1px solid var(--webchat-colorNeutralStroke1);\n cursor: default;\n padding: 6px 8px;\n width: fit-content;\n}\n\n/* src/components/sendbox/ErrorMessage.module.css */\n.webchat-fluent .ErrorMessage_sendbox__error-message {\n color: transparent;\n font-size: 0;\n height: 0;\n left: 0;\n position: absolute;\n top: 0;\n width: 0;\n}\n\n/* src/components/sendbox/TextArea.module.css */\n.webchat-fluent .TextArea_sendbox__text-area {\n display: grid;\n grid-template-areas: \"main\";\n max-height: 200px;\n overflow: hidden;\n}\n.webchat-fluent .TextArea_sendbox__text-area--hidden {\n height: 0;\n visibility: collapse;\n}\n.webchat-fluent .TextArea_sendbox__text-area-shared {\n border: none;\n font: inherit;\n grid-area: main;\n outline: inherit;\n overflow-wrap: anywhere;\n resize: inherit;\n scrollbar-gutter: stable;\n}\n.webchat-fluent .TextArea_sendbox__text-area-doppelganger {\n overflow: hidden;\n visibility: hidden;\n white-space: pre-wrap;\n}\n.webchat-fluent .TextArea_sendbox__text-area-input {\n background-color: inherit;\n color: currentColor;\n height: 100%;\n padding: 0;\n}\n.webchat-fluent .TextArea_sendbox__text-area-input--scroll {\n scrollbar-color: unset;\n scrollbar-width: unset;\n -moz-scrollbar-color: var(--webchat-colorNeutralBackground5) var(--webchat-colorNeutralForeground2);\n -moz-scrollbar-width: thin;\n}\n.webchat-fluent .TextArea_sendbox__text-area-input--scroll::-webkit-scrollbar {\n width: 8px;\n}\n.webchat-fluent .TextArea_sendbox__text-area-input--scroll::-webkit-scrollbar-track {\n background-color: var(--webchat-colorNeutralBackground5);\n border-radius: 16px;\n}\n.webchat-fluent .TextArea_sendbox__text-area-input--scroll::-webkit-scrollbar-thumb {\n background-color: var(--webchat-colorNeutralForeground2);\n border-radius: 16px;\n}\n.webchat-fluent .TextArea_sendbox__text-area-input--scroll::-webkit-scrollbar-corner {\n background-color: var(--webchat-colorNeutralBackground5);\n}\n\n/* src/components/sendbox/index.module.css */\n.webchat-fluent .sendbox_sendbox {\n color: var(--webchat-colorNeutralForeground1);\n font-family: var(--webchat-fontFamilyBase);\n padding: 0 10px 10px;\n text-rendering: optimizeLegibility;\n --webchat-sendbox-attachment-area-active: ;\n}\n.webchat-fluent .sendbox_sendbox__sendbox {\n background-color: var(--webchat-colorNeutralBackground1);\n border-radius: var(--webchat-borderRadiusLarge);\n border: 1px solid var(--webchat-colorNeutralStroke1);\n display: grid;\n font-family: var(--webchat-fontFamilyBase);\n font-size: 14px;\n gap: 6px;\n grid-template: [telephone-keypad-start] \"text-area\" [telephone-keypad-end] var(--webchat-sendbox-attachment-area-active) \"controls\" / [telephone-keypad] 1fr;\n line-height: 20px;\n padding: 8px;\n position: relative;\n}\n.webchat-fluent .sendbox_sendbox__sendbox:has(.sendbox_sendbox__attachment--in-grid) {\n --webchat-sendbox-attachment-area-active: \"attachment\" ;\n}\n.webchat-fluent .sendbox_sendbox__sendbox:focus-within {\n border-color: var(--webchat-colorNeutralStroke1Selected);\n box-shadow: inset 0 -6px 0 -3px var(--webchat-colorCompoundBrandForeground1Hover);\n}\n.webchat-fluent .sendbox_sendbox__sendbox > .sendbox_sendbox__text-area--in-grid {\n grid-area: text-area;\n}\n.webchat-fluent .sendbox_sendbox__sendbox > .sendbox_sendbox__attachment--in-grid {\n grid-area: attachment;\n}\n.webchat-fluent .sendbox_sendbox__sendbox > .sendbox_sendbox__sendbox-controls--in-grid {\n grid-area: controls;\n}\n.webchat-fluent .sendbox_sendbox__sendbox > .sendbox_sendbox__telephone-keypad--in-grid {\n grid-area: telephone-keypad;\n}\n.webchat-fluent .sendbox_sendbox__sendbox-text {\n background-color: transparent;\n border: none;\n flex: auto;\n font-family: var(--webchat-fontFamilyBase);\n font-size: 14px;\n line-height: 20px;\n outline: none;\n padding: 4px 4px 0;\n resize: none;\n}\n.webchat-fluent .sendbox_sendbox__sendbox-controls {\n align-items: center;\n display: flex;\n padding-inline-start: 4px;\n}\n.webchat-fluent .sendbox_sendbox__text-counter {\n color: var(--webchat-colorNeutralForeground4);\n cursor: default;\n font-family: var(--webchat-fontFamilyNumeric);\n font-size: 10px;\n line-height: 14px;\n margin-inline-end: 4px;\n}\n.webchat-fluent .sendbox_sendbox__text-counter--error {\n color: var(--webchat-colorStatusDangerForeground1);\n}\n";
|
|
60
|
+
function injectStyles() {
|
|
61
|
+
if (globalThis.document) {
|
|
62
|
+
const style = document.createElement("style");
|
|
63
|
+
style.append(document.createTextNode(injectedStyles));
|
|
64
|
+
document.head.appendChild(style);
|
|
65
|
+
}
|
|
64
66
|
}
|
|
65
67
|
|
|
66
|
-
// src/styles/
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
return
|
|
68
|
+
// src/styles/useStyles.ts
|
|
69
|
+
import { useMemo as useMemo2 } from "react";
|
|
70
|
+
function useStyles(styles) {
|
|
71
|
+
return useMemo2(
|
|
70
72
|
() => Object.freeze(
|
|
71
|
-
Object.fromEntries(
|
|
73
|
+
Object.fromEntries(
|
|
74
|
+
Object.entries(styles).map(([baseClassName, resultClassName]) => [
|
|
75
|
+
baseClassName,
|
|
76
|
+
`${baseClassName} ${resultClassName}`
|
|
77
|
+
])
|
|
78
|
+
)
|
|
72
79
|
),
|
|
73
|
-
[
|
|
80
|
+
[styles]
|
|
74
81
|
);
|
|
75
82
|
}
|
|
83
|
+
var useStyles_default = useStyles;
|
|
76
84
|
|
|
77
85
|
// src/components/telephoneKeypad/private/Button.tsx
|
|
78
|
-
import React2, { forwardRef, memo as memo2, useCallback } from "react";
|
|
79
|
-
import { useRefFrom } from "use-ref-from";
|
|
80
|
-
var styles = {
|
|
81
|
-
"webchat__telephone-keypad__button": {
|
|
82
|
-
"-webkit-user-select": "none",
|
|
83
|
-
alignItems: "center",
|
|
84
|
-
appearance: "none",
|
|
85
|
-
// backgroundColor: isDarkTheme() || isHighContrastTheme() ? black : white,
|
|
86
|
-
backgroundColor: "White",
|
|
87
|
-
borderRadius: "100%",
|
|
88
|
-
// Whitelabel styles
|
|
89
|
-
// border: `solid 1px ${isHighContrastTheme() ? white : isDarkTheme() ? gray160 : gray40}`,
|
|
90
|
-
// color: 'inherit',
|
|
91
|
-
border: "solid 1px var(--webchat-colorNeutralStroke1)",
|
|
92
|
-
color: "var(--webchat-colorGray200)",
|
|
93
|
-
fontWeight: "var(--webchat-fontWeightSemibold)",
|
|
94
|
-
cursor: "pointer",
|
|
95
|
-
display: "flex",
|
|
96
|
-
flexDirection: "column",
|
|
97
|
-
height: 60,
|
|
98
|
-
opacity: 0.7,
|
|
99
|
-
padding: 0,
|
|
100
|
-
position: "relative",
|
|
101
|
-
touchAction: "none",
|
|
102
|
-
userSelect: "none",
|
|
103
|
-
width: 60,
|
|
104
|
-
"&:hover": {
|
|
105
|
-
// backgroundColor: isHighContrastTheme() ? gray210 : isDarkTheme() ? gray150 : gray30
|
|
106
|
-
backgroundColor: "var(--webchat-colorGray30)"
|
|
107
|
-
}
|
|
108
|
-
},
|
|
109
|
-
"webchat__telephone-keypad__button__ruby": {
|
|
110
|
-
// color: isHighContrastTheme() ? white : isDarkTheme() ? gray40 : gray160,
|
|
111
|
-
color: "var(--webchat-colorGray190)",
|
|
112
|
-
fontSize: 10
|
|
113
|
-
},
|
|
114
|
-
"webchat__telephone-keypad__button__text": {
|
|
115
|
-
fontSize: 24,
|
|
116
|
-
marginTop: 8
|
|
117
|
-
},
|
|
118
|
-
"webchat__telephone-keypad--horizontal": {
|
|
119
|
-
"& .webchat__telephone-keypad__button": {
|
|
120
|
-
height: 32,
|
|
121
|
-
width: 32,
|
|
122
|
-
margin: "8px 4px",
|
|
123
|
-
justifyContent: "center"
|
|
124
|
-
},
|
|
125
|
-
"webchat__telephone-keypad__button__ruby": {
|
|
126
|
-
display: "none"
|
|
127
|
-
},
|
|
128
|
-
"& .webchat__telephone-keypad__button__text": {
|
|
129
|
-
fontSize: 20,
|
|
130
|
-
marginTop: 0
|
|
131
|
-
}
|
|
132
|
-
}
|
|
133
|
-
};
|
|
134
86
|
var Button = memo2(
|
|
135
87
|
// As we are all TypeScript, internal components do not need propTypes.
|
|
136
88
|
// eslint-disable-next-line react/prop-types
|
|
137
89
|
forwardRef(({ button, "data-testid": dataTestId, onClick, ruby }, ref) => {
|
|
138
|
-
const classNames =
|
|
90
|
+
const classNames = useStyles_default(Button_default);
|
|
139
91
|
const onClickRef = useRefFrom(onClick);
|
|
140
92
|
const handleClick = useCallback(() => onClickRef.current?.(), [onClickRef]);
|
|
141
93
|
return /* @__PURE__ */ React2.createElement(
|
|
142
94
|
"button",
|
|
143
95
|
{
|
|
144
|
-
className: classNames["
|
|
96
|
+
className: classNames["telephone-keypad__button"],
|
|
145
97
|
"data-testid": dataTestId,
|
|
146
98
|
onClick: handleClick,
|
|
147
99
|
ref,
|
|
148
100
|
type: "button"
|
|
149
101
|
},
|
|
150
|
-
/* @__PURE__ */ React2.createElement("span", { className: classNames["
|
|
151
|
-
!!ruby && /* @__PURE__ */ React2.createElement("ruby", { className: classNames["
|
|
102
|
+
/* @__PURE__ */ React2.createElement("span", { className: classNames["telephone-keypad__button__text"] }, button === "star" ? "\u2217" : button === "pound" ? "#" : button),
|
|
103
|
+
!!ruby && /* @__PURE__ */ React2.createElement("ruby", { className: classNames["telephone-keypad__button__ruby"] }, ruby)
|
|
152
104
|
);
|
|
153
105
|
})
|
|
154
106
|
);
|
|
155
107
|
Button.displayName = "TelephoneKeypad.Button";
|
|
156
|
-
var
|
|
108
|
+
var Button_default2 = Button;
|
|
157
109
|
|
|
158
110
|
// src/testIds.ts
|
|
159
111
|
var testIds = {
|
|
@@ -178,55 +130,56 @@ var testIds = {
|
|
|
178
130
|
var testIds_default = testIds;
|
|
179
131
|
|
|
180
132
|
// src/components/telephoneKeypad/useShown.ts
|
|
181
|
-
import { useContext, useMemo as
|
|
133
|
+
import { useContext, useMemo as useMemo3 } from "react";
|
|
182
134
|
function useShown() {
|
|
183
135
|
const { setShown, shown } = useContext(Context_default);
|
|
184
|
-
return
|
|
136
|
+
return useMemo3(() => Object.freeze([shown, setShown]), [shown, setShown]);
|
|
185
137
|
}
|
|
186
138
|
|
|
187
|
-
// src/components/telephoneKeypad/private/TelephoneKeypad.
|
|
188
|
-
var
|
|
189
|
-
"
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
// boxShadow: '-3px 0px 7px 0px rgba(0, 0, 0, 0.13), -0.6px 0px 1.8px 0px rgba(0, 0, 0, 0.10)',
|
|
194
|
-
alignItems: "center",
|
|
195
|
-
background: "var(--webchat-colorNeutralBackground1)",
|
|
196
|
-
// border: isHighContrastTheme() ? `1px solid ${white}` : 'none',
|
|
197
|
-
border: "none",
|
|
198
|
-
borderRadius: "var(--webchat-borderRadiusXLarge)",
|
|
199
|
-
// boxShadow: 'var(--shadow16)',
|
|
200
|
-
display: "flex",
|
|
201
|
-
flexDirection: "column",
|
|
202
|
-
fontFamily: "var(--webchat-fontFamilyBase)",
|
|
203
|
-
justifyContent: "center"
|
|
204
|
-
// margin: 'var(--spacingHorizontalMNudge)'
|
|
205
|
-
},
|
|
206
|
-
"webchat__telephone-keypad__box": {
|
|
207
|
-
boxSizing: "border-box",
|
|
208
|
-
display: "grid",
|
|
209
|
-
gap: "16px",
|
|
210
|
-
gridTemplateColumns: "repeat(3, 1fr)",
|
|
211
|
-
gridTemplateRows: "repeat(4, 1fr)",
|
|
212
|
-
justifyItems: "center",
|
|
213
|
-
padding: "16px",
|
|
214
|
-
width: "100%"
|
|
215
|
-
}
|
|
139
|
+
// src/components/telephoneKeypad/private/TelephoneKeypad.module.css
|
|
140
|
+
var TelephoneKeypad_default = {
|
|
141
|
+
"telephone-keypad": "TelephoneKeypad_telephone-keypad",
|
|
142
|
+
"telephone-keypad__box": "TelephoneKeypad_telephone-keypad__box",
|
|
143
|
+
"telephone-keypad__info-message": "TelephoneKeypad_telephone-keypad__info-message",
|
|
144
|
+
"telephone-keypad__info-message-link": "TelephoneKeypad_telephone-keypad__info-message-link"
|
|
216
145
|
};
|
|
217
|
-
|
|
146
|
+
|
|
147
|
+
// src/icons/InfoSmallIcon.tsx
|
|
148
|
+
import React3, { memo as memo3 } from "react";
|
|
149
|
+
var InfoSmallIcon_default = memo3((props) => /* @__PURE__ */ React3.createElement(
|
|
150
|
+
"svg",
|
|
151
|
+
{
|
|
152
|
+
"aria-hidden": "true",
|
|
153
|
+
className: props.className,
|
|
154
|
+
height: "1em",
|
|
155
|
+
viewBox: "0 0 16 16",
|
|
156
|
+
width: "1em",
|
|
157
|
+
xmlns: "http://www.w3.org/2000/svg"
|
|
158
|
+
},
|
|
159
|
+
/* @__PURE__ */ React3.createElement(
|
|
160
|
+
"path",
|
|
161
|
+
{
|
|
162
|
+
d: "M8.5 7.5a.5.5 0 1 0-1 0v3a.5.5 0 0 0 1 0v-3Zm.25-2a.75.75 0 1 1-1.5 0 .75.75 0 0 1 1.5 0ZM8 1a7 7 0 1 0 0 14A7 7 0 0 0 8 1ZM2 8a6 6 0 1 1 12 0A6 6 0 0 1 2 8Z",
|
|
163
|
+
fill: "currentColor"
|
|
164
|
+
}
|
|
165
|
+
)
|
|
166
|
+
));
|
|
167
|
+
|
|
168
|
+
// src/components/telephoneKeypad/private/TelephoneKeypad.tsx
|
|
169
|
+
var { LocalizedString } = Components;
|
|
170
|
+
var Orientation = memo4(
|
|
218
171
|
({ children, isHorizontal }) => {
|
|
219
|
-
const classNames =
|
|
172
|
+
const classNames = useStyles_default(TelephoneKeypad_default);
|
|
220
173
|
return isHorizontal ? (
|
|
221
174
|
// <HorizontalDialPadController>{children}</HorizontalDialPadController>
|
|
222
175
|
false
|
|
223
|
-
) : /* @__PURE__ */
|
|
176
|
+
) : /* @__PURE__ */ React4.createElement("div", { className: classNames["telephone-keypad__box"] }, children);
|
|
224
177
|
}
|
|
225
178
|
);
|
|
226
179
|
Orientation.displayName = "TelephoneKeypad:Orientation";
|
|
227
|
-
var TelephoneKeypad =
|
|
180
|
+
var TelephoneKeypad = memo4(({ autoFocus, className, onButtonClick, isHorizontal }) => {
|
|
228
181
|
const autoFocusRef = useRefFrom2(autoFocus);
|
|
229
|
-
const classNames =
|
|
182
|
+
const classNames = useStyles_default(TelephoneKeypad_default);
|
|
230
183
|
const firstButtonRef = useRef(null);
|
|
231
184
|
const onButtonClickRef = useRefFrom2(onButtonClick);
|
|
232
185
|
const [, setShown] = useShown();
|
|
@@ -253,169 +206,137 @@ var TelephoneKeypad = memo3(({ autoFocus, onButtonClick, isHorizontal }) => {
|
|
|
253
206
|
useEffect(() => {
|
|
254
207
|
autoFocusRef.current && firstButtonRef.current?.focus();
|
|
255
208
|
}, [autoFocusRef, firstButtonRef]);
|
|
256
|
-
return /* @__PURE__ */
|
|
257
|
-
|
|
209
|
+
return /* @__PURE__ */ React4.createElement("div", { className: cx(classNames["telephone-keypad"], className), onKeyDown: handleKeyDown }, /* @__PURE__ */ React4.createElement(Orientation, { isHorizontal }, /* @__PURE__ */ React4.createElement(
|
|
210
|
+
Button_default2,
|
|
258
211
|
{
|
|
259
212
|
button: "1",
|
|
260
213
|
"data-testid": testIds_default.sendBoxTelephoneKeypadButton1,
|
|
261
214
|
onClick: handleButton1Click,
|
|
262
215
|
ref: firstButtonRef
|
|
263
216
|
}
|
|
264
|
-
), /* @__PURE__ */
|
|
265
|
-
|
|
217
|
+
), /* @__PURE__ */ React4.createElement(
|
|
218
|
+
Button_default2,
|
|
266
219
|
{
|
|
267
220
|
button: "2",
|
|
268
221
|
"data-testid": testIds_default.sendBoxTelephoneKeypadButton2,
|
|
269
222
|
onClick: handleButton2Click,
|
|
270
223
|
ruby: "ABC"
|
|
271
224
|
}
|
|
272
|
-
), /* @__PURE__ */
|
|
273
|
-
|
|
225
|
+
), /* @__PURE__ */ React4.createElement(
|
|
226
|
+
Button_default2,
|
|
274
227
|
{
|
|
275
228
|
button: "3",
|
|
276
229
|
"data-testid": testIds_default.sendBoxTelephoneKeypadButton3,
|
|
277
230
|
onClick: handleButton3Click,
|
|
278
231
|
ruby: "DEF"
|
|
279
232
|
}
|
|
280
|
-
), /* @__PURE__ */
|
|
281
|
-
|
|
233
|
+
), /* @__PURE__ */ React4.createElement(
|
|
234
|
+
Button_default2,
|
|
282
235
|
{
|
|
283
236
|
button: "4",
|
|
284
237
|
"data-testid": testIds_default.sendBoxTelephoneKeypadButton4,
|
|
285
238
|
onClick: handleButton4Click,
|
|
286
239
|
ruby: "GHI"
|
|
287
240
|
}
|
|
288
|
-
), /* @__PURE__ */
|
|
289
|
-
|
|
241
|
+
), /* @__PURE__ */ React4.createElement(
|
|
242
|
+
Button_default2,
|
|
290
243
|
{
|
|
291
244
|
button: "5",
|
|
292
245
|
"data-testid": testIds_default.sendBoxTelephoneKeypadButton5,
|
|
293
246
|
onClick: handleButton5Click,
|
|
294
247
|
ruby: "JKL"
|
|
295
248
|
}
|
|
296
|
-
), /* @__PURE__ */
|
|
297
|
-
|
|
249
|
+
), /* @__PURE__ */ React4.createElement(
|
|
250
|
+
Button_default2,
|
|
298
251
|
{
|
|
299
252
|
button: "6",
|
|
300
253
|
"data-testid": testIds_default.sendBoxTelephoneKeypadButton6,
|
|
301
254
|
onClick: handleButton6Click,
|
|
302
255
|
ruby: "MNO"
|
|
303
256
|
}
|
|
304
|
-
), /* @__PURE__ */
|
|
305
|
-
|
|
257
|
+
), /* @__PURE__ */ React4.createElement(
|
|
258
|
+
Button_default2,
|
|
306
259
|
{
|
|
307
260
|
button: "7",
|
|
308
261
|
"data-testid": testIds_default.sendBoxTelephoneKeypadButton7,
|
|
309
262
|
onClick: handleButton7Click,
|
|
310
263
|
ruby: "PQRS"
|
|
311
264
|
}
|
|
312
|
-
), /* @__PURE__ */
|
|
313
|
-
|
|
265
|
+
), /* @__PURE__ */ React4.createElement(
|
|
266
|
+
Button_default2,
|
|
314
267
|
{
|
|
315
268
|
button: "8",
|
|
316
269
|
"data-testid": testIds_default.sendBoxTelephoneKeypadButton8,
|
|
317
270
|
onClick: handleButton8Click,
|
|
318
271
|
ruby: "TUV"
|
|
319
272
|
}
|
|
320
|
-
), /* @__PURE__ */
|
|
321
|
-
|
|
273
|
+
), /* @__PURE__ */ React4.createElement(
|
|
274
|
+
Button_default2,
|
|
322
275
|
{
|
|
323
276
|
button: "9",
|
|
324
277
|
"data-testid": testIds_default.sendBoxTelephoneKeypadButton9,
|
|
325
278
|
onClick: handleButton9Click,
|
|
326
279
|
ruby: "WXYZ"
|
|
327
280
|
}
|
|
328
|
-
), /* @__PURE__ */
|
|
329
|
-
|
|
281
|
+
), /* @__PURE__ */ React4.createElement(Button_default2, { button: "star", "data-testid": testIds_default.sendBoxTelephoneKeypadButtonStar, onClick: handleButtonStarClick }), /* @__PURE__ */ React4.createElement(Button_default2, { button: "0", "data-testid": testIds_default.sendBoxTelephoneKeypadButton0, onClick: handleButton0Click, ruby: "+" }), /* @__PURE__ */ React4.createElement(
|
|
282
|
+
Button_default2,
|
|
330
283
|
{
|
|
331
284
|
button: "pound",
|
|
332
285
|
"data-testid": testIds_default.sendBoxTelephoneKeypadButtonPound,
|
|
333
286
|
onClick: handleButtonPoundClick
|
|
334
287
|
}
|
|
288
|
+
)), /* @__PURE__ */ React4.createElement("div", { className: classNames["telephone-keypad__info-message"] }, /* @__PURE__ */ React4.createElement(InfoSmallIcon_default, null), /* @__PURE__ */ React4.createElement(
|
|
289
|
+
LocalizedString,
|
|
290
|
+
{
|
|
291
|
+
linkClassName: classNames["telephone-keypad__info-message-link"],
|
|
292
|
+
stringIds: "TELEPHONE_KEYPAD_INPUT_MESSAGE"
|
|
293
|
+
}
|
|
335
294
|
)));
|
|
336
295
|
});
|
|
337
296
|
TelephoneKeypad.displayName = "TelephoneKeypad";
|
|
338
|
-
var
|
|
297
|
+
var TelephoneKeypad_default2 = TelephoneKeypad;
|
|
339
298
|
|
|
340
299
|
// src/components/telephoneKeypad/Surrogate.tsx
|
|
341
|
-
var TelephoneKeypadSurrogate =
|
|
300
|
+
var TelephoneKeypadSurrogate = memo5((props) => useShown()[0] ? /* @__PURE__ */ React5.createElement(TelephoneKeypad_default2, { ...props }) : false);
|
|
342
301
|
TelephoneKeypadSurrogate.displayName = "TelephoneKeypad.Surrogate";
|
|
343
302
|
var Surrogate_default = TelephoneKeypadSurrogate;
|
|
344
303
|
|
|
345
304
|
// src/components/Theme.tsx
|
|
346
|
-
import
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
"--webchat-colorNeutralForeground4": "var(--colorNeutralForeground4, #707070)",
|
|
353
|
-
"--webchat-colorNeutralForegroundDisabled": "var(--colorNeutralForegroundDisabled, #bdbdbd)",
|
|
354
|
-
"--webchat-colorNeutralBackground1": "var(--colorNeutralBackground1, #ffffff)",
|
|
355
|
-
"--webchat-colorNeutralBackground4": "var(--colorNeutralBackground4, #f0f0f0)",
|
|
356
|
-
"--webchat-colorNeutralBackground5": "var(--colorNeutralBackground5, #ebebeb)",
|
|
357
|
-
"--webchat-colorSubtleBackgroundHover": "var(--colorSubtleBackgroundHover, #f5f5f5)",
|
|
358
|
-
"--webchat-colorSubtleBackgroundPressed": "var(--colorSubtleBackgroundPressed, #e0e0e0)",
|
|
359
|
-
"--webchat-colorNeutralStroke1": "var(--colorNeutralStroke1, #d1d1d1)",
|
|
360
|
-
"--webchat-colorNeutralStroke2": "var(--colorNeutralStroke2, #e0e0e0)",
|
|
361
|
-
"--webchat-colorNeutralStroke1Selected": "var(--colorNeutralStroke1Selected, #bdbdbd)",
|
|
362
|
-
"--webchat-colorBrandStroke2": "var(--colorBrandStroke2, #9edcf7)",
|
|
363
|
-
"--webchat-colorBrandForeground2Hover": "var(--colorBrandForeground2Hover, #015a7a)",
|
|
364
|
-
"--webchat-colorBrandForeground2Pressed": "var(--colorBrandForeground2Pressed, #01384d)",
|
|
365
|
-
"--webchat-colorBrandBackground2Hover": "var(--colorBrandBackground2Hover, #bee7fa)",
|
|
366
|
-
"--webchat-colorBrandBackground2Pressed": "var(--colorBrandBackground2Pressed, #7fd2f5)",
|
|
367
|
-
"--webchat-colorCompoundBrandForeground1": "var(--colorCompoundBrandForeground1, #077fab)",
|
|
368
|
-
"--webchat-colorCompoundBrandForeground1Hover": "var(--colorCompoundBrandForeground1Hover, #02729c)",
|
|
369
|
-
"--webchat-colorCompoundBrandForeground1Pressed": "var(--colorCompoundBrandForeground1Pressed, #01678c)",
|
|
370
|
-
"--webchat-colorStatusDangerForeground1": "var(--colorStatusDangerForeground1, #b10e1c)",
|
|
371
|
-
// https://github.com/microsoft/fluentui/blob/master/packages/theme/src/colors/FluentColors.ts
|
|
372
|
-
"--webchat-colorGray30": "var(--colorGray30, #edebe9)",
|
|
373
|
-
"--webchat-colorGray160": "var(--colorGray160, #323130)",
|
|
374
|
-
"--webchat-colorGray190": "var(--colorGray190, #201f1e)",
|
|
375
|
-
"--webchat-colorGray200": "var(--colorGray200, #1b1a19)",
|
|
376
|
-
// https://github.com/microsoft/fluentui/blob/master/packages/tokens/src/global/borderRadius.ts
|
|
377
|
-
"--webchat-borderRadiusSmall": "var(--borderRadiusSmall, 2px)",
|
|
378
|
-
"--webchat-borderRadiusLarge": "var(--borderRadiusLarge, 6px)",
|
|
379
|
-
"--webchat-borderRadiusXLarge": "var(--borderRadiusXLarge, 8px)",
|
|
380
|
-
// https://github.com/microsoft/fluentui/blob/master/packages/tokens/src/utils/shadows.ts
|
|
381
|
-
"--webchat-shadow16": "var(--shadow16, 0 6.4px 14.4px 0 rgba(0, 0, 0, 0.132), 0 1.2px 3.6px 0 rgba(0, 0, 0, 0.108))",
|
|
382
|
-
// https://github.com/microsoft/fluentui/blob/master/packages/tokens/src/global/spacings.ts
|
|
383
|
-
"--webchat-spacingHorizontalMNudge": "var(--spacingHorizontalMNudge, 10px)",
|
|
384
|
-
// https://github.com/microsoft/fluentui/blob/master/packages/tokens/src/global/fonts.ts
|
|
385
|
-
"--webchat-fontFamilyBase": `var(--fontFamilyBase, 'Segoe UI)', 'Segoe UI Web (West European))', -apple-system,
|
|
386
|
-
BlinkMacSystemFont, Roboto, 'Helvetica Neue)', sans-serif)`,
|
|
387
|
-
"--webchat-fontFamilyNumeric": `var(--fontFamilyNumeric, Bahnschrift, 'Segoe UI)', 'Segoe UI Web (West European))',
|
|
388
|
-
-apple-system, BlinkMacSystemFont, Roboto, 'Helvetica Neue)', sans-serif)`,
|
|
389
|
-
// https://github.com/microsoft/fluentui/blob/master/packages/tokens/src/global/fonts.ts
|
|
390
|
-
"--webchat-fontWeightSemibold": "var(--fontWeightSemibold, 600)"
|
|
391
|
-
}
|
|
305
|
+
import React6 from "react";
|
|
306
|
+
import cx2 from "classnames";
|
|
307
|
+
|
|
308
|
+
// src/components/Theme.module.css
|
|
309
|
+
var Theme_default = {
|
|
310
|
+
theme: "Theme_theme"
|
|
392
311
|
};
|
|
312
|
+
|
|
313
|
+
// src/components/Theme.tsx
|
|
314
|
+
var rootClassName = "webchat-fluent";
|
|
393
315
|
function WebchatTheme(props) {
|
|
394
|
-
const classNames =
|
|
395
|
-
return /* @__PURE__ */
|
|
316
|
+
const classNames = useStyles_default(Theme_default);
|
|
317
|
+
return /* @__PURE__ */ React6.createElement("div", { className: cx2(rootClassName, classNames["theme"]) }, props.children);
|
|
396
318
|
}
|
|
397
319
|
|
|
398
320
|
// src/components/sendbox/index.tsx
|
|
399
321
|
import { hooks as hooks8 } from "botframework-webchat-component";
|
|
400
|
-
import
|
|
401
|
-
import
|
|
322
|
+
import cx9 from "classnames";
|
|
323
|
+
import React21, { memo as memo15, useCallback as useCallback8, useRef as useRef6, useState as useState3 } from "react";
|
|
402
324
|
import { useRefFrom as useRefFrom6 } from "use-ref-from";
|
|
403
325
|
|
|
404
326
|
// src/icons/SendIcon.tsx
|
|
405
|
-
import
|
|
327
|
+
import React7 from "react";
|
|
406
328
|
function SendIcon(props) {
|
|
407
|
-
return /* @__PURE__ */
|
|
329
|
+
return /* @__PURE__ */ React7.createElement(
|
|
408
330
|
"svg",
|
|
409
331
|
{
|
|
410
332
|
"aria-hidden": "true",
|
|
411
333
|
className: props.className,
|
|
412
|
-
fill: "currentColor",
|
|
413
334
|
height: "1em",
|
|
414
335
|
viewBox: "0 0 20 20",
|
|
415
336
|
width: "1em",
|
|
416
337
|
xmlns: "http://www.w3.org/2000/svg"
|
|
417
338
|
},
|
|
418
|
-
/* @__PURE__ */
|
|
339
|
+
/* @__PURE__ */ React7.createElement(
|
|
419
340
|
"path",
|
|
420
341
|
{
|
|
421
342
|
d: "M2.18 2.11a.5.5 0 0 1 .54-.06l15 7.5a.5.5 0 0 1 0 .9l-15 7.5a.5.5 0 0 1-.7-.58L3.98 10 2.02 2.63a.5.5 0 0 1 .16-.52Zm2.7 8.39-1.61 6.06L16.38 10 3.27 3.44 4.88 9.5h6.62a.5.5 0 1 1 0 1H4.88Z",
|
|
@@ -426,26 +347,25 @@ function SendIcon(props) {
|
|
|
426
347
|
}
|
|
427
348
|
|
|
428
349
|
// src/components/dropZone/index.tsx
|
|
429
|
-
import { hooks } from "botframework-webchat-
|
|
430
|
-
import
|
|
431
|
-
import
|
|
350
|
+
import { hooks } from "botframework-webchat-component";
|
|
351
|
+
import cx3 from "classnames";
|
|
352
|
+
import React9, { memo as memo6, useCallback as useCallback3, useEffect as useEffect2, useRef as useRef2, useState as useState2 } from "react";
|
|
432
353
|
import { useRefFrom as useRefFrom3 } from "use-ref-from";
|
|
433
354
|
|
|
434
355
|
// src/icons/AddDocumentIcon.tsx
|
|
435
|
-
import
|
|
356
|
+
import React8 from "react";
|
|
436
357
|
function AddDocumentIcon(props) {
|
|
437
|
-
return /* @__PURE__ */
|
|
358
|
+
return /* @__PURE__ */ React8.createElement(
|
|
438
359
|
"svg",
|
|
439
360
|
{
|
|
440
361
|
"aria-hidden": "true",
|
|
441
362
|
className: props.className,
|
|
442
|
-
fill: "currentColor",
|
|
443
363
|
height: "1em",
|
|
444
364
|
viewBox: "0 0 20 20",
|
|
445
365
|
width: "1em",
|
|
446
366
|
xmlns: "http://www.w3.org/2000/svg"
|
|
447
367
|
},
|
|
448
|
-
/* @__PURE__ */
|
|
368
|
+
/* @__PURE__ */ React8.createElement(
|
|
449
369
|
"path",
|
|
450
370
|
{
|
|
451
371
|
d: "M6 2a2 2 0 0 0-2 2v5.2c.32-.08.66-.15 1-.18V4a1 1 0 0 1 1-1h4v3.5c0 .83.67 1.5 1.5 1.5H15v8a1 1 0 0 1-1 1h-3.6c-.18.36-.4.7-.66 1H14a2 2 0 0 0 2-2V7.41c0-.4-.16-.78-.44-1.06l-3.91-3.91A1.5 1.5 0 0 0 10.59 2H6Zm8.8 5h-3.3a.5.5 0 0 1-.5-.5V3.2L14.8 7ZM10 14.5a4.5 4.5 0 1 1-9 0 4.5 4.5 0 0 1 9 0Zm-4-2a.5.5 0 0 0-1 0V14H3.5a.5.5 0 0 0 0 1H5v1.5a.5.5 0 0 0 1 0V15h1.5a.5.5 0 0 0 0-1H6v-1.5Z",
|
|
@@ -455,31 +375,15 @@ function AddDocumentIcon(props) {
|
|
|
455
375
|
);
|
|
456
376
|
}
|
|
457
377
|
|
|
378
|
+
// src/components/dropZone/index.module.css
|
|
379
|
+
var dropZone_default = {
|
|
380
|
+
"sendbox__attachment-drop-zone": "dropZone_sendbox__attachment-drop-zone",
|
|
381
|
+
"sendbox__attachment-drop-zone--droppable": "dropZone_sendbox__attachment-drop-zone--droppable",
|
|
382
|
+
"sendbox__attachment-drop-zone-icon": "dropZone_sendbox__attachment-drop-zone-icon"
|
|
383
|
+
};
|
|
384
|
+
|
|
458
385
|
// src/components/dropZone/index.tsx
|
|
459
386
|
var { useLocalizer } = hooks;
|
|
460
|
-
var styles4 = {
|
|
461
|
-
"webchat-fluent__sendbox__attachment-drop-zone": {
|
|
462
|
-
backgroundColor: "var(--webchat-colorNeutralBackground4)",
|
|
463
|
-
borderRadius: "inherit",
|
|
464
|
-
cursor: "copy",
|
|
465
|
-
display: "grid",
|
|
466
|
-
gap: "8px",
|
|
467
|
-
inset: "0",
|
|
468
|
-
placeContent: "center",
|
|
469
|
-
placeItems: "center",
|
|
470
|
-
position: "absolute"
|
|
471
|
-
},
|
|
472
|
-
"webchat-fluent__sendbox__attachment-drop-zone--droppable": {
|
|
473
|
-
backgroundColor: "#e00",
|
|
474
|
-
color: "White"
|
|
475
|
-
},
|
|
476
|
-
"webchat-fluent__sendbox__attachment-drop-zone-icon": {
|
|
477
|
-
height: "36px",
|
|
478
|
-
// Set "pointer-events: none" to ignore dragging over the icon. Otherwise, when dragging over the icon, it would disable the "--droppable" modifier.
|
|
479
|
-
pointerEvents: "none",
|
|
480
|
-
width: "36px"
|
|
481
|
-
}
|
|
482
|
-
};
|
|
483
387
|
var handleDragOver = (event) => {
|
|
484
388
|
event.preventDefault();
|
|
485
389
|
};
|
|
@@ -496,7 +400,7 @@ function isDescendantOf(target, ancestor) {
|
|
|
496
400
|
}
|
|
497
401
|
var DropZone = (props) => {
|
|
498
402
|
const [dropZoneState, setDropZoneState] = useState2(false);
|
|
499
|
-
const classNames =
|
|
403
|
+
const classNames = useStyles_default(dropZone_default);
|
|
500
404
|
const dropZoneRef = useRef2(null);
|
|
501
405
|
const localize = useLocalizer();
|
|
502
406
|
const onFilesAddedRef = useRefFrom3(props.onFilesAdded);
|
|
@@ -529,45 +433,51 @@ var DropZone = (props) => {
|
|
|
529
433
|
},
|
|
530
434
|
[onFilesAddedRef, setDropZoneState]
|
|
531
435
|
);
|
|
532
|
-
return dropZoneState ? /* @__PURE__ */
|
|
436
|
+
return dropZoneState ? /* @__PURE__ */ React9.createElement(
|
|
533
437
|
"div",
|
|
534
438
|
{
|
|
535
|
-
className:
|
|
536
|
-
[classNames["
|
|
439
|
+
className: cx3(classNames["sendbox__attachment-drop-zone"], {
|
|
440
|
+
[classNames["sendbox__attachment-drop-zone--droppable"]]: dropZoneState === "droppable"
|
|
537
441
|
}),
|
|
538
442
|
"data-testid": testIds_default.sendBoxDropZone,
|
|
539
443
|
onDragOver: handleDragOver,
|
|
540
444
|
onDrop: handleDrop,
|
|
541
445
|
ref: dropZoneRef
|
|
542
446
|
},
|
|
543
|
-
/* @__PURE__ */
|
|
447
|
+
/* @__PURE__ */ React9.createElement(AddDocumentIcon, { className: classNames["sendbox__attachment-drop-zone-icon"] }),
|
|
544
448
|
localize("TEXT_INPUT_DROP_ZONE")
|
|
545
449
|
) : null;
|
|
546
450
|
};
|
|
547
451
|
DropZone.displayName = "DropZone";
|
|
548
|
-
var
|
|
452
|
+
var dropZone_default2 = memo6(DropZone);
|
|
549
453
|
|
|
550
454
|
// src/components/DropZone.tsx
|
|
551
|
-
var DropZone_default =
|
|
455
|
+
var DropZone_default = dropZone_default2;
|
|
552
456
|
|
|
553
457
|
// src/components/suggestedActions/index.tsx
|
|
554
458
|
import { hooks as hooks3 } from "botframework-webchat-component";
|
|
555
|
-
import
|
|
556
|
-
import
|
|
459
|
+
import cx5 from "classnames";
|
|
460
|
+
import React12, { memo as memo9 } from "react";
|
|
557
461
|
|
|
558
462
|
// src/components/suggestedActions/SuggestedAction.tsx
|
|
559
463
|
import { hooks as hooks2 } from "botframework-webchat-component";
|
|
560
|
-
import
|
|
561
|
-
import
|
|
464
|
+
import cx4 from "classnames";
|
|
465
|
+
import React11, { memo as memo8, useCallback as useCallback4, useRef as useRef4 } from "react";
|
|
466
|
+
|
|
467
|
+
// src/components/suggestedActions/SuggestedAction.module.css
|
|
468
|
+
var SuggestedAction_default = {
|
|
469
|
+
"suggested-action": "SuggestedAction_suggested-action",
|
|
470
|
+
"suggested-action__image": "SuggestedAction_suggested-action__image"
|
|
471
|
+
};
|
|
562
472
|
|
|
563
473
|
// src/components/suggestedActions/AccessibleButton.tsx
|
|
564
|
-
import
|
|
474
|
+
import React10, { forwardRef as forwardRef2, memo as memo7, useRef as useRef3 } from "react";
|
|
565
475
|
var preventDefaultHandler = (event) => event.preventDefault();
|
|
566
476
|
var AccessibleButton = forwardRef2(
|
|
567
477
|
({ "aria-hidden": ariaHidden, children, disabled, onClick, tabIndex, ...props }, forwardedRef) => {
|
|
568
478
|
const targetRef = useRef3(null);
|
|
569
479
|
const ref = forwardedRef || targetRef;
|
|
570
|
-
return /* @__PURE__ */
|
|
480
|
+
return /* @__PURE__ */ React10.createElement(
|
|
571
481
|
"button",
|
|
572
482
|
{
|
|
573
483
|
"aria-disabled": disabled ? "true" : "false",
|
|
@@ -586,42 +496,10 @@ var AccessibleButton = forwardRef2(
|
|
|
586
496
|
);
|
|
587
497
|
}
|
|
588
498
|
);
|
|
589
|
-
var AccessibleButton_default =
|
|
499
|
+
var AccessibleButton_default = memo7(AccessibleButton);
|
|
590
500
|
|
|
591
501
|
// src/components/suggestedActions/SuggestedAction.tsx
|
|
592
502
|
var { useDisabled, useFocus, usePerformCardAction, useScrollToEnd, useStyleSet, useSuggestedActions } = hooks2;
|
|
593
|
-
var styles5 = {
|
|
594
|
-
"webchat-fluent__suggested-action": {
|
|
595
|
-
alignItems: "center",
|
|
596
|
-
background: "transparent",
|
|
597
|
-
border: "1px solid var(--webchat-colorBrandStroke2)",
|
|
598
|
-
borderRadius: "8px",
|
|
599
|
-
cursor: "pointer",
|
|
600
|
-
display: "flex",
|
|
601
|
-
fontSize: "12px",
|
|
602
|
-
gap: "4px",
|
|
603
|
-
padding: "4px 8px 4px",
|
|
604
|
-
textAlign: "start",
|
|
605
|
-
transition: "all .15s ease-out",
|
|
606
|
-
"@media (hover: hover)": {
|
|
607
|
-
'&:not([aria-disabled="true"]):hover': {
|
|
608
|
-
backgroundColor: "var(--webchat-colorBrandBackground2Hover)",
|
|
609
|
-
color: "var(--webchat-colorBrandForeground2Hover)"
|
|
610
|
-
}
|
|
611
|
-
},
|
|
612
|
-
'&:not([aria-disabled="true"]):active': {
|
|
613
|
-
backgroundColor: "var(--webchat-colorBrandBackground2Pressed)",
|
|
614
|
-
color: "var(--webchat-colorBrandForeground2Pressed)"
|
|
615
|
-
},
|
|
616
|
-
'&[aria-disabled="true"]': {
|
|
617
|
-
color: "var(--webchat-colorNeutralForegroundDisabled)",
|
|
618
|
-
cursor: "not-allowed"
|
|
619
|
-
}
|
|
620
|
-
},
|
|
621
|
-
"webchat-fluent__suggested-action__image": {
|
|
622
|
-
height: "12px"
|
|
623
|
-
}
|
|
624
|
-
};
|
|
625
503
|
function SuggestedAction({
|
|
626
504
|
buttonText,
|
|
627
505
|
className,
|
|
@@ -638,7 +516,7 @@ function SuggestedAction({
|
|
|
638
516
|
const focus = useFocus();
|
|
639
517
|
const focusRef = useRef4(null);
|
|
640
518
|
const performCardAction = usePerformCardAction();
|
|
641
|
-
const classNames =
|
|
519
|
+
const classNames = useStyles_default(SuggestedAction_default);
|
|
642
520
|
const scrollToEnd = useScrollToEnd();
|
|
643
521
|
const handleClick = useCallback4(
|
|
644
522
|
({ target }) => {
|
|
@@ -651,24 +529,20 @@ function SuggestedAction({
|
|
|
651
529
|
},
|
|
652
530
|
[displayText, focus, performCardAction, scrollToEnd, setSuggestedActions, text, type, value]
|
|
653
531
|
);
|
|
654
|
-
return /* @__PURE__ */
|
|
532
|
+
return /* @__PURE__ */ React11.createElement(
|
|
655
533
|
AccessibleButton_default,
|
|
656
534
|
{
|
|
657
|
-
className:
|
|
658
|
-
classNames["webchat-fluent__suggested-action"],
|
|
659
|
-
suggestedActionStyleSet + "",
|
|
660
|
-
(className || "") + ""
|
|
661
|
-
),
|
|
535
|
+
className: cx4(classNames["suggested-action"], suggestedActionStyleSet + "", (className || "") + ""),
|
|
662
536
|
disabled,
|
|
663
537
|
onClick: handleClick,
|
|
664
538
|
ref: focusRef,
|
|
665
539
|
type: "button"
|
|
666
540
|
},
|
|
667
|
-
image && /* @__PURE__ */
|
|
668
|
-
/* @__PURE__ */
|
|
541
|
+
image && /* @__PURE__ */ React11.createElement("img", { alt: imageAlt, className: classNames["suggested-action__image"], src: image }),
|
|
542
|
+
/* @__PURE__ */ React11.createElement("span", null, buttonText)
|
|
669
543
|
);
|
|
670
544
|
}
|
|
671
|
-
var
|
|
545
|
+
var SuggestedAction_default2 = memo8(SuggestedAction);
|
|
672
546
|
|
|
673
547
|
// src/components/suggestedActions/private/computeSuggestedActionText.ts
|
|
674
548
|
function computeSuggestedActionText(cardAction) {
|
|
@@ -684,54 +558,41 @@ function computeSuggestedActionText(cardAction) {
|
|
|
684
558
|
return JSON.stringify(value);
|
|
685
559
|
}
|
|
686
560
|
|
|
561
|
+
// src/components/suggestedActions/index.module.css
|
|
562
|
+
var suggestedActions_default = {
|
|
563
|
+
"suggested-actions": "suggestedActions_suggested-actions",
|
|
564
|
+
"suggested-actions--flow": "suggestedActions_suggested-actions--flow",
|
|
565
|
+
"suggested-actions--stacked": "suggestedActions_suggested-actions--stacked"
|
|
566
|
+
};
|
|
567
|
+
|
|
687
568
|
// src/components/suggestedActions/index.tsx
|
|
688
569
|
var { useLocalizer: useLocalizer2, useStyleOptions, useStyleSet: useStyleSet2, useSuggestedActions: useSuggestedActions2 } = hooks3;
|
|
689
|
-
var styles6 = {
|
|
690
|
-
"webchat-fluent__suggested-actions": {
|
|
691
|
-
alignItems: "flex-end",
|
|
692
|
-
alignSelf: "flex-end",
|
|
693
|
-
display: "flex",
|
|
694
|
-
gap: "8px",
|
|
695
|
-
"&:not(:empty)": {
|
|
696
|
-
paddingBlockEnd: "8px",
|
|
697
|
-
paddingInlineStart: "4px"
|
|
698
|
-
},
|
|
699
|
-
"&.webchat-fluent__suggested-actions--flow": {
|
|
700
|
-
flexDirection: "row",
|
|
701
|
-
flexWrap: "wrap",
|
|
702
|
-
justifyContent: "flex-end"
|
|
703
|
-
},
|
|
704
|
-
"&.webchat-fluent__suggested-actions--stacked": {
|
|
705
|
-
flexDirection: "column"
|
|
706
|
-
}
|
|
707
|
-
}
|
|
708
|
-
};
|
|
709
570
|
function SuggestedActionStackedOrFlowContainer(props) {
|
|
710
571
|
const [{ suggestedActionLayout }] = useStyleOptions();
|
|
711
572
|
const [{ suggestedActions: suggestedActionsStyleSet }] = useStyleSet2();
|
|
712
|
-
const classNames =
|
|
713
|
-
return /* @__PURE__ */
|
|
573
|
+
const classNames = useStyles_default(suggestedActions_default);
|
|
574
|
+
return /* @__PURE__ */ React12.createElement(
|
|
714
575
|
"div",
|
|
715
576
|
{
|
|
716
577
|
"aria-label": props["aria-label"],
|
|
717
578
|
"aria-live": "polite",
|
|
718
579
|
"aria-orientation": "vertical",
|
|
719
|
-
className:
|
|
720
|
-
classNames["
|
|
580
|
+
className: cx5(
|
|
581
|
+
classNames["suggested-actions"],
|
|
721
582
|
suggestedActionsStyleSet + "",
|
|
722
583
|
{
|
|
723
|
-
"
|
|
724
|
-
"
|
|
584
|
+
[classNames["suggested-actions--flow"]]: suggestedActionLayout === "flow",
|
|
585
|
+
[classNames["suggested-actions--stacked"]]: suggestedActionLayout !== "flow"
|
|
725
586
|
},
|
|
726
587
|
props.className
|
|
727
588
|
),
|
|
728
589
|
role: "toolbar"
|
|
729
590
|
},
|
|
730
|
-
!!props.children && !!
|
|
591
|
+
!!props.children && !!React12.Children.count(props.children) && props.children
|
|
731
592
|
);
|
|
732
593
|
}
|
|
733
594
|
function SuggestedActions() {
|
|
734
|
-
const classNames =
|
|
595
|
+
const classNames = useStyles_default(suggestedActions_default);
|
|
735
596
|
const localize = useLocalizer2();
|
|
736
597
|
const [suggestedActions] = useSuggestedActions2();
|
|
737
598
|
const children = suggestedActions.map((cardAction, index) => {
|
|
@@ -739,8 +600,8 @@ function SuggestedActions() {
|
|
|
739
600
|
if (!suggestedActions?.length) {
|
|
740
601
|
return null;
|
|
741
602
|
}
|
|
742
|
-
return /* @__PURE__ */
|
|
743
|
-
|
|
603
|
+
return /* @__PURE__ */ React12.createElement(
|
|
604
|
+
SuggestedAction_default2,
|
|
744
605
|
{
|
|
745
606
|
buttonText: computeSuggestedActionText(cardAction),
|
|
746
607
|
displayText,
|
|
@@ -754,40 +615,39 @@ function SuggestedActions() {
|
|
|
754
615
|
}
|
|
755
616
|
);
|
|
756
617
|
});
|
|
757
|
-
return /* @__PURE__ */
|
|
618
|
+
return /* @__PURE__ */ React12.createElement(
|
|
758
619
|
SuggestedActionStackedOrFlowContainer,
|
|
759
620
|
{
|
|
760
621
|
"aria-label": localize("SUGGESTED_ACTIONS_LABEL_ALT"),
|
|
761
|
-
className: classNames["
|
|
622
|
+
className: classNames["suggested-actions"]
|
|
762
623
|
},
|
|
763
624
|
children
|
|
764
625
|
);
|
|
765
626
|
}
|
|
766
|
-
var
|
|
627
|
+
var suggestedActions_default2 = memo9(SuggestedActions);
|
|
767
628
|
|
|
768
629
|
// src/components/SuggestedActions.tsx
|
|
769
|
-
var SuggestedActions_default =
|
|
630
|
+
var SuggestedActions_default = suggestedActions_default2;
|
|
770
631
|
|
|
771
632
|
// src/components/sendbox/AddAttachmentButton.tsx
|
|
772
|
-
import { hooks as hooks4 } from "botframework-webchat-
|
|
773
|
-
import
|
|
633
|
+
import { hooks as hooks4 } from "botframework-webchat-component";
|
|
634
|
+
import React15, { useCallback as useCallback5, useRef as useRef5, memo as memo11 } from "react";
|
|
774
635
|
import { useRefFrom as useRefFrom4 } from "use-ref-from";
|
|
775
636
|
|
|
776
637
|
// src/icons/AttachmentIcon.tsx
|
|
777
|
-
import
|
|
638
|
+
import React13 from "react";
|
|
778
639
|
function AttachmentIcon(props) {
|
|
779
|
-
return /* @__PURE__ */
|
|
640
|
+
return /* @__PURE__ */ React13.createElement(
|
|
780
641
|
"svg",
|
|
781
642
|
{
|
|
782
643
|
"aria-hidden": "true",
|
|
783
644
|
className: props.className,
|
|
784
|
-
fill: "currentColor",
|
|
785
645
|
height: "1em",
|
|
786
646
|
viewBox: "0 0 20 20",
|
|
787
647
|
width: "1em",
|
|
788
648
|
xmlns: "http://www.w3.org/2000/svg"
|
|
789
649
|
},
|
|
790
|
-
/* @__PURE__ */
|
|
650
|
+
/* @__PURE__ */ React13.createElement(
|
|
791
651
|
"path",
|
|
792
652
|
{
|
|
793
653
|
d: "m4.83 10.48 5.65-5.65a3 3 0 0 1 4.25 4.24L8 15.8a1.5 1.5 0 0 1-2.12-2.12l6-6.01a.5.5 0 1 0-.7-.71l-6 6.01a2.5 2.5 0 0 0 3.53 3.54l6.71-6.72a4 4 0 1 0-5.65-5.66L4.12 9.78a.5.5 0 0 0 .7.7Z",
|
|
@@ -798,63 +658,29 @@ function AttachmentIcon(props) {
|
|
|
798
658
|
}
|
|
799
659
|
|
|
800
660
|
// src/components/sendbox/Toolbar.tsx
|
|
801
|
-
import
|
|
802
|
-
import
|
|
803
|
-
|
|
804
|
-
|
|
805
|
-
|
|
806
|
-
|
|
807
|
-
|
|
808
|
-
|
|
809
|
-
"
|
|
810
|
-
alignItems: "center",
|
|
811
|
-
appearance: "none",
|
|
812
|
-
aspectRatio: "1",
|
|
813
|
-
background: "transparent",
|
|
814
|
-
border: "none",
|
|
815
|
-
borderRadius: "var(--webchat-borderRadiusSmall)",
|
|
816
|
-
cursor: "pointer",
|
|
817
|
-
display: "flex",
|
|
818
|
-
justifyContent: "center",
|
|
819
|
-
padding: "3px",
|
|
820
|
-
width: "32px",
|
|
821
|
-
"> svg": {
|
|
822
|
-
fontSize: "20px",
|
|
823
|
-
pointerEvents: "none"
|
|
824
|
-
},
|
|
825
|
-
"@media (hover: hover)": {
|
|
826
|
-
'&:not([aria-disabled="true"]):hover': {
|
|
827
|
-
backgroundColor: "var(--webchat-colorSubtleBackgroundHover)",
|
|
828
|
-
color: "var(--webchat-colorCompoundBrandForeground1Hover)"
|
|
829
|
-
}
|
|
830
|
-
},
|
|
831
|
-
'&:not([aria-disabled="true"]):active': {
|
|
832
|
-
backgroundColor: "var(--webchat-colorSubtleBackgroundPressed)",
|
|
833
|
-
color: "var(--webchat-colorCompoundBrandForeground1Pressed)"
|
|
834
|
-
},
|
|
835
|
-
'&[aria-disabled="true"]': {
|
|
836
|
-
color: "var(--webchat-colorNeutralForegroundDisabled)",
|
|
837
|
-
cursor: "not-allowed"
|
|
838
|
-
}
|
|
839
|
-
},
|
|
840
|
-
"webchat-fluent__sendbox__toolbar-separator": {
|
|
841
|
-
alignSelf: "center",
|
|
842
|
-
borderInlineEnd: "1px solid var(--webchat-colorNeutralStroke2)",
|
|
843
|
-
height: "28px",
|
|
844
|
-
"&:first-child, &:last-child, &:only-child": {
|
|
845
|
-
display: "none"
|
|
846
|
-
}
|
|
847
|
-
}
|
|
661
|
+
import cx6 from "classnames";
|
|
662
|
+
import React14, { memo as memo10 } from "react";
|
|
663
|
+
|
|
664
|
+
// src/components/sendbox/Toolbar.module.css
|
|
665
|
+
var Toolbar_default = {
|
|
666
|
+
sendbox__toolbar: "Toolbar_sendbox__toolbar",
|
|
667
|
+
"sendbox__toolbar-button": "Toolbar_sendbox__toolbar-button",
|
|
668
|
+
"sendbox__toolbar-button--selected": "Toolbar_sendbox__toolbar-button--selected",
|
|
669
|
+
"sendbox__toolbar-separator": "Toolbar_sendbox__toolbar-separator"
|
|
848
670
|
};
|
|
671
|
+
|
|
672
|
+
// src/components/sendbox/Toolbar.tsx
|
|
849
673
|
var preventDefaultHandler2 = (event) => event.preventDefault();
|
|
850
|
-
var ToolbarButton =
|
|
674
|
+
var ToolbarButton = memo10(
|
|
851
675
|
(props) => {
|
|
852
|
-
const classNames =
|
|
853
|
-
return /* @__PURE__ */
|
|
676
|
+
const classNames = useStyles_default(Toolbar_default);
|
|
677
|
+
return /* @__PURE__ */ React14.createElement(
|
|
854
678
|
"button",
|
|
855
679
|
{
|
|
856
680
|
"aria-label": props["aria-label"],
|
|
857
|
-
className:
|
|
681
|
+
className: cx6(classNames["sendbox__toolbar-button"], props.className, {
|
|
682
|
+
[classNames["sendbox__toolbar-button--selected"]]: props.selected
|
|
683
|
+
}),
|
|
858
684
|
"data-testid": props["data-testid"],
|
|
859
685
|
onClick: props.disabled ? preventDefaultHandler2 : props.onClick,
|
|
860
686
|
type: props.type === "submit" ? "submit" : "button",
|
|
@@ -868,19 +694,19 @@ var ToolbarButton = memo9(
|
|
|
868
694
|
}
|
|
869
695
|
);
|
|
870
696
|
ToolbarButton.displayName = "ToolbarButton";
|
|
871
|
-
var Toolbar =
|
|
872
|
-
const classNames =
|
|
873
|
-
return /* @__PURE__ */
|
|
697
|
+
var Toolbar = memo10((props) => {
|
|
698
|
+
const classNames = useStyles_default(Toolbar_default);
|
|
699
|
+
return /* @__PURE__ */ React14.createElement("div", { className: cx6(classNames["sendbox__toolbar"], props.className) }, props.children);
|
|
874
700
|
});
|
|
875
701
|
Toolbar.displayName = "Toolbar";
|
|
876
|
-
var ToolbarSeparator =
|
|
702
|
+
var ToolbarSeparator = memo10(
|
|
877
703
|
(props) => {
|
|
878
|
-
const classNames =
|
|
879
|
-
return /* @__PURE__ */
|
|
704
|
+
const classNames = useStyles_default(Toolbar_default);
|
|
705
|
+
return /* @__PURE__ */ React14.createElement(
|
|
880
706
|
"div",
|
|
881
707
|
{
|
|
882
708
|
"aria-orientation": "vertical",
|
|
883
|
-
className:
|
|
709
|
+
className: cx6(classNames["sendbox__toolbar-separator"], props.className),
|
|
884
710
|
role: "separator"
|
|
885
711
|
}
|
|
886
712
|
);
|
|
@@ -888,22 +714,17 @@ var ToolbarSeparator = memo9(
|
|
|
888
714
|
);
|
|
889
715
|
ToolbarSeparator.displayName = "ToolbarSeparator";
|
|
890
716
|
|
|
717
|
+
// src/components/sendbox/AddAttachmentButton.module.css
|
|
718
|
+
var AddAttachmentButton_default = {
|
|
719
|
+
"sendbox__add-attachment": "AddAttachmentButton_sendbox__add-attachment",
|
|
720
|
+
"sendbox__add-attachment-input": "AddAttachmentButton_sendbox__add-attachment-input"
|
|
721
|
+
};
|
|
722
|
+
|
|
891
723
|
// src/components/sendbox/AddAttachmentButton.tsx
|
|
892
724
|
var { useLocalizer: useLocalizer3, useStyleOptions: useStyleOptions2 } = hooks4;
|
|
893
|
-
var styles8 = {
|
|
894
|
-
"webchat-fluent__sendbox__add-attachment": {
|
|
895
|
-
display: "grid"
|
|
896
|
-
},
|
|
897
|
-
"webchat-fluent__sendbox__add-attachment-input": {
|
|
898
|
-
fontSize: 0,
|
|
899
|
-
height: 0,
|
|
900
|
-
opacity: 0,
|
|
901
|
-
width: 0
|
|
902
|
-
}
|
|
903
|
-
};
|
|
904
725
|
function AddAttachmentButton(props) {
|
|
905
726
|
const inputRef = useRef5(null);
|
|
906
|
-
const classNames =
|
|
727
|
+
const classNames = useStyles_default(AddAttachmentButton_default);
|
|
907
728
|
const localize = useLocalizer3();
|
|
908
729
|
const [{ uploadAccept, uploadMultiple }] = useStyleOptions2();
|
|
909
730
|
const onFilesAddedRef = useRefFrom4(props.onFilesAdded);
|
|
@@ -919,13 +740,13 @@ function AddAttachmentButton(props) {
|
|
|
919
740
|
},
|
|
920
741
|
[inputRef, onFilesAddedRef]
|
|
921
742
|
);
|
|
922
|
-
return /* @__PURE__ */
|
|
743
|
+
return /* @__PURE__ */ React15.createElement("div", { className: classNames["sendbox__add-attachment"] }, /* @__PURE__ */ React15.createElement(
|
|
923
744
|
"input",
|
|
924
745
|
{
|
|
925
746
|
accept: uploadAccept,
|
|
926
747
|
"aria-disabled": props.disabled,
|
|
927
748
|
"aria-hidden": "true",
|
|
928
|
-
className: classNames["
|
|
749
|
+
className: classNames["sendbox__add-attachment-input"],
|
|
929
750
|
multiple: uploadMultiple,
|
|
930
751
|
onInput: props.disabled ? void 0 : handleFileChange,
|
|
931
752
|
readOnly: props.disabled,
|
|
@@ -934,31 +755,30 @@ function AddAttachmentButton(props) {
|
|
|
934
755
|
tabIndex: -1,
|
|
935
756
|
type: "file"
|
|
936
757
|
}
|
|
937
|
-
), /* @__PURE__ */
|
|
758
|
+
), /* @__PURE__ */ React15.createElement(
|
|
938
759
|
ToolbarButton,
|
|
939
760
|
{
|
|
940
761
|
"aria-label": localize("TEXT_INPUT_UPLOAD_BUTTON_ALT"),
|
|
941
762
|
"data-testid": testIds_default.sendBoxUploadButton,
|
|
942
763
|
onClick: handleClick
|
|
943
764
|
},
|
|
944
|
-
/* @__PURE__ */
|
|
765
|
+
/* @__PURE__ */ React15.createElement(AttachmentIcon, null)
|
|
945
766
|
));
|
|
946
767
|
}
|
|
947
|
-
var
|
|
768
|
+
var AddAttachmentButton_default2 = memo11(AddAttachmentButton);
|
|
948
769
|
|
|
949
770
|
// src/components/sendbox/Attachments.tsx
|
|
950
|
-
import { hooks as hooks5 } from "botframework-webchat-
|
|
951
|
-
import
|
|
952
|
-
|
|
953
|
-
|
|
954
|
-
|
|
955
|
-
|
|
956
|
-
|
|
957
|
-
cursor: "default",
|
|
958
|
-
padding: "6px 8px",
|
|
959
|
-
width: "fit-content"
|
|
960
|
-
}
|
|
771
|
+
import { hooks as hooks5 } from "botframework-webchat-component";
|
|
772
|
+
import React16, { memo as memo12 } from "react";
|
|
773
|
+
import cx7 from "classnames";
|
|
774
|
+
|
|
775
|
+
// src/components/sendbox/Attachments.module.css
|
|
776
|
+
var Attachments_default = {
|
|
777
|
+
sendbox__attachment: "Attachments_sendbox__attachment"
|
|
961
778
|
};
|
|
779
|
+
|
|
780
|
+
// src/components/sendbox/Attachments.tsx
|
|
781
|
+
var { useLocalizer: useLocalizer4 } = hooks5;
|
|
962
782
|
var attachmentsPluralStringIds = {
|
|
963
783
|
one: "TEXT_INPUT_ATTACHMENTS_ONE",
|
|
964
784
|
two: "TEXT_INPUT_ATTACHMENTS_TWO",
|
|
@@ -967,55 +787,51 @@ var attachmentsPluralStringIds = {
|
|
|
967
787
|
other: "TEXT_INPUT_ATTACHMENTS_OTHER"
|
|
968
788
|
};
|
|
969
789
|
function Attachments({
|
|
970
|
-
attachments
|
|
790
|
+
attachments,
|
|
791
|
+
className
|
|
971
792
|
}) {
|
|
972
|
-
const classNames =
|
|
793
|
+
const classNames = useStyles_default(Attachments_default);
|
|
973
794
|
const localizeWithPlural = useLocalizer4({ plural: true });
|
|
974
|
-
return attachments.length ? /* @__PURE__ */
|
|
795
|
+
return attachments.length ? /* @__PURE__ */ React16.createElement("div", { className: cx7(classNames["sendbox__attachment"], className) }, localizeWithPlural(attachmentsPluralStringIds, attachments.length)) : null;
|
|
975
796
|
}
|
|
976
|
-
var
|
|
797
|
+
var Attachments_default2 = memo12(Attachments);
|
|
977
798
|
|
|
978
799
|
// src/components/sendbox/ErrorMessage.tsx
|
|
979
|
-
import
|
|
980
|
-
|
|
981
|
-
|
|
982
|
-
|
|
983
|
-
|
|
984
|
-
width: 0,
|
|
985
|
-
position: "absolute",
|
|
986
|
-
top: 0,
|
|
987
|
-
left: 0,
|
|
988
|
-
color: "transparent"
|
|
989
|
-
}
|
|
800
|
+
import React17, { memo as memo13 } from "react";
|
|
801
|
+
|
|
802
|
+
// src/components/sendbox/ErrorMessage.module.css
|
|
803
|
+
var ErrorMessage_default = {
|
|
804
|
+
"sendbox__error-message": "ErrorMessage_sendbox__error-message"
|
|
990
805
|
};
|
|
806
|
+
|
|
807
|
+
// src/components/sendbox/ErrorMessage.tsx
|
|
991
808
|
function ErrorMessage(props) {
|
|
992
|
-
const classNames =
|
|
809
|
+
const classNames = useStyles_default(ErrorMessage_default);
|
|
993
810
|
return (
|
|
994
811
|
// eslint-disable-next-line react/forbid-dom-props
|
|
995
|
-
/* @__PURE__ */
|
|
812
|
+
/* @__PURE__ */ React17.createElement("span", { className: classNames["sendbox__error-message"], id: props.id, role: "alert" }, props.error)
|
|
996
813
|
);
|
|
997
814
|
}
|
|
998
|
-
var
|
|
815
|
+
var ErrorMessage_default2 = memo13(ErrorMessage);
|
|
999
816
|
|
|
1000
817
|
// src/components/sendbox/TelephoneKeypadToolbarButton.tsx
|
|
1001
|
-
import
|
|
1002
|
-
import { hooks as hooks6 } from "botframework-webchat-
|
|
818
|
+
import React19, { memo as memo14, useCallback as useCallback6 } from "react";
|
|
819
|
+
import { hooks as hooks6 } from "botframework-webchat-component";
|
|
1003
820
|
|
|
1004
821
|
// src/icons/TelephoneKeypad.tsx
|
|
1005
|
-
import
|
|
822
|
+
import React18 from "react";
|
|
1006
823
|
function TelephoneKeypadIcon(props) {
|
|
1007
|
-
return /* @__PURE__ */
|
|
824
|
+
return /* @__PURE__ */ React18.createElement(
|
|
1008
825
|
"svg",
|
|
1009
826
|
{
|
|
1010
827
|
"aria-hidden": "true",
|
|
1011
828
|
className: props.className,
|
|
1012
|
-
fill: "currentColor",
|
|
1013
829
|
height: "1em",
|
|
1014
830
|
viewBox: "0 0 20 20",
|
|
1015
831
|
width: "1em",
|
|
1016
832
|
xmlns: "http://www.w3.org/2000/svg"
|
|
1017
833
|
},
|
|
1018
|
-
/* @__PURE__ */
|
|
834
|
+
/* @__PURE__ */ React18.createElement(
|
|
1019
835
|
"path",
|
|
1020
836
|
{
|
|
1021
837
|
d: "M6 5.25a1.25 1.25 0 1 0 0-2.5 1.25 1.25 0 0 0 0 2.5Zm0 4a1.25 1.25 0 1 0 0-2.5 1.25 1.25 0 0 0 0 2.5ZM7.25 12a1.25 1.25 0 1 1-2.5 0 1.25 1.25 0 0 1 2.5 0ZM10 5.25a1.25 1.25 0 1 0 0-2.5 1.25 1.25 0 0 0 0 2.5ZM11.25 8a1.25 1.25 0 1 1-2.5 0 1.25 1.25 0 0 1 2.5 0ZM10 13.25a1.25 1.25 0 1 0 0-2.5 1.25 1.25 0 0 0 0 2.5ZM11.25 16a1.25 1.25 0 1 1-2.5 0 1.25 1.25 0 0 1 2.5 0ZM14 5.25a1.25 1.25 0 1 0 0-2.5 1.25 1.25 0 0 0 0 2.5ZM15.25 8a1.25 1.25 0 1 1-2.5 0 1.25 1.25 0 0 1 2.5 0ZM14 13.25a1.25 1.25 0 1 0 0-2.5 1.25 1.25 0 0 0 0 2.5Z",
|
|
@@ -1027,79 +843,41 @@ function TelephoneKeypadIcon(props) {
|
|
|
1027
843
|
|
|
1028
844
|
// src/components/sendbox/TelephoneKeypadToolbarButton.tsx
|
|
1029
845
|
var { useLocalizer: useLocalizer5 } = hooks6;
|
|
1030
|
-
var TelephoneKeypadToolbarButton =
|
|
1031
|
-
const [, setTelephoneKeypadShown] = useShown();
|
|
846
|
+
var TelephoneKeypadToolbarButton = memo14(() => {
|
|
847
|
+
const [telephoneKeypadShown, setTelephoneKeypadShown] = useShown();
|
|
1032
848
|
const localize = useLocalizer5();
|
|
1033
849
|
const handleClick = useCallback6(() => setTelephoneKeypadShown((shown) => !shown), [setTelephoneKeypadShown]);
|
|
1034
|
-
return /* @__PURE__ */
|
|
850
|
+
return /* @__PURE__ */ React19.createElement(
|
|
1035
851
|
ToolbarButton,
|
|
1036
852
|
{
|
|
1037
853
|
"aria-label": localize("TEXT_INPUT_TELEPHONE_KEYPAD_BUTTON_ALT"),
|
|
1038
854
|
"data-testid": testIds_default.sendBoxTelephoneKeypadToolbarButton,
|
|
1039
|
-
onClick: handleClick
|
|
855
|
+
onClick: handleClick,
|
|
856
|
+
selected: telephoneKeypadShown
|
|
1040
857
|
},
|
|
1041
|
-
/* @__PURE__ */
|
|
858
|
+
/* @__PURE__ */ React19.createElement(TelephoneKeypadIcon, null)
|
|
1042
859
|
);
|
|
1043
860
|
});
|
|
1044
861
|
TelephoneKeypadToolbarButton.displayName = "SendBox.TelephoneKeypadToolbarButton";
|
|
1045
862
|
var TelephoneKeypadToolbarButton_default = TelephoneKeypadToolbarButton;
|
|
1046
863
|
|
|
1047
864
|
// src/components/sendbox/TextArea.tsx
|
|
1048
|
-
import
|
|
1049
|
-
import
|
|
1050
|
-
|
|
1051
|
-
|
|
1052
|
-
|
|
1053
|
-
|
|
1054
|
-
|
|
1055
|
-
|
|
1056
|
-
|
|
1057
|
-
"
|
|
1058
|
-
|
|
1059
|
-
height: 0,
|
|
1060
|
-
visibility: "collapse"
|
|
1061
|
-
},
|
|
1062
|
-
"webchat-fluent__sendbox__text-area-shared": {
|
|
1063
|
-
border: "none",
|
|
1064
|
-
font: "inherit",
|
|
1065
|
-
gridArea: "main",
|
|
1066
|
-
outline: "inherit",
|
|
1067
|
-
overflowWrap: "anywhere",
|
|
1068
|
-
resize: "inherit",
|
|
1069
|
-
scrollbarGutter: "stable"
|
|
1070
|
-
},
|
|
1071
|
-
"webchat-fluent__sendbox__text-area-doppelganger": {
|
|
1072
|
-
overflow: "hidden",
|
|
1073
|
-
visibility: "hidden",
|
|
1074
|
-
whiteSpace: "pre-wrap"
|
|
1075
|
-
},
|
|
1076
|
-
"webchat-fluent__sendbox__text-area-input": {
|
|
1077
|
-
height: "100%",
|
|
1078
|
-
padding: 0
|
|
1079
|
-
},
|
|
1080
|
-
"webchat-fluent__sendbox__text-area-input--scroll": {
|
|
1081
|
-
/* Firefox */
|
|
1082
|
-
MozScrollbarColor: "var(--webchat-colorNeutralBackground5) var(--webchat-colorNeutralForeground2)",
|
|
1083
|
-
MozScrollbarWidth: "thin",
|
|
1084
|
-
/* Chrome, Edge, and Safari */
|
|
1085
|
-
"&::-webkit-scrollbar": {
|
|
1086
|
-
width: "8px"
|
|
1087
|
-
},
|
|
1088
|
-
"&::-webkit-scrollbar-track": {
|
|
1089
|
-
backgroundColor: "var(--webchat-colorNeutralBackground5)",
|
|
1090
|
-
borderRadius: "16px"
|
|
1091
|
-
},
|
|
1092
|
-
"&::-webkit-scrollbar-thumb": {
|
|
1093
|
-
backgroundColor: "var(--webchat-colorNeutralForeground2)",
|
|
1094
|
-
borderRadius: "16px"
|
|
1095
|
-
},
|
|
1096
|
-
"&::-webkit-scrollbar-corner": {
|
|
1097
|
-
backgroundColor: "var(--webchat-colorNeutralBackground5)"
|
|
1098
|
-
}
|
|
1099
|
-
}
|
|
865
|
+
import cx8 from "classnames";
|
|
866
|
+
import React20, { forwardRef as forwardRef3, useCallback as useCallback7 } from "react";
|
|
867
|
+
|
|
868
|
+
// src/components/sendbox/TextArea.module.css
|
|
869
|
+
var TextArea_default = {
|
|
870
|
+
"sendbox__text-area": "TextArea_sendbox__text-area",
|
|
871
|
+
"sendbox__text-area--hidden": "TextArea_sendbox__text-area--hidden",
|
|
872
|
+
"sendbox__text-area-shared": "TextArea_sendbox__text-area-shared",
|
|
873
|
+
"sendbox__text-area-doppelganger": "TextArea_sendbox__text-area-doppelganger",
|
|
874
|
+
"sendbox__text-area-input": "TextArea_sendbox__text-area-input",
|
|
875
|
+
"sendbox__text-area-input--scroll": "TextArea_sendbox__text-area-input--scroll"
|
|
1100
876
|
};
|
|
877
|
+
|
|
878
|
+
// src/components/sendbox/TextArea.tsx
|
|
1101
879
|
var TextArea = forwardRef3((props, ref) => {
|
|
1102
|
-
const classNames =
|
|
880
|
+
const classNames = useStyles_default(TextArea_default);
|
|
1103
881
|
const handleKeyDown = useCallback7((event) => {
|
|
1104
882
|
if (!event.shiftKey && event.key === "Enter") {
|
|
1105
883
|
event.preventDefault();
|
|
@@ -1108,38 +886,38 @@ var TextArea = forwardRef3((props, ref) => {
|
|
|
1108
886
|
}
|
|
1109
887
|
}
|
|
1110
888
|
}, []);
|
|
1111
|
-
return /* @__PURE__ */
|
|
889
|
+
return /* @__PURE__ */ React20.createElement(
|
|
1112
890
|
"div",
|
|
1113
891
|
{
|
|
1114
|
-
className:
|
|
1115
|
-
classNames["
|
|
892
|
+
className: cx8(
|
|
893
|
+
classNames["sendbox__text-area"],
|
|
1116
894
|
{
|
|
1117
|
-
[classNames["
|
|
895
|
+
[classNames["sendbox__text-area--hidden"]]: props.hidden
|
|
1118
896
|
},
|
|
1119
897
|
props.className
|
|
1120
898
|
),
|
|
1121
899
|
role: props.hidden ? "hidden" : void 0
|
|
1122
900
|
},
|
|
1123
|
-
/* @__PURE__ */
|
|
901
|
+
/* @__PURE__ */ React20.createElement(
|
|
1124
902
|
"div",
|
|
1125
903
|
{
|
|
1126
|
-
className:
|
|
1127
|
-
classNames["
|
|
1128
|
-
classNames["
|
|
1129
|
-
classNames["
|
|
904
|
+
className: cx8(
|
|
905
|
+
classNames["sendbox__text-area-doppelganger"],
|
|
906
|
+
classNames["sendbox__text-area-shared"],
|
|
907
|
+
classNames["sendbox__text-area-input--scroll"]
|
|
1130
908
|
)
|
|
1131
909
|
},
|
|
1132
910
|
props.value || props.placeholder,
|
|
1133
911
|
" "
|
|
1134
912
|
),
|
|
1135
|
-
/* @__PURE__ */
|
|
913
|
+
/* @__PURE__ */ React20.createElement(
|
|
1136
914
|
"textarea",
|
|
1137
915
|
{
|
|
1138
916
|
"aria-label": props["aria-label"],
|
|
1139
|
-
className:
|
|
1140
|
-
classNames["
|
|
1141
|
-
classNames["
|
|
1142
|
-
classNames["
|
|
917
|
+
className: cx8(
|
|
918
|
+
classNames["sendbox__text-area-input"],
|
|
919
|
+
classNames["sendbox__text-area-shared"],
|
|
920
|
+
classNames["sendbox__text-area-input--scroll"]
|
|
1143
921
|
),
|
|
1144
922
|
"data-testid": props["data-testid"],
|
|
1145
923
|
onInput: props.onInput,
|
|
@@ -1154,11 +932,11 @@ var TextArea = forwardRef3((props, ref) => {
|
|
|
1154
932
|
);
|
|
1155
933
|
});
|
|
1156
934
|
TextArea.displayName = "TextArea";
|
|
1157
|
-
var
|
|
935
|
+
var TextArea_default2 = TextArea;
|
|
1158
936
|
|
|
1159
937
|
// src/components/sendbox/private/useSubmitError.ts
|
|
1160
938
|
import { hooks as hooks7 } from "botframework-webchat-component";
|
|
1161
|
-
import { useMemo as
|
|
939
|
+
import { useMemo as useMemo4 } from "react";
|
|
1162
940
|
import { useRefFrom as useRefFrom5 } from "use-ref-from";
|
|
1163
941
|
var { useConnectivityStatus, useLocalizer: useLocalizer6 } = hooks7;
|
|
1164
942
|
var useSubmitError = ({
|
|
@@ -1170,13 +948,13 @@ var useSubmitError = ({
|
|
|
1170
948
|
const submitErrorRef = useRefFrom5(
|
|
1171
949
|
connectivityStatus !== "connected" && connectivityStatus !== "reconnected" ? "offline" : !message && !attachments.length ? "empty" : void 0
|
|
1172
950
|
);
|
|
1173
|
-
const errorMessageStringMap =
|
|
951
|
+
const errorMessageStringMap = useMemo4(
|
|
1174
952
|
() => Object.freeze(
|
|
1175
953
|
(/* @__PURE__ */ new Map()).set("empty", localize("SEND_BOX_IS_EMPTY_TOOLTIP_ALT")).set("offline", localize("CONNECTIVITY_STATUS_ALT_FATAL"))
|
|
1176
954
|
),
|
|
1177
955
|
[localize]
|
|
1178
956
|
);
|
|
1179
|
-
return
|
|
957
|
+
return useMemo4(
|
|
1180
958
|
() => Object.freeze([submitErrorRef, submitErrorRef.current && errorMessageStringMap.get(submitErrorRef.current)]),
|
|
1181
959
|
[errorMessageStringMap, submitErrorRef]
|
|
1182
960
|
);
|
|
@@ -1184,80 +962,40 @@ var useSubmitError = ({
|
|
|
1184
962
|
var useSubmitError_default = useSubmitError;
|
|
1185
963
|
|
|
1186
964
|
// src/components/sendbox/private/useUniqueId.ts
|
|
1187
|
-
import { useMemo as
|
|
965
|
+
import { useMemo as useMemo5 } from "react";
|
|
1188
966
|
function useUniqueId(prefix) {
|
|
1189
|
-
const id =
|
|
967
|
+
const id = useMemo5(() => Math.random().toString(36).substr(2, 5), []);
|
|
1190
968
|
prefix = prefix ? `${prefix}--` : "";
|
|
1191
969
|
return `${prefix}${id}`;
|
|
1192
970
|
}
|
|
1193
971
|
|
|
972
|
+
// src/components/sendbox/index.module.css
|
|
973
|
+
var sendbox_default = {
|
|
974
|
+
sendbox: "sendbox_sendbox",
|
|
975
|
+
sendbox__sendbox: "sendbox_sendbox__sendbox",
|
|
976
|
+
"sendbox__attachment--in-grid": "sendbox_sendbox__attachment--in-grid",
|
|
977
|
+
"sendbox__text-area--in-grid": "sendbox_sendbox__text-area--in-grid",
|
|
978
|
+
"sendbox__sendbox-controls--in-grid": "sendbox_sendbox__sendbox-controls--in-grid",
|
|
979
|
+
"sendbox__telephone-keypad--in-grid": "sendbox_sendbox__telephone-keypad--in-grid",
|
|
980
|
+
"sendbox__sendbox-text": "sendbox_sendbox__sendbox-text",
|
|
981
|
+
"sendbox__sendbox-controls": "sendbox_sendbox__sendbox-controls",
|
|
982
|
+
"sendbox__text-counter": "sendbox_sendbox__text-counter",
|
|
983
|
+
"sendbox__text-counter--error": "sendbox_sendbox__text-counter--error"
|
|
984
|
+
};
|
|
985
|
+
|
|
1194
986
|
// src/components/sendbox/index.tsx
|
|
1195
987
|
var { useStyleOptions: useStyleOptions3, useMakeThumbnail, useLocalizer: useLocalizer7, useSendBoxAttachments, useSendMessage } = hooks8;
|
|
1196
|
-
var styles12 = {
|
|
1197
|
-
"webchat-fluent__sendbox": {
|
|
1198
|
-
color: "var(--webchat-colorNeutralForeground1)",
|
|
1199
|
-
fontFamily: "var(--webchat-fontFamilyBase)",
|
|
1200
|
-
padding: "0 10px 10px",
|
|
1201
|
-
textRendering: "optimizeLegibility"
|
|
1202
|
-
},
|
|
1203
|
-
"webchat-fluent__sendbox__sendbox": {
|
|
1204
|
-
backgroundColor: "var(--webchat-colorNeutralBackground1)",
|
|
1205
|
-
border: "1px solid var(--webchat-colorNeutralStroke1)",
|
|
1206
|
-
borderRadius: "var(--webchat-borderRadiusLarge)",
|
|
1207
|
-
display: "grid",
|
|
1208
|
-
fontFamily: "var(--webchat-fontFamilyBase)",
|
|
1209
|
-
fontSize: "14px",
|
|
1210
|
-
gap: "6px",
|
|
1211
|
-
lineHeight: "20px",
|
|
1212
|
-
padding: "8px",
|
|
1213
|
-
position: "relative",
|
|
1214
|
-
"&:focus-within": {
|
|
1215
|
-
borderColor: "var(--webchat-colorNeutralStroke1Selected)",
|
|
1216
|
-
// TODO clarify with design the color:
|
|
1217
|
-
// - Teams is using colorCompoundBrandForeground1
|
|
1218
|
-
// - Fluent is using colorCompoundBrandStroke
|
|
1219
|
-
// - we are using colorCompoundBrandForeground1Hover
|
|
1220
|
-
boxShadow: "inset 0 -6px 0 -3px var(--webchat-colorCompoundBrandForeground1Hover)"
|
|
1221
|
-
}
|
|
1222
|
-
},
|
|
1223
|
-
"webchat-fluent__sendbox__sendbox-text": {
|
|
1224
|
-
backgroundColor: "transparent",
|
|
1225
|
-
border: "none",
|
|
1226
|
-
flex: "auto",
|
|
1227
|
-
fontFamily: "var(--webchat-fontFamilyBase)",
|
|
1228
|
-
fontSize: "14px",
|
|
1229
|
-
lineHeight: "20px",
|
|
1230
|
-
outline: "none",
|
|
1231
|
-
padding: "4px 4px 0",
|
|
1232
|
-
resize: "none"
|
|
1233
|
-
},
|
|
1234
|
-
"webchat-fluent__sendbox__sendbox-controls": {
|
|
1235
|
-
alignItems: "center",
|
|
1236
|
-
display: "flex",
|
|
1237
|
-
paddingInlineStart: "4px"
|
|
1238
|
-
},
|
|
1239
|
-
"webchat-fluent__sendbox__text-counter": {
|
|
1240
|
-
color: "var(--webchat-colorNeutralForeground4)",
|
|
1241
|
-
cursor: "default",
|
|
1242
|
-
fontFamily: "var(--webchat-fontFamilyNumeric)",
|
|
1243
|
-
fontSize: "10px",
|
|
1244
|
-
lineHeight: "14px"
|
|
1245
|
-
},
|
|
1246
|
-
"webchat-fluent__sendbox__text-counter--error": {
|
|
1247
|
-
color: "var(--webchat-colorStatusDangerForeground1)"
|
|
1248
|
-
}
|
|
1249
|
-
};
|
|
1250
988
|
function SendBox(props) {
|
|
1251
989
|
const inputRef = useRef6(null);
|
|
1252
990
|
const [message, setMessage] = useState3("");
|
|
1253
991
|
const [attachments, setAttachments] = useSendBoxAttachments();
|
|
1254
992
|
const [{ hideTelephoneKeypadButton, hideUploadButton, maxMessageLength }] = useStyleOptions3();
|
|
1255
993
|
const isMessageLengthExceeded = !!maxMessageLength && message.length > maxMessageLength;
|
|
1256
|
-
const classNames =
|
|
994
|
+
const classNames = useStyles_default(sendbox_default);
|
|
1257
995
|
const localize = useLocalizer7();
|
|
1258
996
|
const sendMessage = useSendMessage();
|
|
1259
997
|
const makeThumbnail = useMakeThumbnail();
|
|
1260
|
-
const errorMessageId = useUniqueId("
|
|
998
|
+
const errorMessageId = useUniqueId("sendbox__error-message-id");
|
|
1261
999
|
const [errorRef, errorMessage] = useSubmitError_default({ message, attachments });
|
|
1262
1000
|
const [telephoneKeypadShown] = useShown();
|
|
1263
1001
|
const attachmentsRef = useRefFrom6(attachments);
|
|
@@ -1317,18 +1055,11 @@ function SendBox(props) {
|
|
|
1317
1055
|
"aria-errormessage": errorMessageId
|
|
1318
1056
|
}
|
|
1319
1057
|
};
|
|
1320
|
-
return /* @__PURE__ */
|
|
1321
|
-
|
|
1322
|
-
{
|
|
1323
|
-
autoFocus: true,
|
|
1324
|
-
isHorizontal: false,
|
|
1325
|
-
onButtonClick: handleTelephoneKeypadButtonClick
|
|
1326
|
-
}
|
|
1327
|
-
), /* @__PURE__ */ React20.createElement(
|
|
1328
|
-
TextArea_default,
|
|
1058
|
+
return /* @__PURE__ */ React21.createElement("form", { ...aria, className: cx9(classNames["sendbox"], props.className), onSubmit: handleFormSubmit }, /* @__PURE__ */ React21.createElement(SuggestedActions_default, null), /* @__PURE__ */ React21.createElement("div", { className: cx9(classNames["sendbox__sendbox"]), onClickCapture: handleSendBoxClick }, /* @__PURE__ */ React21.createElement(
|
|
1059
|
+
TextArea_default2,
|
|
1329
1060
|
{
|
|
1330
1061
|
"aria-label": isMessageLengthExceeded ? localize("TEXT_INPUT_LENGTH_EXCEEDED_ALT") : localize("TEXT_INPUT_ALT"),
|
|
1331
|
-
className: classNames["
|
|
1062
|
+
className: cx9(classNames["sendbox__sendbox-text"], classNames["sendbox__text-area--in-grid"]),
|
|
1332
1063
|
"data-testid": testIds_default.sendBoxTextBox,
|
|
1333
1064
|
hidden: telephoneKeypadShown,
|
|
1334
1065
|
onInput: handleMessageChange,
|
|
@@ -1336,38 +1067,47 @@ function SendBox(props) {
|
|
|
1336
1067
|
ref: inputRef,
|
|
1337
1068
|
value: message
|
|
1338
1069
|
}
|
|
1339
|
-
), /* @__PURE__ */
|
|
1070
|
+
), /* @__PURE__ */ React21.createElement(
|
|
1071
|
+
Surrogate_default,
|
|
1072
|
+
{
|
|
1073
|
+
autoFocus: true,
|
|
1074
|
+
className: classNames["sendbox__telephone-keypad--in-grid"],
|
|
1075
|
+
isHorizontal: false,
|
|
1076
|
+
onButtonClick: handleTelephoneKeypadButtonClick
|
|
1077
|
+
}
|
|
1078
|
+
), /* @__PURE__ */ React21.createElement(Attachments_default2, { attachments, className: classNames["sendbox__attachment--in-grid"] }), /* @__PURE__ */ React21.createElement("div", { className: cx9(classNames["sendbox__sendbox-controls"], classNames["sendbox__sendbox-controls--in-grid"]) }, !telephoneKeypadShown && maxMessageLength && /* @__PURE__ */ React21.createElement(
|
|
1340
1079
|
"div",
|
|
1341
1080
|
{
|
|
1342
|
-
className:
|
|
1343
|
-
[classNames["
|
|
1081
|
+
className: cx9(classNames["sendbox__text-counter"], {
|
|
1082
|
+
[classNames["sendbox__text-counter--error"]]: isMessageLengthExceeded
|
|
1344
1083
|
})
|
|
1345
1084
|
},
|
|
1346
1085
|
`${message.length}/${maxMessageLength}`
|
|
1347
|
-
), /* @__PURE__ */
|
|
1086
|
+
), /* @__PURE__ */ React21.createElement(Toolbar, null, !hideTelephoneKeypadButton && /* @__PURE__ */ React21.createElement(TelephoneKeypadToolbarButton_default, null), !hideUploadButton && /* @__PURE__ */ React21.createElement(AddAttachmentButton_default2, { onFilesAdded: handleAddFiles }), /* @__PURE__ */ React21.createElement(ToolbarSeparator, null), /* @__PURE__ */ React21.createElement(
|
|
1348
1087
|
ToolbarButton,
|
|
1349
1088
|
{
|
|
1350
1089
|
"aria-label": localize("TEXT_INPUT_SEND_BUTTON_ALT"),
|
|
1351
1090
|
"data-testid": testIds_default.sendBoxSendButton,
|
|
1352
|
-
disabled: isMessageLengthExceeded,
|
|
1091
|
+
disabled: isMessageLengthExceeded || telephoneKeypadShown,
|
|
1353
1092
|
type: "submit"
|
|
1354
1093
|
},
|
|
1355
|
-
/* @__PURE__ */
|
|
1356
|
-
))), /* @__PURE__ */
|
|
1094
|
+
/* @__PURE__ */ React21.createElement(SendIcon, null)
|
|
1095
|
+
))), /* @__PURE__ */ React21.createElement(DropZone_default, { onFilesAdded: handleAddFiles }), /* @__PURE__ */ React21.createElement(ErrorMessage_default2, { error: errorMessage, id: errorMessageId })));
|
|
1357
1096
|
}
|
|
1358
|
-
var
|
|
1097
|
+
var sendbox_default2 = memo15(SendBox);
|
|
1359
1098
|
|
|
1360
1099
|
// src/components/SendBox.tsx
|
|
1361
|
-
var SendBox_default =
|
|
1100
|
+
var SendBox_default = sendbox_default2;
|
|
1362
1101
|
|
|
1363
1102
|
// src/private/FluentThemeProvider.tsx
|
|
1364
|
-
var { ThemeProvider } =
|
|
1103
|
+
var { ThemeProvider } = Components2;
|
|
1365
1104
|
var sendBoxMiddleware = [() => () => () => SendBox_default];
|
|
1366
|
-
var FluentThemeProvider = ({ children }) => /* @__PURE__ */
|
|
1367
|
-
var FluentThemeProvider_default =
|
|
1105
|
+
var FluentThemeProvider = ({ children }) => /* @__PURE__ */ React22.createElement(WebchatTheme, null, /* @__PURE__ */ React22.createElement(Provider_default, null, /* @__PURE__ */ React22.createElement(ThemeProvider, { sendBoxMiddleware }, children)));
|
|
1106
|
+
var FluentThemeProvider_default = memo16(FluentThemeProvider);
|
|
1368
1107
|
|
|
1369
1108
|
// src/index.ts
|
|
1370
|
-
injectMetaTag("botframework-webchat-fluent-theme:version", "4.17.0-main.
|
|
1109
|
+
injectMetaTag("botframework-webchat-fluent-theme:version", "4.17.0-main.20240423.ec25060");
|
|
1110
|
+
injectStyles();
|
|
1371
1111
|
export {
|
|
1372
1112
|
FluentThemeProvider_default as FluentThemeProvider,
|
|
1373
1113
|
testIds_default as testIds
|