botframework-webchat-fluent-theme 4.17.0-main.20240416.e3f5401 → 4.17.0-main.20240419.2240f2a

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 (50) hide show
  1. package/dist/botframework-webchat-fluent-theme.development.css.map +1 -0
  2. package/dist/botframework-webchat-fluent-theme.development.js +418 -2085
  3. package/dist/botframework-webchat-fluent-theme.development.js.map +1 -1
  4. package/dist/botframework-webchat-fluent-theme.production.min.css.map +1 -0
  5. package/dist/botframework-webchat-fluent-theme.production.min.js +1 -3
  6. package/dist/botframework-webchat-fluent-theme.production.min.js.map +1 -1
  7. package/dist/index.css.map +1 -0
  8. package/dist/index.js +285 -545
  9. package/dist/index.js.map +1 -1
  10. package/dist/index.mjs +335 -595
  11. package/dist/index.mjs.map +1 -1
  12. package/package.json +4 -5
  13. package/src/components/Theme.module.css +65 -0
  14. package/src/components/Theme.tsx +4 -65
  15. package/src/components/dropZone/index.module.css +23 -0
  16. package/src/components/dropZone/index.tsx +6 -31
  17. package/src/components/sendbox/AddAttachmentButton.module.css +10 -0
  18. package/src/components/sendbox/AddAttachmentButton.tsx +5 -17
  19. package/src/components/sendbox/Attachments.module.css +7 -0
  20. package/src/components/sendbox/Attachments.tsx +7 -13
  21. package/src/components/sendbox/ErrorMessage.module.css +9 -0
  22. package/src/components/sendbox/ErrorMessage.tsx +2 -13
  23. package/src/components/sendbox/TelephoneKeypadToolbarButton.tsx +3 -2
  24. package/src/components/sendbox/TextArea.module.css +63 -0
  25. package/src/components/sendbox/TextArea.tsx +9 -70
  26. package/src/components/sendbox/Toolbar.module.css +51 -0
  27. package/src/components/sendbox/Toolbar.tsx +7 -55
  28. package/src/components/sendbox/index.module.css +86 -0
  29. package/src/components/sendbox/index.tsx +18 -77
  30. package/src/components/suggestedActions/SuggestedAction.module.css +35 -0
  31. package/src/components/suggestedActions/SuggestedAction.tsx +3 -43
  32. package/src/components/suggestedActions/index.module.css +23 -0
  33. package/src/components/suggestedActions/index.tsx +6 -29
  34. package/src/components/telephoneKeypad/private/Button.module.css +62 -0
  35. package/src/components/telephoneKeypad/private/Button.tsx +5 -67
  36. package/src/components/telephoneKeypad/private/TelephoneKeypad.module.css +59 -0
  37. package/src/components/telephoneKeypad/private/TelephoneKeypad.tsx +17 -35
  38. package/src/env.d.ts +7 -0
  39. package/src/icons/AddDocumentIcon.tsx +0 -1
  40. package/src/icons/AttachmentIcon.tsx +0 -1
  41. package/src/icons/InfoSmallIcon.tsx +17 -0
  42. package/src/icons/SendIcon.tsx +0 -1
  43. package/src/icons/TelephoneKeypad.tsx +0 -1
  44. package/src/index.ts +3 -0
  45. package/src/styles/injectStyle.ts +9 -0
  46. package/src/styles/useStyles.ts +19 -0
  47. package/src/styles.ts +4 -0
  48. package/src/tsconfig.json +2 -1
  49. package/src/private/useStyleToEmotionObject.ts +0 -32
  50. 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 React21, { memo as memo15 } from "react";
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 React4, { memo as memo4 } from "react";
38
+ import React5, { memo as memo5 } from "react";
39
39
 
40
40
  // src/components/telephoneKeypad/private/TelephoneKeypad.tsx
