botframework-webchat-fluent-theme 4.17.0-main.20240423.ec25060 → 4.17.0-main.20240501.533c151

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 (27) hide show
  1. package/dist/botframework-webchat-fluent-theme.css.map +1 -0
  2. package/dist/{index.d.mts → botframework-webchat-fluent-theme.d.mts} +7 -1
  3. package/dist/{index.d.ts → botframework-webchat-fluent-theme.d.ts} +7 -1
  4. package/dist/botframework-webchat-fluent-theme.development.css.map +1 -1
  5. package/dist/botframework-webchat-fluent-theme.development.d.ts +2 -0
  6. package/dist/botframework-webchat-fluent-theme.development.js +2 -2424
  7. package/dist/botframework-webchat-fluent-theme.development.js.map +1 -1
  8. package/dist/botframework-webchat-fluent-theme.js +3 -0
  9. package/dist/botframework-webchat-fluent-theme.js.map +1 -0
  10. package/dist/botframework-webchat-fluent-theme.mjs +3 -0
  11. package/dist/botframework-webchat-fluent-theme.mjs.map +1 -0
  12. package/dist/botframework-webchat-fluent-theme.production.min.css.map +1 -1
  13. package/dist/botframework-webchat-fluent-theme.production.min.d.ts +2 -0
  14. package/dist/botframework-webchat-fluent-theme.production.min.js +2 -10
  15. package/dist/botframework-webchat-fluent-theme.production.min.js.map +1 -1
  16. package/package.json +17 -12
  17. package/src/components/Theme.module.css +15 -0
  18. package/src/components/sendbox/index.module.css +21 -6
  19. package/src/components/sendbox/index.tsx +47 -8
  20. package/src/components/telephoneKeypad/Surrogate.tsx +1 -1
  21. package/src/components/telephoneKeypad/private/TelephoneKeypad.tsx +5 -8
  22. package/src/index.ts +11 -4
  23. package/dist/index.css.map +0 -1
  24. package/dist/index.js +0 -1151
  25. package/dist/index.js.map +0 -1
  26. package/dist/index.mjs +0 -1115
  27. package/dist/index.mjs.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/index.ts","../src/private/FluentThemeProvider.tsx","../src/components/telephoneKeypad/Provider.tsx","../src/components/telephoneKeypad/private/Context.ts","../src/components/telephoneKeypad/Surrogate.tsx","../src/components/telephoneKeypad/private/TelephoneKeypad.tsx","../src/components/telephoneKeypad/private/Button.tsx","../src/components/telephoneKeypad/private/Button.module.css","../src/styles/injectStyle.ts","../src/styles/useStyles.ts","../src/icons/InfoSmallIcon.tsx","../src/testIds.ts","../src/components/telephoneKeypad/useShown.ts","../src/components/telephoneKeypad/private/TelephoneKeypad.module.css","../src/components/Theme.tsx","../src/components/Theme.module.css","../src/components/sendbox/index.tsx","../src/icons/SendIcon.tsx","../src/components/dropZone/index.tsx","../src/icons/AddDocumentIcon.tsx","../src/components/dropZone/index.module.css","../src/components/DropZone.tsx","../src/components/suggestedActions/index.tsx","../src/components/suggestedActions/SuggestedAction.tsx","../src/components/suggestedActions/SuggestedAction.module.css","../src/components/suggestedActions/AccessibleButton.tsx","../src/components/suggestedActions/private/computeSuggestedActionText.ts","../src/components/suggestedActions/index.module.css","../src/components/SuggestedActions.tsx","../src/components/sendbox/AddAttachmentButton.tsx","../src/icons/AttachmentIcon.tsx","../src/components/sendbox/Toolbar.tsx","../src/components/sendbox/Toolbar.module.css","../src/components/sendbox/AddAttachmentButton.module.css","../src/components/sendbox/Attachments.tsx","../src/components/sendbox/Attachments.module.css","../src/components/sendbox/ErrorMessage.tsx","../src/components/sendbox/ErrorMessage.module.css","../src/components/sendbox/TelephoneKeypadToolbarButton.tsx","../src/icons/TelephoneKeypad.tsx","../src/components/sendbox/TextArea.tsx","../src/components/sendbox/TextArea.module.css","../src/components/sendbox/private/useSubmitError.ts","../src/components/sendbox/private/useUniqueId.ts","../src/components/sendbox/index.module.css","../src/components/SendBox.tsx"],"sourcesContent":["import { injectMetaTag } from 'inject-meta-tag';\n\nimport FluentThemeProvider from './private/FluentThemeProvider';\nimport { injectStyle } from './styles';\nimport testIds from './testIds';\n\nconst buildTool = process.env['build_tool'];\nconst moduleFormat = process.env['module_format'];\nconst version = process.env['npm_package_version'];\n\nconst buildInfo = { buildTool, moduleFormat, version };\n\ninjectMetaTag(\n 'botframework-webchat:fluent-theme',\n `version=${process.env['npm_package_version']}; build-tool=${process.env['build_tool']}; module-format=${process.env['module_format']}`\n);\n\ninjectStyle();\n\nexport { FluentThemeProvider, buildInfo, testIds };\n","import { Components } from 'botframework-webchat-component';\nimport React, { memo, type ReactNode } from 'react';\n\nimport { TelephoneKeypadProvider } from '../components/TelephoneKeypad';\nimport WebChatTheme from '../components/Theme';\nimport SendBox from '../components/SendBox';\n\nconst { ThemeProvider } = Components;\n\ntype Props = Readonly<{ children?: ReactNode | undefined }>;\n\nconst sendBoxMiddleware = [() => () => () => SendBox];\n\nconst FluentThemeProvider = ({ children }: Props) => (\n <WebChatTheme>\n <TelephoneKeypadProvider>\n <ThemeProvider sendBoxMiddleware={sendBoxMiddleware}>{children}</ThemeProvider>\n </TelephoneKeypadProvider>\n </WebChatTheme>\n);\n\nexport default memo(FluentThemeProvider);\n","import React, { memo, useMemo, useState, type ReactNode } from 'react';\n\nimport Context from './private/Context';\n\ntype Props = Readonly<{ children?: ReactNode | undefined }>;\n\nconst Provider = memo(({ children }: Props) => {\n const [shown, setShown] = useState(false);\n\n const context = useMemo(\n () =>\n Object.freeze({\n setShown,\n shown\n }),\n [setShown, shown]\n );\n\n return <Context.Provider value={context}>{children}</Context.Provider>;\n});\n\nexport default Provider;\n","import { createContext, type Dispatch, type SetStateAction } from 'react';\n\ntype ContextType = Readonly<{\n setShown: Dispatch<SetStateAction<boolean>>;\n shown: boolean;\n}>;\n\nconst Context = createContext<ContextType>(\n new Proxy({} as ContextType, {\n get() {\n throw new Error('botframework-webchat: This hook can only used under its corresponding <Provider>.');\n }\n })\n);\n\nContext.displayName = 'TelephoneKeypad.Context';\n\nexport default Context;\n","import React, { memo } from 'react';\n\nimport type { PropsOf } from '../../types/PropsOf';\nimport TelephoneKeypad from './private/TelephoneKeypad';\nimport useShown from './useShown';\n\ntype Props = PropsOf<typeof TelephoneKeypad>;\n\nconst TelephoneKeypadSurrogate = memo((props: Props) => (useShown()[0] ? <TelephoneKeypad {...props} /> : null));\n\nTelephoneKeypadSurrogate.displayName = 'TelephoneKeypad.Surrogate';\n\nexport default TelephoneKeypadSurrogate;\n","import { Components } from 'botframework-webchat-component';\nimport cx from 'classnames';\nimport React, { memo, useCallback, useEffect, useRef, type KeyboardEventHandler, type ReactNode } from 'react';\nimport { useRefFrom } from 'use-ref-from';\n\nimport Button from './Button';\n// import HorizontalDialPadController from './HorizontalDialPadController';\nimport InfoSmallIcon from '../../../icons/InfoSmallIcon';\nimport { useStyles } from '../../../styles';\nimport testIds from '../../../testIds';\nimport { type DTMF } from '../types';\nimport useShown from '../useShown';\nimport styles from './TelephoneKeypad.module.css';\n\nconst { LocalizedString } = Components;\n\ntype Props = Readonly<{\n autoFocus?: boolean | undefined;\n className?: string | undefined;\n isHorizontal: boolean;\n onButtonClick: (button: DTMF) => void;\n}>;\n\nconst Orientation = memo(\n ({ children, isHorizontal }: Readonly<{ children?: ReactNode | undefined; isHorizontal: boolean }>) => {\n const classNames = useStyles(styles);\n\n return isHorizontal ? null : ( // <HorizontalDialPadController>{children}</HorizontalDialPadController>\n <div className={classNames['telephone-keypad__box']}>{children}</div>\n );\n }\n);\n\nOrientation.displayName = 'TelephoneKeypad:Orientation';\n\nconst TelephoneKeypad = memo(({ autoFocus, className, onButtonClick, isHorizontal }: Props) => {\n const autoFocusRef = useRefFrom(autoFocus);\n const classNames = useStyles(styles);\n const firstButtonRef = useRef<HTMLButtonElement>(null);\n const onButtonClickRef = useRefFrom(onButtonClick);\n const [, setShown] = useShown();\n\n const handleButton1Click = useCallback(() => onButtonClickRef.current?.('1'), [onButtonClickRef]);\n const handleButton2Click = useCallback(() => onButtonClickRef.current?.('2'), [onButtonClickRef]);\n const handleButton3Click = useCallback(() => onButtonClickRef.current?.('3'), [onButtonClickRef]);\n const handleButton4Click = useCallback(() => onButtonClickRef.current?.('4'), [onButtonClickRef]);\n const handleButton5Click = useCallback(() => onButtonClickRef.current?.('5'), [onButtonClickRef]);\n const handleButton6Click = useCallback(() => onButtonClickRef.current?.('6'), [onButtonClickRef]);\n const handleButton7Click = useCallback(() => onButtonClickRef.current?.('7'), [onButtonClickRef]);\n const handleButton8Click = useCallback(() => onButtonClickRef.current?.('8'), [onButtonClickRef]);\n const handleButton9Click = useCallback(() => onButtonClickRef.current?.('9'), [onButtonClickRef]);\n const handleButton0Click = useCallback(() => onButtonClickRef.current?.('0'), [onButtonClickRef]);\n const handleButtonStarClick = useCallback(() => onButtonClickRef.current?.('star'), [onButtonClickRef]);\n const handleButtonPoundClick = useCallback(() => onButtonClickRef.current?.('pound'), [onButtonClickRef]);\n const handleKeyDown = useCallback<KeyboardEventHandler<HTMLDivElement>>(\n event => {\n if (event.key === 'Escape') {\n // TODO: Should send focus to the send box.\n setShown(false);\n }\n },\n [setShown]\n );\n\n useEffect(() => {\n autoFocusRef.current && firstButtonRef.current?.focus();\n }, [autoFocusRef, firstButtonRef]);\n\n return (\n <div className={cx(classNames['telephone-keypad'], className)} onKeyDown={handleKeyDown}>\n <Orientation isHorizontal={isHorizontal}>\n <Button\n button=\"1\"\n data-testid={testIds.sendBoxTelephoneKeypadButton1}\n onClick={handleButton1Click}\n ref={firstButtonRef}\n />\n <Button\n button=\"2\"\n data-testid={testIds.sendBoxTelephoneKeypadButton2}\n onClick={handleButton2Click}\n ruby=\"ABC\"\n />\n <Button\n button=\"3\"\n data-testid={testIds.sendBoxTelephoneKeypadButton3}\n onClick={handleButton3Click}\n ruby=\"DEF\"\n />\n <Button\n button=\"4\"\n data-testid={testIds.sendBoxTelephoneKeypadButton4}\n onClick={handleButton4Click}\n ruby=\"GHI\"\n />\n <Button\n button=\"5\"\n data-testid={testIds.sendBoxTelephoneKeypadButton5}\n onClick={handleButton5Click}\n ruby=\"JKL\"\n />\n <Button\n button=\"6\"\n data-testid={testIds.sendBoxTelephoneKeypadButton6}\n onClick={handleButton6Click}\n ruby=\"MNO\"\n />\n <Button\n button=\"7\"\n data-testid={testIds.sendBoxTelephoneKeypadButton7}\n onClick={handleButton7Click}\n ruby=\"PQRS\"\n />\n <Button\n button=\"8\"\n data-testid={testIds.sendBoxTelephoneKeypadButton8}\n onClick={handleButton8Click}\n ruby=\"TUV\"\n />\n <Button\n button=\"9\"\n data-testid={testIds.sendBoxTelephoneKeypadButton9}\n onClick={handleButton9Click}\n ruby=\"WXYZ\"\n />\n <Button button=\"star\" data-testid={testIds.sendBoxTelephoneKeypadButtonStar} onClick={handleButtonStarClick} />\n <Button button=\"0\" data-testid={testIds.sendBoxTelephoneKeypadButton0} onClick={handleButton0Click} ruby=\"+\" />\n <Button\n button=\"pound\"\n data-testid={testIds.sendBoxTelephoneKeypadButtonPound}\n onClick={handleButtonPoundClick}\n />\n </Orientation>\n <div className={classNames['telephone-keypad__info-message']}>\n <InfoSmallIcon />\n <LocalizedString\n linkClassName={classNames['telephone-keypad__info-message-link']}\n stringIds=\"TELEPHONE_KEYPAD_INPUT_MESSAGE\"\n />\n </div>\n </div>\n );\n});\n\nTelephoneKeypad.displayName = 'TelephoneKeypad';\n\nexport default TelephoneKeypad;\n","import React, { forwardRef, memo, useCallback, type Ref } from 'react';\n\nimport { useRefFrom } from 'use-ref-from';\n\nimport { type DTMF } from '../types';\n\nimport styles from './Button.module.css';\nimport { useStyles } from '../../../styles';\n\ntype Props = Readonly<{\n button: DTMF;\n ['data-testid']?: string | undefined;\n onClick?: (() => void) | undefined;\n ruby?: string | undefined;\n}>;\n\nconst Button = memo(\n // As we are all TypeScript, internal components do not need propTypes.\n // eslint-disable-next-line react/prop-types\n forwardRef(({ button, 'data-testid': dataTestId, onClick, ruby }: Props, ref: Ref<HTMLButtonElement>) => {\n const classNames = useStyles(styles);\n const onClickRef = useRefFrom(onClick);\n\n const handleClick = useCallback(() => onClickRef.current?.(), [onClickRef]);\n\n return (\n <button\n className={classNames['telephone-keypad__button']}\n data-testid={dataTestId}\n onClick={handleClick}\n ref={ref}\n type=\"button\"\n >\n <span className={classNames['telephone-keypad__button__text']}>\n {button === 'star' ? '\\u2217' : button === 'pound' ? '#' : button}\n </span>\n {!!ruby && <ruby className={classNames['telephone-keypad__button__ruby']}>{ruby}</ruby>}\n </button>\n );\n })\n);\n\nButton.displayName = 'TelephoneKeypad.Button';\n\nexport default Button;\n","\n:global(.webchat-fluent) .telephone-keypad__button {\n -webkit-user-select: none;\n align-items: center;\n appearance: none;\n /* backgroundColor: isDarkTheme() || isHighContrastTheme() ? black : white, */\n background-color: White;\n border-radius: 100%;\n\n /* Whitelabel styles */\n /* border: `solid 1px ${isHighContrastTheme() ? white : isDarkTheme() ? gray160 : gray40}`, */\n /* color: inherit; */\n\n border: solid 1px var(--webchat-colorNeutralStroke1);\n color: var(--webchat-colorGray200);\n font-weight: var(--webchat-fontWeightSemibold);\n\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 &:hover {\n /* backgroundColor: isHighContrastTheme() ? gray210 : isDarkTheme() ? gray150 : gray30 */\n background-color: var(--webchat-colorGray30)\n }\n}\n\n:global(.webchat-fluent) .telephone-keypad__button__ruby {\n /* color: isHighContrastTheme() ? white : isDarkTheme() ? gray40 : gray160, */\n color: var(--webchat-colorGray190);\n font-size: 10px;\n}\n\n:global(.webchat-fluent) .telephone-keypad__button__text {\n font-size: 24px;\n margin-top: 8px;\n}\n\n:global(.webchat-fluent) .telephone-keypad--horizontal {\n & .telephone-keypad__button {\n height: 32px;\n justify-content: center;\n margin: 8px 4px;\n width: 32px;\n };\n\n .telephone-keypad__button__ruby {\n display: none;\n }\n\n & .telephone-keypad__button__text {\n font-size: 20px;\n margin-top: 0;\n }\n}\n","export const injectedStyles = '@--INJECTED-STYLES-CONTENT--@';\n\nexport default function injectStyles() {\n if (globalThis.document) {\n const style = document.createElement('style');\n style.append(document.createTextNode(injectedStyles));\n document.head.appendChild(style);\n }\n}\n","import { useMemo } from 'react';\n\nfunction useStyles<T extends CSSModuleClasses>(styles: T): T {\n // @ts-expect-error: entries/fromEntries don't allow to specify keys type\n return useMemo(\n () =>\n Object.freeze(\n Object.fromEntries(\n Object.entries(styles).map(([baseClassName, resultClassName]) => [\n baseClassName,\n `${baseClassName} ${resultClassName}`\n ])\n )\n ),\n [styles]\n );\n}\n\nexport default useStyles;\n","import React, { memo } from 'react';\n\nexport default memo((props: Readonly<{ readonly className?: string }>) => (\n <svg\n aria-hidden=\"true\"\n className={props.className}\n height=\"1em\"\n viewBox=\"0 0 16 16\"\n width=\"1em\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n 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\"\n fill=\"currentColor\"\n />\n </svg>\n));\n","const testIds = {\n sendBoxDropZone: 'send box drop zone',\n sendBoxSendButton: 'send box send button',\n sendBoxTextBox: 'send box text area',\n sendBoxTelephoneKeypadButton1: `send box telephone keypad button 1`,\n sendBoxTelephoneKeypadButton2: `send box telephone keypad button 2`,\n sendBoxTelephoneKeypadButton3: `send box telephone keypad button 3`,\n sendBoxTelephoneKeypadButton4: `send box telephone keypad button 4`,\n sendBoxTelephoneKeypadButton5: `send box telephone keypad button 5`,\n sendBoxTelephoneKeypadButton6: `send box telephone keypad button 6`,\n sendBoxTelephoneKeypadButton7: `send box telephone keypad button 7`,\n sendBoxTelephoneKeypadButton8: `send box telephone keypad button 8`,\n sendBoxTelephoneKeypadButton9: `send box telephone keypad button 9`,\n sendBoxTelephoneKeypadButton0: `send box telephone keypad button 0`,\n sendBoxTelephoneKeypadButtonStar: `send box telephone keypad button star`,\n sendBoxTelephoneKeypadButtonPound: `send box telephone keypad button pound`,\n sendBoxTelephoneKeypadToolbarButton: 'send box telephone keypad toolbar button',\n sendBoxUploadButton: 'send box upload button'\n};\n\nexport default testIds;\n","import { useContext, useMemo, type Dispatch, type SetStateAction } from 'react';\n\nimport Context from './private/Context';\n\nexport default function useShown(): readonly [boolean, Dispatch<SetStateAction<boolean>>] {\n const { setShown, shown } = useContext(Context);\n\n return useMemo(() => Object.freeze([shown, setShown]), [shown, setShown]);\n}\n","\n:global(.webchat-fluent) .telephone-keypad {\n /* Commented out whitelabel styles for now. */\n /* background: getHighContrastDarkThemeColor(highContrastColor: black, darkThemeColor: gray190, string, defaultColor: gray10), */\n /* borderRadius: '8px 8px 0px 0px; */\n /* boxShadow: '-3px 0px 7px 0px rgba(0, 0, 0, 0.13), -0.6px 0px 1.8px 0px rgba(0, 0, 0, 0.10)', */\n\n align-items: center;\n background: var(--webchat-colorNeutralBackground1);\n /* border: isHighContrastTheme() ? `1px solid ${white}` : none; */\n border: none;\n border-radius: var(--webchat-borderRadiusXLarge);\n /* boxShadow: var(--shadow16); */\n display: flex;\n flex-direction: column;\n font-family: var(--webchat-fontFamilyBase);\n justify-content: center;\n /* margin: var(--spacingHorizontalMNudge)' */\n}\n\n:global(.webchat-fluent) .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\n:global(.webchat-fluent) .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\n:global(.webchat-fluent) .telephone-keypad__info-message-link {\n color: var(--webchat-colorBrandForegroundLink);\n text-decoration-color: transparent;\n\n &:target {\n color: var(--webchat-colorBrandForegroundLinkSelected);\n }\n &:hover {\n color: var(--webchat-colorBrandForegroundLinkHover);\n text-decoration: underline 1px currentColor;\n }\n &:active {\n color: var(--webchat-colorBrandForegroundLinkPressed);\n }\n &:focus-visible {\n outline: none;\n text-decoration: underline 1px double var(--webchat-colorStrokeFocus2);\n }\n}\n","import React, { type ReactNode } from 'react';\nimport cx from 'classnames';\nimport styles from './Theme.module.css';\nimport { useStyles } from '../styles';\n\nexport const rootClassName = 'webchat-fluent';\n\nexport default function WebchatTheme(props: Readonly<{ readonly children: ReactNode | undefined }>) {\n const classNames = useStyles(styles);\n return <div className={cx(rootClassName, classNames['theme'])}>{props.children}</div>;\n}\n","\n:global(.webchat-fluent).theme {\n display: contents;\n\n --webchat-colorNeutralForeground1: var(--colorNeutralForeground1, #242424);\n --webchat-colorNeutralForeground2: var(--colorNeutralForeground2, #424242);\n --webchat-colorNeutralForeground4: var(--colorNeutralForeground4, #707070);\n\n --webchat-colorNeutralForeground2BrandHover: var(--colorNeutralForeground2BrandHover, #02729c);\n --webchat-colorNeutralForeground2BrandPressed: var(--colorNeutralForeground2BrandPressed, #01678c);\n --webchat-colorNeutralForeground2BrandSelected: var(--colorNeutralForeground2BrandSelected, #067191);\n\n --webchat-colorNeutralForegroundDisabled: var(--colorNeutralForegroundDisabled, #bdbdbd);\n\n --webchat-colorNeutralBackground1: var(--colorNeutralBackground1, #ffffff);\n --webchat-colorNeutralBackground4: var(--colorNeutralBackground4, #f0f0f0);\n --webchat-colorNeutralBackground5: var(--colorNeutralBackground5, #ebebeb);\n\n --webchat-colorNeutralStroke1: var(--colorNeutralStroke1, #d1d1d1);\n --webchat-colorNeutralStroke2: var(--colorNeutralStroke2, #e0e0e0);\n --webchat-colorNeutralStroke1Selected: var(--colorNeutralStroke1Selected, #bdbdbd);\n \n --webchat-colorStrokeFocus2: var(--colorStrokeFocus2, #000000);\n\n --webchat-colorBrandStroke2: var(--colorBrandStroke2, #9edcf7);\n\n --webchat-colorBrandForeground2Hover: var(--colorBrandForeground2Hover, #015a7a);\n --webchat-colorBrandForeground2Pressed: var(--colorBrandForeground2Pressed, #01384d);\n\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\n --webchat-colorBrandBackground2Hover: var(--colorBrandBackground2Hover, #bee7fa);\n --webchat-colorBrandBackground2Pressed: var(--colorBrandBackground2Pressed, #7fd2f5);\n\n --webchat-colorCompoundBrandForeground1Hover: var(--colorCompoundBrandForeground1Hover, #02729c);\n\n --webchat-colorStatusDangerForeground1: var(--colorStatusDangerForeground1, #b10e1c);\n\n /* https://github.com/microsoft/fluentui/blob/master/packages/tokens/src/global/colors.ts */\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\n /* https://github.com/microsoft/fluentui/blob/master/packages/tokens/src/global/borderRadius.ts */\n --webchat-borderRadiusSmall: var(--borderRadiusSmall, 2px);\n --webchat-borderRadiusLarge: var(--borderRadiusLarge, 6px);\n --webchat-borderRadiusXLarge: var(--borderRadiusXLarge, 8px);\n\n /* https://github.com/microsoft/fluentui/blob/master/packages/tokens/src/utils/shadows.ts */\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\n /* https://github.com/microsoft/fluentui/blob/master/packages/tokens/src/global/spacings.ts */\n --webchat-spacingHorizontalMNudge: var(--spacingHorizontalMNudge, 10px);\n\n /* https://github.com/microsoft/fluentui/blob/master/packages/tokens/src/global/fonts.ts */\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\n /* https://github.com/microsoft/fluentui/blob/master/packages/tokens/src/global/fonts.ts */\n --webchat-fontWeightSemibold: var(--fontWeightSemibold, 600);\n \n --webchat-strokeWidthThicker: var(--strokeWidthThicker, 3px);\n\n --webchat-durationUltraFast: var(--durationUltraFast, 0);\n --webchat-durationNormal: var(--durationNormal, 200ms);\n\n --webchat-curveAccelerateMid: var(--curveAccelerateMid, cubic-bezier(1,0,1,1));\n --webchat-curveDecelerateMid: var(--curveDecelerateMid, cubic-bezier(0,0,0,1));\n}\n\n@media (prefers-reduced-motion) {\n :global(.webchat-fluent).theme {\n --webchat-durationUltraFast: 0.01ms;\n --webchat-durationNormal: 0.01ms;\n }\n}","import { hooks, type SendBoxFocusOptions } from 'botframework-webchat-component';\nimport cx from 'classnames';\nimport React, { memo, useCallback, useRef, useState, type FormEventHandler, type MouseEventHandler } from 'react';\nimport { useRefFrom } from 'use-ref-from';\nimport { SendIcon } from '../../icons/SendIcon';\nimport testIds from '../../testIds';\nimport DropZone from '../DropZone';\nimport SuggestedActions from '../SuggestedActions';\nimport { TelephoneKeypadSurrogate, useTelephoneKeypadShown, type DTMF } from '../TelephoneKeypad';\nimport AddAttachmentButton from './AddAttachmentButton';\nimport Attachments from './Attachments';\nimport ErrorMessage from './ErrorMessage';\nimport TelephoneKeypadToolbarButton from './TelephoneKeypadToolbarButton';\nimport TextArea from './TextArea';\nimport { Toolbar, ToolbarButton, ToolbarSeparator } from './Toolbar';\nimport useSubmitError from './private/useSubmitError';\nimport useUniqueId from './private/useUniqueId';\nimport styles from './index.module.css';\nimport { useStyles } from '../../styles';\n\nconst {\n useFocus,\n useLocalizer,\n useMakeThumbnail,\n useRegisterFocusSendBox,\n useSendBoxAttachments,\n useSendMessage,\n useStyleOptions\n} = hooks;\n\nfunction SendBox(\n props: Readonly<{\n className?: string | undefined;\n placeholder?: string | undefined;\n }>\n) {\n const inputRef = useRef<HTMLTextAreaElement>(null);\n const [message, setMessage] = useState('');\n const [attachments, setAttachments] = useSendBoxAttachments();\n const [{ hideTelephoneKeypadButton, hideUploadButton, maxMessageLength }] = useStyleOptions();\n const isMessageLengthExceeded = !!maxMessageLength && message.length > maxMessageLength;\n const classNames = useStyles(styles);\n const localize = useLocalizer();\n const sendMessage = useSendMessage();\n const makeThumbnail = useMakeThumbnail();\n const errorMessageId = useUniqueId('sendbox__error-message-id');\n const [errorRef, errorMessage] = useSubmitError({ message, attachments });\n const [telephoneKeypadShown] = useTelephoneKeypadShown();\n const setFocus = useFocus();\n\n useRegisterFocusSendBox(\n useCallback(\n ({ noKeyboard, waitUntil }: SendBoxFocusOptions) => {\n if (!inputRef.current) {\n return;\n }\n if (noKeyboard) {\n waitUntil(\n (async () => {\n const previousReadOnly = inputRef.current?.getAttribute('readonly');\n inputRef.current?.setAttribute('readonly', 'true');\n // TODO: [P2] We should update this logic to handle quickly-successive `focusCallback`.\n // If a succeeding `focusCallback` is being called, the `setTimeout` should run immediately.\n // Or the second `focusCallback` should not set `readonly` to `true`.\n // eslint-disable-next-line no-restricted-globals\n await new Promise(resolve => setTimeout(resolve, 0));\n inputRef.current?.focus();\n if (typeof previousReadOnly !== 'string') {\n inputRef.current?.removeAttribute('readonly');\n } else {\n inputRef.current?.setAttribute('readonly', previousReadOnly);\n }\n })()\n );\n } else {\n inputRef.current?.focus();\n }\n },\n [inputRef]\n )\n );\n\n const attachmentsRef = useRefFrom(attachments);\n const messageRef = useRefFrom(message);\n\n const handleSendBoxClick = useCallback<MouseEventHandler>(\n event => {\n if ('tabIndex' in event.target && typeof event.target.tabIndex === 'number' && event.target.tabIndex >= 0) {\n return;\n }\n\n setFocus('sendBox');\n },\n [setFocus]\n );\n\n const handleMessageChange: React.FormEventHandler<HTMLTextAreaElement> = useCallback(\n event => setMessage(event.currentTarget.value),\n [setMessage]\n );\n\n const handleAddFiles = useCallback(\n async (inputFiles: File[]) => {\n const newAttachments = Object.freeze(\n await Promise.all(\n inputFiles.map(file =>\n makeThumbnail(file).then(thumbnailURL =>\n Object.freeze({\n blob: file,\n ...(thumbnailURL && { thumbnailURL })\n })\n )\n )\n )\n );\n\n setAttachments(newAttachments);\n\n // TODO: Currently in the UX, we have no way to remove attachments.\n // Keep concatenating doesn't make sense in current UX.\n // When end-user can remove attachment, we should enable the code again.\n // setAttachments(attachments => attachments.concat(newAttachments));\n },\n [makeThumbnail, setAttachments]\n );\n\n const handleFormSubmit: FormEventHandler<HTMLFormElement> = useCallback(\n event => {\n event.preventDefault();\n\n if (errorRef.current !== 'empty' && !isMessageLengthExceeded) {\n sendMessage(messageRef.current, undefined, { attachments: attachmentsRef.current });\n\n setMessage('');\n setAttachments([]);\n }\n\n setFocus('sendBox');\n },\n [attachmentsRef, messageRef, sendMessage, setAttachments, setMessage, isMessageLengthExceeded, errorRef, setFocus]\n );\n\n const handleTelephoneKeypadButtonClick = useCallback(\n // TODO: We need more official way of sending DTMF.\n (dtmf: DTMF) => sendMessage(`/DTMF ${dtmf}`),\n [sendMessage]\n );\n\n const aria = {\n 'aria-invalid': 'false' as const,\n ...(errorMessage && {\n 'aria-invalid': 'true' as const,\n 'aria-errormessage': errorMessageId\n })\n };\n\n return (\n <form {...aria} className={cx(classNames['sendbox'], props.className)} onSubmit={handleFormSubmit}>\n <SuggestedActions />\n <div className={cx(classNames['sendbox__sendbox'])} onClickCapture={handleSendBoxClick}>\n <TextArea\n aria-label={isMessageLengthExceeded ? localize('TEXT_INPUT_LENGTH_EXCEEDED_ALT') : localize('TEXT_INPUT_ALT')}\n className={cx(classNames['sendbox__sendbox-text'], classNames['sendbox__text-area--in-grid'])}\n data-testid={testIds.sendBoxTextBox}\n hidden={telephoneKeypadShown}\n onInput={handleMessageChange}\n placeholder={props.placeholder ?? localize('TEXT_INPUT_PLACEHOLDER')}\n ref={inputRef}\n value={message}\n />\n <TelephoneKeypadSurrogate\n autoFocus={true}\n className={classNames['sendbox__telephone-keypad--in-grid']}\n isHorizontal={false}\n onButtonClick={handleTelephoneKeypadButtonClick}\n />\n <Attachments attachments={attachments} className={classNames['sendbox__attachment--in-grid']} />\n <div className={cx(classNames['sendbox__sendbox-controls'], classNames['sendbox__sendbox-controls--in-grid'])}>\n {!telephoneKeypadShown && maxMessageLength && (\n <div\n className={cx(classNames['sendbox__text-counter'], {\n [classNames['sendbox__text-counter--error']]: isMessageLengthExceeded\n })}\n >\n {`${message.length}/${maxMessageLength}`}\n </div>\n )}\n <Toolbar>\n {!hideTelephoneKeypadButton && <TelephoneKeypadToolbarButton />}\n {!hideUploadButton && <AddAttachmentButton onFilesAdded={handleAddFiles} />}\n <ToolbarSeparator />\n <ToolbarButton\n aria-label={localize('TEXT_INPUT_SEND_BUTTON_ALT')}\n data-testid={testIds.sendBoxSendButton}\n disabled={isMessageLengthExceeded || telephoneKeypadShown}\n type=\"submit\"\n >\n <SendIcon />\n </ToolbarButton>\n </Toolbar>\n </div>\n <DropZone onFilesAdded={handleAddFiles} />\n <ErrorMessage error={errorMessage} id={errorMessageId} />\n </div>\n </form>\n );\n}\n\nexport default memo(SendBox);\n","import React from 'react';\n\nexport function SendIcon(props: Readonly<{ readonly className?: string }>) {\n return (\n <svg\n aria-hidden=\"true\"\n className={props.className}\n height=\"1em\"\n viewBox=\"0 0 20 20\"\n width=\"1em\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n 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\"\n fill=\"currentColor\"\n />\n </svg>\n );\n}\n","import { hooks } from 'botframework-webchat-component';\nimport cx from 'classnames';\nimport React, { memo, useCallback, useEffect, useRef, useState, type DragEventHandler } from 'react';\nimport { useRefFrom } from 'use-ref-from';\n\nimport { AddDocumentIcon } from '../../icons/AddDocumentIcon';\nimport testIds from '../../testIds';\nimport styles from './index.module.css';\nimport { useStyles } from '../../styles';\n\nconst { useLocalizer } = hooks;\n\nconst handleDragOver: DragEventHandler<HTMLDivElement> = event => {\n // This is for preventing the browser from opening the dropped file in a new tab.\n event.preventDefault();\n};\n\n// Notes: For files dragging from outside of browser, it only tell us if it is a \"File\" instead of \"text/plain\" or \"text/uri-list\".\n// For images dragging inside of browser, it only tell us that it is \"text/plain\", \"text/uri-list\" and \"text/html\". But not \"image/*\".\n// So we cannot whitelist what is droppable.\n// We are using case-insensitive of type \"files\" so we can drag in WebDriver.\nconst isFilesTransferEvent = (event: DragEvent) =>\n !!event.dataTransfer?.types?.some(type => type.toLowerCase() === 'files');\n\nfunction isDescendantOf(target: Node, ancestor: Node): boolean {\n let current = target.parentNode;\n\n while (current) {\n if (current === ancestor) {\n return true;\n }\n\n current = current.parentNode;\n }\n\n return false;\n}\n\nconst DropZone = (props: { readonly onFilesAdded: (files: File[]) => void }) => {\n const [dropZoneState, setDropZoneState] = useState<false | 'visible' | 'droppable'>(false);\n const classNames = useStyles(styles);\n const dropZoneRef = useRef<HTMLDivElement>(null);\n const localize = useLocalizer();\n const onFilesAddedRef = useRefFrom(props.onFilesAdded);\n\n useEffect(() => {\n let entranceCounter = 0;\n\n const handleDragEnter = (event: DragEvent) => {\n entranceCounter++;\n\n if (isFilesTransferEvent(event)) {\n setDropZoneState(\n dropZoneRef.current &&\n (event.target === dropZoneRef.current ||\n (event.target instanceof HTMLElement && isDescendantOf(event.target, dropZoneRef.current)))\n ? 'droppable'\n : 'visible'\n );\n }\n };\n\n const handleDragLeave = () => --entranceCounter <= 0 && setDropZoneState(false);\n\n document.addEventListener('dragenter', handleDragEnter, false);\n document.addEventListener('dragleave', handleDragLeave, false);\n\n return () => {\n document.removeEventListener('dragenter', handleDragEnter);\n document.removeEventListener('dragleave', handleDragLeave);\n };\n }, [setDropZoneState]);\n\n const handleDrop = useCallback<DragEventHandler<HTMLDivElement>>(\n event => {\n event.preventDefault();\n\n setDropZoneState(false);\n\n if (!isFilesTransferEvent(event.nativeEvent)) {\n return;\n }\n\n onFilesAddedRef.current([...event.dataTransfer.files]);\n },\n [onFilesAddedRef, setDropZoneState]\n );\n\n return dropZoneState ? (\n <div\n className={cx(classNames['sendbox__attachment-drop-zone'], {\n [classNames['sendbox__attachment-drop-zone--droppable']]: dropZoneState === 'droppable'\n })}\n data-testid={testIds.sendBoxDropZone}\n onDragOver={handleDragOver}\n onDrop={handleDrop}\n ref={dropZoneRef}\n >\n <AddDocumentIcon className={classNames['sendbox__attachment-drop-zone-icon']} />\n {localize('TEXT_INPUT_DROP_ZONE')}\n </div>\n ) : null;\n};\n\nDropZone.displayName = 'DropZone';\n\nexport default memo(DropZone);\n","import React from 'react';\n\nexport function AddDocumentIcon(props: Readonly<{ readonly className?: string }>) {\n return (\n <svg\n aria-hidden=\"true\"\n className={props.className}\n height=\"1em\"\n viewBox=\"0 0 20 20\"\n width=\"1em\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n 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\"\n fill=\"currentColor\"\n />\n </svg>\n );\n}\n",":global(.webchat-fluent) .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\n:global(.webchat-fluent) .sendbox__attachment-drop-zone--droppable {\n background-color: #e00;\n color: White\n}\n\n:global(.webchat-fluent) .sendbox__attachment-drop-zone-icon {\n height: 36px;\n /* Set \"pointer-events: none\" to ignore dragging over the icon. Otherwise, when dragging over the icon; it would disable the \"--droppable\" modifier.*/\n pointer-events: none;\n width: 36px\n}\n","import DropZone from './dropZone/index';\n\nexport default DropZone;\n","import { hooks } from 'botframework-webchat-component';\nimport cx from 'classnames';\nimport React, { memo, type ReactNode } from 'react';\nimport SuggestedAction from './SuggestedAction';\nimport computeSuggestedActionText from './private/computeSuggestedActionText';\nimport styles from './index.module.css';\nimport { useStyles } from '../../styles';\n\nconst { useLocalizer, useStyleOptions, useStyleSet, useSuggestedActions } = hooks;\n\nfunction SuggestedActionStackedOrFlowContainer(\n props: Readonly<{\n 'aria-label'?: string | undefined;\n children?: ReactNode | undefined;\n className?: string | undefined;\n }>\n) {\n const [{ suggestedActionLayout }] = useStyleOptions();\n const [{ suggestedActions: suggestedActionsStyleSet }] = useStyleSet();\n const classNames = useStyles(styles);\n\n return (\n <div\n aria-label={props['aria-label']}\n aria-live=\"polite\"\n aria-orientation=\"vertical\"\n className={cx(\n classNames['suggested-actions'],\n suggestedActionsStyleSet + '',\n {\n [classNames['suggested-actions--flow']]: suggestedActionLayout === 'flow',\n [classNames['suggested-actions--stacked']]: suggestedActionLayout !== 'flow'\n },\n props.className\n )}\n role=\"toolbar\"\n >\n {!!props.children && !!React.Children.count(props.children) && props.children}\n </div>\n );\n}\n\nfunction SuggestedActions() {\n const classNames = useStyles(styles);\n const localize = useLocalizer();\n const [suggestedActions] = useSuggestedActions();\n const children = suggestedActions.map((cardAction, index) => {\n const { displayText, image, imageAltText, text, type, value } = cardAction as {\n displayText?: string;\n image?: string;\n imageAltText?: string;\n text?: string;\n type:\n | 'call'\n | 'downloadFile'\n | 'imBack'\n | 'messageBack'\n | 'openUrl'\n | 'playAudio'\n | 'playVideo'\n | 'postBack'\n | 'showImage'\n | 'signin';\n value?: { [key: string]: any } | string;\n };\n\n if (!suggestedActions?.length) {\n return null;\n }\n\n return (\n <SuggestedAction\n buttonText={computeSuggestedActionText(cardAction)}\n displayText={displayText}\n image={image}\n // Image alt text should use `imageAltText` field and fallback to `text` field.\n // https://github.com/microsoft/botframework-sdk/blob/main/specs/botframework-activity/botframework-activity.md#image-alt-text\n imageAlt={image && (imageAltText || text)}\n itemIndex={index}\n // eslint-disable-next-line react/no-array-index-key\n key={index}\n text={text}\n type={type}\n value={value}\n />\n );\n });\n return (\n <SuggestedActionStackedOrFlowContainer\n aria-label={localize('SUGGESTED_ACTIONS_LABEL_ALT')}\n className={classNames['suggested-actions']}\n >\n {children}\n </SuggestedActionStackedOrFlowContainer>\n );\n}\n\nexport default memo(SuggestedActions);\n","import { hooks } from 'botframework-webchat-component';\nimport { type DirectLineCardAction } from 'botframework-webchat-core';\nimport cx from 'classnames';\nimport React, { MouseEventHandler, memo, useCallback, useRef } from 'react';\nimport styles from './SuggestedAction.module.css';\nimport { useStyles } from '../../styles';\nimport AccessibleButton from './AccessibleButton';\n\nconst { useDisabled, useFocus, usePerformCardAction, useScrollToEnd, useStyleSet, useSuggestedActions } = hooks;\n\ntype SuggestedActionProps = Readonly<{\n buttonText: string | undefined;\n className?: string | undefined;\n displayText?: string | undefined;\n image?: string | undefined;\n imageAlt?: string | undefined;\n itemIndex: number;\n text?: string | undefined;\n type?:\n | 'call'\n | 'downloadFile'\n | 'imBack'\n | 'messageBack'\n | 'openUrl'\n | 'playAudio'\n | 'playVideo'\n | 'postBack'\n | 'showImage'\n | 'signin';\n value?: any;\n}>;\n\nfunction SuggestedAction({\n buttonText,\n className,\n displayText,\n image,\n imageAlt,\n text,\n type,\n value\n}: SuggestedActionProps) {\n const [_, setSuggestedActions] = useSuggestedActions();\n const [{ suggestedAction: suggestedActionStyleSet }] = useStyleSet();\n const [disabled] = useDisabled();\n const focus = useFocus();\n const focusRef = useRef<HTMLButtonElement>(null);\n const performCardAction = usePerformCardAction();\n const classNames = useStyles(styles);\n const scrollToEnd = useScrollToEnd();\n\n const handleClick = useCallback<MouseEventHandler<HTMLButtonElement>>(\n ({ target }) => {\n (async function () {\n // We need to focus to the send box before we are performing this card action.\n // The will make sure the focus is always on Web Chat.\n // Otherwise, the focus may momentarily send to `document.body` and screen reader will be confused.\n await focus('sendBoxWithoutKeyboard');\n\n // TODO: [P3] #XXX We should not destruct DirectLineCardAction into React props and pass them in. It makes typings difficult.\n // Instead, we should pass a \"cardAction\" props.\n performCardAction({ displayText, text, type, value } as DirectLineCardAction, { target });\n\n // Since \"openUrl\" action do not submit, the suggested action buttons do not hide after click.\n type === 'openUrl' && setSuggestedActions([]);\n\n scrollToEnd();\n })();\n },\n [displayText, focus, performCardAction, scrollToEnd, setSuggestedActions, text, type, value]\n );\n\n return (\n <AccessibleButton\n className={cx(classNames['suggested-action'], suggestedActionStyleSet + '', (className || '') + '')}\n disabled={disabled}\n onClick={handleClick}\n ref={focusRef}\n type=\"button\"\n >\n {image && <img alt={imageAlt} className={classNames['suggested-action__image']} src={image} />}\n <span>{buttonText}</span>\n </AccessibleButton>\n );\n}\n\nexport default memo(SuggestedAction);\n",":global(.webchat-fluent) .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 &:not([aria-disabled=\"true\"]):hover {\n background-color: var(--webchat-colorBrandBackground2Hover);\n color: var(--webchat-colorBrandForeground2Hover)\n }\n }\n &:not([aria-disabled=\"true\"]):active {\n background-color: var(--webchat-colorBrandBackground2Pressed);\n color: var(--webchat-colorBrandForeground2Pressed)\n }\n &[aria-disabled=\"true\"] {\n color: var(--webchat-colorNeutralForegroundDisabled);\n cursor: not-allowed\n }\n}\n\n:global(.webchat-fluent) .suggested-action__image {\n font-size: 12px;\n height: 1em;\n width: 1em;\n}\n","import React, { MouseEventHandler, ReactNode, forwardRef, memo, useRef } from 'react';\n\nconst preventDefaultHandler: MouseEventHandler<HTMLButtonElement> = event => event.preventDefault();\n\ntype AccessibleButtonProps = Readonly<{\n className?: string | undefined;\n 'aria-hidden'?: boolean;\n children?: ReactNode;\n disabled?: boolean;\n onClick?: MouseEventHandler<HTMLButtonElement>;\n tabIndex?: number;\n type: 'button';\n}>;\n\n// Differences between <button> and <AccessibleButton>:\n// - Disable behavior\n// - When the widget is disabled\n// - Set \"aria-disabled\" attribute to \"true\"\n// - Set \"readonly\" attribute\n// - Set \"tabIndex\" to -1\n// - Remove \"onClick\" handler\n// - Why this is needed\n// - Browser compatibility: when the widget is disabled, different browser send focus to different places\n// - When the widget become disabled, it's reasonable to keep the focus on the same widget for an extended period of time\n// - When the user presses TAB after the current widget is disabled, it should jump to the next non-disabled widget\n\n// Developers using this accessible widget will need to:\n// - Style the disabled widget themselves, using CSS query `:disabled, [aria-disabled=\"true\"] {}`\n// - Modify all code that check disabled through \"disabled\" attribute to use aria-disabled=\"true\" instead\n// - aria-disabled=\"true\" is the source of truth\n// - If the widget is contained by a <form>, the developer need to filter out some `onSubmit` event caused by this widget\n\nconst AccessibleButton = forwardRef<HTMLButtonElement, AccessibleButtonProps>(\n ({ 'aria-hidden': ariaHidden, children, disabled, onClick, tabIndex, ...props }, forwardedRef) => {\n const targetRef = useRef<HTMLButtonElement>(null);\n\n const ref = forwardedRef || targetRef;\n\n return (\n <button\n aria-disabled={disabled ? 'true' : 'false'}\n aria-hidden={ariaHidden}\n onClick={disabled ? preventDefaultHandler : onClick}\n ref={ref}\n tabIndex={tabIndex}\n {...(disabled && {\n 'aria-disabled': 'true',\n tabIndex: -1\n })}\n {...props}\n type=\"button\"\n >\n {children}\n </button>\n );\n }\n);\n\nexport default memo(AccessibleButton);\n","import type { DirectLineCardAction } from 'botframework-webchat-core';\n\n// Please refer to this article to find out how to compute the \"button text\" for suggested action.\n// https://github.com/Microsoft/botframework-sdk/blob/main/specs/botframework-activity/botframework-activity.md#card-action\nexport default function computeSuggestedActionText(cardAction: DirectLineCardAction) {\n // \"CardAction\" must contains at least image or title.\n const { title } = cardAction as { title?: string };\n const { type, value } = cardAction;\n\n if (type === 'messageBack') {\n return title || cardAction.displayText;\n } else if (title) {\n return title;\n } else if (typeof value === 'string') {\n return value;\n }\n\n return JSON.stringify(value);\n}\n\n// TODO: [P1] This is copied from botframework-webchat-component. Think about what we should do to eliminate duplications.\n","\n:global(.webchat-fluent) .suggested-actions {\n align-items: flex-end;\n align-self: flex-end;\n display: flex;\n flex-direction: column;\n gap: 8px;\n\n &:not(:empty) {\n padding-block-end: 8px;\n padding-inline-start: 4px\n }\n\n &.suggested-actions--flow {\n flex-direction: row;\n flex-wrap: wrap;\n justify-content: flex-end;\n }\n\n &.suggested-actions--stacked {\n flex-direction: column\n }\n}\n","import SuggestedActions from './suggestedActions/index';\n\nexport default SuggestedActions;\n","import { hooks } from 'botframework-webchat-component';\nimport React, { useCallback, useRef, type ChangeEventHandler, memo } from 'react';\nimport { useRefFrom } from 'use-ref-from';\nimport { AttachmentIcon } from '../../icons/AttachmentIcon';\nimport testIds from '../../testIds';\nimport { ToolbarButton } from './Toolbar';\nimport styles from './AddAttachmentButton.module.css';\nimport { useStyles } from '../../styles';\n\nconst { useLocalizer, useStyleOptions } = hooks;\n\nfunction AddAttachmentButton(\n props: Readonly<{\n disabled?: boolean | undefined;\n onFilesAdded: ((files: File[]) => void) | undefined;\n }>\n) {\n const inputRef = useRef<HTMLInputElement>(null);\n const classNames = useStyles(styles);\n const localize = useLocalizer();\n const [{ uploadAccept, uploadMultiple }] = useStyleOptions();\n const onFilesAddedRef = useRefFrom(props.onFilesAdded);\n\n const handleClick = useCallback(() => inputRef.current?.click(), [inputRef]);\n\n const handleFileChange = useCallback<ChangeEventHandler<HTMLInputElement>>(\n ({ target: { files } }) => {\n if (files) {\n onFilesAddedRef.current?.([...files]);\n\n if (inputRef.current) {\n inputRef.current.value = '';\n }\n }\n },\n [inputRef, onFilesAddedRef]\n );\n\n return (\n <div className={classNames['sendbox__add-attachment']}>\n <input\n accept={uploadAccept}\n aria-disabled={props.disabled}\n aria-hidden=\"true\"\n className={classNames['sendbox__add-attachment-input']}\n multiple={uploadMultiple}\n onInput={props.disabled ? undefined : handleFileChange}\n readOnly={props.disabled}\n ref={inputRef}\n role=\"button\"\n tabIndex={-1}\n type=\"file\"\n />\n <ToolbarButton\n aria-label={localize('TEXT_INPUT_UPLOAD_BUTTON_ALT')}\n data-testid={testIds.sendBoxUploadButton}\n onClick={handleClick}\n >\n <AttachmentIcon />\n </ToolbarButton>\n </div>\n );\n}\n\nexport default memo(AddAttachmentButton);\n","import React from 'react';\n\nexport function AttachmentIcon(props: Readonly<{ readonly className?: string }>) {\n return (\n <svg\n aria-hidden=\"true\"\n className={props.className}\n height=\"1em\"\n viewBox=\"0 0 20 20\"\n width=\"1em\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n 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\"\n fill=\"currentColor\"\n />\n </svg>\n );\n}\n","import cx from 'classnames';\nimport React, { memo, type MouseEventHandler, type ReactNode } from 'react';\nimport styles from './Toolbar.module.css';\nimport { useStyles } from '../../styles';\n\nconst preventDefaultHandler: MouseEventHandler<HTMLButtonElement> = event => event.preventDefault();\n\nexport const ToolbarButton = memo(\n (\n props: Readonly<{\n 'aria-label'?: string | undefined;\n children?: ReactNode | undefined;\n className?: string | undefined;\n 'data-testid'?: string | undefined;\n disabled?: boolean | undefined;\n onClick?: MouseEventHandler<HTMLButtonElement> | undefined;\n selected?: boolean | undefined;\n type?: 'button' | 'submit' | undefined;\n }>\n ) => {\n const classNames = useStyles(styles);\n\n return (\n <button\n aria-label={props['aria-label']}\n className={cx(classNames['sendbox__toolbar-button'], props.className, {\n [classNames['sendbox__toolbar-button--selected']]: props.selected\n })}\n data-testid={props['data-testid']}\n onClick={props.disabled ? preventDefaultHandler : props.onClick}\n type={props.type === 'submit' ? 'submit' : 'button'}\n {...(props.disabled && {\n 'aria-disabled': 'true',\n tabIndex: -1\n })}\n >\n {props.children}\n </button>\n );\n }\n);\n\nToolbarButton.displayName = 'ToolbarButton';\n\nexport const Toolbar = memo((props: Readonly<{ children?: ReactNode | undefined; className?: string | undefined }>) => {\n const classNames = useStyles(styles);\n\n return <div className={cx(classNames['sendbox__toolbar'], props.className)}>{props.children}</div>;\n});\n\nToolbar.displayName = 'Toolbar';\n\nexport const ToolbarSeparator = memo(\n (props: Readonly<{ children?: ReactNode | undefined; className?: string | undefined }>) => {\n const classNames = useStyles(styles);\n\n return (\n <div\n aria-orientation=\"vertical\"\n className={cx(classNames['sendbox__toolbar-separator'], props.className)}\n role=\"separator\"\n />\n );\n }\n);\n\nToolbarSeparator.displayName = 'ToolbarSeparator';\n",":global(.webchat-fluent) .sendbox__toolbar {\n display: flex;\n gap: 4px;\n margin-inline-start: auto;\n}\n\n:global(.webchat-fluent) .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 > svg {\n font-size: 20px;\n pointer-events: none;\n }\n\n &.sendbox__toolbar-button--selected {\n color: var(--webchat-colorNeutralForeground2BrandSelected);\n }\n @media (hover: hover) {\n &:not([aria-disabled=\"true\"]):hover {\n color: var(--webchat-colorNeutralForeground2BrandHover);\n }\n }\n &:not([aria-disabled=\"true\"]):active {\n color: var(--webchat-colorNeutralForeground2BrandPressed);\n }\n &[aria-disabled=\"true\"] {\n color: var(--webchat-colorNeutralForegroundDisabled);\n cursor: not-allowed;\n }\n}\n\n:global(.webchat-fluent) .sendbox__toolbar-separator {\n align-self: center;\n border-inline-end: 1px solid var(--webchat-colorNeutralStroke2);\n height: 28px;\n\n &:first-child, &:last-child, &:only-child {\n display: none\n }\n}\n",":global(.webchat-fluent) .sendbox__add-attachment {\n display: grid\n}\n\n:global(.webchat-fluent) .sendbox__add-attachment-input {\n font-size: 0;\n height: 0;\n opacity: 0;\n width: 0;\n}\n","import { hooks } from 'botframework-webchat-component';\nimport React, { memo } from 'react';\nimport cx from 'classnames';\nimport styles from './Attachments.module.css';\nimport { useStyles } from '../../styles';\n\nconst { useLocalizer } = hooks;\n\nconst attachmentsPluralStringIds = {\n one: 'TEXT_INPUT_ATTACHMENTS_ONE',\n two: 'TEXT_INPUT_ATTACHMENTS_TWO',\n few: 'TEXT_INPUT_ATTACHMENTS_FEW',\n many: 'TEXT_INPUT_ATTACHMENTS_MANY',\n other: 'TEXT_INPUT_ATTACHMENTS_OTHER'\n};\n\nfunction Attachments({\n attachments,\n className\n}: Readonly<{\n readonly attachments: readonly Readonly<{ blob: Blob | File; thumbnailURL?: URL | undefined }>[];\n readonly className?: string | undefined;\n}>) {\n const classNames = useStyles(styles);\n const localizeWithPlural = useLocalizer({ plural: true });\n\n return attachments.length ? (\n <div className={cx(classNames['sendbox__attachment'], className)}>\n {localizeWithPlural(attachmentsPluralStringIds, attachments.length)}\n </div>\n ) : null;\n}\n\nexport default memo(Attachments);\n",":global(.webchat-fluent) .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","import React, { memo } from 'react';\nimport styles from './ErrorMessage.module.css';\nimport { useStyles } from '../../styles';\n\nfunction ErrorMessage(props: Readonly<{ id: string; error?: string | undefined }>) {\n const classNames = useStyles(styles);\n return (\n // eslint-disable-next-line react/forbid-dom-props\n <span className={classNames['sendbox__error-message']} id={props.id} role=\"alert\">\n {props.error}\n </span>\n );\n}\n\nexport default memo(ErrorMessage);\n",":global(.webchat-fluent) .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","import React, { memo, useCallback } from 'react';\n\nimport { hooks } from 'botframework-webchat-component';\nimport { TelephoneKeypadIcon } from '../../icons/TelephoneKeypad';\nimport testIds from '../../testIds';\nimport { useTelephoneKeypadShown } from '../TelephoneKeypad';\nimport { ToolbarButton } from './Toolbar';\n\nconst { useLocalizer } = hooks;\n\nconst TelephoneKeypadToolbarButton = memo(() => {\n const [telephoneKeypadShown, setTelephoneKeypadShown] = useTelephoneKeypadShown();\n const localize = useLocalizer();\n\n const handleClick = useCallback(() => setTelephoneKeypadShown(shown => !shown), [setTelephoneKeypadShown]);\n\n return (\n <ToolbarButton\n aria-label={localize('TEXT_INPUT_TELEPHONE_KEYPAD_BUTTON_ALT')}\n data-testid={testIds.sendBoxTelephoneKeypadToolbarButton}\n onClick={handleClick}\n selected={telephoneKeypadShown}\n >\n <TelephoneKeypadIcon />\n </ToolbarButton>\n );\n});\n\nTelephoneKeypadToolbarButton.displayName = 'SendBox.TelephoneKeypadToolbarButton';\n\nexport default TelephoneKeypadToolbarButton;\n","import React from 'react';\n\nexport function TelephoneKeypadIcon(props: Readonly<{ readonly className?: string }>) {\n return (\n <svg\n aria-hidden=\"true\"\n className={props.className}\n height=\"1em\"\n viewBox=\"0 0 20 20\"\n width=\"1em\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n 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\"\n fill=\"currentColor\"\n />\n </svg>\n );\n}\n","import cx from 'classnames';\nimport React, { forwardRef, useCallback, type FormEventHandler, type KeyboardEventHandler } from 'react';\nimport { useStyles } from '../../styles';\nimport styles from './TextArea.module.css';\n\nconst TextArea = forwardRef<\n HTMLTextAreaElement,\n Readonly<{\n 'aria-label'?: string | undefined;\n className?: string | undefined;\n 'data-testid'?: string | undefined;\n\n /**\n * `true`, if the text area should be hidden but stay in the DOM, otherwise, `false`.\n *\n * Keeping the element in the DOM while making it invisible to users and PWDs is useful in these scenarios:\n *\n * - When the DTMF keypad is going away, we need to send focus to the text area before we unmount DTMF keypad,\n * This ensures the flow of focus did not sent to document body\n */\n hidden?: boolean | undefined;\n onInput?: FormEventHandler<HTMLTextAreaElement> | undefined;\n placeholder?: string | undefined;\n startRows?: number | undefined;\n value?: string | undefined;\n }>\n>((props, ref) => {\n const classNames = useStyles(styles);\n\n const handleKeyDown = useCallback<KeyboardEventHandler<HTMLTextAreaElement>>(event => {\n // Shift+Enter adds a new line\n // Enter requests related form submission\n if (!event.shiftKey && event.key === 'Enter') {\n event.preventDefault();\n\n if ('form' in event.target && event.target.form instanceof HTMLFormElement) {\n event.target?.form?.requestSubmit();\n }\n }\n }, []);\n\n return (\n <div\n className={cx(\n classNames['sendbox__text-area'],\n {\n [classNames['sendbox__text-area--hidden']]: props.hidden\n },\n props.className\n )}\n role={props.hidden ? 'hidden' : undefined}\n >\n <div\n className={cx(\n classNames['sendbox__text-area-doppelganger'],\n classNames['sendbox__text-area-shared'],\n classNames['sendbox__text-area-input--scroll']\n )}\n >\n {props.value || props.placeholder}{' '}\n </div>\n <textarea\n aria-label={props['aria-label']}\n className={cx(\n classNames['sendbox__text-area-input'],\n classNames['sendbox__text-area-shared'],\n classNames['sendbox__text-area-input--scroll']\n )}\n data-testid={props['data-testid']}\n onInput={props.onInput}\n onKeyDown={handleKeyDown}\n placeholder={props.placeholder}\n ref={ref}\n rows={props.startRows ?? 1}\n // eslint-disable-next-line no-magic-numbers\n tabIndex={props.hidden ? -1 : undefined}\n value={props.value}\n />\n </div>\n );\n});\n\nTextArea.displayName = 'TextArea';\n\nexport default TextArea;\n",":global(.webchat-fluent) .sendbox__text-area {\n display: grid;\n grid-template-areas: 'main';\n max-height: 200px;\n overflow: hidden;\n}\n\n:global(.webchat-fluent) .sendbox__text-area--hidden {\n /* TODO: Not perfect way of hiding the text box. */\n height: 0;\n visibility: collapse;\n}\n\n:global(.webchat-fluent) .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\n:global(.webchat-fluent) .sendbox__text-area-doppelganger {\n overflow: hidden;\n visibility: hidden;\n white-space: pre-wrap;\n}\n\n:global(.webchat-fluent) .sendbox__text-area-input {\n background-color: inherit;\n color: currentColor;\n height: 100%;\n padding: 0;\n}\n\n:global(.webchat-fluent) .sendbox__text-area-input--scroll {\n /* Edge uses -webkit-scrollbar if scrollbar-* is not set */\n scrollbar-color: unset;\n scrollbar-width: unset;\n /* Firefox */\n -moz-scrollbar-color: var(--webchat-colorNeutralBackground5) var(--webchat-colorNeutralForeground2);\n -moz-scrollbar-width: thin;\n\n /* Chrome, Edge, and Safari */\n &::-webkit-scrollbar {\n width: 8px\n }\n\n &::-webkit-scrollbar-track {\n background-color: var(--webchat-colorNeutralBackground5);\n border-radius: 16px\n }\n\n &::-webkit-scrollbar-thumb {\n background-color: var(--webchat-colorNeutralForeground2);\n border-radius: 16px\n }\n\n &::-webkit-scrollbar-corner {\n background-color: var(--webchat-colorNeutralBackground5);\n }\n}\n","import { hooks } from 'botframework-webchat-component';\nimport { RefObject, useMemo } from 'react';\nimport { useRefFrom } from 'use-ref-from';\n\nconst { useConnectivityStatus, useLocalizer } = hooks;\n\ntype ErrorMessageStringMap = ReadonlyMap<SendError, string>;\n\ntype SendError = 'empty' | 'offline';\n\nconst useSubmitError = ({\n attachments,\n message\n}: Readonly<{\n attachments: readonly Readonly<{ blob: Blob | File; thumbnailURL?: URL | undefined }>[];\n message: string;\n}>) => {\n const [connectivityStatus] = useConnectivityStatus();\n const localize = useLocalizer();\n\n const submitErrorRef = useRefFrom<'empty' | 'offline' | undefined>(\n connectivityStatus !== 'connected' && connectivityStatus !== 'reconnected'\n ? 'offline'\n : !message && !attachments.length\n ? 'empty'\n : undefined\n );\n\n const errorMessageStringMap = useMemo<ErrorMessageStringMap>(\n () =>\n Object.freeze(\n new Map<SendError, string>()\n .set('empty', localize('SEND_BOX_IS_EMPTY_TOOLTIP_ALT'))\n // TODO: [P0] We should add a new string for \"Cannot send message while offline.\"\n .set('offline', localize('CONNECTIVITY_STATUS_ALT_FATAL'))\n ),\n [localize]\n );\n\n return useMemo<Readonly<[RefObject<SendError | undefined>, string | undefined]>>(\n () => Object.freeze([submitErrorRef, submitErrorRef.current && errorMessageStringMap.get(submitErrorRef.current)]),\n [errorMessageStringMap, submitErrorRef]\n );\n};\n\nexport default useSubmitError;\n","/* eslint no-magic-numbers: [\"error\", { \"ignore\": [2, 5, 36] }] */\n\nimport { useMemo } from 'react';\n// TODO: fix math-random fails to import crypto\n// import random from 'math-random';\n\nexport default function useUniqueId(prefix?: string): string {\n const id = useMemo(() => Math.random().toString(36).substr(2, 5), []);\n\n prefix = prefix ? `${prefix}--` : '';\n\n return `${prefix}${id}`;\n}\n",":global(.webchat-fluent) .sendbox {\n color: var(--webchat-colorNeutralForeground1);\n font-family: var(--webchat-fontFamilyBase);\n padding: 0 10px 10px;\n text-rendering: optimizeLegibility;\n\n --webchat-sendbox-attachment-area-active: ;\n --webchat-sendbox-border-radius: var(--webchat-borderRadiusLarge);\n}\n\n:global(.webchat-fluent) .sendbox__sendbox {\n background-color: var(--webchat-colorNeutralBackground1);\n border-radius: var(--webchat-sendbox-border-radius);\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:\n [telephone-keypad-start] 'text-area' [telephone-keypad-end]\n var(--webchat-sendbox-attachment-area-active)\n 'controls' / [telephone-keypad] 1fr\n ;\n line-height: 20px;\n padding: 8px;\n position: relative;\n\n &:has(.sendbox__attachment--in-grid) {\n --webchat-sendbox-attachment-area-active: 'attachment'\n }\n\n &:focus-within {\n border-color: var(--webchat-colorNeutralStroke1Selected);\n }\n\n &::after {\n border-bottom-left-radius: var(--webchat-sendbox-border-radius);\n border-bottom-right-radius: var(--webchat-sendbox-border-radius);\n border-bottom: var(--webchat-strokeWidthThicker) solid var(--webchat-colorCompoundBrandForeground1Hover);\n bottom: -1px;\n clip-path: inset(calc(100% - var(--webchat-strokeWidthThicker)) 50% 0 50%);\n content: \"\";\n height: var(--webchat-sendbox-border-radius);\n left: -1px;\n position: absolute;\n right: -1px;\n transition: clip-path var(--webchat-durationUltraFast) var(--webchat-curveAccelerateMid);\n }\n\n &:focus-within::after {\n clip-path: inset(calc(100% - var(--webchat-strokeWidthThicker)) 0 0 0);\n transition: clip-path var(--webchat-durationNormal) var(--webchat-curveDecelerateMid);\n }\n\n > .sendbox__text-area--in-grid {\n grid-area: text-area;\n }\n\n > .sendbox__attachment--in-grid {\n grid-area: attachment;\n }\n\n > .sendbox__sendbox-controls--in-grid {\n grid-area: controls;\n }\n\n > .sendbox__telephone-keypad--in-grid {\n grid-area: telephone-keypad;\n }\n}\n\n:global(.webchat-fluent) .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\n:global(.webchat-fluent) .sendbox__sendbox-controls {\n align-items: center;\n display: flex;\n padding-inline-start: 4px;\n}\n\n:global(.webchat-fluent) .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\n:global(.webchat-fluent) .sendbox__text-counter--error {\n color: var(--webchat-colorStatusDangerForeground1);\n}\n","import SendBox from './sendbox/index';\n\nexport default SendBox;\n"],"mappings":"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","names":["injectMetaTag","Components","React","memo","React","memo","useMemo","useState","createContext","Context","Context_default","Provider","memo","children","shown","setShown","useState","context","useMemo","React","Context_default","Provider_default","React","memo","Components","cx","React","memo","useCallback","useEffect","useRef","useRefFrom","React","forwardRef","memo","useCallback","useRefFrom","Button_default","telephone-keypad__button","telephone-keypad__button__ruby","telephone-keypad__button__text","telephone-keypad--horizontal","injectedStyles","injectStyles","style","useMemo","useStyles","styles","baseClassName","resultClassName","useStyles_default","Button","memo","forwardRef","button","dataTestId","onClick","ruby","ref","classNames","useStyles_default","Button_default","onClickRef","useRefFrom","handleClick","useCallback","React","React","memo","InfoSmallIcon_default","props","testIds","testIds_default","useContext","useMemo","useShown","setShown","shown","useContext","Context_default","useMemo","TelephoneKeypad_default","telephone-keypad","telephone-keypad__box","telephone-keypad__info-message","telephone-keypad__info-message-link","LocalizedString","Components","Orientation","memo","children","isHorizontal","classNames","useStyles_default","TelephoneKeypad_default","React","TelephoneKeypad","autoFocus","className","onButtonClick","autoFocusRef","useRefFrom","firstButtonRef","useRef","onButtonClickRef","setShown","useShown","handleButton1Click","useCallback","handleButton2Click","handleButton3Click","handleButton4Click","handleButton5Click","handleButton6Click","handleButton7Click","handleButton8Click","handleButton9Click","handleButton0Click","handleButtonStarClick","handleButtonPoundClick","handleKeyDown","event","useEffect","cx","Button_default","testIds_default","InfoSmallIcon_default","TelephoneKeypadSurrogate","memo","props","useShown","React","TelephoneKeypad_default","Surrogate_default","React","cx","Theme_default","theme","rootClassName","WebchatTheme","props","classNames","useStyles_default","Theme_default","React","cx","hooks","cx","React","memo","useCallback","useRef","useState","useRefFrom","React","SendIcon","props","hooks","cx","React","memo","useCallback","useEffect","useRef","useState","useRefFrom","React","AddDocumentIcon","props","dropZone_default","sendbox__attachment-drop-zone","sendbox__attachment-drop-zone--droppable","sendbox__attachment-drop-zone-icon","useLocalizer","hooks","handleDragOver","event","isFilesTransferEvent","type","isDescendantOf","target","ancestor","current","DropZone","props","dropZoneState","setDropZoneState","useState","classNames","useStyles_default","dropZone_default","dropZoneRef","useRef","localize","onFilesAddedRef","useRefFrom","useEffect","entranceCounter","handleDragEnter","handleDragLeave","handleDrop","useCallback","React","cx","testIds_default","AddDocumentIcon","memo","DropZone_default","dropZone_default","hooks","cx","React","memo","hooks","cx","React","memo","useCallback","useRef","SuggestedAction_default","suggested-action","suggested-action__image","React","forwardRef","memo","useRef","preventDefaultHandler","event","AccessibleButton","ariaHidden","children","disabled","onClick","tabIndex","props","forwardedRef","targetRef","AccessibleButton_default","useDisabled","useFocus","usePerformCardAction","useScrollToEnd","useStyleSet","useSuggestedActions","hooks","SuggestedAction","buttonText","className","displayText","image","imageAlt","text","type","value","_","setSuggestedActions","suggestedActionStyleSet","disabled","focus","focusRef","useRef","performCardAction","classNames","useStyles_default","SuggestedAction_default","scrollToEnd","handleClick","useCallback","target","React","AccessibleButton_default","cx","memo","computeSuggestedActionText","cardAction","title","type","value","suggestedActions_default","suggested-actions","suggested-actions--flow","suggested-actions--stacked","useLocalizer","useStyleOptions","useStyleSet","useSuggestedActions","hooks","SuggestedActionStackedOrFlowContainer","props","suggestedActionLayout","suggestedActionsStyleSet","classNames","useStyles_default","suggestedActions_default","React","cx","SuggestedActions","localize","suggestedActions","children","cardAction","index","displayText","image","imageAltText","text","type","value","SuggestedAction_default","computeSuggestedActionText","memo","SuggestedActions_default","suggestedActions_default","hooks","React","useCallback","useRef","memo","useRefFrom","React","AttachmentIcon","props","cx","React","memo","Toolbar_default","sendbox__toolbar","sendbox__toolbar-button","sendbox__toolbar-button--selected","sendbox__toolbar-separator","preventDefaultHandler","event","ToolbarButton","memo","props","classNames","useStyles_default","Toolbar_default","React","cx","Toolbar","ToolbarSeparator","AddAttachmentButton_default","sendbox__add-attachment","sendbox__add-attachment-input","useLocalizer","useStyleOptions","hooks","AddAttachmentButton","props","inputRef","useRef","classNames","useStyles_default","AddAttachmentButton_default","localize","uploadAccept","uploadMultiple","onFilesAddedRef","useRefFrom","handleClick","useCallback","handleFileChange","files","React","ToolbarButton","testIds_default","AttachmentIcon","memo","hooks","React","memo","cx","Attachments_default","sendbox__attachment","useLocalizer","hooks","attachmentsPluralStringIds","Attachments","attachments","className","classNames","useStyles_default","Attachments_default","localizeWithPlural","React","cx","memo","React","memo","ErrorMessage_default","sendbox__error-message","ErrorMessage","props","classNames","useStyles_default","ErrorMessage_default","React","memo","React","memo","useCallback","hooks","React","TelephoneKeypadIcon","props","useLocalizer","hooks","TelephoneKeypadToolbarButton","memo","telephoneKeypadShown","setTelephoneKeypadShown","useShown","localize","handleClick","useCallback","shown","React","ToolbarButton","testIds_default","TelephoneKeypadIcon","TelephoneKeypadToolbarButton_default","cx","React","forwardRef","useCallback","TextArea_default","sendbox__text-area","sendbox__text-area--hidden","sendbox__text-area-shared","sendbox__text-area-doppelganger","sendbox__text-area-input","sendbox__text-area-input--scroll","TextArea","forwardRef","props","ref","classNames","useStyles_default","TextArea_default","handleKeyDown","useCallback","event","React","cx","hooks","useMemo","useRefFrom","useConnectivityStatus","useLocalizer","useSubmitError","attachments","message","connectivityStatus","localize","submitErrorRef","errorMessageStringMap","useSubmitError_default","useMemo","useUniqueId","prefix","id","sendbox_default","sendbox","sendbox__sendbox","sendbox__attachment--in-grid","sendbox__text-area--in-grid","sendbox__sendbox-controls--in-grid","sendbox__telephone-keypad--in-grid","sendbox__sendbox-text","sendbox__sendbox-controls","sendbox__text-counter","sendbox__text-counter--error","useFocus","useLocalizer","useMakeThumbnail","useRegisterFocusSendBox","useSendBoxAttachments","useSendMessage","useStyleOptions","hooks","SendBox","props","inputRef","useRef","message","setMessage","useState","attachments","setAttachments","hideTelephoneKeypadButton","hideUploadButton","maxMessageLength","isMessageLengthExceeded","classNames","useStyles_default","sendbox_default","localize","sendMessage","makeThumbnail","errorMessageId","useUniqueId","errorRef","errorMessage","useSubmitError_default","telephoneKeypadShown","useShown","setFocus","useCallback","noKeyboard","waitUntil","previousReadOnly","resolve","attachmentsRef","useRefFrom","messageRef","handleSendBoxClick","event","handleMessageChange","handleAddFiles","inputFiles","newAttachments","file","thumbnailURL","handleFormSubmit","handleTelephoneKeypadButtonClick","dtmf","aria","React","cx","SuggestedActions_default","TextArea_default","testIds_default","Surrogate_default","Attachments_default","Toolbar","TelephoneKeypadToolbarButton_default","AddAttachmentButton_default","ToolbarSeparator","ToolbarButton","SendIcon","DropZone_default","ErrorMessage_default","memo","SendBox_default","sendbox_default","ThemeProvider","Components","sendBoxMiddleware","SendBox_default","FluentThemeProvider","children","React","WebchatTheme","Provider_default","FluentThemeProvider_default","memo","buildTool","moduleFormat","version","buildInfo","injectMetaTag","injectStyles"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/telephoneKeypad/private/Button.module.css","../src/components/telephoneKeypad/private/TelephoneKeypad.module.css","../src/components/Theme.module.css","../src/components/dropZone/index.module.css","../src/components/suggestedActions/SuggestedAction.module.css","../src/components/suggestedActions/index.module.css","../src/components/sendbox/Toolbar.module.css","../src/components/sendbox/AddAttachmentButton.module.css","../src/components/sendbox/Attachments.module.css","../src/components/sendbox/ErrorMessage.module.css","../src/components/sendbox/TextArea.module.css","../src/components/sendbox/index.module.css"],"sourcesContent":["\n:global(.webchat-fluent) .telephone-keypad__button {\n -webkit-user-select: none;\n align-items: center;\n appearance: none;\n /* backgroundColor: isDarkTheme() || isHighContrastTheme() ? black : white, */\n background-color: White;\n border-radius: 100%;\n\n /* Whitelabel styles */\n /* border: `solid 1px ${isHighContrastTheme() ? white : isDarkTheme() ? gray160 : gray40}`, */\n /* color: inherit; */\n\n border: solid 1px var(--webchat-colorNeutralStroke1);\n color: var(--webchat-colorGray200);\n font-weight: var(--webchat-fontWeightSemibold);\n\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 &:hover {\n /* backgroundColor: isHighContrastTheme() ? gray210 : isDarkTheme() ? gray150 : gray30 */\n background-color: var(--webchat-colorGray30)\n }\n}\n\n:global(.webchat-fluent) .telephone-keypad__button__ruby {\n /* color: isHighContrastTheme() ? white : isDarkTheme() ? gray40 : gray160, */\n color: var(--webchat-colorGray190);\n font-size: 10px;\n}\n\n:global(.webchat-fluent) .telephone-keypad__button__text {\n font-size: 24px;\n margin-top: 8px;\n}\n\n:global(.webchat-fluent) .telephone-keypad--horizontal {\n & .telephone-keypad__button {\n height: 32px;\n justify-content: center;\n margin: 8px 4px;\n width: 32px;\n };\n\n .telephone-keypad__button__ruby {\n display: none;\n }\n\n & .telephone-keypad__button__text {\n font-size: 20px;\n margin-top: 0;\n }\n}\n","\n:global(.webchat-fluent) .telephone-keypad {\n /* Commented out whitelabel styles for now. */\n /* background: getHighContrastDarkThemeColor(highContrastColor: black, darkThemeColor: gray190, string, defaultColor: gray10), */\n /* borderRadius: '8px 8px 0px 0px; */\n /* boxShadow: '-3px 0px 7px 0px rgba(0, 0, 0, 0.13), -0.6px 0px 1.8px 0px rgba(0, 0, 0, 0.10)', */\n\n align-items: center;\n background: var(--webchat-colorNeutralBackground1);\n /* border: isHighContrastTheme() ? `1px solid ${white}` : none; */\n border: none;\n border-radius: var(--webchat-borderRadiusXLarge);\n /* boxShadow: var(--shadow16); */\n display: flex;\n flex-direction: column;\n font-family: var(--webchat-fontFamilyBase);\n justify-content: center;\n /* margin: var(--spacingHorizontalMNudge)' */\n}\n\n:global(.webchat-fluent) .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\n:global(.webchat-fluent) .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\n:global(.webchat-fluent) .telephone-keypad__info-message-link {\n color: var(--webchat-colorBrandForegroundLink);\n text-decoration-color: transparent;\n\n &:target {\n color: var(--webchat-colorBrandForegroundLinkSelected);\n }\n &:hover {\n color: var(--webchat-colorBrandForegroundLinkHover);\n text-decoration: underline 1px currentColor;\n }\n &:active {\n color: var(--webchat-colorBrandForegroundLinkPressed);\n }\n &:focus-visible {\n outline: none;\n text-decoration: underline 1px double var(--webchat-colorStrokeFocus2);\n }\n}\n","\n:global(.webchat-fluent).theme {\n display: contents;\n\n --webchat-colorNeutralForeground1: var(--colorNeutralForeground1, #242424);\n --webchat-colorNeutralForeground2: var(--colorNeutralForeground2, #424242);\n --webchat-colorNeutralForeground4: var(--colorNeutralForeground4, #707070);\n\n --webchat-colorNeutralForeground2BrandHover: var(--colorNeutralForeground2BrandHover, #02729c);\n --webchat-colorNeutralForeground2BrandPressed: var(--colorNeutralForeground2BrandPressed, #01678c);\n --webchat-colorNeutralForeground2BrandSelected: var(--colorNeutralForeground2BrandSelected, #067191);\n\n --webchat-colorNeutralForegroundDisabled: var(--colorNeutralForegroundDisabled, #bdbdbd);\n\n --webchat-colorNeutralBackground1: var(--colorNeutralBackground1, #ffffff);\n --webchat-colorNeutralBackground4: var(--colorNeutralBackground4, #f0f0f0);\n --webchat-colorNeutralBackground5: var(--colorNeutralBackground5, #ebebeb);\n\n --webchat-colorNeutralStroke1: var(--colorNeutralStroke1, #d1d1d1);\n --webchat-colorNeutralStroke2: var(--colorNeutralStroke2, #e0e0e0);\n --webchat-colorNeutralStroke1Selected: var(--colorNeutralStroke1Selected, #bdbdbd);\n \n --webchat-colorStrokeFocus2: var(--colorStrokeFocus2, #000000);\n\n --webchat-colorBrandStroke2: var(--colorBrandStroke2, #9edcf7);\n\n --webchat-colorBrandForeground2Hover: var(--colorBrandForeground2Hover, #015a7a);\n --webchat-colorBrandForeground2Pressed: var(--colorBrandForeground2Pressed, #01384d);\n\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\n --webchat-colorBrandBackground2Hover: var(--colorBrandBackground2Hover, #bee7fa);\n --webchat-colorBrandBackground2Pressed: var(--colorBrandBackground2Pressed, #7fd2f5);\n\n --webchat-colorCompoundBrandForeground1Hover: var(--colorCompoundBrandForeground1Hover, #02729c);\n\n --webchat-colorStatusDangerForeground1: var(--colorStatusDangerForeground1, #b10e1c);\n\n /* https://github.com/microsoft/fluentui/blob/master/packages/tokens/src/global/colors.ts */\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\n /* https://github.com/microsoft/fluentui/blob/master/packages/tokens/src/global/borderRadius.ts */\n --webchat-borderRadiusSmall: var(--borderRadiusSmall, 2px);\n --webchat-borderRadiusLarge: var(--borderRadiusLarge, 6px);\n --webchat-borderRadiusXLarge: var(--borderRadiusXLarge, 8px);\n\n /* https://github.com/microsoft/fluentui/blob/master/packages/tokens/src/utils/shadows.ts */\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\n /* https://github.com/microsoft/fluentui/blob/master/packages/tokens/src/global/spacings.ts */\n --webchat-spacingHorizontalMNudge: var(--spacingHorizontalMNudge, 10px);\n\n /* https://github.com/microsoft/fluentui/blob/master/packages/tokens/src/global/fonts.ts */\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\n /* https://github.com/microsoft/fluentui/blob/master/packages/tokens/src/global/fonts.ts */\n --webchat-fontWeightSemibold: var(--fontWeightSemibold, 600);\n}",":global(.webchat-fluent) .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\n:global(.webchat-fluent) .sendbox__attachment-drop-zone--droppable {\n background-color: #e00;\n color: White\n}\n\n:global(.webchat-fluent) .sendbox__attachment-drop-zone-icon {\n height: 36px;\n /* Set \"pointer-events: none\" to ignore dragging over the icon. Otherwise, when dragging over the icon; it would disable the \"--droppable\" modifier.*/\n pointer-events: none;\n width: 36px\n}\n",":global(.webchat-fluent) .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 &:not([aria-disabled=\"true\"]):hover {\n background-color: var(--webchat-colorBrandBackground2Hover);\n color: var(--webchat-colorBrandForeground2Hover)\n }\n }\n &:not([aria-disabled=\"true\"]):active {\n background-color: var(--webchat-colorBrandBackground2Pressed);\n color: var(--webchat-colorBrandForeground2Pressed)\n }\n &[aria-disabled=\"true\"] {\n color: var(--webchat-colorNeutralForegroundDisabled);\n cursor: not-allowed\n }\n}\n\n:global(.webchat-fluent) .suggested-action__image {\n font-size: 12px;\n height: 1em;\n width: 1em;\n}\n","\n:global(.webchat-fluent) .suggested-actions {\n align-items: flex-end;\n align-self: flex-end;\n display: flex;\n flex-direction: column;\n gap: 8px;\n\n &:not(:empty) {\n padding-block-end: 8px;\n padding-inline-start: 4px\n }\n\n &.suggested-actions--flow {\n flex-direction: row;\n flex-wrap: wrap;\n justify-content: flex-end;\n }\n\n &.suggested-actions--stacked {\n flex-direction: column\n }\n}\n",":global(.webchat-fluent) .sendbox__toolbar {\n display: flex;\n gap: 4px;\n margin-inline-start: auto;\n}\n\n:global(.webchat-fluent) .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 > svg {\n font-size: 20px;\n pointer-events: none;\n }\n\n &.sendbox__toolbar-button--selected {\n color: var(--webchat-colorNeutralForeground2BrandSelected);\n }\n @media (hover: hover) {\n &:not([aria-disabled=\"true\"]):hover {\n color: var(--webchat-colorNeutralForeground2BrandHover);\n }\n }\n &:not([aria-disabled=\"true\"]):active {\n color: var(--webchat-colorNeutralForeground2BrandPressed);\n }\n &[aria-disabled=\"true\"] {\n color: var(--webchat-colorNeutralForegroundDisabled);\n cursor: not-allowed;\n }\n}\n\n:global(.webchat-fluent) .sendbox__toolbar-separator {\n align-self: center;\n border-inline-end: 1px solid var(--webchat-colorNeutralStroke2);\n height: 28px;\n\n &:first-child, &:last-child, &:only-child {\n display: none\n }\n}\n",":global(.webchat-fluent) .sendbox__add-attachment {\n display: grid\n}\n\n:global(.webchat-fluent) .sendbox__add-attachment-input {\n font-size: 0;\n height: 0;\n opacity: 0;\n width: 0;\n}\n",":global(.webchat-fluent) .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",":global(.webchat-fluent) .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",":global(.webchat-fluent) .sendbox__text-area {\n display: grid;\n grid-template-areas: 'main';\n max-height: 200px;\n overflow: hidden;\n}\n\n:global(.webchat-fluent) .sendbox__text-area--hidden {\n /* TODO: Not perfect way of hiding the text box. */\n height: 0;\n visibility: collapse;\n}\n\n:global(.webchat-fluent) .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\n:global(.webchat-fluent) .sendbox__text-area-doppelganger {\n overflow: hidden;\n visibility: hidden;\n white-space: pre-wrap;\n}\n\n:global(.webchat-fluent) .sendbox__text-area-input {\n background-color: inherit;\n color: currentColor;\n height: 100%;\n padding: 0;\n}\n\n:global(.webchat-fluent) .sendbox__text-area-input--scroll {\n /* Edge uses -webkit-scrollbar if scrollbar-* is not set */\n scrollbar-color: unset;\n scrollbar-width: unset;\n /* Firefox */\n -moz-scrollbar-color: var(--webchat-colorNeutralBackground5) var(--webchat-colorNeutralForeground2);\n -moz-scrollbar-width: thin;\n\n /* Chrome, Edge, and Safari */\n &::-webkit-scrollbar {\n width: 8px\n }\n\n &::-webkit-scrollbar-track {\n background-color: var(--webchat-colorNeutralBackground5);\n border-radius: 16px\n }\n\n &::-webkit-scrollbar-thumb {\n background-color: var(--webchat-colorNeutralForeground2);\n border-radius: 16px\n }\n\n &::-webkit-scrollbar-corner {\n background-color: var(--webchat-colorNeutralBackground5);\n }\n}\n",":global(.webchat-fluent) .sendbox {\n color: var(--webchat-colorNeutralForeground1);\n font-family: var(--webchat-fontFamilyBase);\n padding: 0 10px 10px;\n text-rendering: optimizeLegibility;\n\n --webchat-sendbox-attachment-area-active: ;\n}\n\n:global(.webchat-fluent) .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:\n [telephone-keypad-start] 'text-area' [telephone-keypad-end]\n var(--webchat-sendbox-attachment-area-active)\n 'controls' / [telephone-keypad] 1fr\n ;\n line-height: 20px;\n padding: 8px;\n position: relative;\n\n &:has(.sendbox__attachment--in-grid) {\n --webchat-sendbox-attachment-area-active: 'attachment'\n }\n\n &:focus-within {\n border-color: var(--webchat-colorNeutralStroke1Selected);\n /* TODO clarify with design the color:\n - Teams is using colorCompoundBrandForeground1\n - Fluent is using colorCompoundBrandStroke\n - we are using colorCompoundBrandForeground1Hover */\n box-shadow: inset 0 -6px 0 -3px var(--webchat-colorCompoundBrandForeground1Hover);\n }\n\n > .sendbox__text-area--in-grid {\n grid-area: text-area;\n }\n\n > .sendbox__attachment--in-grid {\n grid-area: attachment;\n }\n\n > .sendbox__sendbox-controls--in-grid {\n grid-area: controls;\n }\n\n > .sendbox__telephone-keypad--in-grid {\n grid-area: telephone-keypad;\n }\n}\n\n:global(.webchat-fluent) .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\n:global(.webchat-fluent) .sendbox__sendbox-controls {\n align-items: center;\n display: flex;\n padding-inline-start: 4px;\n}\n\n:global(.webchat-fluent) .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\n:global(.webchat-fluent) .sendbox__text-counter--error {\n color: var(--webchat-colorStatusDangerForeground1);\n}\n"],"mappings":"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","names":["telephone-keypad__button","telephone-keypad__button__ruby","telephone-keypad__button__text","telephone-keypad--horizontal","telephone-keypad","telephone-keypad__box","telephone-keypad__info-message","telephone-keypad__info-message-link","theme","sendbox__attachment-drop-zone","sendbox__attachment-drop-zone--droppable","sendbox__attachment-drop-zone-icon","suggested-action","suggested-action__image","suggested-actions","suggested-actions--flow","suggested-actions--stacked","sendbox__toolbar","sendbox__toolbar-button","sendbox__toolbar-button--selected","sendbox__toolbar-separator","sendbox__add-attachment","sendbox__add-attachment-input","sendbox__attachment","sendbox__error-message","sendbox__text-area","sendbox__text-area--hidden","sendbox__text-area-shared","sendbox__text-area-doppelganger","sendbox__text-area-input","sendbox__text-area-input--scroll","sendbox","sendbox__sendbox","sendbox__attachment--in-grid","sendbox__text-area--in-grid","sendbox__sendbox-controls--in-grid","sendbox__telephone-keypad--in-grid","sendbox__sendbox-text","sendbox__sendbox-controls","sendbox__text-counter","sendbox__text-counter--error"]}
1
+ {"version":3,"sources":["../src/components/telephoneKeypad/private/Button.module.css","../src/components/telephoneKeypad/private/TelephoneKeypad.module.css","../src/components/Theme.module.css","../src/components/dropZone/index.module.css","../src/components/suggestedActions/SuggestedAction.module.css","../src/components/suggestedActions/index.module.css","../src/components/sendbox/Toolbar.module.css","../src/components/sendbox/AddAttachmentButton.module.css","../src/components/sendbox/Attachments.module.css","../src/components/sendbox/ErrorMessage.module.css","../src/components/sendbox/TextArea.module.css","../src/components/sendbox/index.module.css"],"sourcesContent":["\n:global(.webchat-fluent) .telephone-keypad__button {\n -webkit-user-select: none;\n align-items: center;\n appearance: none;\n /* backgroundColor: isDarkTheme() || isHighContrastTheme() ? black : white, */\n background-color: White;\n border-radius: 100%;\n\n /* Whitelabel styles */\n /* border: `solid 1px ${isHighContrastTheme() ? white : isDarkTheme() ? gray160 : gray40}`, */\n /* color: inherit; */\n\n border: solid 1px var(--webchat-colorNeutralStroke1);\n color: var(--webchat-colorGray200);\n font-weight: var(--webchat-fontWeightSemibold);\n\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 &:hover {\n /* backgroundColor: isHighContrastTheme() ? gray210 : isDarkTheme() ? gray150 : gray30 */\n background-color: var(--webchat-colorGray30)\n }\n}\n\n:global(.webchat-fluent) .telephone-keypad__button__ruby {\n /* color: isHighContrastTheme() ? white : isDarkTheme() ? gray40 : gray160, */\n color: var(--webchat-colorGray190);\n font-size: 10px;\n}\n\n:global(.webchat-fluent) .telephone-keypad__button__text {\n font-size: 24px;\n margin-top: 8px;\n}\n\n:global(.webchat-fluent) .telephone-keypad--horizontal {\n & .telephone-keypad__button {\n height: 32px;\n justify-content: center;\n margin: 8px 4px;\n width: 32px;\n };\n\n .telephone-keypad__button__ruby {\n display: none;\n }\n\n & .telephone-keypad__button__text {\n font-size: 20px;\n margin-top: 0;\n }\n}\n","\n:global(.webchat-fluent) .telephone-keypad {\n /* Commented out whitelabel styles for now. */\n /* background: getHighContrastDarkThemeColor(highContrastColor: black, darkThemeColor: gray190, string, defaultColor: gray10), */\n /* borderRadius: '8px 8px 0px 0px; */\n /* boxShadow: '-3px 0px 7px 0px rgba(0, 0, 0, 0.13), -0.6px 0px 1.8px 0px rgba(0, 0, 0, 0.10)', */\n\n align-items: center;\n background: var(--webchat-colorNeutralBackground1);\n /* border: isHighContrastTheme() ? `1px solid ${white}` : none; */\n border: none;\n border-radius: var(--webchat-borderRadiusXLarge);\n /* boxShadow: var(--shadow16); */\n display: flex;\n flex-direction: column;\n font-family: var(--webchat-fontFamilyBase);\n justify-content: center;\n /* margin: var(--spacingHorizontalMNudge)' */\n}\n\n:global(.webchat-fluent) .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\n:global(.webchat-fluent) .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\n:global(.webchat-fluent) .telephone-keypad__info-message-link {\n color: var(--webchat-colorBrandForegroundLink);\n text-decoration-color: transparent;\n\n &:target {\n color: var(--webchat-colorBrandForegroundLinkSelected);\n }\n &:hover {\n color: var(--webchat-colorBrandForegroundLinkHover);\n text-decoration: underline 1px currentColor;\n }\n &:active {\n color: var(--webchat-colorBrandForegroundLinkPressed);\n }\n &:focus-visible {\n outline: none;\n text-decoration: underline 1px double var(--webchat-colorStrokeFocus2);\n }\n}\n","\n:global(.webchat-fluent).theme {\n display: contents;\n\n --webchat-colorNeutralForeground1: var(--colorNeutralForeground1, #242424);\n --webchat-colorNeutralForeground2: var(--colorNeutralForeground2, #424242);\n --webchat-colorNeutralForeground4: var(--colorNeutralForeground4, #707070);\n\n --webchat-colorNeutralForeground2BrandHover: var(--colorNeutralForeground2BrandHover, #02729c);\n --webchat-colorNeutralForeground2BrandPressed: var(--colorNeutralForeground2BrandPressed, #01678c);\n --webchat-colorNeutralForeground2BrandSelected: var(--colorNeutralForeground2BrandSelected, #067191);\n\n --webchat-colorNeutralForegroundDisabled: var(--colorNeutralForegroundDisabled, #bdbdbd);\n\n --webchat-colorNeutralBackground1: var(--colorNeutralBackground1, #ffffff);\n --webchat-colorNeutralBackground4: var(--colorNeutralBackground4, #f0f0f0);\n --webchat-colorNeutralBackground5: var(--colorNeutralBackground5, #ebebeb);\n\n --webchat-colorNeutralStroke1: var(--colorNeutralStroke1, #d1d1d1);\n --webchat-colorNeutralStroke2: var(--colorNeutralStroke2, #e0e0e0);\n --webchat-colorNeutralStroke1Selected: var(--colorNeutralStroke1Selected, #bdbdbd);\n \n --webchat-colorStrokeFocus2: var(--colorStrokeFocus2, #000000);\n\n --webchat-colorBrandStroke2: var(--colorBrandStroke2, #9edcf7);\n\n --webchat-colorBrandForeground2Hover: var(--colorBrandForeground2Hover, #015a7a);\n --webchat-colorBrandForeground2Pressed: var(--colorBrandForeground2Pressed, #01384d);\n\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\n --webchat-colorBrandBackground2Hover: var(--colorBrandBackground2Hover, #bee7fa);\n --webchat-colorBrandBackground2Pressed: var(--colorBrandBackground2Pressed, #7fd2f5);\n\n --webchat-colorCompoundBrandForeground1Hover: var(--colorCompoundBrandForeground1Hover, #02729c);\n\n --webchat-colorStatusDangerForeground1: var(--colorStatusDangerForeground1, #b10e1c);\n\n /* https://github.com/microsoft/fluentui/blob/master/packages/tokens/src/global/colors.ts */\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\n /* https://github.com/microsoft/fluentui/blob/master/packages/tokens/src/global/borderRadius.ts */\n --webchat-borderRadiusSmall: var(--borderRadiusSmall, 2px);\n --webchat-borderRadiusLarge: var(--borderRadiusLarge, 6px);\n --webchat-borderRadiusXLarge: var(--borderRadiusXLarge, 8px);\n\n /* https://github.com/microsoft/fluentui/blob/master/packages/tokens/src/utils/shadows.ts */\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\n /* https://github.com/microsoft/fluentui/blob/master/packages/tokens/src/global/spacings.ts */\n --webchat-spacingHorizontalMNudge: var(--spacingHorizontalMNudge, 10px);\n\n /* https://github.com/microsoft/fluentui/blob/master/packages/tokens/src/global/fonts.ts */\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\n /* https://github.com/microsoft/fluentui/blob/master/packages/tokens/src/global/fonts.ts */\n --webchat-fontWeightSemibold: var(--fontWeightSemibold, 600);\n \n --webchat-strokeWidthThicker: var(--strokeWidthThicker, 3px);\n\n --webchat-durationUltraFast: var(--durationUltraFast, 0);\n --webchat-durationNormal: var(--durationNormal, 200ms);\n\n --webchat-curveAccelerateMid: var(--curveAccelerateMid, cubic-bezier(1,0,1,1));\n --webchat-curveDecelerateMid: var(--curveDecelerateMid, cubic-bezier(0,0,0,1));\n}\n\n@media (prefers-reduced-motion) {\n :global(.webchat-fluent).theme {\n --webchat-durationUltraFast: 0.01ms;\n --webchat-durationNormal: 0.01ms;\n }\n}",":global(.webchat-fluent) .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\n:global(.webchat-fluent) .sendbox__attachment-drop-zone--droppable {\n background-color: #e00;\n color: White\n}\n\n:global(.webchat-fluent) .sendbox__attachment-drop-zone-icon {\n height: 36px;\n /* Set \"pointer-events: none\" to ignore dragging over the icon. Otherwise, when dragging over the icon; it would disable the \"--droppable\" modifier.*/\n pointer-events: none;\n width: 36px\n}\n",":global(.webchat-fluent) .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 &:not([aria-disabled=\"true\"]):hover {\n background-color: var(--webchat-colorBrandBackground2Hover);\n color: var(--webchat-colorBrandForeground2Hover)\n }\n }\n &:not([aria-disabled=\"true\"]):active {\n background-color: var(--webchat-colorBrandBackground2Pressed);\n color: var(--webchat-colorBrandForeground2Pressed)\n }\n &[aria-disabled=\"true\"] {\n color: var(--webchat-colorNeutralForegroundDisabled);\n cursor: not-allowed\n }\n}\n\n:global(.webchat-fluent) .suggested-action__image {\n font-size: 12px;\n height: 1em;\n width: 1em;\n}\n","\n:global(.webchat-fluent) .suggested-actions {\n align-items: flex-end;\n align-self: flex-end;\n display: flex;\n flex-direction: column;\n gap: 8px;\n\n &:not(:empty) {\n padding-block-end: 8px;\n padding-inline-start: 4px\n }\n\n &.suggested-actions--flow {\n flex-direction: row;\n flex-wrap: wrap;\n justify-content: flex-end;\n }\n\n &.suggested-actions--stacked {\n flex-direction: column\n }\n}\n",":global(.webchat-fluent) .sendbox__toolbar {\n display: flex;\n gap: 4px;\n margin-inline-start: auto;\n}\n\n:global(.webchat-fluent) .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 > svg {\n font-size: 20px;\n pointer-events: none;\n }\n\n &.sendbox__toolbar-button--selected {\n color: var(--webchat-colorNeutralForeground2BrandSelected);\n }\n @media (hover: hover) {\n &:not([aria-disabled=\"true\"]):hover {\n color: var(--webchat-colorNeutralForeground2BrandHover);\n }\n }\n &:not([aria-disabled=\"true\"]):active {\n color: var(--webchat-colorNeutralForeground2BrandPressed);\n }\n &[aria-disabled=\"true\"] {\n color: var(--webchat-colorNeutralForegroundDisabled);\n cursor: not-allowed;\n }\n}\n\n:global(.webchat-fluent) .sendbox__toolbar-separator {\n align-self: center;\n border-inline-end: 1px solid var(--webchat-colorNeutralStroke2);\n height: 28px;\n\n &:first-child, &:last-child, &:only-child {\n display: none\n }\n}\n",":global(.webchat-fluent) .sendbox__add-attachment {\n display: grid\n}\n\n:global(.webchat-fluent) .sendbox__add-attachment-input {\n font-size: 0;\n height: 0;\n opacity: 0;\n width: 0;\n}\n",":global(.webchat-fluent) .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",":global(.webchat-fluent) .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",":global(.webchat-fluent) .sendbox__text-area {\n display: grid;\n grid-template-areas: 'main';\n max-height: 200px;\n overflow: hidden;\n}\n\n:global(.webchat-fluent) .sendbox__text-area--hidden {\n /* TODO: Not perfect way of hiding the text box. */\n height: 0;\n visibility: collapse;\n}\n\n:global(.webchat-fluent) .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\n:global(.webchat-fluent) .sendbox__text-area-doppelganger {\n overflow: hidden;\n visibility: hidden;\n white-space: pre-wrap;\n}\n\n:global(.webchat-fluent) .sendbox__text-area-input {\n background-color: inherit;\n color: currentColor;\n height: 100%;\n padding: 0;\n}\n\n:global(.webchat-fluent) .sendbox__text-area-input--scroll {\n /* Edge uses -webkit-scrollbar if scrollbar-* is not set */\n scrollbar-color: unset;\n scrollbar-width: unset;\n /* Firefox */\n -moz-scrollbar-color: var(--webchat-colorNeutralBackground5) var(--webchat-colorNeutralForeground2);\n -moz-scrollbar-width: thin;\n\n /* Chrome, Edge, and Safari */\n &::-webkit-scrollbar {\n width: 8px\n }\n\n &::-webkit-scrollbar-track {\n background-color: var(--webchat-colorNeutralBackground5);\n border-radius: 16px\n }\n\n &::-webkit-scrollbar-thumb {\n background-color: var(--webchat-colorNeutralForeground2);\n border-radius: 16px\n }\n\n &::-webkit-scrollbar-corner {\n background-color: var(--webchat-colorNeutralBackground5);\n }\n}\n",":global(.webchat-fluent) .sendbox {\n color: var(--webchat-colorNeutralForeground1);\n font-family: var(--webchat-fontFamilyBase);\n padding: 0 10px 10px;\n text-rendering: optimizeLegibility;\n\n --webchat-sendbox-attachment-area-active: ;\n --webchat-sendbox-border-radius: var(--webchat-borderRadiusLarge);\n}\n\n:global(.webchat-fluent) .sendbox__sendbox {\n background-color: var(--webchat-colorNeutralBackground1);\n border-radius: var(--webchat-sendbox-border-radius);\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:\n [telephone-keypad-start] 'text-area' [telephone-keypad-end]\n var(--webchat-sendbox-attachment-area-active)\n 'controls' / [telephone-keypad] 1fr\n ;\n line-height: 20px;\n padding: 8px;\n position: relative;\n\n &:has(.sendbox__attachment--in-grid) {\n --webchat-sendbox-attachment-area-active: 'attachment'\n }\n\n &:focus-within {\n border-color: var(--webchat-colorNeutralStroke1Selected);\n }\n\n &::after {\n border-bottom-left-radius: var(--webchat-sendbox-border-radius);\n border-bottom-right-radius: var(--webchat-sendbox-border-radius);\n border-bottom: var(--webchat-strokeWidthThicker) solid var(--webchat-colorCompoundBrandForeground1Hover);\n bottom: -1px;\n clip-path: inset(calc(100% - var(--webchat-strokeWidthThicker)) 50% 0 50%);\n content: \"\";\n height: var(--webchat-sendbox-border-radius);\n left: -1px;\n position: absolute;\n right: -1px;\n transition: clip-path var(--webchat-durationUltraFast) var(--webchat-curveAccelerateMid);\n }\n\n &:focus-within::after {\n clip-path: inset(calc(100% - var(--webchat-strokeWidthThicker)) 0 0 0);\n transition: clip-path var(--webchat-durationNormal) var(--webchat-curveDecelerateMid);\n }\n\n > .sendbox__text-area--in-grid {\n grid-area: text-area;\n }\n\n > .sendbox__attachment--in-grid {\n grid-area: attachment;\n }\n\n > .sendbox__sendbox-controls--in-grid {\n grid-area: controls;\n }\n\n > .sendbox__telephone-keypad--in-grid {\n grid-area: telephone-keypad;\n }\n}\n\n:global(.webchat-fluent) .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\n:global(.webchat-fluent) .sendbox__sendbox-controls {\n align-items: center;\n display: flex;\n padding-inline-start: 4px;\n}\n\n:global(.webchat-fluent) .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\n:global(.webchat-fluent) .sendbox__text-counter--error {\n color: var(--webchat-colorStatusDangerForeground1);\n}\n"],"mappings":"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","names":["telephone-keypad__button","telephone-keypad__button__ruby","telephone-keypad__button__text","telephone-keypad--horizontal","telephone-keypad","telephone-keypad__box","telephone-keypad__info-message","telephone-keypad__info-message-link","theme","sendbox__attachment-drop-zone","sendbox__attachment-drop-zone--droppable","sendbox__attachment-drop-zone-icon","suggested-action","suggested-action__image","suggested-actions","suggested-actions--flow","suggested-actions--stacked","sendbox__toolbar","sendbox__toolbar-button","sendbox__toolbar-button--selected","sendbox__toolbar-separator","sendbox__add-attachment","sendbox__add-attachment-input","sendbox__attachment","sendbox__error-message","sendbox__text-area","sendbox__text-area--hidden","sendbox__text-area-shared","sendbox__text-area-doppelganger","sendbox__text-area-input","sendbox__text-area-input--scroll","sendbox","sendbox__sendbox","sendbox__attachment--in-grid","sendbox__text-area--in-grid","sendbox__sendbox-controls--in-grid","sendbox__telephone-keypad--in-grid","sendbox__sendbox-text","sendbox__sendbox-controls","sendbox__text-counter","sendbox__text-counter--error"]}