41
- import React3, { memo as memo3, useCallback as useCallback2, useEffect, useRef } from "react";
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/styles/index.ts
45
- import { useMemo as useMemo3 } from "react";
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/useStyleToEmotionObject.ts
48
- import createEmotion from "@emotion/css/create-instance";
49
- import { useMemo as useMemo2 } from "react";
50
- var { random } = Math;
51
- var emotionPool = {};
52
- var nonce = "";
53
- function createCSSKey() {
54
- return random().toString(26).substr(2, 5).replace(/\d/gu, (value) => String.fromCharCode(value.charCodeAt(0) + 65));
55
- }
56
- function useStyleToEmotionObject() {
57
- return useMemo2(() => {
58
- const emotion = (
59
- // Prefix "id-" to prevent object injection attack.
60
- emotionPool[`id-${nonce}`] || (emotionPool[`id-${nonce}`] = createEmotion({ key: `webchat--css-${createCSSKey()}`, nonce }))
61
- );
62
- return (style) => emotion.css(style);
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/index.ts
67
- function useStyles(styles13) {
68
- const getClassName = useStyleToEmotionObject();
69
- return useMemo3(
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(Object.entries(styles13).map(([cls, style]) => [cls, `${cls} ${getClassName(style)}`]))
73
+ Object.fromEntries(
74
+ Object.entries(styles).map(([baseClassName, resultClassName]) => [
75
+ baseClassName,
76
+ `${baseClassName} ${resultClassName}`
77
+ ])
78
+ )
72
79
  ),
73
- [styles13, getClassName]
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 = useStyles(styles);
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["webchat__telephone-keypad__button"],
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["webchat__telephone-keypad__button__text"] }, button === "star" ? "\u2217" : button === "pound" ? "#" : button),
151
- !!ruby && /* @__PURE__ */ React2.createElement("ruby", { className: classNames["webchat__telephone-keypad__button__ruby"] }, ruby)
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 Button_default = Button;
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 useMemo4 } from "react";
133
+ import { useContext, useMemo as useMemo3 } from "react";
182
134
  function useShown() {
183
135
  const { setShown, shown } = useContext(Context_default);
184
- return useMemo4(() => Object.freeze([shown, setShown]), [shown, setShown]);
136
+ return useMemo3(() => Object.freeze([shown, setShown]), [shown, setShown]);
185
137
  }
186
138
 
187
- // src/components/telephoneKeypad/private/TelephoneKeypad.tsx
188
- var styles2 = {
189
- "webchat__telephone-keypad": {
190
- /* Commented out whitelabel styles for now. */
191
- // background: getHighContrastDarkThemeColor(highContrastColor: black, darkThemeColor: gray190, string, defaultColor: gray10),
192
- // borderRadius: '8px 8px 0px 0px',
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
- var Orientation = memo3(
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 = useStyles(styles2);
172
+ const classNames = useStyles_default(TelephoneKeypad_default);
220
173
  return isHorizontal ? (
221
174
  // <HorizontalDialPadController>{children}</HorizontalDialPadController>
222
175
  false
223
- ) : /* @__PURE__ */ React3.createElement("div", { className: classNames["webchat__telephone-keypad__box"] }, children);
176
+ ) : /* @__PURE__ */ React4.createElement("div", { className: classNames["telephone-keypad__box"] }, children);
224
177
  }
225
178
  );
226
179
  Orientation.displayName = "TelephoneKeypad:Orientation";
227
- var TelephoneKeypad = memo3(({ autoFocus, onButtonClick, isHorizontal }) => {
180
+ var TelephoneKeypad = memo4(({ autoFocus, className, onButtonClick, isHorizontal }) => {
228
181
  const autoFocusRef = useRefFrom2(autoFocus);
229
- const classNames = useStyles(styles2);
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__ */ React3.createElement("div", { className: classNames["webchat__telephone-keypad"], onKeyDown: handleKeyDown }, /* @__PURE__ */ React3.createElement(Orientation, { isHorizontal }, /* @__PURE__ */ React3.createElement(
257
- Button_default,
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__ */ React3.createElement(
265
- Button_default,
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__ */ React3.createElement(
273
- Button_default,
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__ */ React3.createElement(
281
- Button_default,
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__ */ React3.createElement(
289
- Button_default,
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__ */ React3.createElement(
297
- Button_default,
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__ */ React3.createElement(
305
- Button_default,
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__ */ React3.createElement(
313
- Button_default,
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__ */ React3.createElement(
321
- Button_default,
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__ */ React3.createElement(Button_default, { button: "star", "data-testid": testIds_default.sendBoxTelephoneKeypadButtonStar, onClick: handleButtonStarClick }), /* @__PURE__ */ React3.createElement(Button_default, { button: "0", "data-testid": testIds_default.sendBoxTelephoneKeypadButton0, onClick: handleButton0Click, ruby: "+" }), /* @__PURE__ */ React3.createElement(
329
- Button_default,
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 TelephoneKeypad_default = TelephoneKeypad;
297
+ var TelephoneKeypad_default2 = TelephoneKeypad;
339
298
 
340
299
  // src/components/telephoneKeypad/Surrogate.tsx
341
- var TelephoneKeypadSurrogate = memo4((props) => useShown()[0] ? /* @__PURE__ */ React4.createElement(TelephoneKeypad_default, { ...props }) : false);
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 React5 from "react";
347
- var styles3 = {
348
- "webchat-fluent__theme": {
349
- display: "contents",
350
- "--webchat-colorNeutralForeground1": "var(--colorNeutralForeground1, #242424)",
351
- "--webchat-colorNeutralForeground2": "var(--colorNeutralForeground2, #424242)",
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 = useStyles(styles3);
395
- return /* @__PURE__ */ React5.createElement("div", { className: classNames["webchat-fluent__theme"] }, props.children);
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 cx6 from "classnames";
401
- import React20, { memo as memo14, useCallback as useCallback8, useRef as useRef6, useState as useState3 } from "react";
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 React6 from "react";
327
+ import React7 from "react";
406
328
  function SendIcon(props) {
407
- return /* @__PURE__ */ React6.createElement(
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__ */ React6.createElement(
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-api";
430
- import cx from "classnames";
431
- import React8, { memo as memo5, useCallback as useCallback3, useEffect as useEffect2, useRef as useRef2, useState as useState2 } from "react";
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 React7 from "react";
356
+ import React8 from "react";
436
357
  function AddDocumentIcon(props) {
437
- return /* @__PURE__ */ React7.createElement(
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__ */ React7.createElement(
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 = useStyles(styles4);
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__ */ React8.createElement(
436
+ return dropZoneState ? /* @__PURE__ */ React9.createElement(
533
437
  "div",
534
438
  {
535
- className: cx(classNames["webchat-fluent__sendbox__attachment-drop-zone"], {
536
- [classNames["webchat-fluent__sendbox__attachment-drop-zone--droppable"]]: dropZoneState === "droppable"
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__ */ React8.createElement(AddDocumentIcon, { className: classNames["webchat-fluent__sendbox__attachment-drop-zone-icon"] }),
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 dropZone_default = memo5(DropZone);
452
+ var dropZone_default2 = memo6(DropZone);
549
453
 
550
454
  // src/components/DropZone.tsx
551
- var DropZone_default = 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 cx3 from "classnames";
556
- import React11, { memo as memo8 } from "react";
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 cx2 from "classnames";
561
- import React10, { memo as memo7, useCallback as useCallback4, useRef as useRef4 } from "react";
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 React9, { forwardRef as forwardRef2, memo as memo6, useRef as useRef3 } from "react";
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__ */ React9.createElement(
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 = memo6(AccessibleButton);
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 = useStyles(styles5);
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__ */ React10.createElement(
532
+ return /* @__PURE__ */ React11.createElement(
655
533
  AccessibleButton_default,
656
534
  {
657
- className: cx2(
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__ */ React10.createElement("img", { alt: imageAlt, className: classNames["webchat-fluent__suggested-action__image"], src: image }),
668
- /* @__PURE__ */ React10.createElement("span", null, buttonText)
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 SuggestedAction_default = memo7(SuggestedAction);
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 = useStyles(styles6);
713
- return /* @__PURE__ */ React11.createElement(
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: cx3(
720
- classNames["webchat-fluent__suggested-actions"],
580
+ className: cx5(
581
+ classNames["suggested-actions"],
721
582
  suggestedActionsStyleSet + "",
722
583
  {
723
- "webchat-fluent__suggested-actions--flow": suggestedActionLayout === "flow",
724
- "webchat-fluent__suggested-actions--stacked": suggestedActionLayout !== "flow"
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 && !!React11.Children.count(props.children) && props.children
591
+ !!props.children && !!React12.Children.count(props.children) && props.children
731
592
  );
732
593
  }
733
594
  function SuggestedActions() {
734
- const classNames = useStyles(styles6);
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__ */ React11.createElement(
743
- SuggestedAction_default,
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__ */ React11.createElement(
618
+ return /* @__PURE__ */ React12.createElement(
758
619
  SuggestedActionStackedOrFlowContainer,
759
620
  {
760
621
  "aria-label": localize("SUGGESTED_ACTIONS_LABEL_ALT"),
761
- className: classNames["webchat-fluent__suggested-actions"]
622
+ className: classNames["suggested-actions"]
762
623
  },
763
624
  children
764
625
  );
765
626
  }
766
- var suggestedActions_default = memo8(SuggestedActions);
627
+ var suggestedActions_default2 = memo9(SuggestedActions);
767
628
 
768
629
  // src/components/SuggestedActions.tsx
769
- var SuggestedActions_default = 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-api";
773
- import React14, { useCallback as useCallback5, useRef as useRef5, memo as memo10 } from "react";
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 React12 from "react";
638
+ import React13 from "react";
778
639
  function AttachmentIcon(props) {
779
- return /* @__PURE__ */ React12.createElement(
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__ */ React12.createElement(
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 cx4 from "classnames";
802
- import React13, { memo as memo9 } from "react";
803
- var styles7 = {
804
- "webchat-fluent__sendbox__toolbar": {
805
- display: "flex",
806
- gap: "4px",
807
- marginInlineStart: "auto"
808
- },
809
- "webchat-fluent__sendbox__toolbar-button": {
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 = memo9(
674
+ var ToolbarButton = memo10(
851
675
  (props) => {
852
- const classNames = useStyles(styles7);
853
- return /* @__PURE__ */ React13.createElement(
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: cx4(classNames["webchat-fluent__sendbox__toolbar-button"], props.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 = memo9((props) => {
872
- const classNames = useStyles(styles7);
873
- return /* @__PURE__ */ React13.createElement("div", { className: cx4(classNames["webchat-fluent__sendbox__toolbar"], props.className) }, props.children);
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 = memo9(
702
+ var ToolbarSeparator = memo10(
877
703
  (props) => {
878
- const classNames = useStyles(styles7);
879
- return /* @__PURE__ */ React13.createElement(
704
+ const classNames = useStyles_default(Toolbar_default);
705
+ return /* @__PURE__ */ React14.createElement(
880
706
  "div",
881
707
  {
882
708
  "aria-orientation": "vertical",
883
- className: cx4(classNames["webchat-fluent__sendbox__toolbar-separator"], props.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 = useStyles(styles8);
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__ */ React14.createElement("div", { className: classNames["webchat-fluent__sendbox__add-attachment"] }, /* @__PURE__ */ React14.createElement(
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["webchat-fluent__sendbox__add-attachment-input"],
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__ */ React14.createElement(
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__ */ React14.createElement(AttachmentIcon, null)
765
+ /* @__PURE__ */ React15.createElement(AttachmentIcon, null)
945
766
  ));
946
767
  }
947
- var AddAttachmentButton_default = memo10(AddAttachmentButton);
768
+ var AddAttachmentButton_default2 = memo11(AddAttachmentButton);
948
769
 
949
770
  // src/components/sendbox/Attachments.tsx
950
- import { hooks as hooks5 } from "botframework-webchat-api";
951
- import React15, { memo as memo11 } from "react";
952
- var { useLocalizer: useLocalizer4 } = hooks5;
953
- var styles9 = {
954
- "webchat-fluent__sendbox__attachment": {
955
- border: "1px solid var(--webchat-colorNeutralStroke1)",
956
- borderRadius: "var(--webchat-borderRadiusLarge)",
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 = useStyles(styles9);
793
+ const classNames = useStyles_default(Attachments_default);
973
794
  const localizeWithPlural = useLocalizer4({ plural: true });
974
- return attachments.length ? /* @__PURE__ */ React15.createElement("div", { className: classNames["webchat-fluent__sendbox__attachment"] }, localizeWithPlural(attachmentsPluralStringIds, attachments.length)) : null;
795
+ return attachments.length ? /* @__PURE__ */ React16.createElement("div", { className: cx7(classNames["sendbox__attachment"], className) }, localizeWithPlural(attachmentsPluralStringIds, attachments.length)) : null;
975
796
  }
976
- var Attachments_default = memo11(Attachments);
797
+ var Attachments_default2 = memo12(Attachments);
977
798
 
978
799
  // src/components/sendbox/ErrorMessage.tsx
979
- import React16, { memo as memo12 } from "react";
980
- var styles10 = {
981
- "webchat-fluent___sendbox__error-message": {
982
- fontSize: 0,
983
- height: 0,
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 = useStyles(styles10);
809
+ const classNames = useStyles_default(ErrorMessage_default);
993
810
  return (
994
811
  // eslint-disable-next-line react/forbid-dom-props
995
- /* @__PURE__ */ React16.createElement("span", { className: classNames["webchat-fluent___sendbox__error-message"], id: props.id, role: "alert" }, props.error)
812
+ /* @__PURE__ */ React17.createElement("span", { className: classNames["sendbox__error-message"], id: props.id, role: "alert" }, props.error)
996
813
  );
997
814
  }
998
- var ErrorMessage_default = memo12(ErrorMessage);
815
+ var ErrorMessage_default2 = memo13(ErrorMessage);
999
816
 
1000
817
  // src/components/sendbox/TelephoneKeypadToolbarButton.tsx
1001
- import React18, { memo as memo13, useCallback as useCallback6 } from "react";
1002
- import { hooks as hooks6 } from "botframework-webchat-api";
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 React17 from "react";
822
+ import React18 from "react";
1006
823
  function TelephoneKeypadIcon(props) {
1007
- return /* @__PURE__ */ React17.createElement(
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__ */ React17.createElement(
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 = memo13(() => {
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__ */ React18.createElement(
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__ */ React18.createElement(TelephoneKeypadIcon, null)
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 cx5 from "classnames";
1049
- import React19, { forwardRef as forwardRef3, useCallback as useCallback7 } from "react";
1050
- var styles11 = {
1051
- "webchat-fluent__sendbox__text-area": {
1052
- display: "grid",
1053
- gridTemplateAreas: `'main'`,
1054
- maxHeight: "200px",
1055
- overflow: "hidden"
1056
- },
1057
- "webchat-fluent__sendbox__text-area--hidden": {
1058
- // TODO: Not perfect way of hiding the text box.
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 = useStyles(styles11);
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__ */ React19.createElement(
889
+ return /* @__PURE__ */ React20.createElement(
1112
890
  "div",
1113
891
  {
1114
- className: cx5(
1115
- classNames["webchat-fluent__sendbox__text-area"],
892
+ className: cx8(
893
+ classNames["sendbox__text-area"],
1116
894
  {
1117
- [classNames["webchat-fluent__sendbox__text-area--hidden"]]: props.hidden
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__ */ React19.createElement(
901
+ /* @__PURE__ */ React20.createElement(
1124
902
  "div",
1125
903
  {
1126
- className: cx5(
1127
- classNames["webchat-fluent__sendbox__text-area-doppelganger"],
1128
- classNames["webchat-fluent__sendbox__text-area-shared"],
1129
- classNames["webchat-fluent__sendbox__text-area-input--scroll"]
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__ */ React19.createElement(
913
+ /* @__PURE__ */ React20.createElement(
1136
914
  "textarea",
1137
915
  {
1138
916
  "aria-label": props["aria-label"],
1139
- className: cx5(
1140
- classNames["webchat-fluent__sendbox__text-area-input"],
1141
- classNames["webchat-fluent__sendbox__text-area-shared"],
1142
- classNames["webchat-fluent__sendbox__text-area-input--scroll"]
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 TextArea_default = TextArea;
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 useMemo5 } from "react";
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 = useMemo5(
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 useMemo5(
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 useMemo6 } from "react";
965
+ import { useMemo as useMemo5 } from "react";
1188
966
  function useUniqueId(prefix) {
1189
- const id = useMemo6(() => Math.random().toString(36).substr(2, 5), []);
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 = useStyles(styles12);
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("webchat-fluent__sendbox__error-message-id");
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__ */ React20.createElement("form", { ...aria, className: cx6(classNames["webchat-fluent__sendbox"], props.className), onSubmit: handleFormSubmit }, /* @__PURE__ */ React20.createElement(SuggestedActions_default, null), /* @__PURE__ */ React20.createElement("div", { className: cx6(classNames["webchat-fluent__sendbox__sendbox"]), onClickCapture: handleSendBoxClick }, /* @__PURE__ */ React20.createElement(
1321
- Surrogate_default,
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["webchat-fluent__sendbox__sendbox-text"],
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__ */ React20.createElement(Attachments_default, { attachments }), /* @__PURE__ */ React20.createElement("div", { className: cx6(classNames["webchat-fluent__sendbox__sendbox-controls"]) }, maxMessageLength && /* @__PURE__ */ React20.createElement(
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: cx6(classNames["webchat-fluent__sendbox__text-counter"], {
1343
- [classNames["webchat-fluent__sendbox__text-counter--error"]]: isMessageLengthExceeded
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__ */ React20.createElement(Toolbar, null, !hideTelephoneKeypadButton && /* @__PURE__ */ React20.createElement(TelephoneKeypadToolbarButton_default, null), !hideUploadButton && /* @__PURE__ */ React20.createElement(AddAttachmentButton_default, { onFilesAdded: handleAddFiles }), /* @__PURE__ */ React20.createElement(ToolbarSeparator, null), /* @__PURE__ */ React20.createElement(
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__ */ React20.createElement(SendIcon, null)
1356
- ))), /* @__PURE__ */ React20.createElement(DropZone_default, { onFilesAdded: handleAddFiles }), /* @__PURE__ */ React20.createElement(ErrorMessage_default, { error: errorMessage, id: errorMessageId })));
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 sendbox_default = memo14(SendBox);
1097
+ var sendbox_default2 = memo15(SendBox);
1359
1098
 
1360
1099
  // src/components/SendBox.tsx
1361
- var SendBox_default = sendbox_default;
1100
+ var SendBox_default = sendbox_default2;
1362
1101
 
1363
1102
  // src/private/FluentThemeProvider.tsx
1364
- var { ThemeProvider } = Components;
1103
+ var { ThemeProvider } = Components2;
1365
1104
  var sendBoxMiddleware = [() => () => () => SendBox_default];
1366
- var FluentThemeProvider = ({ children }) => /* @__PURE__ */ React21.createElement(WebchatTheme, null, /* @__PURE__ */ React21.createElement(Provider_default, null, /* @__PURE__ */ React21.createElement(ThemeProvider, { sendBoxMiddleware }, children)));
1367
- var FluentThemeProvider_default = memo15(FluentThemeProvider);
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.20240416.e3f5401");
1109
+ injectMetaTag("botframework-webchat-fluent-theme:version", "4.17.0-main.20240419.2240f2a");
1110
+ injectStyles();
1371
1111
  export {
1372
1112
  FluentThemeProvider_default as FluentThemeProvider,
1373
1113
  testIds_default as testIds