botframework-webchat-fluent-theme 4.18.0 → 4.18.1-main.20240808.851825d

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 (31) hide show
  1. package/dist/botframework-webchat-fluent-theme.css.map +1 -1
  2. package/dist/botframework-webchat-fluent-theme.d.mts +1 -0
  3. package/dist/botframework-webchat-fluent-theme.d.ts +1 -0
  4. package/dist/botframework-webchat-fluent-theme.development.css.map +1 -1
  5. package/dist/botframework-webchat-fluent-theme.development.js +1 -1
  6. package/dist/botframework-webchat-fluent-theme.development.js.map +1 -1
  7. package/dist/botframework-webchat-fluent-theme.js +1 -1
  8. package/dist/botframework-webchat-fluent-theme.js.map +1 -1
  9. package/dist/botframework-webchat-fluent-theme.mjs +1 -1
  10. package/dist/botframework-webchat-fluent-theme.mjs.map +1 -1
  11. package/dist/botframework-webchat-fluent-theme.production.min.css.map +1 -1
  12. package/dist/botframework-webchat-fluent-theme.production.min.js +1 -1
  13. package/dist/botframework-webchat-fluent-theme.production.min.js.map +1 -1
  14. package/package.json +6 -5
  15. package/src/components/preChatActivity/PreChatMessageActivity.module.css +34 -0
  16. package/src/components/preChatActivity/PreChatMessageActivity.tsx +35 -0
  17. package/src/components/preChatActivity/StarterPromptsCardAction.module.css +58 -0
  18. package/src/components/preChatActivity/StarterPromptsCardAction.tsx +64 -0
  19. package/src/components/preChatActivity/StarterPromptsToolbar.module.css +18 -0
  20. package/src/components/preChatActivity/StarterPromptsToolbar.tsx +35 -0
  21. package/src/components/preChatActivity/index.tsx +2 -0
  22. package/src/components/preChatActivity/isPreChatMessageActivity.ts +26 -0
  23. package/src/components/preChatActivity/private/MonochromeImageMasker.module.css +5 -0
  24. package/src/components/preChatActivity/private/MonochromeImageMasker.tsx +19 -0
  25. package/src/components/sendBox/SendBox.tsx +24 -13
  26. package/src/components/sendBox/index.tsx +1 -1
  27. package/src/components/suggestedActions/SuggestedActions.tsx +46 -43
  28. package/src/components/theme/Theme.module.css +23 -5
  29. package/src/components/theme/Theme.tsx +1 -1
  30. package/src/private/FluentThemeProvider.tsx +20 -3
  31. package/src/testIds.ts +1 -0
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/external.umd/botframework-webchat-component.ts","../src/external.umd/react.ts","../node_modules/classnames/index.js","../node_modules/core-js-pure/internals/global.js","../node_modules/core-js-pure/internals/fails.js","../node_modules/core-js-pure/internals/function-bind-native.js","../node_modules/core-js-pure/internals/function-apply.js","../node_modules/core-js-pure/internals/function-uncurry-this.js","../node_modules/core-js-pure/internals/classof-raw.js","../node_modules/core-js-pure/internals/function-uncurry-this-clause.js","../node_modules/core-js-pure/internals/is-callable.js","../node_modules/core-js-pure/internals/descriptors.js","../node_modules/core-js-pure/internals/function-call.js","../node_modules/core-js-pure/internals/object-property-is-enumerable.js","../node_modules/core-js-pure/internals/create-property-descriptor.js","../node_modules/core-js-pure/internals/indexed-object.js","../node_modules/core-js-pure/internals/is-null-or-undefined.js","../node_modules/core-js-pure/internals/require-object-coercible.js","../node_modules/core-js-pure/internals/to-indexed-object.js","../node_modules/core-js-pure/internals/is-object.js","../node_modules/core-js-pure/internals/path.js","../node_modules/core-js-pure/internals/get-built-in.js","../node_modules/core-js-pure/internals/object-is-prototype-of.js","../node_modules/core-js-pure/internals/engine-user-agent.js","../node_modules/core-js-pure/internals/engine-v8-version.js","../node_modules/core-js-pure/internals/symbol-constructor-detection.js","../node_modules/core-js-pure/internals/use-symbol-as-uid.js","../node_modules/core-js-pure/internals/is-symbol.js","../node_modules/core-js-pure/internals/try-to-string.js","../node_modules/core-js-pure/internals/a-callable.js","../node_modules/core-js-pure/internals/get-method.js","../node_modules/core-js-pure/internals/ordinary-to-primitive.js","../node_modules/core-js-pure/internals/is-pure.js","../node_modules/core-js-pure/internals/define-global-property.js","../node_modules/core-js-pure/internals/shared-store.js","../node_modules/core-js-pure/internals/shared.js","../node_modules/core-js-pure/internals/to-object.js","../node_modules/core-js-pure/internals/has-own-property.js","../node_modules/core-js-pure/internals/uid.js","../node_modules/core-js-pure/internals/well-known-symbol.js","../node_modules/core-js-pure/internals/to-primitive.js","../node_modules/core-js-pure/internals/to-property-key.js","../node_modules/core-js-pure/internals/document-create-element.js","../node_modules/core-js-pure/internals/ie8-dom-define.js","../node_modules/core-js-pure/internals/object-get-own-property-descriptor.js","../node_modules/core-js-pure/internals/is-forced.js","../node_modules/core-js-pure/internals/function-bind-context.js","../node_modules/core-js-pure/internals/v8-prototype-define-bug.js","../node_modules/core-js-pure/internals/an-object.js","../node_modules/core-js-pure/internals/object-define-property.js","../node_modules/core-js-pure/internals/create-non-enumerable-property.js","../node_modules/core-js-pure/internals/export.js","../node_modules/core-js-pure/internals/math-trunc.js","../node_modules/core-js-pure/internals/to-integer-or-infinity.js","../node_modules/core-js-pure/internals/to-absolute-index.js","../node_modules/core-js-pure/internals/to-length.js","../node_modules/core-js-pure/internals/length-of-array-like.js","../node_modules/core-js-pure/internals/array-includes.js","../node_modules/core-js-pure/internals/hidden-keys.js","../node_modules/core-js-pure/internals/object-keys-internal.js","../node_modules/core-js-pure/internals/enum-bug-keys.js","../node_modules/core-js-pure/internals/object-keys.js","../node_modules/core-js-pure/internals/object-define-properties.js","../node_modules/core-js-pure/internals/html.js","../node_modules/core-js-pure/internals/shared-key.js","../node_modules/core-js-pure/internals/object-create.js","../node_modules/core-js-pure/modules/es.object.create.js","../node_modules/core-js-pure/es/object/create.js","../node_modules/core-js-pure/stable/object/create.js","../node_modules/@babel/runtime-corejs3/core-js-stable/object/create.js","../node_modules/inject-meta-tag/src/injectMetaTag.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","../node_modules/use-ref-from/src/useRefFrom.ts","../src/components/telephoneKeypad/private/Button.tsx","../src/components/telephoneKeypad/private/Button.module.css","../src/styles/injectStyle.ts","../src/styles/useStyles.ts","../src/testIds.ts","../src/components/telephoneKeypad/useShown.ts","../src/components/telephoneKeypad/private/TelephoneKeypad.module.css","../src/icons/AddDocumentIcon.tsx","../src/icons/AttachmentIcon.tsx","../src/icons/InfoSmallIcon.tsx","../src/icons/SendIcon.tsx","../src/icons/TelephoneKeypadIcon.tsx","../src/components/theme/Theme.tsx","../src/components/theme/Theme.module.css","../src/components/sendBox/SendBox.tsx","../src/components/dropZone/DropZone.tsx","../src/components/dropZone/DropZone.module.css","../src/components/suggestedActions/SuggestedActions.tsx","../src/components/suggestedActions/SuggestedAction.tsx","../src/components/suggestedActions/SuggestedAction.module.css","../src/components/suggestedActions/AccessibleButton.tsx","../src/components/suggestedActions/private/rovingFocus.tsx","../src/components/suggestedActions/private/computeSuggestedActionText.ts","../src/components/suggestedActions/SuggestedActions.module.css","../src/components/sendBox/AddAttachmentButton.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/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/SendBox.module.css","../src/components/sendBox/private/useTranscriptNavigation.ts","../src/index.ts","../src/bundle.ts"],"sourcesContent":["module.exports = {\n Components: (globalThis as any).WebChat.Components,\n hooks: (globalThis as any).WebChat.hooks\n};\n","module.exports = (globalThis as any).React;\n","/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = '';\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (arg) {\n\t\t\t\tclasses = appendClass(classes, parseValue(arg));\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction parseValue (arg) {\n\t\tif (typeof arg === 'string' || typeof arg === 'number') {\n\t\t\treturn arg;\n\t\t}\n\n\t\tif (typeof arg !== 'object') {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (Array.isArray(arg)) {\n\t\t\treturn classNames.apply(null, arg);\n\t\t}\n\n\t\tif (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n\t\t\treturn arg.toString();\n\t\t}\n\n\t\tvar classes = '';\n\n\t\tfor (var key in arg) {\n\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\tclasses = appendClass(classes, key);\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction appendClass (value, newClass) {\n\t\tif (!newClass) {\n\t\t\treturn value;\n\t\t}\n\t\n\t\tif (value) {\n\t\t\treturn value + ' ' + newClass;\n\t\t}\n\t\n\t\treturn value + newClass;\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","'use strict';\nvar check = function (it) {\n return it && it.Math === Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n // eslint-disable-next-line es/no-global-this -- safe\n check(typeof globalThis == 'object' && globalThis) ||\n check(typeof window == 'object' && window) ||\n // eslint-disable-next-line no-restricted-globals -- safe\n check(typeof self == 'object' && self) ||\n check(typeof global == 'object' && global) ||\n check(typeof this == 'object' && this) ||\n // eslint-disable-next-line no-new-func -- fallback\n (function () { return this; })() || Function('return this')();\n","'use strict';\nmodule.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};\n","'use strict';\nvar fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-function-prototype-bind -- safe\n var test = (function () { /* empty */ }).bind();\n // eslint-disable-next-line no-prototype-builtins -- safe\n return typeof test != 'function' || test.hasOwnProperty('prototype');\n});\n","'use strict';\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar apply = FunctionPrototype.apply;\nvar call = FunctionPrototype.call;\n\n// eslint-disable-next-line es/no-reflect -- safe\nmodule.exports = typeof Reflect == 'object' && Reflect.apply || (NATIVE_BIND ? call.bind(apply) : function () {\n return call.apply(apply, arguments);\n});\n","'use strict';\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar call = FunctionPrototype.call;\nvar uncurryThisWithBind = NATIVE_BIND && FunctionPrototype.bind.bind(call, call);\n\nmodule.exports = NATIVE_BIND ? uncurryThisWithBind : function (fn) {\n return function () {\n return call.apply(fn, arguments);\n };\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar toString = uncurryThis({}.toString);\nvar stringSlice = uncurryThis(''.slice);\n\nmodule.exports = function (it) {\n return stringSlice(toString(it), 8, -1);\n};\n","'use strict';\nvar classofRaw = require('../internals/classof-raw');\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = function (fn) {\n // Nashorn bug:\n // https://github.com/zloirock/core-js/issues/1128\n // https://github.com/zloirock/core-js/issues/1130\n if (classofRaw(fn) === 'Function') return uncurryThis(fn);\n};\n","'use strict';\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot\nvar documentAll = typeof document == 'object' && document.all;\n\n// `IsCallable` abstract operation\n// https://tc39.es/ecma262/#sec-iscallable\n// eslint-disable-next-line unicorn/no-typeof-undefined -- required for testing\nmodule.exports = typeof documentAll == 'undefined' && documentAll !== undefined ? function (argument) {\n return typeof argument == 'function' || argument === documentAll;\n} : function (argument) {\n return typeof argument == 'function';\n};\n","'use strict';\nvar fails = require('../internals/fails');\n\n// Detect IE8's incomplete defineProperty implementation\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] !== 7;\n});\n","'use strict';\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar call = Function.prototype.call;\n\nmodule.exports = NATIVE_BIND ? call.bind(call) : function () {\n return call.apply(call, arguments);\n};\n","'use strict';\nvar $propertyIsEnumerable = {}.propertyIsEnumerable;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !$propertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n var descriptor = getOwnPropertyDescriptor(this, V);\n return !!descriptor && descriptor.enumerable;\n} : $propertyIsEnumerable;\n","'use strict';\nmodule.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar $Object = Object;\nvar split = uncurryThis(''.split);\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins -- safe\n return !$Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) === 'String' ? split(it, '') : $Object(it);\n} : $Object;\n","'use strict';\n// we can't use just `it == null` since of `document.all` special case\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot-aec\nmodule.exports = function (it) {\n return it === null || it === undefined;\n};\n","'use strict';\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\n\nvar $TypeError = TypeError;\n\n// `RequireObjectCoercible` abstract operation\n// https://tc39.es/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (isNullOrUndefined(it)) throw new $TypeError(\"Can't call method on \" + it);\n return it;\n};\n","'use strict';\n// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = require('../internals/indexed-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};\n","'use strict';\nvar isCallable = require('../internals/is-callable');\n\nmodule.exports = function (it) {\n return typeof it == 'object' ? it !== null : isCallable(it);\n};\n","'use strict';\nmodule.exports = {};\n","'use strict';\nvar path = require('../internals/path');\nvar global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar aFunction = function (variable) {\n return isCallable(variable) ? variable : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(path[namespace]) || aFunction(global[namespace])\n : path[namespace] && path[namespace][method] || global[namespace] && global[namespace][method];\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis({}.isPrototypeOf);\n","'use strict';\nmodule.exports = typeof navigator != 'undefined' && String(navigator.userAgent) || '';\n","'use strict';\nvar global = require('../internals/global');\nvar userAgent = require('../internals/engine-user-agent');\n\nvar process = global.process;\nvar Deno = global.Deno;\nvar versions = process && process.versions || Deno && Deno.version;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.');\n // in old Chrome, versions of V8 isn't V8 = Chrome / 10\n // but their correct versions are not interesting for us\n version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]);\n}\n\n// BrowserFS NodeJS `process` polyfill incorrectly set `.v8` to `0.0`\n// so check `userAgent` even if `.v8` exists, but 0\nif (!version && userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = +match[1];\n }\n}\n\nmodule.exports = version;\n","'use strict';\n/* eslint-disable es/no-symbol -- required for testing */\nvar V8_VERSION = require('../internals/engine-v8-version');\nvar fails = require('../internals/fails');\nvar global = require('../internals/global');\n\nvar $String = global.String;\n\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n var symbol = Symbol('symbol detection');\n // Chrome 38 Symbol has incorrect toString conversion\n // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances\n // nb: Do not call `String` directly to avoid this being optimized out to `symbol+''` which will,\n // of course, fail.\n return !$String(symbol) || !(Object(symbol) instanceof Symbol) ||\n // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances\n !Symbol.sham && V8_VERSION && V8_VERSION < 41;\n});\n","'use strict';\n/* eslint-disable es/no-symbol -- required for testing */\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\n\nmodule.exports = NATIVE_SYMBOL\n && !Symbol.sham\n && typeof Symbol.iterator == 'symbol';\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar $Object = Object;\n\nmodule.exports = USE_SYMBOL_AS_UID ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n var $Symbol = getBuiltIn('Symbol');\n return isCallable($Symbol) && isPrototypeOf($Symbol.prototype, $Object(it));\n};\n","'use strict';\nvar $String = String;\n\nmodule.exports = function (argument) {\n try {\n return $String(argument);\n } catch (error) {\n return 'Object';\n }\n};\n","'use strict';\nvar isCallable = require('../internals/is-callable');\nvar tryToString = require('../internals/try-to-string');\n\nvar $TypeError = TypeError;\n\n// `Assert: IsCallable(argument) is true`\nmodule.exports = function (argument) {\n if (isCallable(argument)) return argument;\n throw new $TypeError(tryToString(argument) + ' is not a function');\n};\n","'use strict';\nvar aCallable = require('../internals/a-callable');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\n\n// `GetMethod` abstract operation\n// https://tc39.es/ecma262/#sec-getmethod\nmodule.exports = function (V, P) {\n var func = V[P];\n return isNullOrUndefined(func) ? undefined : aCallable(func);\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\n\nvar $TypeError = TypeError;\n\n// `OrdinaryToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-ordinarytoprimitive\nmodule.exports = function (input, pref) {\n var fn, val;\n if (pref === 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n if (isCallable(fn = input.valueOf) && !isObject(val = call(fn, input))) return val;\n if (pref !== 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n throw new $TypeError(\"Can't convert object to primitive value\");\n};\n","'use strict';\nmodule.exports = true;\n","'use strict';\nvar global = require('../internals/global');\n\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\n\nmodule.exports = function (key, value) {\n try {\n defineProperty(global, key, { value: value, configurable: true, writable: true });\n } catch (error) {\n global[key] = value;\n } return value;\n};\n","'use strict';\nvar IS_PURE = require('../internals/is-pure');\nvar globalThis = require('../internals/global');\nvar defineGlobalProperty = require('../internals/define-global-property');\n\nvar SHARED = '__core-js_shared__';\nvar store = module.exports = globalThis[SHARED] || defineGlobalProperty(SHARED, {});\n\n(store.versions || (store.versions = [])).push({\n version: '3.36.1',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2014-2024 Denis Pushkarev (zloirock.ru)',\n license: 'https://github.com/zloirock/core-js/blob/v3.36.1/LICENSE',\n source: 'https://github.com/zloirock/core-js'\n});\n","'use strict';\nvar store = require('../internals/shared-store');\n\nmodule.exports = function (key, value) {\n return store[key] || (store[key] = value || {});\n};\n","'use strict';\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar $Object = Object;\n\n// `ToObject` abstract operation\n// https://tc39.es/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return $Object(requireObjectCoercible(argument));\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toObject = require('../internals/to-object');\n\nvar hasOwnProperty = uncurryThis({}.hasOwnProperty);\n\n// `HasOwnProperty` abstract operation\n// https://tc39.es/ecma262/#sec-hasownproperty\n// eslint-disable-next-line es/no-object-hasown -- safe\nmodule.exports = Object.hasOwn || function hasOwn(it, key) {\n return hasOwnProperty(toObject(it), key);\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar id = 0;\nvar postfix = Math.random();\nvar toString = uncurryThis(1.0.toString);\n\nmodule.exports = function (key) {\n return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString(++id + postfix, 36);\n};\n","'use strict';\nvar global = require('../internals/global');\nvar shared = require('../internals/shared');\nvar hasOwn = require('../internals/has-own-property');\nvar uid = require('../internals/uid');\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar Symbol = global.Symbol;\nvar WellKnownSymbolsStore = shared('wks');\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol['for'] || Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!hasOwn(WellKnownSymbolsStore, name)) {\n WellKnownSymbolsStore[name] = NATIVE_SYMBOL && hasOwn(Symbol, name)\n ? Symbol[name]\n : createWellKnownSymbol('Symbol.' + name);\n } return WellKnownSymbolsStore[name];\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar isObject = require('../internals/is-object');\nvar isSymbol = require('../internals/is-symbol');\nvar getMethod = require('../internals/get-method');\nvar ordinaryToPrimitive = require('../internals/ordinary-to-primitive');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar $TypeError = TypeError;\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\n\n// `ToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-toprimitive\nmodule.exports = function (input, pref) {\n if (!isObject(input) || isSymbol(input)) return input;\n var exoticToPrim = getMethod(input, TO_PRIMITIVE);\n var result;\n if (exoticToPrim) {\n if (pref === undefined) pref = 'default';\n result = call(exoticToPrim, input, pref);\n if (!isObject(result) || isSymbol(result)) return result;\n throw new $TypeError(\"Can't convert object to primitive value\");\n }\n if (pref === undefined) pref = 'number';\n return ordinaryToPrimitive(input, pref);\n};\n","'use strict';\nvar toPrimitive = require('../internals/to-primitive');\nvar isSymbol = require('../internals/is-symbol');\n\n// `ToPropertyKey` abstract operation\n// https://tc39.es/ecma262/#sec-topropertykey\nmodule.exports = function (argument) {\n var key = toPrimitive(argument, 'string');\n return isSymbol(key) ? key : key + '';\n};\n","'use strict';\nvar global = require('../internals/global');\nvar isObject = require('../internals/is-object');\n\nvar document = global.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n return EXISTS ? document.createElement(it) : {};\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thanks to IE8 for its funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a !== 7;\n});\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar call = require('../internals/function-call');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar hasOwn = require('../internals/has-own-property');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPropertyKey(P);\n if (IE8_DOM_DEFINE) try {\n return $getOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (hasOwn(O, P)) return createPropertyDescriptor(!call(propertyIsEnumerableModule.f, O, P), O[P]);\n};\n","'use strict';\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n var value = data[normalize(feature)];\n return value === POLYFILL ? true\n : value === NATIVE ? false\n : isCallable(detection) ? fails(detection)\n : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this-clause');\nvar aCallable = require('../internals/a-callable');\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar bind = uncurryThis(uncurryThis.bind);\n\n// optional / simple context binding\nmodule.exports = function (fn, that) {\n aCallable(fn);\n return that === undefined ? fn : NATIVE_BIND ? bind(fn, that) : function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\n\n// V8 ~ Chrome 36-\n// https://bugs.chromium.org/p/v8/issues/detail?id=3334\nmodule.exports = DESCRIPTORS && fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty(function () { /* empty */ }, 'prototype', {\n value: 42,\n writable: false\n }).prototype !== 42;\n});\n","'use strict';\nvar isObject = require('../internals/is-object');\n\nvar $String = String;\nvar $TypeError = TypeError;\n\n// `Assert: Type(argument) is Object`\nmodule.exports = function (argument) {\n if (isObject(argument)) return argument;\n throw new $TypeError($String(argument) + ' is not an object');\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar anObject = require('../internals/an-object');\nvar toPropertyKey = require('../internals/to-property-key');\n\nvar $TypeError = TypeError;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar $defineProperty = Object.defineProperty;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar ENUMERABLE = 'enumerable';\nvar CONFIGURABLE = 'configurable';\nvar WRITABLE = 'writable';\n\n// `Object.defineProperty` method\n// https://tc39.es/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? V8_PROTOTYPE_DEFINE_BUG ? function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (typeof O === 'function' && P === 'prototype' && 'value' in Attributes && WRITABLE in Attributes && !Attributes[WRITABLE]) {\n var current = $getOwnPropertyDescriptor(O, P);\n if (current && current[WRITABLE]) {\n O[P] = Attributes.value;\n Attributes = {\n configurable: CONFIGURABLE in Attributes ? Attributes[CONFIGURABLE] : current[CONFIGURABLE],\n enumerable: ENUMERABLE in Attributes ? Attributes[ENUMERABLE] : current[ENUMERABLE],\n writable: false\n };\n }\n } return $defineProperty(O, P, Attributes);\n} : $defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return $defineProperty(O, P, Attributes);\n } catch (error) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw new $TypeError('Accessors not supported');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","'use strict';\nvar global = require('../internals/global');\nvar apply = require('../internals/function-apply');\nvar uncurryThis = require('../internals/function-uncurry-this-clause');\nvar isCallable = require('../internals/is-callable');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar isForced = require('../internals/is-forced');\nvar path = require('../internals/path');\nvar bind = require('../internals/function-bind-context');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar hasOwn = require('../internals/has-own-property');\n// add debugging info\nrequire('../internals/shared-store');\n\nvar wrapConstructor = function (NativeConstructor) {\n var Wrapper = function (a, b, c) {\n if (this instanceof Wrapper) {\n switch (arguments.length) {\n case 0: return new NativeConstructor();\n case 1: return new NativeConstructor(a);\n case 2: return new NativeConstructor(a, b);\n } return new NativeConstructor(a, b, c);\n } return apply(NativeConstructor, this, arguments);\n };\n Wrapper.prototype = NativeConstructor.prototype;\n return Wrapper;\n};\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.dontCallGetSet - prevent calling a getter on target\n options.name - the .name of the function if it does not match the key\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var PROTO = options.proto;\n\n var nativeSource = GLOBAL ? global : STATIC ? global[TARGET] : global[TARGET] && global[TARGET].prototype;\n\n var target = GLOBAL ? path : path[TARGET] || createNonEnumerableProperty(path, TARGET, {})[TARGET];\n var targetPrototype = target.prototype;\n\n var FORCED, USE_NATIVE, VIRTUAL_PROTOTYPE;\n var key, sourceProperty, targetProperty, nativeProperty, resultProperty, descriptor;\n\n for (key in source) {\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contains in native\n USE_NATIVE = !FORCED && nativeSource && hasOwn(nativeSource, key);\n\n targetProperty = target[key];\n\n if (USE_NATIVE) if (options.dontCallGetSet) {\n descriptor = getOwnPropertyDescriptor(nativeSource, key);\n nativeProperty = descriptor && descriptor.value;\n } else nativeProperty = nativeSource[key];\n\n // export native or implementation\n sourceProperty = (USE_NATIVE && nativeProperty) ? nativeProperty : source[key];\n\n if (!FORCED && !PROTO && typeof targetProperty == typeof sourceProperty) continue;\n\n // bind methods to global for calling from export context\n if (options.bind && USE_NATIVE) resultProperty = bind(sourceProperty, global);\n // wrap global constructors for prevent changes in this version\n else if (options.wrap && USE_NATIVE) resultProperty = wrapConstructor(sourceProperty);\n // make static versions for prototype methods\n else if (PROTO && isCallable(sourceProperty)) resultProperty = uncurryThis(sourceProperty);\n // default case\n else resultProperty = sourceProperty;\n\n // add a flag to not completely full polyfills\n if (options.sham || (sourceProperty && sourceProperty.sham) || (targetProperty && targetProperty.sham)) {\n createNonEnumerableProperty(resultProperty, 'sham', true);\n }\n\n createNonEnumerableProperty(target, key, resultProperty);\n\n if (PROTO) {\n VIRTUAL_PROTOTYPE = TARGET + 'Prototype';\n if (!hasOwn(path, VIRTUAL_PROTOTYPE)) {\n createNonEnumerableProperty(path, VIRTUAL_PROTOTYPE, {});\n }\n // export virtual prototype methods\n createNonEnumerableProperty(path[VIRTUAL_PROTOTYPE], key, sourceProperty);\n // export real prototype methods\n if (options.real && targetPrototype && (FORCED || !targetPrototype[key])) {\n createNonEnumerableProperty(targetPrototype, key, sourceProperty);\n }\n }\n }\n};\n","'use strict';\nvar ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `Math.trunc` method\n// https://tc39.es/ecma262/#sec-math.trunc\n// eslint-disable-next-line es/no-math-trunc -- safe\nmodule.exports = Math.trunc || function trunc(x) {\n var n = +x;\n return (n > 0 ? floor : ceil)(n);\n};\n","'use strict';\nvar trunc = require('../internals/math-trunc');\n\n// `ToIntegerOrInfinity` abstract operation\n// https://tc39.es/ecma262/#sec-tointegerorinfinity\nmodule.exports = function (argument) {\n var number = +argument;\n // eslint-disable-next-line no-self-compare -- NaN check\n return number !== number || number === 0 ? 0 : trunc(number);\n};\n","'use strict';\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n var integer = toIntegerOrInfinity(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","'use strict';\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.es/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n var len = toIntegerOrInfinity(argument);\n return len > 0 ? min(len, 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","'use strict';\nvar toLength = require('../internals/to-length');\n\n// `LengthOfArrayLike` abstract operation\n// https://tc39.es/ecma262/#sec-lengthofarraylike\nmodule.exports = function (obj) {\n return toLength(obj.length);\n};\n","'use strict';\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = lengthOfArrayLike(O);\n if (length === 0) return !IS_INCLUDES && -1;\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare -- NaN check\n if (IS_INCLUDES && el !== el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare -- NaN check\n if (value !== value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.includes` method\n // https://tc39.es/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.es/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\n","'use strict';\nmodule.exports = {};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar hasOwn = require('../internals/has-own-property');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar indexOf = require('../internals/array-includes').indexOf;\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar push = uncurryThis([].push);\n\nmodule.exports = function (object, names) {\n var O = toIndexedObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) !hasOwn(hiddenKeys, key) && hasOwn(O, key) && push(result, key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (hasOwn(O, key = names[i++])) {\n ~indexOf(result, key) || push(result, key);\n }\n return result;\n};\n","'use strict';\n// IE8- don't enum bug keys\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n","'use strict';\nvar internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\n// `Object.keys` method\n// https://tc39.es/ecma262/#sec-object.keys\n// eslint-disable-next-line es/no-object-keys -- safe\nmodule.exports = Object.keys || function keys(O) {\n return internalObjectKeys(O, enumBugKeys);\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar definePropertyModule = require('../internals/object-define-property');\nvar anObject = require('../internals/an-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar objectKeys = require('../internals/object-keys');\n\n// `Object.defineProperties` method\n// https://tc39.es/ecma262/#sec-object.defineproperties\n// eslint-disable-next-line es/no-object-defineproperties -- safe\nexports.f = DESCRIPTORS && !V8_PROTOTYPE_DEFINE_BUG ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var props = toIndexedObject(Properties);\n var keys = objectKeys(Properties);\n var length = keys.length;\n var index = 0;\n var key;\n while (length > index) definePropertyModule.f(O, key = keys[index++], props[key]);\n return O;\n};\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n","'use strict';\nvar shared = require('../internals/shared');\nvar uid = require('../internals/uid');\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n return keys[key] || (keys[key] = uid(key));\n};\n","'use strict';\n/* global ActiveXObject -- old IE, WSH */\nvar anObject = require('../internals/an-object');\nvar definePropertiesModule = require('../internals/object-define-properties');\nvar enumBugKeys = require('../internals/enum-bug-keys');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar html = require('../internals/html');\nvar documentCreateElement = require('../internals/document-create-element');\nvar sharedKey = require('../internals/shared-key');\n\nvar GT = '>';\nvar LT = '<';\nvar PROTOTYPE = 'prototype';\nvar SCRIPT = 'script';\nvar IE_PROTO = sharedKey('IE_PROTO');\n\nvar EmptyConstructor = function () { /* empty */ };\n\nvar scriptTag = function (content) {\n return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;\n};\n\n// Create object with fake `null` prototype: use ActiveX Object with cleared prototype\nvar NullProtoObjectViaActiveX = function (activeXDocument) {\n activeXDocument.write(scriptTag(''));\n activeXDocument.close();\n var temp = activeXDocument.parentWindow.Object;\n activeXDocument = null; // avoid memory leak\n return temp;\n};\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar NullProtoObjectViaIFrame = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = documentCreateElement('iframe');\n var JS = 'java' + SCRIPT + ':';\n var iframeDocument;\n iframe.style.display = 'none';\n html.appendChild(iframe);\n // https://github.com/zloirock/core-js/issues/475\n iframe.src = String(JS);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(scriptTag('document.F=Object'));\n iframeDocument.close();\n return iframeDocument.F;\n};\n\n// Check for document.domain and active x support\n// No need to use active x approach when document.domain is not set\n// see https://github.com/es-shims/es5-shim/issues/150\n// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346\n// avoid IE GC bug\nvar activeXDocument;\nvar NullProtoObject = function () {\n try {\n activeXDocument = new ActiveXObject('htmlfile');\n } catch (error) { /* ignore */ }\n NullProtoObject = typeof document != 'undefined'\n ? document.domain && activeXDocument\n ? NullProtoObjectViaActiveX(activeXDocument) // old IE\n : NullProtoObjectViaIFrame()\n : NullProtoObjectViaActiveX(activeXDocument); // WSH\n var length = enumBugKeys.length;\n while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];\n return NullProtoObject();\n};\n\nhiddenKeys[IE_PROTO] = true;\n\n// `Object.create` method\n// https://tc39.es/ecma262/#sec-object.create\n// eslint-disable-next-line es/no-object-create -- safe\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n EmptyConstructor[PROTOTYPE] = anObject(O);\n result = new EmptyConstructor();\n EmptyConstructor[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = NullProtoObject();\n return Properties === undefined ? result : definePropertiesModule.f(result, Properties);\n};\n","'use strict';\n// TODO: Remove from `core-js@4`\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar create = require('../internals/object-create');\n\n// `Object.create` method\n// https://tc39.es/ecma262/#sec-object.create\n$({ target: 'Object', stat: true, sham: !DESCRIPTORS }, {\n create: create\n});\n","'use strict';\nrequire('../../modules/es.object.create');\nvar path = require('../../internals/path');\n\nvar Object = path.Object;\n\nmodule.exports = function create(P, D) {\n return Object.create(P, D);\n};\n","'use strict';\nvar parent = require('../../es/object/create');\n\nmodule.exports = parent;\n","module.exports = require(\"core-js-pure/stable/object/create\");","type InjectMetaNPMInit = {\n version: string;\n};\n\nexport default function injectMeta(name: string, content?: string): void {\n try {\n if (typeof document === 'undefined') {\n return;\n }\n\n const metaElement = document.createElement('meta');\n\n metaElement.setAttribute('name', name);\n content && metaElement.setAttribute('content', content);\n\n document.head.appendChild(metaElement);\n } catch (error) {\n console.error(`inject-meta-tag: Failed to inject <meta name=\"${name}\"> tag.`, error);\n }\n}\n\nexport function npm(name: string, { version }: InjectMetaNPMInit): void {\n injectMeta(`npm:${name}`, `version=${version}`);\n}\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';\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 testIds from '../../../testIds';\nimport { type DTMF } from '../types';\nimport useShown from '../useShown';\nimport styles from './TelephoneKeypad.module.css';\nimport { useStyles } from '../../../styles';\nimport { InfoSmallIcon } from '../../../icons';\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?.('*'), [onButtonClickRef]);\n const handleButtonPoundClick = useCallback(() => onButtonClickRef.current?.('#'), [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=\"*\" data-testid={testIds.sendBoxTelephoneKeypadButtonStar} onClick={handleButtonStarClick} />\n <Button button=\"0\" data-testid={testIds.sendBoxTelephoneKeypadButton0} onClick={handleButton0Click} ruby=\"+\" />\n <Button button=\"#\" data-testid={testIds.sendBoxTelephoneKeypadButtonPound} onClick={handleButtonPoundClick} />\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 { useMemo, useRef } from 'react';\nimport type { RefObject } from 'react';\n\nexport default function useRefFrom<T>(value: T): RefObject<T> & { get current(): T } {\n const ref = useRef<T>();\n\n const readOnlyRef = useMemo(() => Object.create({}, { current: { get: () => ref.current } }), [ref]);\n\n ref.current = value;\n\n return readOnlyRef;\n}\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 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']}>{button === '*' ? '\\u2217' : button}</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","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, { memo } from 'react';\n\nfunction 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\nexport default memo(AddDocumentIcon);\n","import React, { memo } from 'react';\n\nfunction 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\nexport default memo(AttachmentIcon);\n","import React, { memo } from 'react';\n\nfunction InfoSmallIcon(props: Readonly<{ readonly className?: string }>) {\n return (\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}\n\nexport default memo(InfoSmallIcon);\n","import React, { memo } from 'react';\n\nfunction 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\nexport default memo(SendIcon);\n","import React, { memo } from 'react';\n\nfunction 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\nexport default memo(TelephoneKeypadIcon);\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';\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 './SendBox.module.css';\nimport { useStyles } from '../../styles';\nimport useTranscriptNavigation from './private/useTranscriptNavigation';\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(`/DTMFKey ${dtmf}`),\n [sendMessage]\n );\n\n const handleTranscriptNavigation = useTranscriptNavigation();\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\n className={cx(classNames['sendbox__sendbox'])}\n onClickCapture={handleSendBoxClick}\n onKeyDown={handleTranscriptNavigation}\n >\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 { 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';\nimport testIds from '../../testIds';\nimport styles from './DropZone.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",":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 { hooks } from 'botframework-webchat-component';\nimport cx from 'classnames';\nimport React, { memo, useCallback, type ReactNode } from 'react';\nimport SuggestedAction from './SuggestedAction';\nimport computeSuggestedActionText from './private/computeSuggestedActionText';\nimport styles from './SuggestedActions.module.css';\nimport { useStyles } from '../../styles';\nimport RovingFocusProvider from './private/rovingFocus';\n\nconst { useFocus, 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 focus = useFocus();\n\n const handleEscapeKey = useCallback(() => {\n focus('sendBox');\n }, [focus]);\n\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\n return (\n <RovingFocusProvider onEscapeKey={handleEscapeKey}>\n <SuggestedActionStackedOrFlowContainer\n aria-label={localize('SUGGESTED_ACTIONS_LABEL_ALT')}\n className={classNames['suggested-actions']}\n >\n {children}\n </SuggestedActionStackedOrFlowContainer>\n </RovingFocusProvider>\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 } from 'react';\nimport styles from './SuggestedAction.module.css';\nimport { useStyles } from '../../styles';\nimport AccessibleButton from './AccessibleButton';\nimport { useRovingFocusItemRef } from './private/rovingFocus';\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 itemIndex,\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 = useRovingFocusItemRef<HTMLButtonElement>(itemIndex);\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","/* eslint-disable no-magic-numbers */\nimport React, {\n type MutableRefObject,\n createContext,\n memo,\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useRef\n} from 'react';\n\ntype ItemRef = MutableRefObject<HTMLElement | undefined>;\n\ntype RovingFocusContextType = {\n itemEffector: <T extends HTMLElement>(ref: MutableRefObject<T | null>, index: number) => () => void;\n};\n\nconst RovingFocusContext = createContext<RovingFocusContextType>({\n itemEffector: () => {\n // This will be implemented when using in <RovingFocusProvider>.\n throw new Error('botframework-webchat-fluent-theme rovingFocus: no provider for RovingFocusContext.');\n }\n});\n\nfunction RovingFocusProvider(\n props: Readonly<{\n children?: React.ReactNode | undefined;\n direction?: 'vertical' | 'horizontal' | undefined;\n onEscapeKey?: () => void;\n }>\n) {\n const activeItemIndexRef = useRef(0);\n const itemRefsRef = useRef<ItemRef[]>([]);\n\n const updateItemTabIndex = useCallback(\n ({ current }: ItemRef, index: number) =>\n current && (current.tabIndex = activeItemIndexRef.current === index ? 0 : -1),\n [activeItemIndexRef]\n );\n\n const setActiveItemIndex = useCallback(\n (valueOrFunction: number | ((value: number) => number)) => {\n // All calls to this function is expected to be under event handlers (post-rendering).\n let nextActiveItemIndex;\n\n if (typeof valueOrFunction === 'number') {\n nextActiveItemIndex = valueOrFunction;\n } else {\n nextActiveItemIndex = valueOrFunction(activeItemIndexRef.current);\n }\n\n // If the index points to no item, fallback to the first item.\n // This makes sure at least one of the item in the container is selected.\n if (nextActiveItemIndex && !itemRefsRef.current.at(nextActiveItemIndex)?.current) {\n nextActiveItemIndex = 0;\n }\n\n if (activeItemIndexRef.current !== nextActiveItemIndex) {\n activeItemIndexRef.current = nextActiveItemIndex;\n\n itemRefsRef.current.forEach((ref, index) => updateItemTabIndex(ref, index));\n itemRefsRef.current.at(nextActiveItemIndex)?.current?.focus();\n }\n },\n [updateItemTabIndex, itemRefsRef, activeItemIndexRef]\n );\n\n const handleFocus = useCallback(\n event => {\n const { target } = event;\n\n const index = itemRefsRef.current.findIndex(({ current }) => current === target);\n\n // prevent focusing the last element, if we didn't found the element focused\n if (index !== -1) {\n setActiveItemIndex(index);\n }\n },\n [itemRefsRef, setActiveItemIndex]\n );\n\n const handleSetNextActive = useCallback(\n (key: string) =>\n (currentIndex: number): number => {\n const isUnidirectional = !props.direction;\n const isVerticalMove = /up|down/iu.test(key) && props.direction === 'vertical';\n const isHorizontalMove = /left|right/iu.test(key) && props.direction === 'horizontal';\n const isForwardMove = /right|down/iu.test(key);\n const direction = isUnidirectional || isVerticalMove || isHorizontalMove ? (isForwardMove ? 1 : -1) : 0;\n // The `itemRefsRef` array could be a sparse array.\n // Thus, the next item may not be immediately next to the current one.\n const itemIndices = itemRefsRef.current.map((_, index) => index);\n const nextIndex = itemIndices.indexOf(currentIndex) + direction;\n\n return itemIndices.at(nextIndex) ?? 0;\n },\n [props.direction]\n );\n\n const handleKeyDown = useCallback<(event: KeyboardEvent) => void>(\n event => {\n const { key } = event;\n\n switch (key) {\n case 'Up':\n case 'ArrowUp':\n case 'Left':\n case 'ArrowLeft':\n case 'Down':\n case 'ArrowDown':\n case 'Right':\n case 'ArrowRight':\n setActiveItemIndex(handleSetNextActive(key));\n break;\n\n case 'Home':\n setActiveItemIndex(0);\n break;\n\n case 'End':\n setActiveItemIndex(-1);\n break;\n\n case 'Escape':\n props.onEscapeKey?.();\n break;\n\n default:\n return;\n }\n\n event.preventDefault();\n event.stopPropagation();\n },\n [setActiveItemIndex, handleSetNextActive, props]\n );\n\n const itemEffector = useCallback(\n (ref, index) => {\n const { current } = ref;\n\n itemRefsRef.current[Number(index)] = ref;\n\n current.addEventListener('focus', handleFocus);\n current.addEventListener('keydown', handleKeyDown);\n\n updateItemTabIndex(ref, index);\n\n return () => {\n current.removeEventListener('focus', handleFocus);\n current.removeEventListener('keydown', handleKeyDown);\n\n delete itemRefsRef.current[Number(index)];\n };\n },\n [handleFocus, handleKeyDown, updateItemTabIndex, itemRefsRef]\n );\n\n const value = useMemo<RovingFocusContextType>(\n () => ({\n itemEffector\n }),\n [itemEffector]\n );\n\n return <RovingFocusContext.Provider value={value}>{props.children}</RovingFocusContext.Provider>;\n}\n\nexport function useRovingFocusItemRef<T extends HTMLElement>(itemIndex: number): MutableRefObject<T | null> {\n const ref = useRef<T>(null);\n\n const { itemEffector } = useContext(RovingFocusContext);\n\n useEffect(() => itemEffector(ref, itemIndex));\n\n return ref;\n}\n\nexport default memo(RovingFocusProvider);\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 { hooks } from 'botframework-webchat-component';\nimport React, { useCallback, useRef, type ChangeEventHandler, memo } from 'react';\nimport { useRefFrom } from 'use-ref-from';\nimport { AttachmentIcon } from '../../icons';\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 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: 1px; /* iOS Safari does not honor 0px for the width. */\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';\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 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 /* Prevent zoom on focus on iOS */\n @media only screen and (hover: none) and (pointer: coarse) {\n &:focus-within {\n font-size: 16px;\n }\n }\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 { useCallback, type KeyboardEvent } from 'react';\nimport { hooks } from 'botframework-webchat-component';\n\nconst { useScrollDown, useScrollUp } = hooks;\n\nexport default function useTranscriptNavigation() {\n const scrollDown = useScrollDown();\n const scrollUp = useScrollUp();\n\n return useCallback(\n (event: KeyboardEvent<unknown>) => {\n if (event.target instanceof HTMLTextAreaElement && event.target.value) {\n return;\n }\n\n const { ctrlKey, metaKey, shiftKey } = event;\n\n if (ctrlKey || metaKey || shiftKey) {\n return;\n }\n\n let handled = true;\n\n switch (event.key) {\n case 'End':\n scrollDown({ displacement: Infinity });\n break;\n\n case 'Home':\n scrollUp({ displacement: Infinity });\n break;\n\n case 'PageDown':\n scrollDown();\n break;\n\n case 'PageUp':\n scrollUp();\n break;\n\n default:\n handled = false;\n break;\n }\n\n if (handled) {\n event.preventDefault();\n event.stopPropagation();\n }\n },\n [scrollDown, scrollUp]\n );\n}\n","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 { FluentThemeProvider, testIds } from './index';\n\n(globalThis as any).WebChat = {\n ...(globalThis as any).WebChat,\n FluentThemeProvider,\n testIds: {\n ...(globalThis as any).WebChat?.testIds,\n ...testIds\n }\n};\n"],"mappings":"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","names":["require_botframework_webchat_component","__commonJSMin","exports","module","require_react","__commonJSMin","exports","module","require_classnames","__commonJSMin","exports","module","hasOwn","classNames","classes","arg","appendClass","parseValue","key","value","newClass","require_global","__commonJSMin","exports","module","check","it","require_fails","__commonJSMin","exports","module","exec","require_function_bind_native","__commonJSMin","exports","module","fails","test","require_function_apply","__commonJSMin","exports","module","NATIVE_BIND","FunctionPrototype","apply","call","require_function_uncurry_this","__commonJSMin","exports","module","NATIVE_BIND","FunctionPrototype","call","uncurryThisWithBind","fn","require_classof_raw","__commonJSMin","exports","module","uncurryThis","toString","stringSlice","it","require_function_uncurry_this_clause","__commonJSMin","exports","module","classofRaw","uncurryThis","fn","require_is_callable","__commonJSMin","exports","module","documentAll","argument","require_descriptors","__commonJSMin","exports","module","fails","require_function_call","__commonJSMin","exports","module","NATIVE_BIND","call","require_object_property_is_enumerable","__commonJSMin","exports","$propertyIsEnumerable","getOwnPropertyDescriptor","NASHORN_BUG","V","descriptor","require_create_property_descriptor","__commonJSMin","exports","module","bitmap","value","require_indexed_object","__commonJSMin","exports","module","uncurryThis","fails","classof","$Object","split","it","require_is_null_or_undefined","__commonJSMin","exports","module","it","require_require_object_coercible","__commonJSMin","exports","module","isNullOrUndefined","$TypeError","it","require_to_indexed_object","__commonJSMin","exports","module","IndexedObject","requireObjectCoercible","it","require_is_object","__commonJSMin","exports","module","isCallable","it","require_path","__commonJSMin","exports","module","require_get_built_in","__commonJSMin","exports","module","path","global","isCallable","aFunction","variable","namespace","method","require_object_is_prototype_of","__commonJSMin","exports","module","uncurryThis","require_engine_user_agent","__commonJSMin","exports","module","require_engine_v8_version","__commonJSMin","exports","module","global","userAgent","process","Deno","versions","v8","match","version","require_symbol_constructor_detection","__commonJSMin","exports","module","V8_VERSION","fails","global","$String","symbol","require_use_symbol_as_uid","__commonJSMin","exports","module","NATIVE_SYMBOL","require_is_symbol","__commonJSMin","exports","module","getBuiltIn","isCallable","isPrototypeOf","USE_SYMBOL_AS_UID","$Object","it","$Symbol","require_try_to_string","__commonJSMin","exports","module","$String","argument","require_a_callable","__commonJSMin","exports","module","isCallable","tryToString","$TypeError","argument","require_get_method","__commonJSMin","exports","module","aCallable","isNullOrUndefined","V","P","func","require_ordinary_to_primitive","__commonJSMin","exports","module","call","isCallable","isObject","$TypeError","input","pref","fn","val","require_is_pure","__commonJSMin","exports","module","require_define_global_property","__commonJSMin","exports","module","global","defineProperty","key","value","require_shared_store","__commonJSMin","exports","module","IS_PURE","globalThis","defineGlobalProperty","SHARED","store","require_shared","__commonJSMin","exports","module","store","key","value","require_to_object","__commonJSMin","exports","module","requireObjectCoercible","$Object","argument","require_has_own_property","__commonJSMin","exports","module","uncurryThis","toObject","hasOwnProperty","it","key","require_uid","__commonJSMin","exports","module","uncurryThis","id","postfix","toString","key","require_well_known_symbol","__commonJSMin","exports","module","global","shared","hasOwn","uid","NATIVE_SYMBOL","USE_SYMBOL_AS_UID","Symbol","WellKnownSymbolsStore","createWellKnownSymbol","name","require_to_primitive","__commonJSMin","exports","module","call","isObject","isSymbol","getMethod","ordinaryToPrimitive","wellKnownSymbol","$TypeError","TO_PRIMITIVE","input","pref","exoticToPrim","result","require_to_property_key","__commonJSMin","exports","module","toPrimitive","isSymbol","argument","key","require_document_create_element","__commonJSMin","exports","module","global","isObject","document","EXISTS","it","require_ie8_dom_define","__commonJSMin","exports","module","DESCRIPTORS","fails","createElement","require_object_get_own_property_descriptor","__commonJSMin","exports","DESCRIPTORS","call","propertyIsEnumerableModule","createPropertyDescriptor","toIndexedObject","toPropertyKey","hasOwn","IE8_DOM_DEFINE","$getOwnPropertyDescriptor","O","P","require_is_forced","__commonJSMin","exports","module","fails","isCallable","replacement","isForced","feature","detection","value","data","normalize","POLYFILL","NATIVE","string","require_function_bind_context","__commonJSMin","exports","module","uncurryThis","aCallable","NATIVE_BIND","bind","fn","that","require_v8_prototype_define_bug","__commonJSMin","exports","module","DESCRIPTORS","fails","require_an_object","__commonJSMin","exports","module","isObject","$String","$TypeError","argument","require_object_define_property","__commonJSMin","exports","DESCRIPTORS","IE8_DOM_DEFINE","V8_PROTOTYPE_DEFINE_BUG","anObject","toPropertyKey","$TypeError","$defineProperty","$getOwnPropertyDescriptor","ENUMERABLE","CONFIGURABLE","WRITABLE","O","P","Attributes","current","require_create_non_enumerable_property","__commonJSMin","exports","module","DESCRIPTORS","definePropertyModule","createPropertyDescriptor","object","key","value","require_export","__commonJSMin","exports","module","global","apply","uncurryThis","isCallable","getOwnPropertyDescriptor","isForced","path","bind","createNonEnumerableProperty","hasOwn","wrapConstructor","NativeConstructor","Wrapper","a","b","c","options","source","TARGET","GLOBAL","STATIC","PROTO","nativeSource","target","targetPrototype","FORCED","USE_NATIVE","VIRTUAL_PROTOTYPE","key","sourceProperty","targetProperty","nativeProperty","resultProperty","descriptor","require_math_trunc","__commonJSMin","exports","module","ceil","floor","x","n","require_to_integer_or_infinity","__commonJSMin","exports","module","trunc","argument","number","require_to_absolute_index","__commonJSMin","exports","module","toIntegerOrInfinity","max","min","index","length","integer","require_to_length","__commonJSMin","exports","module","toIntegerOrInfinity","min","argument","len","require_length_of_array_like","__commonJSMin","exports","module","toLength","obj","require_array_includes","__commonJSMin","exports","module","toIndexedObject","toAbsoluteIndex","lengthOfArrayLike","createMethod","IS_INCLUDES","$this","el","fromIndex","O","length","index","value","require_hidden_keys","__commonJSMin","exports","module","require_object_keys_internal","__commonJSMin","exports","module","uncurryThis","hasOwn","toIndexedObject","indexOf","hiddenKeys","push","object","names","O","i","result","key","require_enum_bug_keys","__commonJSMin","exports","module","require_object_keys","__commonJSMin","exports","module","internalObjectKeys","enumBugKeys","O","require_object_define_properties","__commonJSMin","exports","DESCRIPTORS","V8_PROTOTYPE_DEFINE_BUG","definePropertyModule","anObject","toIndexedObject","objectKeys","O","Properties","props","keys","length","index","key","require_html","__commonJSMin","exports","module","getBuiltIn","require_shared_key","__commonJSMin","exports","module","shared","uid","keys","key","require_object_create","__commonJSMin","exports","module","anObject","definePropertiesModule","enumBugKeys","hiddenKeys","html","documentCreateElement","sharedKey","GT","LT","PROTOTYPE","SCRIPT","IE_PROTO","EmptyConstructor","scriptTag","content","NullProtoObjectViaActiveX","activeXDocument","temp","NullProtoObjectViaIFrame","iframe","JS","iframeDocument","NullProtoObject","length","O","Properties","result","require_es_object_create","__commonJSMin","$","DESCRIPTORS","create","require_create","__commonJSMin","exports","module","path","Object","P","D","require_create","__commonJSMin","exports","module","parent","require_create","__commonJSMin","exports","module","injectMeta","name","content","document","metaElement","createElement","setAttribute","head","appendChild","error","console","concat","import_botframework_webchat_component","import_react","import_react","import_react","Context","Context_default","Provider","children","shown","setShown","context","React","Context_default","Provider_default","import_react","import_botframework_webchat_component","import_classnames","import_react","import_react","useRefFrom","value","ref","useRef","readOnlyRef","useMemo","_Object$create","current","get","import_react","Button_default","telephone-keypad__button","telephone-keypad__button__ruby","telephone-keypad__button__text","telephone-keypad--horizontal","injectedStyles","injectStyles","style","import_react","useStyles","styles","baseClassName","resultClassName","useStyles_default","Button","button","dataTestId","onClick","ruby","ref","classNames","useStyles_default","Button_default","onClickRef","useRefFrom","handleClick","React","testIds","testIds_default","import_react","useShown","setShown","shown","Context_default","TelephoneKeypad_default","telephone-keypad","telephone-keypad__box","telephone-keypad__info-message","telephone-keypad__info-message-link","import_react","AddDocumentIcon","props","React","AddDocumentIcon_default","import_react","AttachmentIcon","props","React","AttachmentIcon_default","import_react","InfoSmallIcon","props","React","InfoSmallIcon_default","import_react","SendIcon","props","React","SendIcon_default","import_react","TelephoneKeypadIcon","props","React","TelephoneKeypadIcon_default","LocalizedString","Orientation","children","isHorizontal","classNames","useStyles_default","TelephoneKeypad_default","React","TelephoneKeypad","autoFocus","className","onButtonClick","autoFocusRef","useRefFrom","firstButtonRef","onButtonClickRef","setShown","useShown","handleButton1Click","handleButton2Click","handleButton3Click","handleButton4Click","handleButton5Click","handleButton6Click","handleButton7Click","handleButton8Click","handleButton9Click","handleButton0Click","handleButtonStarClick","handleButtonPoundClick","handleKeyDown","event","cx","Button_default","testIds_default","InfoSmallIcon_default","TelephoneKeypadSurrogate","props","useShown","React","TelephoneKeypad_default","Surrogate_default","import_react","import_classnames","Theme_default","theme","rootClassName","WebchatTheme","props","classNames","useStyles_default","Theme_default","React","cx","import_botframework_webchat_component","import_classnames","import_react","import_botframework_webchat_component","import_classnames","import_react","DropZone_default","sendbox__attachment-drop-zone","sendbox__attachment-drop-zone--droppable","sendbox__attachment-drop-zone-icon","useLocalizer","handleDragOver","event","isFilesTransferEvent","type","isDescendantOf","target","ancestor","current","DropZone","props","dropZoneState","setDropZoneState","classNames","useStyles_default","DropZone_default","dropZoneRef","localize","onFilesAddedRef","useRefFrom","entranceCounter","handleDragEnter","handleDragLeave","handleDrop","React","cx","testIds_default","AddDocumentIcon_default","import_botframework_webchat_component","import_classnames","import_react","import_botframework_webchat_component","import_classnames","import_react","SuggestedAction_default","suggested-action","suggested-action__image","import_react","preventDefaultHandler","event","AccessibleButton","ariaHidden","children","disabled","onClick","tabIndex","props","forwardedRef","targetRef","React","AccessibleButton_default","import_react","RovingFocusContext","RovingFocusProvider","props","activeItemIndexRef","itemRefsRef","updateItemTabIndex","current","index","setActiveItemIndex","valueOrFunction","nextActiveItemIndex","ref","handleFocus","event","target","handleSetNextActive","key","currentIndex","isUnidirectional","isVerticalMove","isHorizontalMove","isForwardMove","direction","itemIndices","_","nextIndex","handleKeyDown","itemEffector","value","React","useRovingFocusItemRef","itemIndex","rovingFocus_default","useDisabled","useFocus","usePerformCardAction","useScrollToEnd","useStyleSet","useSuggestedActions","SuggestedAction","buttonText","className","displayText","image","imageAlt","itemIndex","text","type","value","_","setSuggestedActions","suggestedActionStyleSet","disabled","focus","focusRef","useRovingFocusItemRef","performCardAction","classNames","useStyles_default","SuggestedAction_default","scrollToEnd","handleClick","target","React","AccessibleButton_default","cx","computeSuggestedActionText","cardAction","title","type","value","SuggestedActions_default","suggested-actions","suggested-actions--flow","suggested-actions--stacked","useFocus","useLocalizer","useStyleOptions","useStyleSet","useSuggestedActions","SuggestedActionStackedOrFlowContainer","props","suggestedActionLayout","suggestedActionsStyleSet","classNames","useStyles_default","SuggestedActions_default","React","cx","SuggestedActions","localize","suggestedActions","focus","handleEscapeKey","children","cardAction","index","displayText","image","imageAltText","text","type","value","SuggestedAction_default","computeSuggestedActionText","rovingFocus_default","import_botframework_webchat_component","import_react","import_classnames","import_react","Toolbar_default","sendbox__toolbar","sendbox__toolbar-button","sendbox__toolbar-button--selected","sendbox__toolbar-separator","preventDefaultHandler","event","ToolbarButton","props","classNames","useStyles_default","Toolbar_default","React","cx","Toolbar","ToolbarSeparator","AddAttachmentButton_default","sendbox__add-attachment","sendbox__add-attachment-input","useLocalizer","useStyleOptions","AddAttachmentButton","props","inputRef","classNames","useStyles_default","AddAttachmentButton_default","localize","uploadAccept","uploadMultiple","onFilesAddedRef","useRefFrom","handleClick","handleFileChange","files","React","ToolbarButton","testIds_default","AttachmentIcon_default","import_botframework_webchat_component","import_react","import_classnames","Attachments_default","sendbox__attachment","useLocalizer","attachmentsPluralStringIds","Attachments","attachments","className","classNames","useStyles_default","Attachments_default","localizeWithPlural","React","cx","import_react","ErrorMessage_default","sendbox__error-message","ErrorMessage","props","classNames","useStyles_default","ErrorMessage_default","React","import_react","import_botframework_webchat_component","useLocalizer","TelephoneKeypadToolbarButton","telephoneKeypadShown","setTelephoneKeypadShown","useShown","localize","handleClick","shown","React","ToolbarButton","testIds_default","TelephoneKeypadIcon_default","TelephoneKeypadToolbarButton_default","import_classnames","import_react","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","props","ref","classNames","useStyles_default","TextArea_default","handleKeyDown","event","React","cx","import_botframework_webchat_component","import_react","useConnectivityStatus","useLocalizer","useSubmitError","attachments","message","connectivityStatus","localize","submitErrorRef","useRefFrom","errorMessageStringMap","useSubmitError_default","import_react","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","import_react","import_botframework_webchat_component","useScrollDown","useScrollUp","useTranscriptNavigation","scrollDown","scrollUp","event","ctrlKey","metaKey","shiftKey","handled","useFocus","useLocalizer","useMakeThumbnail","useRegisterFocusSendBox","useSendBoxAttachments","useSendMessage","useStyleOptions","SendBox","props","inputRef","message","setMessage","attachments","setAttachments","hideTelephoneKeypadButton","hideUploadButton","maxMessageLength","isMessageLengthExceeded","classNames","useStyles_default","SendBox_default","localize","sendMessage","makeThumbnail","errorMessageId","useUniqueId","errorRef","errorMessage","useSubmitError_default","telephoneKeypadShown","useShown","setFocus","noKeyboard","waitUntil","previousReadOnly","resolve","attachmentsRef","useRefFrom","messageRef","handleSendBoxClick","event","handleMessageChange","handleAddFiles","inputFiles","newAttachments","file","thumbnailURL","handleFormSubmit","handleTelephoneKeypadButtonClick","dtmf","handleTranscriptNavigation","useTranscriptNavigation","aria","React","cx","SuggestedActions_default","TextArea_default","testIds_default","Surrogate_default","Attachments_default","Toolbar","TelephoneKeypadToolbarButton_default","AddAttachmentButton_default","ToolbarSeparator","ToolbarButton","SendIcon_default","DropZone_default","ErrorMessage_default","ThemeProvider","sendBoxMiddleware","SendBox_default","FluentThemeProvider","children","React","WebchatTheme","Provider_default","FluentThemeProvider_default","injectMeta","injectStyles","FluentThemeProvider_default","testIds_default"]}
1
+ {"version":3,"sources":["../src/external.umd/botframework-webchat-component.ts","../src/external.umd/react.ts","../node_modules/classnames/index.js","../node_modules/core-js-pure/internals/global.js","../node_modules/core-js-pure/internals/fails.js","../node_modules/core-js-pure/internals/function-bind-native.js","../node_modules/core-js-pure/internals/function-apply.js","../node_modules/core-js-pure/internals/function-uncurry-this.js","../node_modules/core-js-pure/internals/classof-raw.js","../node_modules/core-js-pure/internals/function-uncurry-this-clause.js","../node_modules/core-js-pure/internals/is-callable.js","../node_modules/core-js-pure/internals/descriptors.js","../node_modules/core-js-pure/internals/function-call.js","../node_modules/core-js-pure/internals/object-property-is-enumerable.js","../node_modules/core-js-pure/internals/create-property-descriptor.js","../node_modules/core-js-pure/internals/indexed-object.js","../node_modules/core-js-pure/internals/is-null-or-undefined.js","../node_modules/core-js-pure/internals/require-object-coercible.js","../node_modules/core-js-pure/internals/to-indexed-object.js","../node_modules/core-js-pure/internals/is-object.js","../node_modules/core-js-pure/internals/path.js","../node_modules/core-js-pure/internals/get-built-in.js","../node_modules/core-js-pure/internals/object-is-prototype-of.js","../node_modules/core-js-pure/internals/engine-user-agent.js","../node_modules/core-js-pure/internals/engine-v8-version.js","../node_modules/core-js-pure/internals/symbol-constructor-detection.js","../node_modules/core-js-pure/internals/use-symbol-as-uid.js","../node_modules/core-js-pure/internals/is-symbol.js","../node_modules/core-js-pure/internals/try-to-string.js","../node_modules/core-js-pure/internals/a-callable.js","../node_modules/core-js-pure/internals/get-method.js","../node_modules/core-js-pure/internals/ordinary-to-primitive.js","../node_modules/core-js-pure/internals/is-pure.js","../node_modules/core-js-pure/internals/define-global-property.js","../node_modules/core-js-pure/internals/shared-store.js","../node_modules/core-js-pure/internals/shared.js","../node_modules/core-js-pure/internals/to-object.js","../node_modules/core-js-pure/internals/has-own-property.js","../node_modules/core-js-pure/internals/uid.js","../node_modules/core-js-pure/internals/well-known-symbol.js","../node_modules/core-js-pure/internals/to-primitive.js","../node_modules/core-js-pure/internals/to-property-key.js","../node_modules/core-js-pure/internals/document-create-element.js","../node_modules/core-js-pure/internals/ie8-dom-define.js","../node_modules/core-js-pure/internals/object-get-own-property-descriptor.js","../node_modules/core-js-pure/internals/is-forced.js","../node_modules/core-js-pure/internals/function-bind-context.js","../node_modules/core-js-pure/internals/v8-prototype-define-bug.js","../node_modules/core-js-pure/internals/an-object.js","../node_modules/core-js-pure/internals/object-define-property.js","../node_modules/core-js-pure/internals/create-non-enumerable-property.js","../node_modules/core-js-pure/internals/export.js","../node_modules/core-js-pure/internals/math-trunc.js","../node_modules/core-js-pure/internals/to-integer-or-infinity.js","../node_modules/core-js-pure/internals/to-absolute-index.js","../node_modules/core-js-pure/internals/to-length.js","../node_modules/core-js-pure/internals/length-of-array-like.js","../node_modules/core-js-pure/internals/array-includes.js","../node_modules/core-js-pure/internals/hidden-keys.js","../node_modules/core-js-pure/internals/object-keys-internal.js","../node_modules/core-js-pure/internals/enum-bug-keys.js","../node_modules/core-js-pure/internals/object-keys.js","../node_modules/core-js-pure/internals/object-define-properties.js","../node_modules/core-js-pure/internals/html.js","../node_modules/core-js-pure/internals/shared-key.js","../node_modules/core-js-pure/internals/object-create.js","../node_modules/core-js-pure/modules/es.object.create.js","../node_modules/core-js-pure/es/object/create.js","../node_modules/core-js-pure/stable/object/create.js","../node_modules/@babel/runtime-corejs3/core-js-stable/object/create.js","../node_modules/inject-meta-tag/src/injectMetaTag.ts","../src/private/FluentThemeProvider.tsx","../node_modules/valibot/dist/index.js","../src/components/preChatActivity/isPreChatMessageActivity.ts","../src/components/preChatActivity/PreChatMessageActivity.tsx","../src/styles/injectStyle.ts","../src/styles/useStyles.ts","../src/components/preChatActivity/PreChatMessageActivity.module.css","../src/components/preChatActivity/StarterPromptsToolbar.tsx","../src/components/preChatActivity/StarterPromptsCardAction.tsx","../node_modules/use-ref-from/src/useRefFrom.ts","../src/testIds.ts","../src/components/preChatActivity/private/MonochromeImageMasker.tsx","../src/components/preChatActivity/private/MonochromeImageMasker.module.css","../src/components/preChatActivity/StarterPromptsCardAction.module.css","../src/components/preChatActivity/StarterPromptsToolbar.module.css","../src/components/sendBox/SendBox.tsx","../src/icons/AddDocumentIcon.tsx","../src/icons/AttachmentIcon.tsx","../src/icons/InfoSmallIcon.tsx","../src/icons/SendIcon.tsx","../src/icons/TelephoneKeypadIcon.tsx","../src/components/dropZone/DropZone.tsx","../src/components/dropZone/DropZone.module.css","../src/components/suggestedActions/SuggestedActions.tsx","../src/components/suggestedActions/private/computeSuggestedActionText.ts","../src/components/suggestedActions/private/rovingFocus.tsx","../src/components/suggestedActions/SuggestedAction.tsx","../src/components/suggestedActions/SuggestedAction.module.css","../src/components/suggestedActions/AccessibleButton.tsx","../src/components/suggestedActions/SuggestedActions.module.css","../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/components/telephoneKeypad/useShown.ts","../src/components/telephoneKeypad/private/TelephoneKeypad.module.css","../src/components/sendBox/AddAttachmentButton.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/private/useSubmitError.ts","../src/components/sendBox/private/useTranscriptNavigation.ts","../src/components/sendBox/private/useUniqueId.ts","../src/components/sendBox/SendBox.module.css","../src/components/sendBox/TelephoneKeypadToolbarButton.tsx","../src/components/sendBox/TextArea.tsx","../src/components/sendBox/TextArea.module.css","../src/components/theme/Theme.tsx","../src/components/theme/Theme.module.css","../src/index.ts","../src/bundle.ts"],"sourcesContent":["module.exports = {\n Components: (globalThis as any).WebChat.Components,\n hooks: (globalThis as any).WebChat.hooks\n};\n","module.exports = (globalThis as any).React;\n","/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = '';\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (arg) {\n\t\t\t\tclasses = appendClass(classes, parseValue(arg));\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction parseValue (arg) {\n\t\tif (typeof arg === 'string' || typeof arg === 'number') {\n\t\t\treturn arg;\n\t\t}\n\n\t\tif (typeof arg !== 'object') {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (Array.isArray(arg)) {\n\t\t\treturn classNames.apply(null, arg);\n\t\t}\n\n\t\tif (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n\t\t\treturn arg.toString();\n\t\t}\n\n\t\tvar classes = '';\n\n\t\tfor (var key in arg) {\n\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\tclasses = appendClass(classes, key);\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction appendClass (value, newClass) {\n\t\tif (!newClass) {\n\t\t\treturn value;\n\t\t}\n\t\n\t\tif (value) {\n\t\t\treturn value + ' ' + newClass;\n\t\t}\n\t\n\t\treturn value + newClass;\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","'use strict';\nvar check = function (it) {\n return it && it.Math === Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n // eslint-disable-next-line es/no-global-this -- safe\n check(typeof globalThis == 'object' && globalThis) ||\n check(typeof window == 'object' && window) ||\n // eslint-disable-next-line no-restricted-globals -- safe\n check(typeof self == 'object' && self) ||\n check(typeof global == 'object' && global) ||\n check(typeof this == 'object' && this) ||\n // eslint-disable-next-line no-new-func -- fallback\n (function () { return this; })() || Function('return this')();\n","'use strict';\nmodule.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};\n","'use strict';\nvar fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-function-prototype-bind -- safe\n var test = (function () { /* empty */ }).bind();\n // eslint-disable-next-line no-prototype-builtins -- safe\n return typeof test != 'function' || test.hasOwnProperty('prototype');\n});\n","'use strict';\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar apply = FunctionPrototype.apply;\nvar call = FunctionPrototype.call;\n\n// eslint-disable-next-line es/no-reflect -- safe\nmodule.exports = typeof Reflect == 'object' && Reflect.apply || (NATIVE_BIND ? call.bind(apply) : function () {\n return call.apply(apply, arguments);\n});\n","'use strict';\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar call = FunctionPrototype.call;\nvar uncurryThisWithBind = NATIVE_BIND && FunctionPrototype.bind.bind(call, call);\n\nmodule.exports = NATIVE_BIND ? uncurryThisWithBind : function (fn) {\n return function () {\n return call.apply(fn, arguments);\n };\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar toString = uncurryThis({}.toString);\nvar stringSlice = uncurryThis(''.slice);\n\nmodule.exports = function (it) {\n return stringSlice(toString(it), 8, -1);\n};\n","'use strict';\nvar classofRaw = require('../internals/classof-raw');\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = function (fn) {\n // Nashorn bug:\n // https://github.com/zloirock/core-js/issues/1128\n // https://github.com/zloirock/core-js/issues/1130\n if (classofRaw(fn) === 'Function') return uncurryThis(fn);\n};\n","'use strict';\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot\nvar documentAll = typeof document == 'object' && document.all;\n\n// `IsCallable` abstract operation\n// https://tc39.es/ecma262/#sec-iscallable\n// eslint-disable-next-line unicorn/no-typeof-undefined -- required for testing\nmodule.exports = typeof documentAll == 'undefined' && documentAll !== undefined ? function (argument) {\n return typeof argument == 'function' || argument === documentAll;\n} : function (argument) {\n return typeof argument == 'function';\n};\n","'use strict';\nvar fails = require('../internals/fails');\n\n// Detect IE8's incomplete defineProperty implementation\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] !== 7;\n});\n","'use strict';\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar call = Function.prototype.call;\n\nmodule.exports = NATIVE_BIND ? call.bind(call) : function () {\n return call.apply(call, arguments);\n};\n","'use strict';\nvar $propertyIsEnumerable = {}.propertyIsEnumerable;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !$propertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n var descriptor = getOwnPropertyDescriptor(this, V);\n return !!descriptor && descriptor.enumerable;\n} : $propertyIsEnumerable;\n","'use strict';\nmodule.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar $Object = Object;\nvar split = uncurryThis(''.split);\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins -- safe\n return !$Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) === 'String' ? split(it, '') : $Object(it);\n} : $Object;\n","'use strict';\n// we can't use just `it == null` since of `document.all` special case\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot-aec\nmodule.exports = function (it) {\n return it === null || it === undefined;\n};\n","'use strict';\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\n\nvar $TypeError = TypeError;\n\n// `RequireObjectCoercible` abstract operation\n// https://tc39.es/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (isNullOrUndefined(it)) throw new $TypeError(\"Can't call method on \" + it);\n return it;\n};\n","'use strict';\n// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = require('../internals/indexed-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};\n","'use strict';\nvar isCallable = require('../internals/is-callable');\n\nmodule.exports = function (it) {\n return typeof it == 'object' ? it !== null : isCallable(it);\n};\n","'use strict';\nmodule.exports = {};\n","'use strict';\nvar path = require('../internals/path');\nvar global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar aFunction = function (variable) {\n return isCallable(variable) ? variable : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(path[namespace]) || aFunction(global[namespace])\n : path[namespace] && path[namespace][method] || global[namespace] && global[namespace][method];\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis({}.isPrototypeOf);\n","'use strict';\nmodule.exports = typeof navigator != 'undefined' && String(navigator.userAgent) || '';\n","'use strict';\nvar global = require('../internals/global');\nvar userAgent = require('../internals/engine-user-agent');\n\nvar process = global.process;\nvar Deno = global.Deno;\nvar versions = process && process.versions || Deno && Deno.version;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.');\n // in old Chrome, versions of V8 isn't V8 = Chrome / 10\n // but their correct versions are not interesting for us\n version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]);\n}\n\n// BrowserFS NodeJS `process` polyfill incorrectly set `.v8` to `0.0`\n// so check `userAgent` even if `.v8` exists, but 0\nif (!version && userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = +match[1];\n }\n}\n\nmodule.exports = version;\n","'use strict';\n/* eslint-disable es/no-symbol -- required for testing */\nvar V8_VERSION = require('../internals/engine-v8-version');\nvar fails = require('../internals/fails');\nvar global = require('../internals/global');\n\nvar $String = global.String;\n\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n var symbol = Symbol('symbol detection');\n // Chrome 38 Symbol has incorrect toString conversion\n // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances\n // nb: Do not call `String` directly to avoid this being optimized out to `symbol+''` which will,\n // of course, fail.\n return !$String(symbol) || !(Object(symbol) instanceof Symbol) ||\n // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances\n !Symbol.sham && V8_VERSION && V8_VERSION < 41;\n});\n","'use strict';\n/* eslint-disable es/no-symbol -- required for testing */\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\n\nmodule.exports = NATIVE_SYMBOL\n && !Symbol.sham\n && typeof Symbol.iterator == 'symbol';\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar $Object = Object;\n\nmodule.exports = USE_SYMBOL_AS_UID ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n var $Symbol = getBuiltIn('Symbol');\n return isCallable($Symbol) && isPrototypeOf($Symbol.prototype, $Object(it));\n};\n","'use strict';\nvar $String = String;\n\nmodule.exports = function (argument) {\n try {\n return $String(argument);\n } catch (error) {\n return 'Object';\n }\n};\n","'use strict';\nvar isCallable = require('../internals/is-callable');\nvar tryToString = require('../internals/try-to-string');\n\nvar $TypeError = TypeError;\n\n// `Assert: IsCallable(argument) is true`\nmodule.exports = function (argument) {\n if (isCallable(argument)) return argument;\n throw new $TypeError(tryToString(argument) + ' is not a function');\n};\n","'use strict';\nvar aCallable = require('../internals/a-callable');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\n\n// `GetMethod` abstract operation\n// https://tc39.es/ecma262/#sec-getmethod\nmodule.exports = function (V, P) {\n var func = V[P];\n return isNullOrUndefined(func) ? undefined : aCallable(func);\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\n\nvar $TypeError = TypeError;\n\n// `OrdinaryToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-ordinarytoprimitive\nmodule.exports = function (input, pref) {\n var fn, val;\n if (pref === 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n if (isCallable(fn = input.valueOf) && !isObject(val = call(fn, input))) return val;\n if (pref !== 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n throw new $TypeError(\"Can't convert object to primitive value\");\n};\n","'use strict';\nmodule.exports = true;\n","'use strict';\nvar global = require('../internals/global');\n\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\n\nmodule.exports = function (key, value) {\n try {\n defineProperty(global, key, { value: value, configurable: true, writable: true });\n } catch (error) {\n global[key] = value;\n } return value;\n};\n","'use strict';\nvar IS_PURE = require('../internals/is-pure');\nvar globalThis = require('../internals/global');\nvar defineGlobalProperty = require('../internals/define-global-property');\n\nvar SHARED = '__core-js_shared__';\nvar store = module.exports = globalThis[SHARED] || defineGlobalProperty(SHARED, {});\n\n(store.versions || (store.versions = [])).push({\n version: '3.36.1',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2014-2024 Denis Pushkarev (zloirock.ru)',\n license: 'https://github.com/zloirock/core-js/blob/v3.36.1/LICENSE',\n source: 'https://github.com/zloirock/core-js'\n});\n","'use strict';\nvar store = require('../internals/shared-store');\n\nmodule.exports = function (key, value) {\n return store[key] || (store[key] = value || {});\n};\n","'use strict';\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar $Object = Object;\n\n// `ToObject` abstract operation\n// https://tc39.es/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return $Object(requireObjectCoercible(argument));\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toObject = require('../internals/to-object');\n\nvar hasOwnProperty = uncurryThis({}.hasOwnProperty);\n\n// `HasOwnProperty` abstract operation\n// https://tc39.es/ecma262/#sec-hasownproperty\n// eslint-disable-next-line es/no-object-hasown -- safe\nmodule.exports = Object.hasOwn || function hasOwn(it, key) {\n return hasOwnProperty(toObject(it), key);\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar id = 0;\nvar postfix = Math.random();\nvar toString = uncurryThis(1.0.toString);\n\nmodule.exports = function (key) {\n return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString(++id + postfix, 36);\n};\n","'use strict';\nvar global = require('../internals/global');\nvar shared = require('../internals/shared');\nvar hasOwn = require('../internals/has-own-property');\nvar uid = require('../internals/uid');\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar Symbol = global.Symbol;\nvar WellKnownSymbolsStore = shared('wks');\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol['for'] || Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!hasOwn(WellKnownSymbolsStore, name)) {\n WellKnownSymbolsStore[name] = NATIVE_SYMBOL && hasOwn(Symbol, name)\n ? Symbol[name]\n : createWellKnownSymbol('Symbol.' + name);\n } return WellKnownSymbolsStore[name];\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar isObject = require('../internals/is-object');\nvar isSymbol = require('../internals/is-symbol');\nvar getMethod = require('../internals/get-method');\nvar ordinaryToPrimitive = require('../internals/ordinary-to-primitive');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar $TypeError = TypeError;\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\n\n// `ToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-toprimitive\nmodule.exports = function (input, pref) {\n if (!isObject(input) || isSymbol(input)) return input;\n var exoticToPrim = getMethod(input, TO_PRIMITIVE);\n var result;\n if (exoticToPrim) {\n if (pref === undefined) pref = 'default';\n result = call(exoticToPrim, input, pref);\n if (!isObject(result) || isSymbol(result)) return result;\n throw new $TypeError(\"Can't convert object to primitive value\");\n }\n if (pref === undefined) pref = 'number';\n return ordinaryToPrimitive(input, pref);\n};\n","'use strict';\nvar toPrimitive = require('../internals/to-primitive');\nvar isSymbol = require('../internals/is-symbol');\n\n// `ToPropertyKey` abstract operation\n// https://tc39.es/ecma262/#sec-topropertykey\nmodule.exports = function (argument) {\n var key = toPrimitive(argument, 'string');\n return isSymbol(key) ? key : key + '';\n};\n","'use strict';\nvar global = require('../internals/global');\nvar isObject = require('../internals/is-object');\n\nvar document = global.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n return EXISTS ? document.createElement(it) : {};\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thanks to IE8 for its funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a !== 7;\n});\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar call = require('../internals/function-call');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar hasOwn = require('../internals/has-own-property');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPropertyKey(P);\n if (IE8_DOM_DEFINE) try {\n return $getOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (hasOwn(O, P)) return createPropertyDescriptor(!call(propertyIsEnumerableModule.f, O, P), O[P]);\n};\n","'use strict';\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n var value = data[normalize(feature)];\n return value === POLYFILL ? true\n : value === NATIVE ? false\n : isCallable(detection) ? fails(detection)\n : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this-clause');\nvar aCallable = require('../internals/a-callable');\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar bind = uncurryThis(uncurryThis.bind);\n\n// optional / simple context binding\nmodule.exports = function (fn, that) {\n aCallable(fn);\n return that === undefined ? fn : NATIVE_BIND ? bind(fn, that) : function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\n\n// V8 ~ Chrome 36-\n// https://bugs.chromium.org/p/v8/issues/detail?id=3334\nmodule.exports = DESCRIPTORS && fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty(function () { /* empty */ }, 'prototype', {\n value: 42,\n writable: false\n }).prototype !== 42;\n});\n","'use strict';\nvar isObject = require('../internals/is-object');\n\nvar $String = String;\nvar $TypeError = TypeError;\n\n// `Assert: Type(argument) is Object`\nmodule.exports = function (argument) {\n if (isObject(argument)) return argument;\n throw new $TypeError($String(argument) + ' is not an object');\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar anObject = require('../internals/an-object');\nvar toPropertyKey = require('../internals/to-property-key');\n\nvar $TypeError = TypeError;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar $defineProperty = Object.defineProperty;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar ENUMERABLE = 'enumerable';\nvar CONFIGURABLE = 'configurable';\nvar WRITABLE = 'writable';\n\n// `Object.defineProperty` method\n// https://tc39.es/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? V8_PROTOTYPE_DEFINE_BUG ? function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (typeof O === 'function' && P === 'prototype' && 'value' in Attributes && WRITABLE in Attributes && !Attributes[WRITABLE]) {\n var current = $getOwnPropertyDescriptor(O, P);\n if (current && current[WRITABLE]) {\n O[P] = Attributes.value;\n Attributes = {\n configurable: CONFIGURABLE in Attributes ? Attributes[CONFIGURABLE] : current[CONFIGURABLE],\n enumerable: ENUMERABLE in Attributes ? Attributes[ENUMERABLE] : current[ENUMERABLE],\n writable: false\n };\n }\n } return $defineProperty(O, P, Attributes);\n} : $defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return $defineProperty(O, P, Attributes);\n } catch (error) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw new $TypeError('Accessors not supported');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","'use strict';\nvar global = require('../internals/global');\nvar apply = require('../internals/function-apply');\nvar uncurryThis = require('../internals/function-uncurry-this-clause');\nvar isCallable = require('../internals/is-callable');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar isForced = require('../internals/is-forced');\nvar path = require('../internals/path');\nvar bind = require('../internals/function-bind-context');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar hasOwn = require('../internals/has-own-property');\n// add debugging info\nrequire('../internals/shared-store');\n\nvar wrapConstructor = function (NativeConstructor) {\n var Wrapper = function (a, b, c) {\n if (this instanceof Wrapper) {\n switch (arguments.length) {\n case 0: return new NativeConstructor();\n case 1: return new NativeConstructor(a);\n case 2: return new NativeConstructor(a, b);\n } return new NativeConstructor(a, b, c);\n } return apply(NativeConstructor, this, arguments);\n };\n Wrapper.prototype = NativeConstructor.prototype;\n return Wrapper;\n};\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.dontCallGetSet - prevent calling a getter on target\n options.name - the .name of the function if it does not match the key\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var PROTO = options.proto;\n\n var nativeSource = GLOBAL ? global : STATIC ? global[TARGET] : global[TARGET] && global[TARGET].prototype;\n\n var target = GLOBAL ? path : path[TARGET] || createNonEnumerableProperty(path, TARGET, {})[TARGET];\n var targetPrototype = target.prototype;\n\n var FORCED, USE_NATIVE, VIRTUAL_PROTOTYPE;\n var key, sourceProperty, targetProperty, nativeProperty, resultProperty, descriptor;\n\n for (key in source) {\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contains in native\n USE_NATIVE = !FORCED && nativeSource && hasOwn(nativeSource, key);\n\n targetProperty = target[key];\n\n if (USE_NATIVE) if (options.dontCallGetSet) {\n descriptor = getOwnPropertyDescriptor(nativeSource, key);\n nativeProperty = descriptor && descriptor.value;\n } else nativeProperty = nativeSource[key];\n\n // export native or implementation\n sourceProperty = (USE_NATIVE && nativeProperty) ? nativeProperty : source[key];\n\n if (!FORCED && !PROTO && typeof targetProperty == typeof sourceProperty) continue;\n\n // bind methods to global for calling from export context\n if (options.bind && USE_NATIVE) resultProperty = bind(sourceProperty, global);\n // wrap global constructors for prevent changes in this version\n else if (options.wrap && USE_NATIVE) resultProperty = wrapConstructor(sourceProperty);\n // make static versions for prototype methods\n else if (PROTO && isCallable(sourceProperty)) resultProperty = uncurryThis(sourceProperty);\n // default case\n else resultProperty = sourceProperty;\n\n // add a flag to not completely full polyfills\n if (options.sham || (sourceProperty && sourceProperty.sham) || (targetProperty && targetProperty.sham)) {\n createNonEnumerableProperty(resultProperty, 'sham', true);\n }\n\n createNonEnumerableProperty(target, key, resultProperty);\n\n if (PROTO) {\n VIRTUAL_PROTOTYPE = TARGET + 'Prototype';\n if (!hasOwn(path, VIRTUAL_PROTOTYPE)) {\n createNonEnumerableProperty(path, VIRTUAL_PROTOTYPE, {});\n }\n // export virtual prototype methods\n createNonEnumerableProperty(path[VIRTUAL_PROTOTYPE], key, sourceProperty);\n // export real prototype methods\n if (options.real && targetPrototype && (FORCED || !targetPrototype[key])) {\n createNonEnumerableProperty(targetPrototype, key, sourceProperty);\n }\n }\n }\n};\n","'use strict';\nvar ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `Math.trunc` method\n// https://tc39.es/ecma262/#sec-math.trunc\n// eslint-disable-next-line es/no-math-trunc -- safe\nmodule.exports = Math.trunc || function trunc(x) {\n var n = +x;\n return (n > 0 ? floor : ceil)(n);\n};\n","'use strict';\nvar trunc = require('../internals/math-trunc');\n\n// `ToIntegerOrInfinity` abstract operation\n// https://tc39.es/ecma262/#sec-tointegerorinfinity\nmodule.exports = function (argument) {\n var number = +argument;\n // eslint-disable-next-line no-self-compare -- NaN check\n return number !== number || number === 0 ? 0 : trunc(number);\n};\n","'use strict';\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n var integer = toIntegerOrInfinity(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","'use strict';\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.es/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n var len = toIntegerOrInfinity(argument);\n return len > 0 ? min(len, 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","'use strict';\nvar toLength = require('../internals/to-length');\n\n// `LengthOfArrayLike` abstract operation\n// https://tc39.es/ecma262/#sec-lengthofarraylike\nmodule.exports = function (obj) {\n return toLength(obj.length);\n};\n","'use strict';\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = lengthOfArrayLike(O);\n if (length === 0) return !IS_INCLUDES && -1;\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare -- NaN check\n if (IS_INCLUDES && el !== el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare -- NaN check\n if (value !== value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.includes` method\n // https://tc39.es/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.es/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\n","'use strict';\nmodule.exports = {};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar hasOwn = require('../internals/has-own-property');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar indexOf = require('../internals/array-includes').indexOf;\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar push = uncurryThis([].push);\n\nmodule.exports = function (object, names) {\n var O = toIndexedObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) !hasOwn(hiddenKeys, key) && hasOwn(O, key) && push(result, key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (hasOwn(O, key = names[i++])) {\n ~indexOf(result, key) || push(result, key);\n }\n return result;\n};\n","'use strict';\n// IE8- don't enum bug keys\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n","'use strict';\nvar internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\n// `Object.keys` method\n// https://tc39.es/ecma262/#sec-object.keys\n// eslint-disable-next-line es/no-object-keys -- safe\nmodule.exports = Object.keys || function keys(O) {\n return internalObjectKeys(O, enumBugKeys);\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar definePropertyModule = require('../internals/object-define-property');\nvar anObject = require('../internals/an-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar objectKeys = require('../internals/object-keys');\n\n// `Object.defineProperties` method\n// https://tc39.es/ecma262/#sec-object.defineproperties\n// eslint-disable-next-line es/no-object-defineproperties -- safe\nexports.f = DESCRIPTORS && !V8_PROTOTYPE_DEFINE_BUG ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var props = toIndexedObject(Properties);\n var keys = objectKeys(Properties);\n var length = keys.length;\n var index = 0;\n var key;\n while (length > index) definePropertyModule.f(O, key = keys[index++], props[key]);\n return O;\n};\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n","'use strict';\nvar shared = require('../internals/shared');\nvar uid = require('../internals/uid');\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n return keys[key] || (keys[key] = uid(key));\n};\n","'use strict';\n/* global ActiveXObject -- old IE, WSH */\nvar anObject = require('../internals/an-object');\nvar definePropertiesModule = require('../internals/object-define-properties');\nvar enumBugKeys = require('../internals/enum-bug-keys');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar html = require('../internals/html');\nvar documentCreateElement = require('../internals/document-create-element');\nvar sharedKey = require('../internals/shared-key');\n\nvar GT = '>';\nvar LT = '<';\nvar PROTOTYPE = 'prototype';\nvar SCRIPT = 'script';\nvar IE_PROTO = sharedKey('IE_PROTO');\n\nvar EmptyConstructor = function () { /* empty */ };\n\nvar scriptTag = function (content) {\n return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;\n};\n\n// Create object with fake `null` prototype: use ActiveX Object with cleared prototype\nvar NullProtoObjectViaActiveX = function (activeXDocument) {\n activeXDocument.write(scriptTag(''));\n activeXDocument.close();\n var temp = activeXDocument.parentWindow.Object;\n activeXDocument = null; // avoid memory leak\n return temp;\n};\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar NullProtoObjectViaIFrame = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = documentCreateElement('iframe');\n var JS = 'java' + SCRIPT + ':';\n var iframeDocument;\n iframe.style.display = 'none';\n html.appendChild(iframe);\n // https://github.com/zloirock/core-js/issues/475\n iframe.src = String(JS);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(scriptTag('document.F=Object'));\n iframeDocument.close();\n return iframeDocument.F;\n};\n\n// Check for document.domain and active x support\n// No need to use active x approach when document.domain is not set\n// see https://github.com/es-shims/es5-shim/issues/150\n// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346\n// avoid IE GC bug\nvar activeXDocument;\nvar NullProtoObject = function () {\n try {\n activeXDocument = new ActiveXObject('htmlfile');\n } catch (error) { /* ignore */ }\n NullProtoObject = typeof document != 'undefined'\n ? document.domain && activeXDocument\n ? NullProtoObjectViaActiveX(activeXDocument) // old IE\n : NullProtoObjectViaIFrame()\n : NullProtoObjectViaActiveX(activeXDocument); // WSH\n var length = enumBugKeys.length;\n while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];\n return NullProtoObject();\n};\n\nhiddenKeys[IE_PROTO] = true;\n\n// `Object.create` method\n// https://tc39.es/ecma262/#sec-object.create\n// eslint-disable-next-line es/no-object-create -- safe\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n EmptyConstructor[PROTOTYPE] = anObject(O);\n result = new EmptyConstructor();\n EmptyConstructor[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = NullProtoObject();\n return Properties === undefined ? result : definePropertiesModule.f(result, Properties);\n};\n","'use strict';\n// TODO: Remove from `core-js@4`\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar create = require('../internals/object-create');\n\n// `Object.create` method\n// https://tc39.es/ecma262/#sec-object.create\n$({ target: 'Object', stat: true, sham: !DESCRIPTORS }, {\n create: create\n});\n","'use strict';\nrequire('../../modules/es.object.create');\nvar path = require('../../internals/path');\n\nvar Object = path.Object;\n\nmodule.exports = function create(P, D) {\n return Object.create(P, D);\n};\n","'use strict';\nvar parent = require('../../es/object/create');\n\nmodule.exports = parent;\n","module.exports = require(\"core-js-pure/stable/object/create\");","type InjectMetaNPMInit = {\n version: string;\n};\n\nexport default function injectMeta(name: string, content?: string): void {\n try {\n if (typeof document === 'undefined') {\n return;\n }\n\n const metaElement = document.createElement('meta');\n\n metaElement.setAttribute('name', name);\n content && metaElement.setAttribute('content', content);\n\n document.head.appendChild(metaElement);\n } catch (error) {\n console.error(`inject-meta-tag: Failed to inject <meta name=\"${name}\"> tag.`, error);\n }\n}\n\nexport function npm(name: string, { version }: InjectMetaNPMInit): void {\n injectMeta(`npm:${name}`, `version=${version}`);\n}\n","import { Components } from 'botframework-webchat-component';\nimport React, { memo, type ReactNode } from 'react';\n\nimport type { ActivityMiddleware } from 'botframework-webchat-api';\nimport { isPreChatMessageActivity, PreChatMessageActivity } from '../components/preChatActivity';\nimport { PrimarySendBox } from '../components/sendBox';\nimport { TelephoneKeypadProvider } from '../components/telephoneKeypad';\nimport { WebChatTheme } from '../components/theme';\n\nconst { ThemeProvider } = Components;\n\ntype Props = Readonly<{ children?: ReactNode | undefined }>;\n\nconst activityMiddleware: ActivityMiddleware[] = [\n () =>\n next =>\n (...args) => {\n const activity = args[0]?.activity;\n\n if (activity && isPreChatMessageActivity(activity)) {\n return () => <PreChatMessageActivity activity={activity} />;\n }\n\n return next(...args);\n }\n];\nconst sendBoxMiddleware = [() => () => () => PrimarySendBox];\n\nconst FluentThemeProvider = ({ children }: Props) => (\n <WebChatTheme>\n <TelephoneKeypadProvider>\n <ThemeProvider activityMiddleware={activityMiddleware} sendBoxMiddleware={sendBoxMiddleware}>\n {children}\n </ThemeProvider>\n </TelephoneKeypadProvider>\n </WebChatTheme>\n);\n\nexport default memo(FluentThemeProvider);\n","// src/actions/await/awaitAsync.ts\nfunction awaitAsync() {\n return {\n kind: \"transformation\",\n type: \"await\",\n reference: awaitAsync,\n async: true,\n async _run(dataset) {\n dataset.value = await dataset.value;\n return dataset;\n }\n };\n}\n\n// src/regex.ts\nvar BASE64_REGEX = /^(?:[\\da-z+/]{4})*(?:[\\da-z+/]{2}==|[\\da-z+/]{3}=)?$/iu;\nvar BIC_REGEX = /^[A-Z]{6}(?!00)[\\dA-Z]{2}(?:[\\dA-Z]{3})?$/u;\nvar CUID2_REGEX = /^[a-z][\\da-z]*$/u;\nvar DECIMAL_REGEX = /^\\d+$/u;\nvar EMAIL_REGEX = /^[\\w+-]+(?:\\.[\\w+-]+)*@[\\da-z]+(?:[.-][\\da-z]+)*\\.[a-z]{2,}$/iu;\nvar EMOJI_REGEX = (\n // eslint-disable-next-line redos-detector/no-unsafe-regex, regexp/no-dupe-disjunctions -- false positives\n /^(?:[\\u{1F1E6}-\\u{1F1FF}]{2}|\\u{1F3F4}[\\u{E0061}-\\u{E007A}]{2}[\\u{E0030}-\\u{E0039}\\u{E0061}-\\u{E007A}]{1,3}\\u{E007F}|(?:\\p{Emoji}\\uFE0F\\u20E3?|\\p{Emoji_Modifier_Base}\\p{Emoji_Modifier}?|\\p{Emoji_Presentation})(?:\\u200D(?:\\p{Emoji}\\uFE0F\\u20E3?|\\p{Emoji_Modifier_Base}\\p{Emoji_Modifier}?|\\p{Emoji_Presentation}))*)+$/u\n);\nvar HEXADECIMAL_REGEX = /^(?:0[hx])?[\\da-f]+$/iu;\nvar HEX_COLOR_REGEX = /^#(?:[\\da-f]{3,4}|[\\da-f]{6}|[\\da-f]{8})$/iu;\nvar IMEI_REGEX = /^\\d{15}$|^\\d{2}-\\d{6}-\\d{6}-\\d$/u;\nvar IPV4_REGEX = (\n // eslint-disable-next-line redos-detector/no-unsafe-regex -- false positive\n /^(?:(?:[1-9]|1\\d|2[0-4])?\\d|25[0-5])(?:\\.(?:(?:[1-9]|1\\d|2[0-4])?\\d|25[0-5])){3}$/u\n);\nvar IPV6_REGEX = /^(?:(?:[\\da-f]{1,4}:){7}[\\da-f]{1,4}|(?:[\\da-f]{1,4}:){1,7}:|(?:[\\da-f]{1,4}:){1,6}:[\\da-f]{1,4}|(?:[\\da-f]{1,4}:){1,5}(?::[\\da-f]{1,4}){1,2}|(?:[\\da-f]{1,4}:){1,4}(?::[\\da-f]{1,4}){1,3}|(?:[\\da-f]{1,4}:){1,3}(?::[\\da-f]{1,4}){1,4}|(?:[\\da-f]{1,4}:){1,2}(?::[\\da-f]{1,4}){1,5}|[\\da-f]{1,4}:(?::[\\da-f]{1,4}){1,6}|:(?:(?::[\\da-f]{1,4}){1,7}|:)|fe80:(?::[\\da-f]{0,4}){0,4}%[\\da-z]+|::(?:f{4}(?::0{1,4})?:)?(?:(?:25[0-5]|(?:2[0-4]|1?\\d)?\\d)\\.){3}(?:25[0-5]|(?:2[0-4]|1?\\d)?\\d)|(?:[\\da-f]{1,4}:){1,4}:(?:(?:25[0-5]|(?:2[0-4]|1?\\d)?\\d)\\.){3}(?:25[0-5]|(?:2[0-4]|1?\\d)?\\d))$/iu;\nvar IP_REGEX = /^(?:(?:[1-9]|1\\d|2[0-4])?\\d|25[0-5])(?:\\.(?:(?:[1-9]|1\\d|2[0-4])?\\d|25[0-5])){3}$|^(?:(?:[\\da-f]{1,4}:){7}[\\da-f]{1,4}|(?:[\\da-f]{1,4}:){1,7}:|(?:[\\da-f]{1,4}:){1,6}:[\\da-f]{1,4}|(?:[\\da-f]{1,4}:){1,5}(?::[\\da-f]{1,4}){1,2}|(?:[\\da-f]{1,4}:){1,4}(?::[\\da-f]{1,4}){1,3}|(?:[\\da-f]{1,4}:){1,3}(?::[\\da-f]{1,4}){1,4}|(?:[\\da-f]{1,4}:){1,2}(?::[\\da-f]{1,4}){1,5}|[\\da-f]{1,4}:(?::[\\da-f]{1,4}){1,6}|:(?:(?::[\\da-f]{1,4}){1,7}|:)|fe80:(?::[\\da-f]{0,4}){0,4}%[\\da-z]+|::(?:f{4}(?::0{1,4})?:)?(?:(?:25[0-5]|(?:2[0-4]|1?\\d)?\\d)\\.){3}(?:25[0-5]|(?:2[0-4]|1?\\d)?\\d)|(?:[\\da-f]{1,4}:){1,4}:(?:(?:25[0-5]|(?:2[0-4]|1?\\d)?\\d)\\.){3}(?:25[0-5]|(?:2[0-4]|1?\\d)?\\d))$/iu;\nvar ISO_DATE_REGEX = /^\\d{4}-(?:0[1-9]|1[0-2])-(?:[12]\\d|0[1-9]|3[01])$/u;\nvar ISO_DATE_TIME_REGEX = /^\\d{4}-(?:0[1-9]|1[0-2])-(?:[12]\\d|0[1-9]|3[01])T(?:0\\d|1\\d|2[0-3]):[0-5]\\d$/u;\nvar ISO_TIME_REGEX = /^(?:0\\d|1\\d|2[0-3]):[0-5]\\d$/u;\nvar ISO_TIME_SECOND_REGEX = /^(?:0\\d|1\\d|2[0-3])(?::[0-5]\\d){2}$/u;\nvar ISO_TIMESTAMP_REGEX = /^\\d{4}-(?:0[1-9]|1[0-2])-(?:[12]\\d|0[1-9]|3[01])T(?:0\\d|1\\d|2[0-3])(?::[0-5]\\d){2}(?:\\.\\d{1,9})?(?:Z|[+-](?:0\\d|1\\d|2[0-3])(?::?[0-5]\\d)?)$/u;\nvar ISO_WEEK_REGEX = /^\\d{4}-W(?:0[1-9]|[1-4]\\d|5[0-3])$/u;\nvar MAC48_REGEX = /^(?:[\\da-f]{2}:){5}[\\da-f]{2}$|^(?:[\\da-f]{2}-){5}[\\da-f]{2}$|^(?:[\\da-f]{4}\\.){2}[\\da-f]{4}$/iu;\nvar MAC64_REGEX = /^(?:[\\da-f]{2}:){7}[\\da-f]{2}$|^(?:[\\da-f]{2}-){7}[\\da-f]{2}$|^(?:[\\da-f]{4}\\.){3}[\\da-f]{4}$|^(?:[\\da-f]{4}:){3}[\\da-f]{4}$/iu;\nvar MAC_REGEX = /^(?:[\\da-f]{2}:){5}[\\da-f]{2}$|^(?:[\\da-f]{2}-){5}[\\da-f]{2}$|^(?:[\\da-f]{4}\\.){2}[\\da-f]{4}$|^(?:[\\da-f]{2}:){7}[\\da-f]{2}$|^(?:[\\da-f]{2}-){7}[\\da-f]{2}$|^(?:[\\da-f]{4}\\.){3}[\\da-f]{4}$|^(?:[\\da-f]{4}:){3}[\\da-f]{4}$/iu;\nvar OCTAL_REGEX = /^(?:0o)?[0-7]+$/iu;\nvar ULID_REGEX = /^[\\da-hjkmnp-tv-z]{26}$/iu;\nvar UUID_REGEX = /^[\\da-f]{8}(?:-[\\da-f]{4}){3}-[\\da-f]{12}$/iu;\n\n// src/storages/globalConfig/globalConfig.ts\nvar store;\nfunction setGlobalConfig(config2) {\n store = { ...store, ...config2 };\n}\nfunction getGlobalConfig(config2) {\n return {\n lang: config2?.lang ?? store?.lang,\n message: config2?.message,\n abortEarly: config2?.abortEarly ?? store?.abortEarly,\n abortPipeEarly: config2?.abortPipeEarly ?? store?.abortPipeEarly\n };\n}\nfunction deleteGlobalConfig() {\n store = void 0;\n}\n\n// src/storages/globalMessage/globalMessage.ts\nvar store2;\nfunction setGlobalMessage(message, lang) {\n if (!store2) store2 = /* @__PURE__ */ new Map();\n store2.set(lang, message);\n}\nfunction getGlobalMessage(lang) {\n return store2?.get(lang);\n}\nfunction deleteGlobalMessage(lang) {\n store2?.delete(lang);\n}\n\n// src/storages/schemaMessage/schemaMessage.ts\nvar store3;\nfunction setSchemaMessage(message, lang) {\n if (!store3) store3 = /* @__PURE__ */ new Map();\n store3.set(lang, message);\n}\nfunction getSchemaMessage(lang) {\n return store3?.get(lang);\n}\nfunction deleteSchemaMessage(lang) {\n store3?.delete(lang);\n}\n\n// src/storages/specificMessage/specificMessage.ts\nvar store4;\nfunction setSpecificMessage(reference, message, lang) {\n if (!store4) store4 = /* @__PURE__ */ new Map();\n if (!store4.get(reference)) store4.set(reference, /* @__PURE__ */ new Map());\n store4.get(reference).set(lang, message);\n}\nfunction getSpecificMessage(reference, lang) {\n return store4?.get(reference)?.get(lang);\n}\nfunction deleteSpecificMessage(reference, lang) {\n store4?.get(reference)?.delete(lang);\n}\n\n// src/utils/_stringify/_stringify.ts\nfunction _stringify(input) {\n const type = typeof input;\n if (type === \"string\") {\n return `\"${input}\"`;\n }\n if (type === \"number\" || type === \"bigint\" || type === \"boolean\") {\n return `${input}`;\n }\n if (type === \"object\" || type === \"function\") {\n return (input && Object.getPrototypeOf(input)?.constructor?.name) ?? \"null\";\n }\n return type;\n}\n\n// src/utils/_addIssue/_addIssue.ts\nfunction _addIssue(context, label, dataset, config2, other) {\n const input = other && \"input\" in other ? other.input : dataset.value;\n const expected = other?.expected ?? context.expects ?? null;\n const received = other?.received ?? _stringify(input);\n const issue = {\n kind: context.kind,\n type: context.type,\n input,\n expected,\n received,\n message: `Invalid ${label}: ${expected ? `Expected ${expected} but r` : \"R\"}eceived ${received}`,\n // @ts-expect-error\n requirement: context.requirement,\n path: other?.path,\n issues: other?.issues,\n lang: config2.lang,\n abortEarly: config2.abortEarly,\n abortPipeEarly: config2.abortPipeEarly\n };\n const isSchema = context.kind === \"schema\";\n const message = other?.message ?? // @ts-expect-error\n context.message ?? getSpecificMessage(context.reference, issue.lang) ?? (isSchema ? getSchemaMessage(issue.lang) : null) ?? config2.message ?? getGlobalMessage(issue.lang);\n if (message) {\n issue.message = typeof message === \"function\" ? message(issue) : message;\n }\n if (isSchema) {\n dataset.typed = false;\n }\n if (dataset.issues) {\n dataset.issues.push(issue);\n } else {\n dataset.issues = [issue];\n }\n}\n\n// src/utils/_isLuhnAlgo/_isLuhnAlgo.ts\nvar NON_DIGIT_REGEX = /\\D/gu;\nfunction _isLuhnAlgo(input) {\n const number2 = input.replace(NON_DIGIT_REGEX, \"\");\n let length2 = number2.length;\n let bit = 1;\n let sum = 0;\n while (length2) {\n const value2 = +number2[--length2];\n bit ^= 1;\n sum += bit ? [0, 2, 4, 6, 8, 1, 3, 5, 7, 9][value2] : value2;\n }\n return sum % 10 === 0;\n}\n\n// src/utils/_isValidObjectKey/_isValidObjectKey.ts\nfunction _isValidObjectKey(object2, key) {\n return Object.hasOwn(object2, key) && key !== \"__proto__\" && key !== \"prototype\" && key !== \"constructor\";\n}\n\n// src/utils/entriesFromList/entriesFromList.ts\nfunction entriesFromList(list, schema) {\n const entries = {};\n for (const key of list) {\n entries[key] = schema;\n }\n return entries;\n}\n\n// src/utils/getDotPath/getDotPath.ts\nfunction getDotPath(issue) {\n if (issue.path) {\n let key = \"\";\n for (const item of issue.path) {\n if (typeof item.key === \"string\" || typeof item.key === \"number\") {\n if (key) {\n key += `.${item.key}`;\n } else {\n key += item.key;\n }\n } else {\n return null;\n }\n }\n return key;\n }\n return null;\n}\n\n// src/utils/isOfKind/isOfKind.ts\nfunction isOfKind(kind, object2) {\n return object2.kind === kind;\n}\n\n// src/utils/isOfType/isOfType.ts\nfunction isOfType(type, object2) {\n return object2.type === type;\n}\n\n// src/utils/isValiError/isValiError.ts\nfunction isValiError(error) {\n return error instanceof ValiError;\n}\n\n// src/utils/ValiError/ValiError.ts\nvar ValiError = class extends Error {\n /**\n * The error issues.\n */\n issues;\n /**\n * Creates a Valibot error with useful information.\n *\n * @param issues The error issues.\n */\n constructor(issues) {\n super(issues[0].message);\n this.name = \"ValiError\";\n this.issues = issues;\n }\n};\n\n// src/actions/base64/base64.ts\nfunction base64(message) {\n return {\n kind: \"validation\",\n type: \"base64\",\n reference: base64,\n async: false,\n expects: null,\n requirement: BASE64_REGEX,\n message,\n _run(dataset, config2) {\n if (dataset.typed && !this.requirement.test(dataset.value)) {\n _addIssue(this, \"Base64\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/actions/bic/bic.ts\nfunction bic(message) {\n return {\n kind: \"validation\",\n type: \"bic\",\n reference: bic,\n async: false,\n expects: null,\n requirement: BIC_REGEX,\n message,\n _run(dataset, config2) {\n if (dataset.typed && !this.requirement.test(dataset.value)) {\n _addIssue(this, \"BIC\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/actions/brand/brand.ts\nfunction brand(name) {\n return {\n kind: \"transformation\",\n type: \"brand\",\n reference: brand,\n async: false,\n name,\n _run(dataset) {\n return dataset;\n }\n };\n}\n\n// src/actions/bytes/bytes.ts\nfunction bytes(requirement, message) {\n return {\n kind: \"validation\",\n type: \"bytes\",\n reference: bytes,\n async: false,\n expects: `${requirement}`,\n requirement,\n message,\n _run(dataset, config2) {\n if (dataset.typed) {\n const length2 = new TextEncoder().encode(dataset.value).length;\n if (length2 !== this.requirement) {\n _addIssue(this, \"bytes\", dataset, config2, {\n received: `${length2}`\n });\n }\n }\n return dataset;\n }\n };\n}\n\n// src/actions/check/check.ts\nfunction check(requirement, message) {\n return {\n kind: \"validation\",\n type: \"check\",\n reference: check,\n async: false,\n expects: null,\n requirement,\n message,\n _run(dataset, config2) {\n if (dataset.typed && !this.requirement(dataset.value)) {\n _addIssue(this, \"input\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/actions/check/checkAsync.ts\nfunction checkAsync(requirement, message) {\n return {\n kind: \"validation\",\n type: \"check\",\n reference: checkAsync,\n async: true,\n expects: null,\n requirement,\n message,\n async _run(dataset, config2) {\n if (dataset.typed && !await this.requirement(dataset.value)) {\n _addIssue(this, \"input\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/actions/checkItems/checkItems.ts\nfunction checkItems(requirement, message) {\n return {\n kind: \"validation\",\n type: \"check_items\",\n reference: checkItems,\n async: false,\n expects: null,\n requirement,\n message,\n _run(dataset, config2) {\n if (dataset.typed) {\n for (let index = 0; index < dataset.value.length; index++) {\n const item = dataset.value[index];\n if (!this.requirement(item, index, dataset.value)) {\n _addIssue(this, \"item\", dataset, config2, {\n input: item,\n path: [\n {\n type: \"array\",\n origin: \"value\",\n input: dataset.value,\n key: index,\n value: item\n }\n ]\n });\n }\n }\n }\n return dataset;\n }\n };\n}\n\n// src/actions/creditCard/creditCard.ts\nvar CREDIT_CARD_REGEX = /^(?:\\d{14,19}|\\d{4}(?: \\d{3,6}){2,4}|\\d{4}(?:-\\d{3,6}){2,4})$/u;\nvar SANITIZE_REGEX = /[- ]/gu;\nvar PROVIDER_REGEX_LIST = [\n // American Express\n /^3[47]\\d{13}$/u,\n // Diners Club\n /^3(?:0[0-5]|[68]\\d)\\d{11,13}$/u,\n // Discover\n /^6(?:011|5\\d{2})\\d{12,15}$/u,\n // JCB\n /^(?:2131|1800|35\\d{3})\\d{11}$/u,\n // Mastercard\n /^5[1-5]\\d{2}|(?:222\\d|22[3-9]\\d|2[3-6]\\d{2}|27[01]\\d|2720)\\d{12}$/u,\n // UnionPay\n /^(?:6[27]\\d{14,17}|81\\d{14,17})$/u,\n // Visa\n /^4\\d{12}(?:\\d{3,6})?$/u\n];\nfunction creditCard(message) {\n return {\n kind: \"validation\",\n type: \"credit_card\",\n reference: creditCard,\n async: false,\n expects: null,\n requirement(input) {\n let sanitized;\n return CREDIT_CARD_REGEX.test(input) && // Remove any hyphens and blanks\n (sanitized = input.replace(SANITIZE_REGEX, \"\")) && // Check if it matches a provider\n PROVIDER_REGEX_LIST.some((regex2) => regex2.test(sanitized)) && // Check if passes luhn algorithm\n _isLuhnAlgo(sanitized);\n },\n message,\n _run(dataset, config2) {\n if (dataset.typed && !this.requirement(dataset.value)) {\n _addIssue(this, \"credit card\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/actions/cuid2/cuid2.ts\nfunction cuid2(message) {\n return {\n kind: \"validation\",\n type: \"cuid2\",\n reference: cuid2,\n async: false,\n expects: null,\n requirement: CUID2_REGEX,\n message,\n _run(dataset, config2) {\n if (dataset.typed && !this.requirement.test(dataset.value)) {\n _addIssue(this, \"Cuid2\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/actions/decimal/decimal.ts\nfunction decimal(message) {\n return {\n kind: \"validation\",\n type: \"decimal\",\n reference: decimal,\n async: false,\n expects: null,\n requirement: DECIMAL_REGEX,\n message,\n _run(dataset, config2) {\n if (dataset.typed && !this.requirement.test(dataset.value)) {\n _addIssue(this, \"decimal\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/actions/description/description.ts\nfunction description(description_) {\n return {\n kind: \"metadata\",\n type: \"description\",\n reference: description,\n description: description_\n };\n}\n\n// src/actions/email/email.ts\nfunction email(message) {\n return {\n kind: \"validation\",\n type: \"email\",\n reference: email,\n expects: null,\n async: false,\n requirement: EMAIL_REGEX,\n message,\n _run(dataset, config2) {\n if (dataset.typed && !this.requirement.test(dataset.value)) {\n _addIssue(this, \"email\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/actions/emoji/emoji.ts\nfunction emoji(message) {\n return {\n kind: \"validation\",\n type: \"emoji\",\n reference: emoji,\n async: false,\n expects: null,\n requirement: EMOJI_REGEX,\n message,\n _run(dataset, config2) {\n if (dataset.typed && !this.requirement.test(dataset.value)) {\n _addIssue(this, \"emoji\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/actions/empty/empty.ts\nfunction empty(message) {\n return {\n kind: \"validation\",\n type: \"empty\",\n reference: empty,\n async: false,\n expects: \"0\",\n message,\n _run(dataset, config2) {\n if (dataset.typed && dataset.value.length > 0) {\n _addIssue(this, \"length\", dataset, config2, {\n received: `${dataset.value.length}`\n });\n }\n return dataset;\n }\n };\n}\n\n// src/actions/endsWith/endsWith.ts\nfunction endsWith(requirement, message) {\n return {\n kind: \"validation\",\n type: \"ends_with\",\n reference: endsWith,\n async: false,\n expects: `\"${requirement}\"`,\n requirement,\n message,\n _run(dataset, config2) {\n if (dataset.typed && !dataset.value.endsWith(this.requirement)) {\n _addIssue(this, \"end\", dataset, config2, {\n received: `\"${dataset.value.slice(-this.requirement.length)}\"`\n });\n }\n return dataset;\n }\n };\n}\n\n// src/actions/everyItem/everyItem.ts\nfunction everyItem(requirement, message) {\n return {\n kind: \"validation\",\n type: \"every_item\",\n reference: everyItem,\n async: false,\n expects: null,\n requirement,\n message,\n _run(dataset, config2) {\n if (dataset.typed && !dataset.value.every(this.requirement)) {\n _addIssue(this, \"item\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/actions/excludes/excludes.ts\nfunction excludes(requirement, message) {\n const received = _stringify(requirement);\n return {\n kind: \"validation\",\n type: \"excludes\",\n reference: excludes,\n async: false,\n expects: `!${received}`,\n requirement,\n message,\n _run(dataset, config2) {\n if (dataset.typed && dataset.value.includes(this.requirement)) {\n _addIssue(this, \"content\", dataset, config2, { received });\n }\n return dataset;\n }\n };\n}\n\n// src/actions/filterItems/filterItems.ts\nfunction filterItems(operation) {\n return {\n kind: \"transformation\",\n type: \"filter_items\",\n reference: filterItems,\n async: false,\n operation,\n _run(dataset) {\n dataset.value = dataset.value.filter(this.operation);\n return dataset;\n }\n };\n}\n\n// src/actions/findItem/findItem.ts\nfunction findItem(operation) {\n return {\n kind: \"transformation\",\n type: \"find_item\",\n reference: findItem,\n async: false,\n operation,\n _run(dataset) {\n dataset.value = dataset.value.find(this.operation);\n return dataset;\n }\n };\n}\n\n// src/actions/finite/finite.ts\nfunction finite(message) {\n return {\n kind: \"validation\",\n type: \"finite\",\n reference: finite,\n async: false,\n expects: null,\n requirement: Number.isFinite,\n message,\n _run(dataset, config2) {\n if (dataset.typed && !this.requirement(dataset.value)) {\n _addIssue(this, \"finite\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/actions/hash/hash.ts\nvar HASH_LENGTHS = {\n md4: 32,\n md5: 32,\n sha1: 40,\n sha256: 64,\n sha384: 96,\n sha512: 128,\n ripemd128: 32,\n ripemd160: 40,\n tiger128: 32,\n tiger160: 40,\n tiger192: 48,\n crc32: 8,\n crc32b: 8,\n adler32: 8\n};\nfunction hash(types, message) {\n return {\n kind: \"validation\",\n type: \"hash\",\n reference: hash,\n expects: null,\n async: false,\n requirement: RegExp(\n types.map((type) => `^[a-f0-9]{${HASH_LENGTHS[type]}}$`).join(\"|\"),\n \"iu\"\n ),\n message,\n _run(dataset, config2) {\n if (dataset.typed && !this.requirement.test(dataset.value)) {\n _addIssue(this, \"hash\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/actions/hexadecimal/hexadecimal.ts\nfunction hexadecimal(message) {\n return {\n kind: \"validation\",\n type: \"hexadecimal\",\n reference: hexadecimal,\n async: false,\n expects: null,\n requirement: HEXADECIMAL_REGEX,\n message,\n _run(dataset, config2) {\n if (dataset.typed && !this.requirement.test(dataset.value)) {\n _addIssue(this, \"hexadecimal\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/actions/hexColor/hexColor.ts\nfunction hexColor(message) {\n return {\n kind: \"validation\",\n type: \"hex_color\",\n reference: hexColor,\n async: false,\n expects: null,\n requirement: HEX_COLOR_REGEX,\n message,\n _run(dataset, config2) {\n if (dataset.typed && !this.requirement.test(dataset.value)) {\n _addIssue(this, \"hex color\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/actions/imei/imei.ts\nfunction imei(message) {\n return {\n kind: \"validation\",\n type: \"imei\",\n reference: imei,\n async: false,\n expects: null,\n requirement(input) {\n return IMEI_REGEX.test(input) && _isLuhnAlgo(input);\n },\n message,\n _run(dataset, config2) {\n if (dataset.typed && !this.requirement(dataset.value)) {\n _addIssue(this, \"IMEI\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/actions/includes/includes.ts\nfunction includes(requirement, message) {\n const expects = _stringify(requirement);\n return {\n kind: \"validation\",\n type: \"includes\",\n reference: includes,\n async: false,\n expects,\n requirement,\n message,\n _run(dataset, config2) {\n if (dataset.typed && !dataset.value.includes(this.requirement)) {\n _addIssue(this, \"content\", dataset, config2, {\n received: `!${expects}`\n });\n }\n return dataset;\n }\n };\n}\n\n// src/actions/integer/integer.ts\nfunction integer(message) {\n return {\n kind: \"validation\",\n type: \"integer\",\n reference: integer,\n async: false,\n expects: null,\n requirement: Number.isInteger,\n message,\n _run(dataset, config2) {\n if (dataset.typed && !this.requirement(dataset.value)) {\n _addIssue(this, \"integer\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/actions/ip/ip.ts\nfunction ip(message) {\n return {\n kind: \"validation\",\n type: \"ip\",\n reference: ip,\n async: false,\n expects: null,\n requirement: IP_REGEX,\n message,\n _run(dataset, config2) {\n if (dataset.typed && !this.requirement.test(dataset.value)) {\n _addIssue(this, \"IP\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/actions/ipv4/ipv4.ts\nfunction ipv4(message) {\n return {\n kind: \"validation\",\n type: \"ipv4\",\n reference: ipv4,\n async: false,\n expects: null,\n requirement: IPV4_REGEX,\n message,\n _run(dataset, config2) {\n if (dataset.typed && !this.requirement.test(dataset.value)) {\n _addIssue(this, \"IPv4\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/actions/ipv6/ipv6.ts\nfunction ipv6(message) {\n return {\n kind: \"validation\",\n type: \"ipv6\",\n reference: ipv6,\n async: false,\n expects: null,\n requirement: IPV6_REGEX,\n message,\n _run(dataset, config2) {\n if (dataset.typed && !this.requirement.test(dataset.value)) {\n _addIssue(this, \"IPv6\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/actions/isoDate/isoDate.ts\nfunction isoDate(message) {\n return {\n kind: \"validation\",\n type: \"iso_date\",\n reference: isoDate,\n async: false,\n expects: null,\n requirement: ISO_DATE_REGEX,\n message,\n _run(dataset, config2) {\n if (dataset.typed && !this.requirement.test(dataset.value)) {\n _addIssue(this, \"date\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/actions/isoDateTime/isoDateTime.ts\nfunction isoDateTime(message) {\n return {\n kind: \"validation\",\n type: \"iso_date_time\",\n reference: isoDateTime,\n async: false,\n expects: null,\n requirement: ISO_DATE_TIME_REGEX,\n message,\n _run(dataset, config2) {\n if (dataset.typed && !this.requirement.test(dataset.value)) {\n _addIssue(this, \"date-time\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/actions/isoTime/isoTime.ts\nfunction isoTime(message) {\n return {\n kind: \"validation\",\n type: \"iso_time\",\n reference: isoTime,\n async: false,\n expects: null,\n requirement: ISO_TIME_REGEX,\n message,\n _run(dataset, config2) {\n if (dataset.typed && !this.requirement.test(dataset.value)) {\n _addIssue(this, \"time\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/actions/isoTimeSecond/isoTimeSecond.ts\nfunction isoTimeSecond(message) {\n return {\n kind: \"validation\",\n type: \"iso_time_second\",\n reference: isoTimeSecond,\n async: false,\n expects: null,\n requirement: ISO_TIME_SECOND_REGEX,\n message,\n _run(dataset, config2) {\n if (dataset.typed && !this.requirement.test(dataset.value)) {\n _addIssue(this, \"time-second\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/actions/isoTimestamp/isoTimestamp.ts\nfunction isoTimestamp(message) {\n return {\n kind: \"validation\",\n type: \"iso_timestamp\",\n reference: isoTimestamp,\n async: false,\n expects: null,\n requirement: ISO_TIMESTAMP_REGEX,\n message,\n _run(dataset, config2) {\n if (dataset.typed && !this.requirement.test(dataset.value)) {\n _addIssue(this, \"timestamp\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/actions/isoWeek/isoWeek.ts\nfunction isoWeek(message) {\n return {\n kind: \"validation\",\n type: \"iso_week\",\n reference: isoWeek,\n async: false,\n expects: null,\n requirement: ISO_WEEK_REGEX,\n message,\n _run(dataset, config2) {\n if (dataset.typed && !this.requirement.test(dataset.value)) {\n _addIssue(this, \"week\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/actions/length/length.ts\nfunction length(requirement, message) {\n return {\n kind: \"validation\",\n type: \"length\",\n reference: length,\n async: false,\n expects: `${requirement}`,\n requirement,\n message,\n _run(dataset, config2) {\n if (dataset.typed && dataset.value.length !== this.requirement) {\n _addIssue(this, \"length\", dataset, config2, {\n received: `${dataset.value.length}`\n });\n }\n return dataset;\n }\n };\n}\n\n// src/actions/mac/mac.ts\nfunction mac(message) {\n return {\n kind: \"validation\",\n type: \"mac\",\n reference: mac,\n async: false,\n expects: null,\n requirement: MAC_REGEX,\n message,\n _run(dataset, config2) {\n if (dataset.typed && !this.requirement.test(dataset.value)) {\n _addIssue(this, \"MAC\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/actions/mac48/mac48.ts\nfunction mac48(message) {\n return {\n kind: \"validation\",\n type: \"mac48\",\n reference: mac48,\n async: false,\n expects: null,\n requirement: MAC48_REGEX,\n message,\n _run(dataset, config2) {\n if (dataset.typed && !this.requirement.test(dataset.value)) {\n _addIssue(this, \"48-bit MAC\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/actions/mac64/mac64.ts\nfunction mac64(message) {\n return {\n kind: \"validation\",\n type: \"mac64\",\n reference: mac64,\n async: false,\n expects: null,\n requirement: MAC64_REGEX,\n message,\n _run(dataset, config2) {\n if (dataset.typed && !this.requirement.test(dataset.value)) {\n _addIssue(this, \"64-bit MAC\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/actions/mapItems/mapItems.ts\nfunction mapItems(operation) {\n return {\n kind: \"transformation\",\n type: \"map_items\",\n reference: mapItems,\n async: false,\n operation,\n _run(dataset) {\n dataset.value = dataset.value.map(this.operation);\n return dataset;\n }\n };\n}\n\n// src/actions/maxBytes/maxBytes.ts\nfunction maxBytes(requirement, message) {\n return {\n kind: \"validation\",\n type: \"max_bytes\",\n reference: maxBytes,\n async: false,\n expects: `<=${requirement}`,\n requirement,\n message,\n _run(dataset, config2) {\n if (dataset.typed) {\n const length2 = new TextEncoder().encode(dataset.value).length;\n if (length2 > this.requirement) {\n _addIssue(this, \"bytes\", dataset, config2, {\n received: `${length2}`\n });\n }\n }\n return dataset;\n }\n };\n}\n\n// src/actions/maxLength/maxLength.ts\nfunction maxLength(requirement, message) {\n return {\n kind: \"validation\",\n type: \"max_length\",\n reference: maxLength,\n async: false,\n expects: `<=${requirement}`,\n requirement,\n message,\n _run(dataset, config2) {\n if (dataset.typed && dataset.value.length > this.requirement) {\n _addIssue(this, \"length\", dataset, config2, {\n received: `${dataset.value.length}`\n });\n }\n return dataset;\n }\n };\n}\n\n// src/actions/maxSize/maxSize.ts\nfunction maxSize(requirement, message) {\n return {\n kind: \"validation\",\n type: \"max_size\",\n reference: maxSize,\n async: false,\n expects: `<=${requirement}`,\n requirement,\n message,\n _run(dataset, config2) {\n if (dataset.typed && dataset.value.size > this.requirement) {\n _addIssue(this, \"size\", dataset, config2, {\n received: `${dataset.value.size}`\n });\n }\n return dataset;\n }\n };\n}\n\n// src/actions/maxValue/maxValue.ts\nfunction maxValue(requirement, message) {\n return {\n kind: \"validation\",\n type: \"max_value\",\n reference: maxValue,\n async: false,\n expects: `<=${requirement instanceof Date ? requirement.toJSON() : _stringify(requirement)}`,\n requirement,\n message,\n _run(dataset, config2) {\n if (dataset.typed && dataset.value > this.requirement) {\n _addIssue(this, \"value\", dataset, config2, {\n received: dataset.value instanceof Date ? dataset.value.toJSON() : _stringify(dataset.value)\n });\n }\n return dataset;\n }\n };\n}\n\n// src/actions/mimeType/mimeType.ts\nfunction mimeType(requirement, message) {\n return {\n kind: \"validation\",\n type: \"mime_type\",\n reference: mimeType,\n async: false,\n expects: requirement.map((option) => `\"${option}\"`).join(\" | \") || \"never\",\n requirement,\n message,\n _run(dataset, config2) {\n if (dataset.typed && !this.requirement.includes(dataset.value.type)) {\n _addIssue(this, \"MIME type\", dataset, config2, {\n received: `\"${dataset.value.type}\"`\n });\n }\n return dataset;\n }\n };\n}\n\n// src/actions/minBytes/minBytes.ts\nfunction minBytes(requirement, message) {\n return {\n kind: \"validation\",\n type: \"min_bytes\",\n reference: minBytes,\n async: false,\n expects: `>=${requirement}`,\n requirement,\n message,\n _run(dataset, config2) {\n if (dataset.typed) {\n const length2 = new TextEncoder().encode(dataset.value).length;\n if (length2 < this.requirement) {\n _addIssue(this, \"bytes\", dataset, config2, {\n received: `${length2}`\n });\n }\n }\n return dataset;\n }\n };\n}\n\n// src/actions/minLength/minLength.ts\nfunction minLength(requirement, message) {\n return {\n kind: \"validation\",\n type: \"min_length\",\n reference: minLength,\n async: false,\n expects: `>=${requirement}`,\n requirement,\n message,\n _run(dataset, config2) {\n if (dataset.typed && dataset.value.length < this.requirement) {\n _addIssue(this, \"length\", dataset, config2, {\n received: `${dataset.value.length}`\n });\n }\n return dataset;\n }\n };\n}\n\n// src/actions/minSize/minSize.ts\nfunction minSize(requirement, message) {\n return {\n kind: \"validation\",\n type: \"min_size\",\n reference: minSize,\n async: false,\n expects: `>=${requirement}`,\n requirement,\n message,\n _run(dataset, config2) {\n if (dataset.typed && dataset.value.size < this.requirement) {\n _addIssue(this, \"size\", dataset, config2, {\n received: `${dataset.value.size}`\n });\n }\n return dataset;\n }\n };\n}\n\n// src/actions/minValue/minValue.ts\nfunction minValue(requirement, message) {\n return {\n kind: \"validation\",\n type: \"min_value\",\n reference: minValue,\n async: false,\n expects: `>=${requirement instanceof Date ? requirement.toJSON() : _stringify(requirement)}`,\n requirement,\n message,\n _run(dataset, config2) {\n if (dataset.typed && dataset.value < this.requirement) {\n _addIssue(this, \"value\", dataset, config2, {\n received: dataset.value instanceof Date ? dataset.value.toJSON() : _stringify(dataset.value)\n });\n }\n return dataset;\n }\n };\n}\n\n// src/actions/multipleOf/multipleOf.ts\nfunction multipleOf(requirement, message) {\n return {\n kind: \"validation\",\n type: \"multiple_of\",\n reference: multipleOf,\n async: false,\n expects: `%${requirement}`,\n requirement,\n message,\n _run(dataset, config2) {\n if (dataset.typed && dataset.value % this.requirement !== 0) {\n _addIssue(this, \"multiple\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/actions/nonEmpty/nonEmpty.ts\nfunction nonEmpty(message) {\n return {\n kind: \"validation\",\n type: \"non_empty\",\n reference: nonEmpty,\n async: false,\n expects: \"!0\",\n message,\n _run(dataset, config2) {\n if (dataset.typed && dataset.value.length === 0) {\n _addIssue(this, \"length\", dataset, config2, {\n received: \"0\"\n });\n }\n return dataset;\n }\n };\n}\n\n// src/actions/normalize/normalize.ts\nfunction normalize(form) {\n return {\n kind: \"transformation\",\n type: \"normalize\",\n reference: normalize,\n async: false,\n form,\n _run(dataset) {\n dataset.value = dataset.value.normalize(this.form);\n return dataset;\n }\n };\n}\n\n// src/actions/notBytes/notBytes.ts\nfunction notBytes(requirement, message) {\n return {\n kind: \"validation\",\n type: \"not_bytes\",\n reference: notBytes,\n async: false,\n expects: `!${requirement}`,\n requirement,\n message,\n _run(dataset, config2) {\n if (dataset.typed) {\n const length2 = new TextEncoder().encode(dataset.value).length;\n if (length2 === this.requirement) {\n _addIssue(this, \"bytes\", dataset, config2, {\n received: `${length2}`\n });\n }\n }\n return dataset;\n }\n };\n}\n\n// src/actions/notLength/notLength.ts\nfunction notLength(requirement, message) {\n return {\n kind: \"validation\",\n type: \"not_length\",\n reference: notLength,\n async: false,\n expects: `!${requirement}`,\n requirement,\n message,\n _run(dataset, config2) {\n if (dataset.typed && dataset.value.length === this.requirement) {\n _addIssue(this, \"length\", dataset, config2, {\n received: `${dataset.value.length}`\n });\n }\n return dataset;\n }\n };\n}\n\n// src/actions/notSize/notSize.ts\nfunction notSize(requirement, message) {\n return {\n kind: \"validation\",\n type: \"not_size\",\n reference: notSize,\n async: false,\n expects: `!${requirement}`,\n requirement,\n message,\n _run(dataset, config2) {\n if (dataset.typed && dataset.value.size === this.requirement) {\n _addIssue(this, \"size\", dataset, config2, {\n received: `${dataset.value.size}`\n });\n }\n return dataset;\n }\n };\n}\n\n// src/actions/notValue/notValue.ts\nfunction notValue(requirement, message) {\n return {\n kind: \"validation\",\n type: \"not_value\",\n reference: notValue,\n async: false,\n expects: requirement instanceof Date ? `!${requirement.toJSON()}` : `!${_stringify(requirement)}`,\n requirement,\n message,\n _run(dataset, config2) {\n if (dataset.typed && this.requirement <= dataset.value && this.requirement >= dataset.value) {\n _addIssue(this, \"value\", dataset, config2, {\n received: dataset.value instanceof Date ? dataset.value.toJSON() : _stringify(dataset.value)\n });\n }\n return dataset;\n }\n };\n}\n\n// src/actions/octal/octal.ts\nfunction octal(message) {\n return {\n kind: \"validation\",\n type: \"octal\",\n reference: octal,\n async: false,\n expects: null,\n requirement: OCTAL_REGEX,\n message,\n _run(dataset, config2) {\n if (dataset.typed && !this.requirement.test(dataset.value)) {\n _addIssue(this, \"octal\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/actions/partialCheck/utils/_isPartiallyTyped/_isPartiallyTyped.ts\nfunction _isPartiallyTyped(dataset, pathList) {\n if (dataset.issues) {\n for (const path of pathList) {\n for (const issue of dataset.issues) {\n let typed = false;\n const bound = Math.min(path.length, issue.path?.length ?? 0);\n for (let index = 0; index < bound; index++) {\n if (path[index] !== issue.path[index].key) {\n typed = true;\n break;\n }\n }\n if (!typed) {\n return false;\n }\n }\n }\n }\n return true;\n}\n\n// src/actions/partialCheck/partialCheck.ts\nfunction partialCheck(pathList, requirement, message) {\n return {\n kind: \"validation\",\n type: \"partial_check\",\n reference: partialCheck,\n async: false,\n expects: null,\n requirement,\n message,\n _run(dataset, config2) {\n if (_isPartiallyTyped(dataset, pathList) && // @ts-expect-error\n !this.requirement(dataset.value)) {\n _addIssue(this, \"input\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/actions/partialCheck/partialCheckAsync.ts\nfunction partialCheckAsync(pathList, requirement, message) {\n return {\n kind: \"validation\",\n type: \"partial_check\",\n reference: partialCheckAsync,\n async: true,\n expects: null,\n requirement,\n message,\n async _run(dataset, config2) {\n if (_isPartiallyTyped(dataset, pathList) && // @ts-expect-error\n !await this.requirement(dataset.value)) {\n _addIssue(this, \"input\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/actions/rawCheck/rawCheck.ts\nfunction rawCheck(action) {\n return {\n kind: \"validation\",\n type: \"raw_check\",\n reference: rawCheck,\n async: false,\n expects: null,\n _run(dataset, config2) {\n action({\n dataset,\n config: config2,\n addIssue: (info) => _addIssue(this, info?.label ?? \"input\", dataset, config2, info)\n });\n return dataset;\n }\n };\n}\n\n// src/actions/rawCheck/rawCheckAsync.ts\nfunction rawCheckAsync(action) {\n return {\n kind: \"validation\",\n type: \"raw_check\",\n reference: rawCheckAsync,\n async: true,\n expects: null,\n async _run(dataset, config2) {\n await action({\n dataset,\n config: config2,\n addIssue: (info) => _addIssue(this, info?.label ?? \"input\", dataset, config2, info)\n });\n return dataset;\n }\n };\n}\n\n// src/actions/rawTransform/rawTransform.ts\nfunction rawTransform(action) {\n return {\n kind: \"transformation\",\n type: \"raw_transform\",\n reference: rawTransform,\n async: false,\n _run(dataset, config2) {\n const output = action({\n dataset,\n config: config2,\n addIssue: (info) => _addIssue(this, info?.label ?? \"input\", dataset, config2, info),\n NEVER: null\n });\n if (dataset.issues) {\n dataset.typed = false;\n } else {\n dataset.value = output;\n }\n return dataset;\n }\n };\n}\n\n// src/actions/rawTransform/rawTransformAsync.ts\nfunction rawTransformAsync(action) {\n return {\n kind: \"transformation\",\n type: \"raw_transform\",\n reference: rawTransformAsync,\n async: true,\n async _run(dataset, config2) {\n const output = await action({\n dataset,\n config: config2,\n addIssue: (info) => _addIssue(this, info?.label ?? \"input\", dataset, config2, info),\n NEVER: null\n });\n if (dataset.issues) {\n dataset.typed = false;\n } else {\n dataset.value = output;\n }\n return dataset;\n }\n };\n}\n\n// src/actions/readonly/readonly.ts\nfunction readonly() {\n return {\n kind: \"transformation\",\n type: \"readonly\",\n reference: readonly,\n async: false,\n _run(dataset) {\n return dataset;\n }\n };\n}\n\n// src/actions/reduceItems/reduceItems.ts\nfunction reduceItems(operation, initial) {\n return {\n kind: \"transformation\",\n type: \"reduce_items\",\n reference: reduceItems,\n async: false,\n operation,\n initial,\n _run(dataset) {\n dataset.value = dataset.value.reduce(this.operation, this.initial);\n return dataset;\n }\n };\n}\n\n// src/actions/regex/regex.ts\nfunction regex(requirement, message) {\n return {\n kind: \"validation\",\n type: \"regex\",\n reference: regex,\n async: false,\n expects: `${requirement}`,\n requirement,\n message,\n _run(dataset, config2) {\n if (dataset.typed && !this.requirement.test(dataset.value)) {\n _addIssue(this, \"format\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/actions/safeInteger/safeInteger.ts\nfunction safeInteger(message) {\n return {\n kind: \"validation\",\n type: \"safe_integer\",\n reference: safeInteger,\n async: false,\n expects: null,\n requirement: Number.isSafeInteger,\n message,\n _run(dataset, config2) {\n if (dataset.typed && !this.requirement(dataset.value)) {\n _addIssue(this, \"safe integer\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/actions/size/size.ts\nfunction size(requirement, message) {\n return {\n kind: \"validation\",\n type: \"size\",\n reference: size,\n async: false,\n expects: `${requirement}`,\n requirement,\n message,\n _run(dataset, config2) {\n if (dataset.typed && dataset.value.size !== this.requirement) {\n _addIssue(this, \"size\", dataset, config2, {\n received: `${dataset.value.size}`\n });\n }\n return dataset;\n }\n };\n}\n\n// src/actions/someItem/someItem.ts\nfunction someItem(requirement, message) {\n return {\n kind: \"validation\",\n type: \"some_item\",\n reference: someItem,\n async: false,\n expects: null,\n requirement,\n message,\n _run(dataset, config2) {\n if (dataset.typed && !dataset.value.some(this.requirement)) {\n _addIssue(this, \"item\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/actions/sortItems/sortItems.ts\nfunction sortItems(operation) {\n return {\n kind: \"transformation\",\n type: \"sort_items\",\n reference: sortItems,\n async: false,\n operation,\n _run(dataset) {\n dataset.value = dataset.value.sort(this.operation);\n return dataset;\n }\n };\n}\n\n// src/actions/startsWith/startsWith.ts\nfunction startsWith(requirement, message) {\n return {\n kind: \"validation\",\n type: \"starts_with\",\n reference: startsWith,\n async: false,\n expects: `\"${requirement}\"`,\n requirement,\n message,\n _run(dataset, config2) {\n if (dataset.typed && !dataset.value.startsWith(this.requirement)) {\n _addIssue(this, \"start\", dataset, config2, {\n received: `\"${dataset.value.slice(0, this.requirement.length)}\"`\n });\n }\n return dataset;\n }\n };\n}\n\n// src/actions/toLowerCase/toLowerCase.ts\nfunction toLowerCase() {\n return {\n kind: \"transformation\",\n type: \"to_lower_case\",\n reference: toLowerCase,\n async: false,\n _run(dataset) {\n dataset.value = dataset.value.toLowerCase();\n return dataset;\n }\n };\n}\n\n// src/actions/toMaxValue/toMaxValue.ts\nfunction toMaxValue(requirement) {\n return {\n kind: \"transformation\",\n type: \"to_max_value\",\n reference: toMaxValue,\n async: false,\n requirement,\n _run(dataset) {\n dataset.value = dataset.value > this.requirement ? this.requirement : dataset.value;\n return dataset;\n }\n };\n}\n\n// src/actions/toMinValue/toMinValue.ts\nfunction toMinValue(requirement) {\n return {\n kind: \"transformation\",\n type: \"to_min_value\",\n reference: toMinValue,\n async: false,\n requirement,\n _run(dataset) {\n dataset.value = dataset.value < this.requirement ? this.requirement : dataset.value;\n return dataset;\n }\n };\n}\n\n// src/actions/toUpperCase/toUpperCase.ts\nfunction toUpperCase() {\n return {\n kind: \"transformation\",\n type: \"to_upper_case\",\n reference: toUpperCase,\n async: false,\n _run(dataset) {\n dataset.value = dataset.value.toUpperCase();\n return dataset;\n }\n };\n}\n\n// src/actions/transform/transform.ts\nfunction transform(operation) {\n return {\n kind: \"transformation\",\n type: \"transform\",\n reference: transform,\n async: false,\n operation,\n _run(dataset) {\n dataset.value = this.operation(dataset.value);\n return dataset;\n }\n };\n}\n\n// src/actions/transform/transformAsync.ts\nfunction transformAsync(operation) {\n return {\n kind: \"transformation\",\n type: \"transform\",\n reference: transformAsync,\n async: true,\n operation,\n async _run(dataset) {\n dataset.value = await this.operation(dataset.value);\n return dataset;\n }\n };\n}\n\n// src/actions/trim/trim.ts\nfunction trim() {\n return {\n kind: \"transformation\",\n type: \"trim\",\n reference: trim,\n async: false,\n _run(dataset) {\n dataset.value = dataset.value.trim();\n return dataset;\n }\n };\n}\n\n// src/actions/trimEnd/trimEnd.ts\nfunction trimEnd() {\n return {\n kind: \"transformation\",\n type: \"trim_end\",\n reference: trimEnd,\n async: false,\n _run(dataset) {\n dataset.value = dataset.value.trimEnd();\n return dataset;\n }\n };\n}\n\n// src/actions/trimStart/trimStart.ts\nfunction trimStart() {\n return {\n kind: \"transformation\",\n type: \"trim_start\",\n reference: trimStart,\n async: false,\n _run(dataset) {\n dataset.value = dataset.value.trimStart();\n return dataset;\n }\n };\n}\n\n// src/actions/ulid/ulid.ts\nfunction ulid(message) {\n return {\n kind: \"validation\",\n type: \"ulid\",\n reference: ulid,\n async: false,\n expects: null,\n requirement: ULID_REGEX,\n message,\n _run(dataset, config2) {\n if (dataset.typed && !this.requirement.test(dataset.value)) {\n _addIssue(this, \"ULID\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/actions/url/url.ts\nfunction url(message) {\n return {\n kind: \"validation\",\n type: \"url\",\n reference: url,\n async: false,\n expects: null,\n requirement(input) {\n try {\n new URL(input);\n return true;\n } catch {\n return false;\n }\n },\n message,\n _run(dataset, config2) {\n if (dataset.typed && !this.requirement(dataset.value)) {\n _addIssue(this, \"URL\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/actions/uuid/uuid.ts\nfunction uuid(message) {\n return {\n kind: \"validation\",\n type: \"uuid\",\n reference: uuid,\n async: false,\n expects: null,\n requirement: UUID_REGEX,\n message,\n _run(dataset, config2) {\n if (dataset.typed && !this.requirement.test(dataset.value)) {\n _addIssue(this, \"UUID\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/actions/value/value.ts\nfunction value(requirement, message) {\n return {\n kind: \"validation\",\n type: \"value\",\n reference: value,\n async: false,\n expects: requirement instanceof Date ? requirement.toJSON() : _stringify(requirement),\n requirement,\n message,\n _run(dataset, config2) {\n if (dataset.typed && !(this.requirement <= dataset.value && this.requirement >= dataset.value)) {\n _addIssue(this, \"value\", dataset, config2, {\n received: dataset.value instanceof Date ? dataset.value.toJSON() : _stringify(dataset.value)\n });\n }\n return dataset;\n }\n };\n}\n\n// src/methods/config/config.ts\nfunction config(schema, config2) {\n return {\n ...schema,\n _run(dataset, config_) {\n return schema._run(dataset, { ...config_, ...config2 });\n }\n };\n}\n\n// src/methods/getFallback/getFallback.ts\nfunction getFallback(schema, dataset, config2) {\n return typeof schema.fallback === \"function\" ? (\n // @ts-expect-error\n schema.fallback(dataset, config2)\n ) : (\n // @ts-expect-error\n schema.fallback\n );\n}\n\n// src/methods/fallback/fallback.ts\nfunction fallback(schema, fallback2) {\n return {\n ...schema,\n fallback: fallback2,\n _run(dataset, config2) {\n const outputDataset = schema._run(dataset, config2);\n return outputDataset.issues ? { typed: true, value: getFallback(this, outputDataset, config2) } : outputDataset;\n }\n };\n}\n\n// src/methods/fallback/fallbackAsync.ts\nfunction fallbackAsync(schema, fallback2) {\n return {\n ...schema,\n fallback: fallback2,\n async: true,\n async _run(dataset, config2) {\n const outputDataset = await schema._run(dataset, config2);\n return outputDataset.issues ? (\n // @ts-expect-error\n { typed: true, value: await getFallback(this, outputDataset, config2) }\n ) : outputDataset;\n }\n };\n}\n\n// src/methods/flatten/flatten.ts\nfunction flatten(issues) {\n const flatErrors = {};\n for (const issue of issues) {\n if (issue.path) {\n const dotPath = getDotPath(issue);\n if (dotPath) {\n if (!flatErrors.nested) {\n flatErrors.nested = {};\n }\n if (flatErrors.nested[dotPath]) {\n flatErrors.nested[dotPath].push(issue.message);\n } else {\n flatErrors.nested[dotPath] = [issue.message];\n }\n } else {\n if (flatErrors.other) {\n flatErrors.other.push(issue.message);\n } else {\n flatErrors.other = [issue.message];\n }\n }\n } else {\n if (flatErrors.root) {\n flatErrors.root.push(issue.message);\n } else {\n flatErrors.root = [issue.message];\n }\n }\n }\n return flatErrors;\n}\n\n// src/methods/forward/forward.ts\nfunction forward(action, pathKeys) {\n return {\n ...action,\n _run(dataset, config2) {\n const prevIssues = dataset.issues && [...dataset.issues];\n action._run(dataset, config2);\n if (dataset.issues) {\n for (const issue of dataset.issues) {\n if (!prevIssues?.includes(issue)) {\n let pathInput = dataset.value;\n for (const key of pathKeys) {\n const pathValue = pathInput[key];\n const pathItem = {\n type: \"unknown\",\n origin: \"value\",\n input: pathInput,\n key,\n value: pathValue\n };\n if (issue.path) {\n issue.path.push(pathItem);\n } else {\n issue.path = [pathItem];\n }\n if (!pathValue) {\n break;\n }\n pathInput = pathValue;\n }\n }\n }\n }\n return dataset;\n }\n };\n}\n\n// src/methods/forward/forwardAsync.ts\nfunction forwardAsync(action, pathKeys) {\n return {\n ...action,\n async: true,\n async _run(dataset, config2) {\n const prevIssues = dataset.issues && [...dataset.issues];\n await action._run(dataset, config2);\n if (dataset.issues) {\n for (const issue of dataset.issues) {\n if (!prevIssues?.includes(issue)) {\n let pathInput = dataset.value;\n for (const key of pathKeys) {\n const pathValue = pathInput[key];\n const pathItem = {\n type: \"unknown\",\n origin: \"value\",\n input: pathInput,\n key,\n value: pathValue\n };\n if (issue.path) {\n issue.path.push(pathItem);\n } else {\n issue.path = [pathItem];\n }\n if (!pathValue) {\n break;\n }\n pathInput = pathValue;\n }\n }\n }\n }\n return dataset;\n }\n };\n}\n\n// src/methods/getDefault/getDefault.ts\nfunction getDefault(schema, dataset, config2) {\n return typeof schema.default === \"function\" ? (\n // @ts-expect-error\n schema.default(dataset, config2)\n ) : (\n // @ts-expect-error\n schema.default\n );\n}\n\n// src/methods/getDefaults/getDefaults.ts\nfunction getDefaults(schema) {\n if (\"entries\" in schema) {\n const object2 = {};\n for (const key in schema.entries) {\n object2[key] = getDefaults(schema.entries[key]);\n }\n return object2;\n }\n if (\"items\" in schema) {\n return schema.items.map(getDefaults);\n }\n return getDefault(schema);\n}\n\n// src/methods/getDefaults/getDefaultsAsync.ts\nasync function getDefaultsAsync(schema) {\n if (\"entries\" in schema) {\n return Object.fromEntries(\n await Promise.all(\n Object.entries(schema.entries).map(async ([key, value2]) => [\n key,\n await getDefaultsAsync(value2)\n ])\n )\n );\n }\n if (\"items\" in schema) {\n return Promise.all(schema.items.map(getDefaultsAsync));\n }\n return getDefault(schema);\n}\n\n// src/methods/getFallbacks/getFallbacks.ts\nfunction getFallbacks(schema) {\n if (\"entries\" in schema) {\n const object2 = {};\n for (const key in schema.entries) {\n object2[key] = getFallbacks(schema.entries[key]);\n }\n return object2;\n }\n if (\"items\" in schema) {\n return schema.items.map(getFallbacks);\n }\n return getFallback(schema);\n}\n\n// src/methods/getFallbacks/getFallbacksAsync.ts\nasync function getFallbacksAsync(schema) {\n if (\"entries\" in schema) {\n return Object.fromEntries(\n await Promise.all(\n Object.entries(schema.entries).map(async ([key, value2]) => [\n key,\n await getFallbacksAsync(value2)\n ])\n )\n );\n }\n if (\"items\" in schema) {\n return Promise.all(schema.items.map(getFallbacksAsync));\n }\n return getFallback(schema);\n}\n\n// src/methods/is/is.ts\nfunction is(schema, input) {\n return !schema._run({ typed: false, value: input }, { abortEarly: true }).issues;\n}\n\n// src/schemas/any/any.ts\nfunction any() {\n return {\n kind: \"schema\",\n type: \"any\",\n reference: any,\n expects: \"any\",\n async: false,\n _run(dataset) {\n dataset.typed = true;\n return dataset;\n }\n };\n}\n\n// src/schemas/array/array.ts\nfunction array(item, message) {\n return {\n kind: \"schema\",\n type: \"array\",\n reference: array,\n expects: \"Array\",\n async: false,\n item,\n message,\n _run(dataset, config2) {\n const input = dataset.value;\n if (Array.isArray(input)) {\n dataset.typed = true;\n dataset.value = [];\n for (let key = 0; key < input.length; key++) {\n const value2 = input[key];\n const itemDataset = this.item._run({ typed: false, value: value2 }, config2);\n if (itemDataset.issues) {\n const pathItem = {\n type: \"array\",\n origin: \"value\",\n input,\n key,\n value: value2\n };\n for (const issue of itemDataset.issues) {\n if (issue.path) {\n issue.path.unshift(pathItem);\n } else {\n issue.path = [pathItem];\n }\n dataset.issues?.push(issue);\n }\n if (!dataset.issues) {\n dataset.issues = itemDataset.issues;\n }\n if (config2.abortEarly) {\n dataset.typed = false;\n break;\n }\n }\n if (!itemDataset.typed) {\n dataset.typed = false;\n }\n dataset.value.push(itemDataset.value);\n }\n } else {\n _addIssue(this, \"type\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/schemas/array/arrayAsync.ts\nfunction arrayAsync(item, message) {\n return {\n kind: \"schema\",\n type: \"array\",\n reference: arrayAsync,\n expects: \"Array\",\n async: true,\n item,\n message,\n async _run(dataset, config2) {\n const input = dataset.value;\n if (Array.isArray(input)) {\n dataset.typed = true;\n dataset.value = [];\n const itemDatasets = await Promise.all(\n input.map((value2) => this.item._run({ typed: false, value: value2 }, config2))\n );\n for (let key = 0; key < itemDatasets.length; key++) {\n const itemDataset = itemDatasets[key];\n if (itemDataset.issues) {\n const pathItem = {\n type: \"array\",\n origin: \"value\",\n input,\n key,\n value: input[key]\n };\n for (const issue of itemDataset.issues) {\n if (issue.path) {\n issue.path.unshift(pathItem);\n } else {\n issue.path = [pathItem];\n }\n dataset.issues?.push(issue);\n }\n if (!dataset.issues) {\n dataset.issues = itemDataset.issues;\n }\n if (config2.abortEarly) {\n dataset.typed = false;\n break;\n }\n }\n if (!itemDataset.typed) {\n dataset.typed = false;\n }\n dataset.value.push(itemDataset.value);\n }\n } else {\n _addIssue(this, \"type\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/schemas/bigint/bigint.ts\nfunction bigint(message) {\n return {\n kind: \"schema\",\n type: \"bigint\",\n reference: bigint,\n expects: \"bigint\",\n async: false,\n message,\n _run(dataset, config2) {\n if (typeof dataset.value === \"bigint\") {\n dataset.typed = true;\n } else {\n _addIssue(this, \"type\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/schemas/blob/blob.ts\nfunction blob(message) {\n return {\n kind: \"schema\",\n type: \"blob\",\n reference: blob,\n expects: \"Blob\",\n async: false,\n message,\n _run(dataset, config2) {\n if (dataset.value instanceof Blob) {\n dataset.typed = true;\n } else {\n _addIssue(this, \"type\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/schemas/boolean/boolean.ts\nfunction boolean(message) {\n return {\n kind: \"schema\",\n type: \"boolean\",\n reference: boolean,\n expects: \"boolean\",\n async: false,\n message,\n _run(dataset, config2) {\n if (typeof dataset.value === \"boolean\") {\n dataset.typed = true;\n } else {\n _addIssue(this, \"type\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/schemas/custom/custom.ts\nfunction custom(check2, message) {\n return {\n kind: \"schema\",\n type: \"custom\",\n reference: custom,\n expects: \"unknown\",\n async: false,\n check: check2,\n message,\n _run(dataset, config2) {\n if (this.check(dataset.value)) {\n dataset.typed = true;\n } else {\n _addIssue(this, \"type\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/schemas/custom/customAsync.ts\nfunction customAsync(check2, message) {\n return {\n kind: \"schema\",\n type: \"custom\",\n reference: customAsync,\n expects: \"unknown\",\n async: true,\n check: check2,\n message,\n async _run(dataset, config2) {\n if (await this.check(dataset.value)) {\n dataset.typed = true;\n } else {\n _addIssue(this, \"type\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/schemas/date/date.ts\nfunction date(message) {\n return {\n kind: \"schema\",\n type: \"date\",\n reference: date,\n expects: \"Date\",\n async: false,\n message,\n _run(dataset, config2) {\n if (dataset.value instanceof Date) {\n if (!isNaN(dataset.value)) {\n dataset.typed = true;\n } else {\n _addIssue(this, \"type\", dataset, config2, {\n received: '\"Invalid Date\"'\n });\n }\n } else {\n _addIssue(this, \"type\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/schemas/enum/enum.ts\nfunction enum_(enum__, message) {\n const options = Object.entries(enum__).filter(([key]) => isNaN(+key)).map(([, value2]) => value2);\n return {\n kind: \"schema\",\n type: \"enum\",\n reference: enum_,\n expects: options.map(_stringify).join(\" | \") || \"never\",\n async: false,\n enum: enum__,\n options,\n message,\n _run(dataset, config2) {\n if (this.options.includes(dataset.value)) {\n dataset.typed = true;\n } else {\n _addIssue(this, \"type\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/schemas/file/file.ts\nfunction file(message) {\n return {\n kind: \"schema\",\n type: \"file\",\n reference: file,\n expects: \"File\",\n async: false,\n message,\n _run(dataset, config2) {\n if (dataset.value instanceof File) {\n dataset.typed = true;\n } else {\n _addIssue(this, \"type\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/schemas/function/function.ts\nfunction function_(message) {\n return {\n kind: \"schema\",\n type: \"function\",\n reference: function_,\n expects: \"Function\",\n async: false,\n message,\n _run(dataset, config2) {\n if (typeof dataset.value === \"function\") {\n dataset.typed = true;\n } else {\n _addIssue(this, \"type\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/schemas/instance/instance.ts\nfunction instance(class_, message) {\n return {\n kind: \"schema\",\n type: \"instance\",\n reference: instance,\n expects: class_.name,\n async: false,\n class: class_,\n message,\n _run(dataset, config2) {\n if (dataset.value instanceof this.class) {\n dataset.typed = true;\n } else {\n _addIssue(this, \"type\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/schemas/intersect/utils/_merge/_merge.ts\nfunction _merge(value1, value2) {\n if (typeof value1 === typeof value2) {\n if (value1 === value2 || value1 instanceof Date && value2 instanceof Date && +value1 === +value2) {\n return { value: value1 };\n }\n if (value1 && value2 && value1.constructor === Object && value2.constructor === Object) {\n for (const key in value2) {\n if (key in value1) {\n const dataset = _merge(value1[key], value2[key]);\n if (dataset.issue) {\n return dataset;\n }\n value1[key] = dataset.value;\n } else {\n value1[key] = value2[key];\n }\n }\n return { value: value1 };\n }\n if (Array.isArray(value1) && Array.isArray(value2)) {\n if (value1.length === value2.length) {\n for (let index = 0; index < value1.length; index++) {\n const dataset = _merge(value1[index], value2[index]);\n if (dataset.issue) {\n return dataset;\n }\n value1[index] = dataset.value;\n }\n return { value: value1 };\n }\n }\n }\n return { issue: true };\n}\n\n// src/schemas/intersect/intersect.ts\nfunction intersect(options, message) {\n return {\n kind: \"schema\",\n type: \"intersect\",\n reference: intersect,\n expects: [...new Set(options.map((option) => option.expects))].join(\" & \") || \"never\",\n async: false,\n options,\n message,\n _run(dataset, config2) {\n if (this.options.length) {\n const input = dataset.value;\n let outputs;\n dataset.typed = true;\n for (const schema of this.options) {\n const optionDataset = schema._run(\n { typed: false, value: input },\n config2\n );\n if (optionDataset.issues) {\n if (dataset.issues) {\n dataset.issues.push(...optionDataset.issues);\n } else {\n dataset.issues = optionDataset.issues;\n }\n if (config2.abortEarly) {\n dataset.typed = false;\n break;\n }\n }\n if (!optionDataset.typed) {\n dataset.typed = false;\n }\n if (dataset.typed) {\n if (outputs) {\n outputs.push(optionDataset.value);\n } else {\n outputs = [optionDataset.value];\n }\n }\n }\n if (dataset.typed) {\n dataset.value = outputs[0];\n for (let index = 1; index < outputs.length; index++) {\n const mergeDataset = _merge(dataset.value, outputs[index]);\n if (mergeDataset.issue) {\n _addIssue(this, \"type\", dataset, config2, {\n received: \"unknown\"\n });\n break;\n }\n dataset.value = mergeDataset.value;\n }\n }\n } else {\n _addIssue(this, \"type\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/schemas/intersect/intersectAsync.ts\nfunction intersectAsync(options, message) {\n return {\n kind: \"schema\",\n type: \"intersect\",\n reference: intersectAsync,\n expects: [...new Set(options.map((option) => option.expects))].join(\" & \") || \"never\",\n async: true,\n options,\n message,\n async _run(dataset, config2) {\n if (this.options.length) {\n const input = dataset.value;\n let outputs;\n dataset.typed = true;\n const optionDatasets = await Promise.all(\n this.options.map(\n (schema) => schema._run({ typed: false, value: input }, config2)\n )\n );\n for (const optionDataset of optionDatasets) {\n if (optionDataset.issues) {\n if (dataset.issues) {\n dataset.issues.push(...optionDataset.issues);\n } else {\n dataset.issues = optionDataset.issues;\n }\n if (config2.abortEarly) {\n dataset.typed = false;\n break;\n }\n }\n if (!optionDataset.typed) {\n dataset.typed = false;\n }\n if (dataset.typed) {\n if (outputs) {\n outputs.push(optionDataset.value);\n } else {\n outputs = [optionDataset.value];\n }\n }\n }\n if (dataset.typed) {\n dataset.value = outputs[0];\n for (let index = 1; index < outputs.length; index++) {\n const mergeDataset = _merge(dataset.value, outputs[index]);\n if (mergeDataset.issue) {\n _addIssue(this, \"type\", dataset, config2, {\n received: \"unknown\"\n });\n break;\n }\n dataset.value = mergeDataset.value;\n }\n }\n } else {\n _addIssue(this, \"type\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/schemas/lazy/lazy.ts\nfunction lazy(getter) {\n return {\n kind: \"schema\",\n type: \"lazy\",\n reference: lazy,\n expects: \"unknown\",\n async: false,\n getter,\n _run(dataset, config2) {\n return this.getter(dataset.value)._run(dataset, config2);\n }\n };\n}\n\n// src/schemas/lazy/lazyAsync.ts\nfunction lazyAsync(getter) {\n return {\n kind: \"schema\",\n type: \"lazy\",\n reference: lazyAsync,\n expects: \"unknown\",\n async: true,\n getter,\n async _run(dataset, config2) {\n return (await this.getter(dataset.value))._run(dataset, config2);\n }\n };\n}\n\n// src/schemas/literal/literal.ts\nfunction literal(literal_, message) {\n return {\n kind: \"schema\",\n type: \"literal\",\n reference: literal,\n expects: _stringify(literal_),\n async: false,\n literal: literal_,\n message,\n _run(dataset, config2) {\n if (dataset.value === this.literal) {\n dataset.typed = true;\n } else {\n _addIssue(this, \"type\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/schemas/looseObject/looseObject.ts\nfunction looseObject(entries, message) {\n return {\n kind: \"schema\",\n type: \"loose_object\",\n reference: looseObject,\n expects: \"Object\",\n async: false,\n entries,\n message,\n _run(dataset, config2) {\n const input = dataset.value;\n if (input && typeof input === \"object\") {\n dataset.typed = true;\n dataset.value = {};\n for (const key in this.entries) {\n const value2 = input[key];\n const valueDataset = this.entries[key]._run(\n { typed: false, value: value2 },\n config2\n );\n if (valueDataset.issues) {\n const pathItem = {\n type: \"object\",\n origin: \"value\",\n input,\n key,\n value: value2\n };\n for (const issue of valueDataset.issues) {\n if (issue.path) {\n issue.path.unshift(pathItem);\n } else {\n issue.path = [pathItem];\n }\n dataset.issues?.push(issue);\n }\n if (!dataset.issues) {\n dataset.issues = valueDataset.issues;\n }\n if (config2.abortEarly) {\n dataset.typed = false;\n break;\n }\n }\n if (!valueDataset.typed) {\n dataset.typed = false;\n }\n if (valueDataset.value !== void 0 || key in input) {\n dataset.value[key] = valueDataset.value;\n }\n }\n if (!dataset.issues || !config2.abortEarly) {\n for (const key in input) {\n if (_isValidObjectKey(input, key) && !(key in this.entries)) {\n dataset.value[key] = input[key];\n }\n }\n }\n } else {\n _addIssue(this, \"type\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/schemas/looseObject/looseObjectAsync.ts\nfunction looseObjectAsync(entries, message) {\n return {\n kind: \"schema\",\n type: \"loose_object\",\n reference: looseObjectAsync,\n expects: \"Object\",\n async: true,\n entries,\n message,\n async _run(dataset, config2) {\n const input = dataset.value;\n if (input && typeof input === \"object\") {\n dataset.typed = true;\n dataset.value = {};\n const valueDatasets = await Promise.all(\n Object.entries(this.entries).map(async ([key, schema]) => {\n const value2 = input[key];\n return [\n key,\n value2,\n await schema._run({ typed: false, value: value2 }, config2)\n ];\n })\n );\n for (const [key, value2, valueDataset] of valueDatasets) {\n if (valueDataset.issues) {\n const pathItem = {\n type: \"object\",\n origin: \"value\",\n input,\n key,\n value: value2\n };\n for (const issue of valueDataset.issues) {\n if (issue.path) {\n issue.path.unshift(pathItem);\n } else {\n issue.path = [pathItem];\n }\n dataset.issues?.push(issue);\n }\n if (!dataset.issues) {\n dataset.issues = valueDataset.issues;\n }\n if (config2.abortEarly) {\n dataset.typed = false;\n break;\n }\n }\n if (!valueDataset.typed) {\n dataset.typed = false;\n }\n if (valueDataset.value !== void 0 || key in input) {\n dataset.value[key] = valueDataset.value;\n }\n }\n if (!dataset.issues || !config2.abortEarly) {\n for (const key in input) {\n if (_isValidObjectKey(input, key) && !(key in this.entries)) {\n dataset.value[key] = input[key];\n }\n }\n }\n } else {\n _addIssue(this, \"type\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/schemas/looseTuple/looseTuple.ts\nfunction looseTuple(items, message) {\n return {\n kind: \"schema\",\n type: \"loose_tuple\",\n reference: looseTuple,\n expects: \"Array\",\n async: false,\n items,\n message,\n _run(dataset, config2) {\n const input = dataset.value;\n if (Array.isArray(input)) {\n dataset.typed = true;\n dataset.value = [];\n for (let key = 0; key < this.items.length; key++) {\n const value2 = input[key];\n const itemDataset = this.items[key]._run(\n { typed: false, value: value2 },\n config2\n );\n if (itemDataset.issues) {\n const pathItem = {\n type: \"array\",\n origin: \"value\",\n input,\n key,\n value: value2\n };\n for (const issue of itemDataset.issues) {\n if (issue.path) {\n issue.path.unshift(pathItem);\n } else {\n issue.path = [pathItem];\n }\n dataset.issues?.push(issue);\n }\n if (!dataset.issues) {\n dataset.issues = itemDataset.issues;\n }\n if (config2.abortEarly) {\n dataset.typed = false;\n break;\n }\n }\n if (!itemDataset.typed) {\n dataset.typed = false;\n }\n dataset.value.push(itemDataset.value);\n }\n if (!dataset.issues || !config2.abortEarly) {\n for (let key = this.items.length; key < input.length; key++) {\n dataset.value.push(input[key]);\n }\n }\n } else {\n _addIssue(this, \"type\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/schemas/looseTuple/looseTupleAsync.ts\nfunction looseTupleAsync(items, message) {\n return {\n kind: \"schema\",\n type: \"loose_tuple\",\n reference: looseTupleAsync,\n expects: \"Array\",\n async: true,\n items,\n message,\n async _run(dataset, config2) {\n const input = dataset.value;\n if (Array.isArray(input)) {\n dataset.typed = true;\n dataset.value = [];\n const itemDatasets = await Promise.all(\n this.items.map(async (item, key) => {\n const value2 = input[key];\n return [\n key,\n value2,\n await item._run({ typed: false, value: value2 }, config2)\n ];\n })\n );\n for (const [key, value2, itemDataset] of itemDatasets) {\n if (itemDataset.issues) {\n const pathItem = {\n type: \"array\",\n origin: \"value\",\n input,\n key,\n value: value2\n };\n for (const issue of itemDataset.issues) {\n if (issue.path) {\n issue.path.unshift(pathItem);\n } else {\n issue.path = [pathItem];\n }\n dataset.issues?.push(issue);\n }\n if (!dataset.issues) {\n dataset.issues = itemDataset.issues;\n }\n if (config2.abortEarly) {\n dataset.typed = false;\n break;\n }\n }\n if (!itemDataset.typed) {\n dataset.typed = false;\n }\n dataset.value.push(itemDataset.value);\n }\n if (!dataset.issues || !config2.abortEarly) {\n for (let key = this.items.length; key < input.length; key++) {\n dataset.value.push(input[key]);\n }\n }\n } else {\n _addIssue(this, \"type\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/schemas/map/map.ts\nfunction map(key, value2, message) {\n return {\n kind: \"schema\",\n type: \"map\",\n reference: map,\n expects: \"Map\",\n async: false,\n key,\n value: value2,\n message,\n _run(dataset, config2) {\n const input = dataset.value;\n if (input instanceof Map) {\n dataset.typed = true;\n dataset.value = /* @__PURE__ */ new Map();\n for (const [inputKey, inputValue] of input) {\n const keyDataset = this.key._run(\n { typed: false, value: inputKey },\n config2\n );\n if (keyDataset.issues) {\n const pathItem = {\n type: \"map\",\n origin: \"key\",\n input,\n key: inputKey,\n value: inputValue\n };\n for (const issue of keyDataset.issues) {\n if (issue.path) {\n issue.path.unshift(pathItem);\n } else {\n issue.path = [pathItem];\n }\n dataset.issues?.push(issue);\n }\n if (!dataset.issues) {\n dataset.issues = keyDataset.issues;\n }\n if (config2.abortEarly) {\n dataset.typed = false;\n break;\n }\n }\n const valueDataset = this.value._run(\n { typed: false, value: inputValue },\n config2\n );\n if (valueDataset.issues) {\n const pathItem = {\n type: \"map\",\n origin: \"value\",\n input,\n key: inputKey,\n value: inputValue\n };\n for (const issue of valueDataset.issues) {\n if (issue.path) {\n issue.path.unshift(pathItem);\n } else {\n issue.path = [pathItem];\n }\n dataset.issues?.push(issue);\n }\n if (!dataset.issues) {\n dataset.issues = valueDataset.issues;\n }\n if (config2.abortEarly) {\n dataset.typed = false;\n break;\n }\n }\n if (!keyDataset.typed || !valueDataset.typed) {\n dataset.typed = false;\n }\n dataset.value.set(keyDataset.value, valueDataset.value);\n }\n } else {\n _addIssue(this, \"type\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/schemas/map/mapAsync.ts\nfunction mapAsync(key, value2, message) {\n return {\n kind: \"schema\",\n type: \"map\",\n reference: mapAsync,\n expects: \"Map\",\n async: true,\n key,\n value: value2,\n message,\n async _run(dataset, config2) {\n const input = dataset.value;\n if (input instanceof Map) {\n dataset.typed = true;\n dataset.value = /* @__PURE__ */ new Map();\n const datasets = await Promise.all(\n [...input].map(\n ([inputKey, inputValue]) => Promise.all([\n inputKey,\n inputValue,\n this.key._run({ typed: false, value: inputKey }, config2),\n this.value._run({ typed: false, value: inputValue }, config2)\n ])\n )\n );\n for (const [\n inputKey,\n inputValue,\n keyDataset,\n valueDataset\n ] of datasets) {\n if (keyDataset.issues) {\n const pathItem = {\n type: \"map\",\n origin: \"key\",\n input,\n key: inputKey,\n value: inputValue\n };\n for (const issue of keyDataset.issues) {\n if (issue.path) {\n issue.path.unshift(pathItem);\n } else {\n issue.path = [pathItem];\n }\n dataset.issues?.push(issue);\n }\n if (!dataset.issues) {\n dataset.issues = keyDataset.issues;\n }\n if (config2.abortEarly) {\n dataset.typed = false;\n break;\n }\n }\n if (valueDataset.issues) {\n const pathItem = {\n type: \"map\",\n origin: \"value\",\n input,\n key: inputKey,\n value: inputValue\n };\n for (const issue of valueDataset.issues) {\n if (issue.path) {\n issue.path.unshift(pathItem);\n } else {\n issue.path = [pathItem];\n }\n dataset.issues?.push(issue);\n }\n if (!dataset.issues) {\n dataset.issues = valueDataset.issues;\n }\n if (config2.abortEarly) {\n dataset.typed = false;\n break;\n }\n }\n if (!keyDataset.typed || !valueDataset.typed) {\n dataset.typed = false;\n }\n dataset.value.set(keyDataset.value, valueDataset.value);\n }\n } else {\n _addIssue(this, \"type\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/schemas/nan/nan.ts\nfunction nan(message) {\n return {\n kind: \"schema\",\n type: \"nan\",\n reference: nan,\n expects: \"NaN\",\n async: false,\n message,\n _run(dataset, config2) {\n if (Number.isNaN(dataset.value)) {\n dataset.typed = true;\n } else {\n _addIssue(this, \"type\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/schemas/never/never.ts\nfunction never(message) {\n return {\n kind: \"schema\",\n type: \"never\",\n reference: never,\n expects: \"never\",\n async: false,\n message,\n _run(dataset, config2) {\n _addIssue(this, \"type\", dataset, config2);\n return dataset;\n }\n };\n}\n\n// src/schemas/nonNullable/nonNullable.ts\nfunction nonNullable(wrapped, message) {\n return {\n kind: \"schema\",\n type: \"non_nullable\",\n reference: nonNullable,\n expects: \"!null\",\n async: false,\n wrapped,\n message,\n _run(dataset, config2) {\n if (dataset.value === null) {\n _addIssue(this, \"type\", dataset, config2);\n return dataset;\n }\n return this.wrapped._run(dataset, config2);\n }\n };\n}\n\n// src/schemas/nonNullable/nonNullableAsync.ts\nfunction nonNullableAsync(wrapped, message) {\n return {\n kind: \"schema\",\n type: \"non_nullable\",\n reference: nonNullableAsync,\n expects: \"!null\",\n async: true,\n wrapped,\n message,\n async _run(dataset, config2) {\n if (dataset.value === null) {\n _addIssue(this, \"type\", dataset, config2);\n return dataset;\n }\n return this.wrapped._run(dataset, config2);\n }\n };\n}\n\n// src/schemas/nonNullish/nonNullish.ts\nfunction nonNullish(wrapped, message) {\n return {\n kind: \"schema\",\n type: \"non_nullish\",\n reference: nonNullish,\n expects: \"!null & !undefined\",\n async: false,\n wrapped,\n message,\n _run(dataset, config2) {\n if (dataset.value === null || dataset.value === void 0) {\n _addIssue(this, \"type\", dataset, config2);\n return dataset;\n }\n return this.wrapped._run(dataset, config2);\n }\n };\n}\n\n// src/schemas/nonNullish/nonNullishAsync.ts\nfunction nonNullishAsync(wrapped, message) {\n return {\n kind: \"schema\",\n type: \"non_nullish\",\n reference: nonNullishAsync,\n expects: \"!null & !undefined\",\n async: true,\n wrapped,\n message,\n async _run(dataset, config2) {\n if (dataset.value === null || dataset.value === void 0) {\n _addIssue(this, \"type\", dataset, config2);\n return dataset;\n }\n return this.wrapped._run(dataset, config2);\n }\n };\n}\n\n// src/schemas/nonOptional/nonOptional.ts\nfunction nonOptional(wrapped, message) {\n return {\n kind: \"schema\",\n type: \"non_optional\",\n reference: nonOptional,\n expects: \"!undefined\",\n async: false,\n wrapped,\n message,\n _run(dataset, config2) {\n if (dataset.value === void 0) {\n _addIssue(this, \"type\", dataset, config2);\n return dataset;\n }\n return this.wrapped._run(dataset, config2);\n }\n };\n}\n\n// src/schemas/nonOptional/nonOptionalAsync.ts\nfunction nonOptionalAsync(wrapped, message) {\n return {\n kind: \"schema\",\n type: \"non_optional\",\n reference: nonOptionalAsync,\n expects: \"!undefined\",\n async: true,\n wrapped,\n message,\n async _run(dataset, config2) {\n if (dataset.value === void 0) {\n _addIssue(this, \"type\", dataset, config2);\n return dataset;\n }\n return this.wrapped._run(dataset, config2);\n }\n };\n}\n\n// src/schemas/null/null.ts\nfunction null_(message) {\n return {\n kind: \"schema\",\n type: \"null\",\n reference: null_,\n expects: \"null\",\n async: false,\n message,\n _run(dataset, config2) {\n if (dataset.value === null) {\n dataset.typed = true;\n } else {\n _addIssue(this, \"type\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/schemas/nullable/nullable.ts\nfunction nullable(wrapped, ...args) {\n const schema = {\n kind: \"schema\",\n type: \"nullable\",\n reference: nullable,\n expects: `${wrapped.expects} | null`,\n async: false,\n wrapped,\n _run(dataset, config2) {\n if (dataset.value === null) {\n if (\"default\" in this) {\n dataset.value = getDefault(\n this,\n dataset,\n config2\n );\n }\n if (dataset.value === null) {\n dataset.typed = true;\n return dataset;\n }\n }\n return this.wrapped._run(dataset, config2);\n }\n };\n if (0 in args) {\n schema.default = args[0];\n }\n return schema;\n}\n\n// src/schemas/nullable/nullableAsync.ts\nfunction nullableAsync(wrapped, ...args) {\n const schema = {\n kind: \"schema\",\n type: \"nullable\",\n reference: nullableAsync,\n expects: `${wrapped.expects} | null`,\n async: true,\n wrapped,\n async _run(dataset, config2) {\n if (dataset.value === null) {\n if (\"default\" in this) {\n dataset.value = await getDefault(\n this,\n dataset,\n config2\n );\n }\n if (dataset.value === null) {\n dataset.typed = true;\n return dataset;\n }\n }\n return this.wrapped._run(dataset, config2);\n }\n };\n if (0 in args) {\n schema.default = args[0];\n }\n return schema;\n}\n\n// src/schemas/nullish/nullish.ts\nfunction nullish(wrapped, ...args) {\n const schema = {\n kind: \"schema\",\n type: \"nullish\",\n reference: nullish,\n expects: `${wrapped.expects} | null | undefined`,\n async: false,\n wrapped,\n _run(dataset, config2) {\n if (dataset.value === null || dataset.value === void 0) {\n if (\"default\" in this) {\n dataset.value = getDefault(\n this,\n dataset,\n config2\n );\n }\n if (dataset.value === null || dataset.value === void 0) {\n dataset.typed = true;\n return dataset;\n }\n }\n return this.wrapped._run(dataset, config2);\n }\n };\n if (0 in args) {\n schema.default = args[0];\n }\n return schema;\n}\n\n// src/schemas/nullish/nullishAsync.ts\nfunction nullishAsync(wrapped, ...args) {\n const schema = {\n kind: \"schema\",\n type: \"nullish\",\n reference: nullishAsync,\n expects: `${wrapped.expects} | null | undefined`,\n async: true,\n wrapped,\n async _run(dataset, config2) {\n if (dataset.value === null || dataset.value === void 0) {\n if (\"default\" in this) {\n dataset.value = await getDefault(\n this,\n dataset,\n config2\n );\n }\n if (dataset.value === null || dataset.value === void 0) {\n dataset.typed = true;\n return dataset;\n }\n }\n return this.wrapped._run(dataset, config2);\n }\n };\n if (0 in args) {\n schema.default = args[0];\n }\n return schema;\n}\n\n// src/schemas/number/number.ts\nfunction number(message) {\n return {\n kind: \"schema\",\n type: \"number\",\n reference: number,\n expects: \"number\",\n async: false,\n message,\n _run(dataset, config2) {\n if (typeof dataset.value === \"number\" && !isNaN(dataset.value)) {\n dataset.typed = true;\n } else {\n _addIssue(this, \"type\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/schemas/object/object.ts\nfunction object(entries, message) {\n return {\n kind: \"schema\",\n type: \"object\",\n reference: object,\n expects: \"Object\",\n async: false,\n entries,\n message,\n _run(dataset, config2) {\n const input = dataset.value;\n if (input && typeof input === \"object\") {\n dataset.typed = true;\n dataset.value = {};\n for (const key in this.entries) {\n const value2 = input[key];\n const valueDataset = this.entries[key]._run(\n { typed: false, value: value2 },\n config2\n );\n if (valueDataset.issues) {\n const pathItem = {\n type: \"object\",\n origin: \"value\",\n input,\n key,\n value: value2\n };\n for (const issue of valueDataset.issues) {\n if (issue.path) {\n issue.path.unshift(pathItem);\n } else {\n issue.path = [pathItem];\n }\n dataset.issues?.push(issue);\n }\n if (!dataset.issues) {\n dataset.issues = valueDataset.issues;\n }\n if (config2.abortEarly) {\n dataset.typed = false;\n break;\n }\n }\n if (!valueDataset.typed) {\n dataset.typed = false;\n }\n if (valueDataset.value !== void 0 || key in input) {\n dataset.value[key] = valueDataset.value;\n }\n }\n } else {\n _addIssue(this, \"type\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/schemas/object/objectAsync.ts\nfunction objectAsync(entries, message) {\n return {\n kind: \"schema\",\n type: \"object\",\n reference: objectAsync,\n expects: \"Object\",\n async: true,\n entries,\n message,\n async _run(dataset, config2) {\n const input = dataset.value;\n if (input && typeof input === \"object\") {\n dataset.typed = true;\n dataset.value = {};\n const valueDatasets = await Promise.all(\n Object.entries(this.entries).map(async ([key, schema]) => {\n const value2 = input[key];\n return [\n key,\n value2,\n await schema._run({ typed: false, value: value2 }, config2)\n ];\n })\n );\n for (const [key, value2, valueDataset] of valueDatasets) {\n if (valueDataset.issues) {\n const pathItem = {\n type: \"object\",\n origin: \"value\",\n input,\n key,\n value: value2\n };\n for (const issue of valueDataset.issues) {\n if (issue.path) {\n issue.path.unshift(pathItem);\n } else {\n issue.path = [pathItem];\n }\n dataset.issues?.push(issue);\n }\n if (!dataset.issues) {\n dataset.issues = valueDataset.issues;\n }\n if (config2.abortEarly) {\n dataset.typed = false;\n break;\n }\n }\n if (!valueDataset.typed) {\n dataset.typed = false;\n }\n if (valueDataset.value !== void 0 || key in input) {\n dataset.value[key] = valueDataset.value;\n }\n }\n } else {\n _addIssue(this, \"type\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/schemas/objectWithRest/objectWithRest.ts\nfunction objectWithRest(entries, rest, message) {\n return {\n kind: \"schema\",\n type: \"object_with_rest\",\n reference: objectWithRest,\n expects: \"Object\",\n async: false,\n entries,\n rest,\n message,\n _run(dataset, config2) {\n const input = dataset.value;\n if (input && typeof input === \"object\") {\n dataset.typed = true;\n dataset.value = {};\n for (const key in this.entries) {\n const value2 = input[key];\n const valueDataset = this.entries[key]._run(\n { typed: false, value: value2 },\n config2\n );\n if (valueDataset.issues) {\n const pathItem = {\n type: \"object\",\n origin: \"value\",\n input,\n key,\n value: value2\n };\n for (const issue of valueDataset.issues) {\n if (issue.path) {\n issue.path.unshift(pathItem);\n } else {\n issue.path = [pathItem];\n }\n dataset.issues?.push(issue);\n }\n if (!dataset.issues) {\n dataset.issues = valueDataset.issues;\n }\n if (config2.abortEarly) {\n dataset.typed = false;\n break;\n }\n }\n if (!valueDataset.typed) {\n dataset.typed = false;\n }\n if (valueDataset.value !== void 0 || key in input) {\n dataset.value[key] = valueDataset.value;\n }\n }\n if (!dataset.issues || !config2.abortEarly) {\n for (const key in input) {\n if (_isValidObjectKey(input, key) && !(key in this.entries)) {\n const value2 = input[key];\n const valueDataset = this.rest._run(\n { typed: false, value: value2 },\n config2\n );\n if (valueDataset.issues) {\n const pathItem = {\n type: \"object\",\n origin: \"value\",\n input,\n key,\n value: value2\n };\n for (const issue of valueDataset.issues) {\n if (issue.path) {\n issue.path.unshift(pathItem);\n } else {\n issue.path = [pathItem];\n }\n dataset.issues?.push(issue);\n }\n if (!dataset.issues) {\n dataset.issues = valueDataset.issues;\n }\n if (config2.abortEarly) {\n dataset.typed = false;\n break;\n }\n }\n if (!valueDataset.typed) {\n dataset.typed = false;\n }\n dataset.value[key] = valueDataset.value;\n }\n }\n }\n } else {\n _addIssue(this, \"type\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/schemas/objectWithRest/objectWithRestAsync.ts\nfunction objectWithRestAsync(entries, rest, message) {\n return {\n kind: \"schema\",\n type: \"object_with_rest\",\n reference: objectWithRestAsync,\n expects: \"Object\",\n async: true,\n entries,\n rest,\n message,\n async _run(dataset, config2) {\n const input = dataset.value;\n if (input && typeof input === \"object\") {\n dataset.typed = true;\n dataset.value = {};\n const [normalDatasets, restDatasets] = await Promise.all([\n // Parse schema of each normal entry\n // Hint: We do not distinguish between missing and `undefined` entries.\n // The reason for this decision is that it reduces the bundle size, and\n // we also expect that most users will expect this behavior.\n Promise.all(\n Object.entries(this.entries).map(async ([key, schema]) => {\n const value2 = input[key];\n return [\n key,\n value2,\n await schema._run({ typed: false, value: value2 }, config2)\n ];\n })\n ),\n // Parse other entries with rest schema\n // Hint: We exclude specific keys for security reasons\n Promise.all(\n Object.entries(input).filter(\n ([key]) => _isValidObjectKey(input, key) && !(key in this.entries)\n ).map(\n async ([key, value2]) => [\n key,\n value2,\n await this.rest._run({ typed: false, value: value2 }, config2)\n ]\n )\n )\n ]);\n for (const [key, value2, valueDataset] of normalDatasets) {\n if (valueDataset.issues) {\n const pathItem = {\n type: \"object\",\n origin: \"value\",\n input,\n key,\n value: value2\n };\n for (const issue of valueDataset.issues) {\n if (issue.path) {\n issue.path.unshift(pathItem);\n } else {\n issue.path = [pathItem];\n }\n dataset.issues?.push(issue);\n }\n if (!dataset.issues) {\n dataset.issues = valueDataset.issues;\n }\n if (config2.abortEarly) {\n dataset.typed = false;\n break;\n }\n }\n if (!valueDataset.typed) {\n dataset.typed = false;\n }\n if (valueDataset.value !== void 0 || key in input) {\n dataset.value[key] = valueDataset.value;\n }\n }\n if (!dataset.issues || !config2.abortEarly) {\n for (const [key, value2, valueDataset] of restDatasets) {\n if (valueDataset.issues) {\n const pathItem = {\n type: \"object\",\n origin: \"value\",\n input,\n key,\n value: value2\n };\n for (const issue of valueDataset.issues) {\n if (issue.path) {\n issue.path.unshift(pathItem);\n } else {\n issue.path = [pathItem];\n }\n dataset.issues?.push(issue);\n }\n if (!dataset.issues) {\n dataset.issues = valueDataset.issues;\n }\n if (config2.abortEarly) {\n dataset.typed = false;\n break;\n }\n }\n if (!valueDataset.typed) {\n dataset.typed = false;\n }\n dataset.value[key] = valueDataset.value;\n }\n }\n } else {\n _addIssue(this, \"type\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/schemas/optional/optional.ts\nfunction optional(wrapped, ...args) {\n const schema = {\n kind: \"schema\",\n type: \"optional\",\n reference: optional,\n expects: `${wrapped.expects} | undefined`,\n async: false,\n wrapped,\n _run(dataset, config2) {\n if (dataset.value === void 0) {\n if (\"default\" in this) {\n dataset.value = getDefault(\n this,\n dataset,\n config2\n );\n }\n if (dataset.value === void 0) {\n dataset.typed = true;\n return dataset;\n }\n }\n return this.wrapped._run(dataset, config2);\n }\n };\n if (0 in args) {\n schema.default = args[0];\n }\n return schema;\n}\n\n// src/schemas/optional/optionalAsync.ts\nfunction optionalAsync(wrapped, ...args) {\n const schema = {\n kind: \"schema\",\n type: \"optional\",\n reference: optionalAsync,\n expects: `${wrapped.expects} | undefined`,\n async: true,\n wrapped,\n async _run(dataset, config2) {\n if (dataset.value === void 0) {\n if (\"default\" in this) {\n dataset.value = await getDefault(\n this,\n dataset,\n config2\n );\n }\n if (dataset.value === void 0) {\n dataset.typed = true;\n return dataset;\n }\n }\n return this.wrapped._run(dataset, config2);\n }\n };\n if (0 in args) {\n schema.default = args[0];\n }\n return schema;\n}\n\n// src/schemas/picklist/picklist.ts\nfunction picklist(options, message) {\n return {\n kind: \"schema\",\n type: \"picklist\",\n reference: picklist,\n expects: options.map(_stringify).join(\" | \") || \"never\",\n async: false,\n options,\n message,\n _run(dataset, config2) {\n if (this.options.includes(dataset.value)) {\n dataset.typed = true;\n } else {\n _addIssue(this, \"type\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/schemas/promise/promise.ts\nfunction promise(message) {\n return {\n kind: \"schema\",\n type: \"promise\",\n reference: promise,\n expects: \"Promise\",\n async: false,\n message,\n _run(dataset, config2) {\n if (dataset.value instanceof Promise) {\n dataset.typed = true;\n } else {\n _addIssue(this, \"type\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/schemas/record/record.ts\nfunction record(key, value2, message) {\n return {\n kind: \"schema\",\n type: \"record\",\n reference: record,\n expects: \"Object\",\n async: false,\n key,\n value: value2,\n message,\n _run(dataset, config2) {\n const input = dataset.value;\n if (input && typeof input === \"object\") {\n dataset.typed = true;\n dataset.value = {};\n for (const entryKey in input) {\n if (_isValidObjectKey(input, entryKey)) {\n const entryValue = input[entryKey];\n const keyDataset = this.key._run(\n { typed: false, value: entryKey },\n config2\n );\n if (keyDataset.issues) {\n const pathItem = {\n type: \"object\",\n origin: \"key\",\n input,\n key: entryKey,\n value: entryValue\n };\n for (const issue of keyDataset.issues) {\n issue.path = [pathItem];\n dataset.issues?.push(issue);\n }\n if (!dataset.issues) {\n dataset.issues = keyDataset.issues;\n }\n if (config2.abortEarly) {\n dataset.typed = false;\n break;\n }\n }\n const valueDataset = this.value._run(\n { typed: false, value: entryValue },\n config2\n );\n if (valueDataset.issues) {\n const pathItem = {\n type: \"object\",\n origin: \"value\",\n input,\n key: entryKey,\n value: entryValue\n };\n for (const issue of valueDataset.issues) {\n if (issue.path) {\n issue.path.unshift(pathItem);\n } else {\n issue.path = [pathItem];\n }\n dataset.issues?.push(issue);\n }\n if (!dataset.issues) {\n dataset.issues = valueDataset.issues;\n }\n if (config2.abortEarly) {\n dataset.typed = false;\n break;\n }\n }\n if (!keyDataset.typed || !valueDataset.typed) {\n dataset.typed = false;\n }\n if (keyDataset.typed) {\n dataset.value[keyDataset.value] = valueDataset.value;\n }\n }\n }\n } else {\n _addIssue(this, \"type\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/schemas/record/recordAsync.ts\nfunction recordAsync(key, value2, message) {\n return {\n kind: \"schema\",\n type: \"record\",\n reference: recordAsync,\n expects: \"Object\",\n async: true,\n key,\n value: value2,\n message,\n async _run(dataset, config2) {\n const input = dataset.value;\n if (input && typeof input === \"object\") {\n dataset.typed = true;\n dataset.value = {};\n const datasets = await Promise.all(\n Object.entries(input).filter(([key2]) => _isValidObjectKey(input, key2)).map(\n ([entryKey, entryValue]) => Promise.all([\n entryKey,\n entryValue,\n this.key._run({ typed: false, value: entryKey }, config2),\n this.value._run({ typed: false, value: entryValue }, config2)\n ])\n )\n );\n for (const [\n entryKey,\n entryValue,\n keyDataset,\n valueDataset\n ] of datasets) {\n if (keyDataset.issues) {\n const pathItem = {\n type: \"object\",\n origin: \"key\",\n input,\n key: entryKey,\n value: entryValue\n };\n for (const issue of keyDataset.issues) {\n issue.path = [pathItem];\n dataset.issues?.push(issue);\n }\n if (!dataset.issues) {\n dataset.issues = keyDataset.issues;\n }\n if (config2.abortEarly) {\n dataset.typed = false;\n break;\n }\n }\n if (valueDataset.issues) {\n const pathItem = {\n type: \"object\",\n origin: \"value\",\n input,\n key: entryKey,\n value: entryValue\n };\n for (const issue of valueDataset.issues) {\n if (issue.path) {\n issue.path.unshift(pathItem);\n } else {\n issue.path = [pathItem];\n }\n dataset.issues?.push(issue);\n }\n if (!dataset.issues) {\n dataset.issues = valueDataset.issues;\n }\n if (config2.abortEarly) {\n dataset.typed = false;\n break;\n }\n }\n if (!keyDataset.typed || !valueDataset.typed) {\n dataset.typed = false;\n }\n if (keyDataset.typed) {\n dataset.value[keyDataset.value] = valueDataset.value;\n }\n }\n } else {\n _addIssue(this, \"type\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/schemas/set/set.ts\nfunction set(value2, message) {\n return {\n kind: \"schema\",\n type: \"set\",\n reference: set,\n expects: \"Set\",\n async: false,\n value: value2,\n message,\n _run(dataset, config2) {\n const input = dataset.value;\n if (input instanceof Set) {\n dataset.typed = true;\n dataset.value = /* @__PURE__ */ new Set();\n for (const inputValue of input) {\n const valueDataset = this.value._run(\n { typed: false, value: inputValue },\n config2\n );\n if (valueDataset.issues) {\n const pathItem = {\n type: \"set\",\n origin: \"value\",\n input,\n key: null,\n value: inputValue\n };\n for (const issue of valueDataset.issues) {\n if (issue.path) {\n issue.path.unshift(pathItem);\n } else {\n issue.path = [pathItem];\n }\n dataset.issues?.push(issue);\n }\n if (!dataset.issues) {\n dataset.issues = valueDataset.issues;\n }\n if (config2.abortEarly) {\n dataset.typed = false;\n break;\n }\n }\n if (!valueDataset.typed) {\n dataset.typed = false;\n }\n dataset.value.add(valueDataset.value);\n }\n } else {\n _addIssue(this, \"type\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/schemas/set/setAsync.ts\nfunction setAsync(value2, message) {\n return {\n kind: \"schema\",\n type: \"set\",\n reference: setAsync,\n expects: \"Set\",\n async: true,\n value: value2,\n message,\n async _run(dataset, config2) {\n const input = dataset.value;\n if (input instanceof Set) {\n dataset.typed = true;\n dataset.value = /* @__PURE__ */ new Set();\n const valueDatasets = await Promise.all(\n [...input].map(\n async (inputValue) => [\n inputValue,\n await this.value._run(\n { typed: false, value: inputValue },\n config2\n )\n ]\n )\n );\n for (const [inputValue, valueDataset] of valueDatasets) {\n if (valueDataset.issues) {\n const pathItem = {\n type: \"set\",\n origin: \"value\",\n input,\n key: null,\n value: inputValue\n };\n for (const issue of valueDataset.issues) {\n if (issue.path) {\n issue.path.unshift(pathItem);\n } else {\n issue.path = [pathItem];\n }\n dataset.issues?.push(issue);\n }\n if (!dataset.issues) {\n dataset.issues = valueDataset.issues;\n }\n if (config2.abortEarly) {\n dataset.typed = false;\n break;\n }\n }\n if (!valueDataset.typed) {\n dataset.typed = false;\n }\n dataset.value.add(valueDataset.value);\n }\n } else {\n _addIssue(this, \"type\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/schemas/strictObject/strictObject.ts\nfunction strictObject(entries, message) {\n return {\n kind: \"schema\",\n type: \"strict_object\",\n reference: strictObject,\n expects: \"Object\",\n async: false,\n entries,\n message,\n _run(dataset, config2) {\n const input = dataset.value;\n if (input && typeof input === \"object\") {\n dataset.typed = true;\n dataset.value = {};\n for (const key in this.entries) {\n const value2 = input[key];\n const valueDataset = this.entries[key]._run(\n { typed: false, value: value2 },\n config2\n );\n if (valueDataset.issues) {\n const pathItem = {\n type: \"object\",\n origin: \"value\",\n input,\n key,\n value: value2\n };\n for (const issue of valueDataset.issues) {\n if (issue.path) {\n issue.path.unshift(pathItem);\n } else {\n issue.path = [pathItem];\n }\n dataset.issues?.push(issue);\n }\n if (!dataset.issues) {\n dataset.issues = valueDataset.issues;\n }\n if (config2.abortEarly) {\n dataset.typed = false;\n break;\n }\n }\n if (!valueDataset.typed) {\n dataset.typed = false;\n }\n if (valueDataset.value !== void 0 || key in input) {\n dataset.value[key] = valueDataset.value;\n }\n }\n if (!dataset.issues || !config2.abortEarly) {\n for (const key in input) {\n if (!(key in this.entries)) {\n const value2 = input[key];\n _addIssue(this, \"type\", dataset, config2, {\n input: value2,\n expected: \"never\",\n path: [\n {\n type: \"object\",\n origin: \"value\",\n input,\n key,\n value: value2\n }\n ]\n });\n break;\n }\n }\n }\n } else {\n _addIssue(this, \"type\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/schemas/strictObject/strictObjectAsync.ts\nfunction strictObjectAsync(entries, message) {\n return {\n kind: \"schema\",\n type: \"strict_object\",\n reference: strictObjectAsync,\n expects: \"Object\",\n async: true,\n entries,\n message,\n async _run(dataset, config2) {\n const input = dataset.value;\n if (input && typeof input === \"object\") {\n dataset.typed = true;\n dataset.value = {};\n const valueDatasets = await Promise.all(\n Object.entries(this.entries).map(async ([key, schema]) => {\n const value2 = input[key];\n return [\n key,\n value2,\n await schema._run({ typed: false, value: value2 }, config2)\n ];\n })\n );\n for (const [key, value2, valueDataset] of valueDatasets) {\n if (valueDataset.issues) {\n const pathItem = {\n type: \"object\",\n origin: \"value\",\n input,\n key,\n value: value2\n };\n for (const issue of valueDataset.issues) {\n if (issue.path) {\n issue.path.unshift(pathItem);\n } else {\n issue.path = [pathItem];\n }\n dataset.issues?.push(issue);\n }\n if (!dataset.issues) {\n dataset.issues = valueDataset.issues;\n }\n if (config2.abortEarly) {\n dataset.typed = false;\n break;\n }\n }\n if (!valueDataset.typed) {\n dataset.typed = false;\n }\n if (valueDataset.value !== void 0 || key in input) {\n dataset.value[key] = valueDataset.value;\n }\n }\n if (!dataset.issues || !config2.abortEarly) {\n for (const key in input) {\n if (!(key in this.entries)) {\n const value2 = input[key];\n _addIssue(this, \"type\", dataset, config2, {\n input: value2,\n expected: \"never\",\n path: [\n {\n type: \"object\",\n origin: \"value\",\n input,\n key,\n value: value2\n }\n ]\n });\n break;\n }\n }\n }\n } else {\n _addIssue(this, \"type\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/schemas/strictTuple/strictTuple.ts\nfunction strictTuple(items, message) {\n return {\n kind: \"schema\",\n type: \"strict_tuple\",\n reference: strictTuple,\n expects: \"Array\",\n async: false,\n items,\n message,\n _run(dataset, config2) {\n const input = dataset.value;\n if (Array.isArray(input)) {\n dataset.typed = true;\n dataset.value = [];\n for (let key = 0; key < this.items.length; key++) {\n const value2 = input[key];\n const itemDataset = this.items[key]._run(\n { typed: false, value: value2 },\n config2\n );\n if (itemDataset.issues) {\n const pathItem = {\n type: \"array\",\n origin: \"value\",\n input,\n key,\n value: value2\n };\n for (const issue of itemDataset.issues) {\n if (issue.path) {\n issue.path.unshift(pathItem);\n } else {\n issue.path = [pathItem];\n }\n dataset.issues?.push(issue);\n }\n if (!dataset.issues) {\n dataset.issues = itemDataset.issues;\n }\n if (config2.abortEarly) {\n dataset.typed = false;\n break;\n }\n }\n if (!itemDataset.typed) {\n dataset.typed = false;\n }\n dataset.value.push(itemDataset.value);\n }\n if (!(dataset.issues && config2.abortEarly) && this.items.length < input.length) {\n const value2 = input[items.length];\n _addIssue(this, \"type\", dataset, config2, {\n input: value2,\n expected: \"never\",\n path: [\n {\n type: \"array\",\n origin: \"value\",\n input,\n key: this.items.length,\n value: value2\n }\n ]\n });\n }\n } else {\n _addIssue(this, \"type\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/schemas/strictTuple/strictTupleAsync.ts\nfunction strictTupleAsync(items, message) {\n return {\n kind: \"schema\",\n type: \"strict_tuple\",\n reference: strictTupleAsync,\n expects: \"Array\",\n async: true,\n items,\n message,\n async _run(dataset, config2) {\n const input = dataset.value;\n if (Array.isArray(input)) {\n dataset.typed = true;\n dataset.value = [];\n const itemDatasets = await Promise.all(\n this.items.map(async (item, key) => {\n const value2 = input[key];\n return [\n key,\n value2,\n await item._run({ typed: false, value: value2 }, config2)\n ];\n })\n );\n for (const [key, value2, itemDataset] of itemDatasets) {\n if (itemDataset.issues) {\n const pathItem = {\n type: \"array\",\n origin: \"value\",\n input,\n key,\n value: value2\n };\n for (const issue of itemDataset.issues) {\n if (issue.path) {\n issue.path.unshift(pathItem);\n } else {\n issue.path = [pathItem];\n }\n dataset.issues?.push(issue);\n }\n if (!dataset.issues) {\n dataset.issues = itemDataset.issues;\n }\n if (config2.abortEarly) {\n dataset.typed = false;\n break;\n }\n }\n if (!itemDataset.typed) {\n dataset.typed = false;\n }\n dataset.value.push(itemDataset.value);\n }\n if (!(dataset.issues && config2.abortEarly) && this.items.length < input.length) {\n const value2 = input[items.length];\n _addIssue(this, \"type\", dataset, config2, {\n input: value2,\n expected: \"never\",\n path: [\n {\n type: \"array\",\n origin: \"value\",\n input,\n key: this.items.length,\n value: value2\n }\n ]\n });\n }\n } else {\n _addIssue(this, \"type\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/schemas/string/string.ts\nfunction string(message) {\n return {\n kind: \"schema\",\n type: \"string\",\n reference: string,\n expects: \"string\",\n async: false,\n message,\n _run(dataset, config2) {\n if (typeof dataset.value === \"string\") {\n dataset.typed = true;\n } else {\n _addIssue(this, \"type\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/schemas/symbol/symbol.ts\nfunction symbol(message) {\n return {\n kind: \"schema\",\n type: \"symbol\",\n reference: symbol,\n expects: \"symbol\",\n async: false,\n message,\n _run(dataset, config2) {\n if (typeof dataset.value === \"symbol\") {\n dataset.typed = true;\n } else {\n _addIssue(this, \"type\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/schemas/tuple/tuple.ts\nfunction tuple(items, message) {\n return {\n kind: \"schema\",\n type: \"tuple\",\n reference: tuple,\n expects: \"Array\",\n async: false,\n items,\n message,\n _run(dataset, config2) {\n const input = dataset.value;\n if (Array.isArray(input)) {\n dataset.typed = true;\n dataset.value = [];\n for (let key = 0; key < this.items.length; key++) {\n const value2 = input[key];\n const itemDataset = this.items[key]._run(\n { typed: false, value: value2 },\n config2\n );\n if (itemDataset.issues) {\n const pathItem = {\n type: \"array\",\n origin: \"value\",\n input,\n key,\n value: value2\n };\n for (const issue of itemDataset.issues) {\n if (issue.path) {\n issue.path.unshift(pathItem);\n } else {\n issue.path = [pathItem];\n }\n dataset.issues?.push(issue);\n }\n if (!dataset.issues) {\n dataset.issues = itemDataset.issues;\n }\n if (config2.abortEarly) {\n dataset.typed = false;\n break;\n }\n }\n if (!itemDataset.typed) {\n dataset.typed = false;\n }\n dataset.value.push(itemDataset.value);\n }\n } else {\n _addIssue(this, \"type\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/schemas/tuple/tupleAsync.ts\nfunction tupleAsync(items, message) {\n return {\n kind: \"schema\",\n type: \"tuple\",\n reference: tupleAsync,\n expects: \"Array\",\n async: true,\n items,\n message,\n async _run(dataset, config2) {\n const input = dataset.value;\n if (Array.isArray(input)) {\n dataset.typed = true;\n dataset.value = [];\n const itemDatasets = await Promise.all(\n this.items.map(async (item, key) => {\n const value2 = input[key];\n return [\n key,\n value2,\n await item._run({ typed: false, value: value2 }, config2)\n ];\n })\n );\n for (const [key, value2, itemDataset] of itemDatasets) {\n if (itemDataset.issues) {\n const pathItem = {\n type: \"array\",\n origin: \"value\",\n input,\n key,\n value: value2\n };\n for (const issue of itemDataset.issues) {\n if (issue.path) {\n issue.path.unshift(pathItem);\n } else {\n issue.path = [pathItem];\n }\n dataset.issues?.push(issue);\n }\n if (!dataset.issues) {\n dataset.issues = itemDataset.issues;\n }\n if (config2.abortEarly) {\n dataset.typed = false;\n break;\n }\n }\n if (!itemDataset.typed) {\n dataset.typed = false;\n }\n dataset.value.push(itemDataset.value);\n }\n } else {\n _addIssue(this, \"type\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/schemas/tupleWithRest/tupleWithRest.ts\nfunction tupleWithRest(items, rest, message) {\n return {\n kind: \"schema\",\n type: \"tuple_with_rest\",\n reference: tupleWithRest,\n expects: \"Array\",\n async: false,\n items,\n rest,\n message,\n _run(dataset, config2) {\n const input = dataset.value;\n if (Array.isArray(input)) {\n dataset.typed = true;\n dataset.value = [];\n for (let key = 0; key < this.items.length; key++) {\n const value2 = input[key];\n const itemDataset = this.items[key]._run(\n { typed: false, value: value2 },\n config2\n );\n if (itemDataset.issues) {\n const pathItem = {\n type: \"array\",\n origin: \"value\",\n input,\n key,\n value: value2\n };\n for (const issue of itemDataset.issues) {\n if (issue.path) {\n issue.path.unshift(pathItem);\n } else {\n issue.path = [pathItem];\n }\n dataset.issues?.push(issue);\n }\n if (!dataset.issues) {\n dataset.issues = itemDataset.issues;\n }\n if (config2.abortEarly) {\n dataset.typed = false;\n break;\n }\n }\n if (!itemDataset.typed) {\n dataset.typed = false;\n }\n dataset.value.push(itemDataset.value);\n }\n if (!dataset.issues || !config2.abortEarly) {\n for (let key = this.items.length; key < input.length; key++) {\n const value2 = input[key];\n const itemDataset = this.rest._run({ typed: false, value: value2 }, config2);\n if (itemDataset.issues) {\n const pathItem = {\n type: \"array\",\n origin: \"value\",\n input,\n key,\n value: value2\n };\n for (const issue of itemDataset.issues) {\n if (issue.path) {\n issue.path.unshift(pathItem);\n } else {\n issue.path = [pathItem];\n }\n dataset.issues?.push(issue);\n }\n if (!dataset.issues) {\n dataset.issues = itemDataset.issues;\n }\n if (config2.abortEarly) {\n dataset.typed = false;\n break;\n }\n }\n if (!itemDataset.typed) {\n dataset.typed = false;\n }\n dataset.value.push(itemDataset.value);\n }\n }\n } else {\n _addIssue(this, \"type\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/schemas/tupleWithRest/tupleWithRestAsync.ts\nfunction tupleWithRestAsync(items, rest, message) {\n return {\n kind: \"schema\",\n type: \"tuple_with_rest\",\n reference: tupleWithRestAsync,\n expects: \"Array\",\n async: true,\n items,\n rest,\n message,\n async _run(dataset, config2) {\n const input = dataset.value;\n if (Array.isArray(input)) {\n dataset.typed = true;\n dataset.value = [];\n const [normalDatasets, restDatasets] = await Promise.all([\n // Parse schema of each normal item\n Promise.all(\n this.items.map(async (item, key) => {\n const value2 = input[key];\n return [\n key,\n value2,\n await item._run({ typed: false, value: value2 }, config2)\n ];\n })\n ),\n // Parse other items with rest schema\n Promise.all(\n input.slice(this.items.length).map(async (value2, key) => {\n return [\n key + this.items.length,\n value2,\n await this.rest._run({ typed: false, value: value2 }, config2)\n ];\n })\n )\n ]);\n for (const [key, value2, itemDataset] of normalDatasets) {\n if (itemDataset.issues) {\n const pathItem = {\n type: \"array\",\n origin: \"value\",\n input,\n key,\n value: value2\n };\n for (const issue of itemDataset.issues) {\n if (issue.path) {\n issue.path.unshift(pathItem);\n } else {\n issue.path = [pathItem];\n }\n dataset.issues?.push(issue);\n }\n if (!dataset.issues) {\n dataset.issues = itemDataset.issues;\n }\n if (config2.abortEarly) {\n dataset.typed = false;\n break;\n }\n }\n if (!itemDataset.typed) {\n dataset.typed = false;\n }\n dataset.value.push(itemDataset.value);\n }\n if (!dataset.issues || !config2.abortEarly) {\n for (const [key, value2, itemDataset] of restDatasets) {\n if (itemDataset.issues) {\n const pathItem = {\n type: \"array\",\n origin: \"value\",\n input,\n key,\n value: value2\n };\n for (const issue of itemDataset.issues) {\n if (issue.path) {\n issue.path.unshift(pathItem);\n } else {\n issue.path = [pathItem];\n }\n dataset.issues?.push(issue);\n }\n if (!dataset.issues) {\n dataset.issues = itemDataset.issues;\n }\n if (config2.abortEarly) {\n dataset.typed = false;\n break;\n }\n }\n if (!itemDataset.typed) {\n dataset.typed = false;\n }\n dataset.value.push(itemDataset.value);\n }\n }\n } else {\n _addIssue(this, \"type\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/schemas/undefined/undefined.ts\nfunction undefined_(message) {\n return {\n kind: \"schema\",\n type: \"undefined\",\n reference: undefined_,\n expects: \"undefined\",\n async: false,\n message,\n _run(dataset, config2) {\n if (dataset.value === void 0) {\n dataset.typed = true;\n } else {\n _addIssue(this, \"type\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/schemas/union/utils/_subIssues/_subIssues.ts\nfunction _subIssues(datasets) {\n let issues;\n if (datasets) {\n for (const dataset of datasets) {\n if (issues) {\n issues.push(...dataset.issues);\n } else {\n issues = dataset.issues;\n }\n }\n }\n return issues;\n}\n\n// src/schemas/union/union.ts\nfunction union(options, message) {\n return {\n kind: \"schema\",\n type: \"union\",\n reference: union,\n expects: [...new Set(options.map((option) => option.expects))].join(\" | \") || \"never\",\n async: false,\n options,\n message,\n _run(dataset, config2) {\n let validDataset;\n let typedDatasets;\n let untypedDatasets;\n for (const schema of this.options) {\n const optionDataset = schema._run(\n { typed: false, value: dataset.value },\n config2\n );\n if (optionDataset.typed) {\n if (optionDataset.issues) {\n if (typedDatasets) {\n typedDatasets.push(optionDataset);\n } else {\n typedDatasets = [optionDataset];\n }\n } else {\n validDataset = optionDataset;\n break;\n }\n } else {\n if (untypedDatasets) {\n untypedDatasets.push(optionDataset);\n } else {\n untypedDatasets = [optionDataset];\n }\n }\n }\n if (validDataset) {\n return validDataset;\n }\n if (typedDatasets) {\n if (typedDatasets.length === 1) {\n return typedDatasets[0];\n }\n _addIssue(this, \"type\", dataset, config2, {\n issues: _subIssues(typedDatasets)\n });\n dataset.typed = true;\n } else if (untypedDatasets?.length === 1) {\n return untypedDatasets[0];\n } else {\n _addIssue(this, \"type\", dataset, config2, {\n issues: _subIssues(untypedDatasets)\n });\n }\n return dataset;\n }\n };\n}\n\n// src/schemas/union/unionAsync.ts\nfunction unionAsync(options, message) {\n return {\n kind: \"schema\",\n type: \"union\",\n reference: unionAsync,\n expects: [...new Set(options.map((option) => option.expects))].join(\" | \") || \"never\",\n async: true,\n options,\n message,\n async _run(dataset, config2) {\n let validDataset;\n let typedDatasets;\n let untypedDatasets;\n for (const schema of this.options) {\n const optionDataset = await schema._run(\n { typed: false, value: dataset.value },\n config2\n );\n if (optionDataset.typed) {\n if (optionDataset.issues) {\n if (typedDatasets) {\n typedDatasets.push(optionDataset);\n } else {\n typedDatasets = [optionDataset];\n }\n } else {\n validDataset = optionDataset;\n break;\n }\n } else {\n if (untypedDatasets) {\n untypedDatasets.push(optionDataset);\n } else {\n untypedDatasets = [optionDataset];\n }\n }\n }\n if (validDataset) {\n return validDataset;\n }\n if (typedDatasets) {\n if (typedDatasets.length === 1) {\n return typedDatasets[0];\n }\n _addIssue(this, \"type\", dataset, config2, {\n issues: _subIssues(typedDatasets)\n });\n dataset.typed = true;\n } else if (untypedDatasets?.length === 1) {\n return untypedDatasets[0];\n } else {\n _addIssue(this, \"type\", dataset, config2, {\n issues: _subIssues(untypedDatasets)\n });\n }\n return dataset;\n }\n };\n}\n\n// src/schemas/unknown/unknown.ts\nfunction unknown() {\n return {\n kind: \"schema\",\n type: \"unknown\",\n reference: unknown,\n expects: \"unknown\",\n async: false,\n _run(dataset) {\n dataset.typed = true;\n return dataset;\n }\n };\n}\n\n// src/schemas/variant/utils/_discriminators/_discriminators.ts\nfunction _discriminators(key, options, set2 = /* @__PURE__ */ new Set()) {\n for (const schema of options) {\n if (schema.type === \"variant\") {\n _discriminators(key, schema.options, set2);\n } else {\n set2.add(schema.entries[key].expects);\n }\n }\n return set2;\n}\n\n// src/schemas/variant/variant.ts\nfunction variant(key, options, message) {\n let expectedDiscriminators;\n return {\n kind: \"schema\",\n type: \"variant\",\n reference: variant,\n expects: \"Object\",\n async: false,\n key,\n options,\n message,\n _run(dataset, config2) {\n const input = dataset.value;\n if (input && typeof input === \"object\") {\n const discriminator = input[this.key];\n if (this.key in input) {\n let outputDataset;\n for (const schema of this.options) {\n if (schema.type === \"variant\" || !schema.entries[this.key]._run(\n { typed: false, value: discriminator },\n config2\n ).issues) {\n const optionDataset = schema._run(\n { typed: false, value: input },\n config2\n );\n if (!optionDataset.issues) {\n return optionDataset;\n }\n if (!outputDataset || !outputDataset.typed && optionDataset.typed) {\n outputDataset = optionDataset;\n }\n }\n }\n if (outputDataset) {\n return outputDataset;\n }\n }\n if (!expectedDiscriminators) {\n expectedDiscriminators = [..._discriminators(this.key, this.options)].join(\" | \") || \"never\";\n }\n _addIssue(this, \"type\", dataset, config2, {\n input: discriminator,\n expected: expectedDiscriminators,\n path: [\n {\n type: \"object\",\n origin: \"value\",\n input,\n key: this.key,\n value: discriminator\n }\n ]\n });\n } else {\n _addIssue(this, \"type\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/schemas/variant/variantAsync.ts\nfunction variantAsync(key, options, message) {\n let expectedDiscriminators;\n return {\n kind: \"schema\",\n type: \"variant\",\n reference: variantAsync,\n expects: \"Object\",\n async: true,\n key,\n options,\n message,\n async _run(dataset, config2) {\n const input = dataset.value;\n if (input && typeof input === \"object\") {\n const discriminator = input[this.key];\n if (this.key in input) {\n let outputDataset;\n for (const schema of this.options) {\n if (schema.type === \"variant\" || !(await schema.entries[this.key]._run(\n { typed: false, value: discriminator },\n config2\n )).issues) {\n const optionDataset = await schema._run(\n { typed: false, value: input },\n config2\n );\n if (!optionDataset.issues) {\n return optionDataset;\n }\n if (!outputDataset || !outputDataset.typed && optionDataset.typed) {\n outputDataset = optionDataset;\n }\n }\n }\n if (outputDataset) {\n return outputDataset;\n }\n }\n if (!expectedDiscriminators) {\n expectedDiscriminators = [..._discriminators(this.key, this.options)].join(\" | \") || \"never\";\n }\n _addIssue(this, \"type\", dataset, config2, {\n input: discriminator,\n expected: expectedDiscriminators,\n path: [\n {\n type: \"object\",\n origin: \"value\",\n input,\n key: this.key,\n value: discriminator\n }\n ]\n });\n } else {\n _addIssue(this, \"type\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/schemas/void/void.ts\nfunction void_(message) {\n return {\n kind: \"schema\",\n type: \"void\",\n reference: void_,\n expects: \"void\",\n async: false,\n message,\n _run(dataset, config2) {\n if (dataset.value === void 0) {\n dataset.typed = true;\n } else {\n _addIssue(this, \"type\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/methods/keyof/keyof.ts\nfunction keyof(schema, message) {\n return picklist(Object.keys(schema.entries), message);\n}\n\n// src/methods/omit/omit.ts\nfunction omit(schema, keys) {\n const entries = {\n ...schema.entries\n };\n for (const key of keys) {\n delete entries[key];\n }\n return { ...schema, entries };\n}\n\n// src/methods/parse/parse.ts\nfunction parse(schema, input, config2) {\n const dataset = schema._run(\n { typed: false, value: input },\n getGlobalConfig(config2)\n );\n if (dataset.issues) {\n throw new ValiError(dataset.issues);\n }\n return dataset.value;\n}\n\n// src/methods/parse/parseAsync.ts\nasync function parseAsync(schema, input, config2) {\n const dataset = await schema._run(\n { typed: false, value: input },\n getGlobalConfig(config2)\n );\n if (dataset.issues) {\n throw new ValiError(dataset.issues);\n }\n return dataset.value;\n}\n\n// src/methods/parser/parser.ts\nfunction parser(schema, config2) {\n const func = (input) => parse(schema, input, config2);\n func.schema = schema;\n func.config = config2;\n return func;\n}\n\n// src/methods/parser/parserAsync.ts\nfunction parserAsync(schema, config2) {\n const func = (input) => parseAsync(schema, input, config2);\n func.schema = schema;\n func.config = config2;\n return func;\n}\n\n// src/methods/partial/partial.ts\nfunction partial(schema, keys) {\n const entries = {};\n for (const key in schema.entries) {\n entries[key] = !keys || keys.includes(key) ? optional(schema.entries[key]) : schema.entries[key];\n }\n return { ...schema, entries };\n}\n\n// src/methods/partial/partialAsync.ts\nfunction partialAsync(schema, keys) {\n const entries = {};\n for (const key in schema.entries) {\n entries[key] = !keys || keys.includes(key) ? optionalAsync(schema.entries[key]) : schema.entries[key];\n }\n return { ...schema, entries };\n}\n\n// src/methods/pick/pick.ts\nfunction pick(schema, keys) {\n const entries = {};\n for (const key of keys) {\n entries[key] = schema.entries[key];\n }\n return { ...schema, entries };\n}\n\n// src/methods/pipe/pipe.ts\nfunction pipe(...pipe2) {\n return {\n ...pipe2[0],\n pipe: pipe2,\n _run(dataset, config2) {\n for (const item of pipe2) {\n if (item.kind !== \"metadata\") {\n if (dataset.issues && (item.kind === \"schema\" || item.kind === \"transformation\")) {\n dataset.typed = false;\n break;\n }\n if (!dataset.issues || !config2.abortEarly && !config2.abortPipeEarly) {\n dataset = item._run(dataset, config2);\n }\n }\n }\n return dataset;\n }\n };\n}\n\n// src/methods/pipe/pipeAsync.ts\nfunction pipeAsync(...pipe2) {\n return {\n ...pipe2[0],\n pipe: pipe2,\n async: true,\n async _run(dataset, config2) {\n for (const item of pipe2) {\n if (item.kind !== \"metadata\") {\n if (dataset.issues && (item.kind === \"schema\" || item.kind === \"transformation\")) {\n dataset.typed = false;\n break;\n }\n if (!dataset.issues || !config2.abortEarly && !config2.abortPipeEarly) {\n dataset = await item._run(dataset, config2);\n }\n }\n }\n return dataset;\n }\n };\n}\n\n// src/methods/required/required.ts\nfunction required(schema, arg2, arg3) {\n const keys = Array.isArray(arg2) ? arg2 : void 0;\n const message = Array.isArray(arg2) ? arg3 : arg2;\n const entries = {};\n for (const key in schema.entries) {\n entries[key] = !keys || keys.includes(key) ? nonOptional(schema.entries[key], message) : schema.entries[key];\n }\n return { ...schema, entries };\n}\n\n// src/methods/required/requiredAsync.ts\nfunction requiredAsync(schema, arg2, arg3) {\n const keys = Array.isArray(arg2) ? arg2 : void 0;\n const message = Array.isArray(arg2) ? arg3 : arg2;\n const entries = {};\n for (const key in schema.entries) {\n entries[key] = !keys || keys.includes(key) ? nonOptionalAsync(schema.entries[key], message) : schema.entries[key];\n }\n return { ...schema, entries };\n}\n\n// src/methods/safeParse/safeParse.ts\nfunction safeParse(schema, input, config2) {\n const dataset = schema._run(\n { typed: false, value: input },\n getGlobalConfig(config2)\n );\n return {\n typed: dataset.typed,\n success: !dataset.issues,\n output: dataset.value,\n issues: dataset.issues\n };\n}\n\n// src/methods/safeParse/safeParseAsync.ts\nasync function safeParseAsync(schema, input, config2) {\n const dataset = await schema._run(\n { typed: false, value: input },\n getGlobalConfig(config2)\n );\n return {\n typed: dataset.typed,\n success: !dataset.issues,\n output: dataset.value,\n issues: dataset.issues\n };\n}\n\n// src/methods/safeParser/safeParser.ts\nfunction safeParser(schema, config2) {\n const func = (input) => safeParse(schema, input, config2);\n func.schema = schema;\n func.config = config2;\n return func;\n}\n\n// src/methods/safeParser/safeParserAsync.ts\nfunction safeParserAsync(schema, config2) {\n const func = (input) => safeParseAsync(schema, input, config2);\n func.schema = schema;\n func.config = config2;\n return func;\n}\n\n// src/methods/unwrap/unwrap.ts\nfunction unwrap(schema) {\n return schema.wrapped;\n}\nexport {\n BASE64_REGEX,\n BIC_REGEX,\n CUID2_REGEX,\n DECIMAL_REGEX,\n EMAIL_REGEX,\n EMOJI_REGEX,\n HEXADECIMAL_REGEX,\n HEX_COLOR_REGEX,\n IMEI_REGEX,\n IPV4_REGEX,\n IPV6_REGEX,\n IP_REGEX,\n ISO_DATE_REGEX,\n ISO_DATE_TIME_REGEX,\n ISO_TIMESTAMP_REGEX,\n ISO_TIME_REGEX,\n ISO_TIME_SECOND_REGEX,\n ISO_WEEK_REGEX,\n MAC48_REGEX,\n MAC64_REGEX,\n MAC_REGEX,\n OCTAL_REGEX,\n ULID_REGEX,\n UUID_REGEX,\n ValiError,\n _addIssue,\n _isLuhnAlgo,\n _isValidObjectKey,\n _stringify,\n any,\n array,\n arrayAsync,\n awaitAsync,\n base64,\n bic,\n bigint,\n blob,\n boolean,\n brand,\n bytes,\n check,\n checkAsync,\n checkItems,\n config,\n creditCard,\n cuid2,\n custom,\n customAsync,\n date,\n decimal,\n deleteGlobalConfig,\n deleteGlobalMessage,\n deleteSchemaMessage,\n deleteSpecificMessage,\n description,\n email,\n emoji,\n empty,\n endsWith,\n entriesFromList,\n enum_ as enum,\n enum_,\n everyItem,\n excludes,\n fallback,\n fallbackAsync,\n file,\n filterItems,\n findItem,\n finite,\n flatten,\n forward,\n forwardAsync,\n function_ as function,\n function_,\n getDefault,\n getDefaults,\n getDefaultsAsync,\n getDotPath,\n getFallback,\n getFallbacks,\n getFallbacksAsync,\n getGlobalConfig,\n getGlobalMessage,\n getSchemaMessage,\n getSpecificMessage,\n hash,\n hexColor,\n hexadecimal,\n imei,\n includes,\n instance,\n integer,\n intersect,\n intersectAsync,\n ip,\n ipv4,\n ipv6,\n is,\n isOfKind,\n isOfType,\n isValiError,\n isoDate,\n isoDateTime,\n isoTime,\n isoTimeSecond,\n isoTimestamp,\n isoWeek,\n keyof,\n lazy,\n lazyAsync,\n length,\n literal,\n looseObject,\n looseObjectAsync,\n looseTuple,\n looseTupleAsync,\n mac,\n mac48,\n mac64,\n map,\n mapAsync,\n mapItems,\n maxBytes,\n maxLength,\n maxSize,\n maxValue,\n mimeType,\n minBytes,\n minLength,\n minSize,\n minValue,\n multipleOf,\n nan,\n never,\n nonEmpty,\n nonNullable,\n nonNullableAsync,\n nonNullish,\n nonNullishAsync,\n nonOptional,\n nonOptionalAsync,\n normalize,\n notBytes,\n notLength,\n notSize,\n notValue,\n null_ as null,\n null_,\n nullable,\n nullableAsync,\n nullish,\n nullishAsync,\n number,\n object,\n objectAsync,\n objectWithRest,\n objectWithRestAsync,\n octal,\n omit,\n optional,\n optionalAsync,\n parse,\n parseAsync,\n parser,\n parserAsync,\n partial,\n partialAsync,\n partialCheck,\n partialCheckAsync,\n pick,\n picklist,\n pipe,\n pipeAsync,\n promise,\n rawCheck,\n rawCheckAsync,\n rawTransform,\n rawTransformAsync,\n readonly,\n record,\n recordAsync,\n reduceItems,\n regex,\n required,\n requiredAsync,\n safeInteger,\n safeParse,\n safeParseAsync,\n safeParser,\n safeParserAsync,\n set,\n setAsync,\n setGlobalConfig,\n setGlobalMessage,\n setSchemaMessage,\n setSpecificMessage,\n size,\n someItem,\n sortItems,\n startsWith,\n strictObject,\n strictObjectAsync,\n strictTuple,\n strictTupleAsync,\n string,\n symbol,\n toLowerCase,\n toMaxValue,\n toMinValue,\n toUpperCase,\n transform,\n transformAsync,\n trim,\n trimEnd,\n trimStart,\n tuple,\n tupleAsync,\n tupleWithRest,\n tupleWithRestAsync,\n ulid,\n undefined_ as undefined,\n undefined_,\n union,\n unionAsync,\n unknown,\n unwrap,\n url,\n uuid,\n value,\n variant,\n variantAsync,\n void_ as void,\n void_\n};\n","import type { WebChatActivity } from 'botframework-webchat-core';\nimport { array, literal, object, safeParse, string, type InferOutput } from 'valibot';\n\nconst messageEntity = object({\n '@context': literal('https://schema.org'),\n '@id': literal(''), // Must be empty string.\n '@type': literal('Message'),\n keywords: array(string()),\n type: literal('https://schema.org/Message')\n});\n\ntype MessageEntity = InferOutput<typeof messageEntity>;\n\nexport default function isPreChatMessageActivity(\n activity: undefined | WebChatActivity\n): activity is WebChatActivity & { type: 'message' } {\n if (activity?.type !== 'message') {\n return false;\n }\n\n const message = activity.entities?.find(\n (entity): entity is MessageEntity => safeParse(messageEntity, entity).success\n );\n\n return !!message?.keywords.includes('PreChatMessage');\n}\n","import { hooks } from 'botframework-webchat-component';\nimport { type WebChatActivity } from 'botframework-webchat-core';\nimport React, { memo, useMemo } from 'react';\nimport { useStyles } from '../../styles/index.js';\nimport styles from './PreChatMessageActivity.module.css';\nimport StarterPromptsToolbar from './StarterPromptsToolbar.js';\n\ntype Props = Readonly<{ activity: WebChatActivity & { type: 'message' } }>;\n\nconst { useRenderMarkdownAsHTML } = hooks;\n\nconst PreChatMessageActivity = ({ activity }: Props) => {\n const classNames = useStyles(styles);\n const renderMarkdownAsHTML = useRenderMarkdownAsHTML();\n\n const html = useMemo(\n () => (renderMarkdownAsHTML ? { __html: renderMarkdownAsHTML(activity.text || '') } : { __html: '' }),\n [activity.text, renderMarkdownAsHTML]\n );\n\n return (\n <div className={classNames['pre-chat-message-activity']}>\n {/* eslint-disable-next-line react/no-danger */}\n <div className={classNames['pre-chat-message-activity__body']} dangerouslySetInnerHTML={html} />\n <StarterPromptsToolbar\n cardActions={activity.suggestedActions?.actions || []}\n className={classNames['pre-chat-message-activity__toolbar']}\n />\n </div>\n );\n};\n\nPreChatMessageActivity.displayName = 'PreChatMessageActivity';\n\nexport default memo(PreChatMessageActivity);\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",":global(.webchat-fluent) .pre-chat-message-activity {\n display: grid;\n grid-template-areas: 'body' 'toolbar';\n grid-template-rows: auto auto;\n gap: var(--webchat-spacingHorizontalXXXL);\n padding: var(--webchat-spacingHorizontalXXXL);\n}\n\n:global(.webchat-fluent) .pre-chat-message-activity__body {\n font-family: var(--webchat-fontFamilyBase);\n font-size: var(--webchat-fontSizeBase300);\n font-weight: var(--webchat-fontWeightRegular);\n grid-area: body;\n line-height: var(--webchat-lineHeightBase300);\n text-align: center;\n}\n\n:global(.webchat-fluent) .pre-chat-message-activity__body h2 {\n color: var(--webchat-colorNeutralForeground1);\n font-family: inherit;\n font-weight: var(--webchat-fontWeightSemibold);\n font-size: var(--webchat-fontSizeHero700);\n line-height: var(--webchat-lineHeightHero700);\n margin: var(--webchat-spacingVerticalL) 0 0;\n}\n\n:global(.webchat-fluent) .pre-chat-message-activity__body img {\n border-radius: 4px;\n height: 64px;\n}\n\n:global(.webchat-fluent) .pre-chat-message-activity__toolbar {\n grid-area: toolbar;\n}\n","import { type DirectLineCardAction } from 'botframework-webchat-core';\nimport cx from 'classnames';\nimport React, { memo } from 'react';\nimport { useStyles } from '../../styles/index.js';\nimport StarterPromptsCardAction from './StarterPromptsCardAction.js';\nimport styles from './StarterPromptsToolbar.module.css';\n\ntype Props = Readonly<{\n cardActions: readonly DirectLineCardAction[];\n className?: string | undefined;\n}>;\n\nconst StarterPrompts = ({ cardActions, className }: Props) => {\n const classNames = useStyles(styles);\n\n return (\n // TODO: Accessibility-wise, this should be role=\"toolbar\" with keyboard navigation.\n <div className={cx(className, classNames['pre-chat-message-activity__card-action-toolbar'])}>\n <div className={classNames['pre-chat-message-activity__card-action-toolbar-grid']}>\n {cardActions\n .filter<DirectLineCardAction & { type: 'messageBack' }>(\n (card: DirectLineCardAction): card is DirectLineCardAction & { type: 'messageBack' } =>\n card.type === 'messageBack'\n )\n .map(cardAction => (\n <StarterPromptsCardAction key={cardAction.text} messageBackAction={cardAction} />\n ))}\n </div>\n </div>\n );\n};\n\nStarterPrompts.displayName = 'StarterPrompts';\n\nexport default memo(StarterPrompts);\n","import { hooks } from 'botframework-webchat-component';\nimport { type DirectLineCardAction } from 'botframework-webchat-core';\nimport cx from 'classnames';\nimport React, { memo, useCallback, useMemo } from 'react';\nimport { useRefFrom } from 'use-ref-from';\nimport { useStyles } from '../../styles/index.js';\nimport testIds from '../../testIds.js';\nimport MonochromeImageMasker from './private/MonochromeImageMasker.js';\nimport styles from './StarterPromptsCardAction.module.css';\n\nconst { useFocus, useRenderMarkdownAsHTML, useSendBoxValue } = hooks;\n\ntype Props = Readonly<{\n className?: string | undefined;\n messageBackAction: DirectLineCardAction & { type: 'messageBack' };\n}>;\n\nconst StarterPromptAction = ({ className, messageBackAction }: Props) => {\n const [_, setSendBoxValue] = useSendBoxValue();\n const classNames = useStyles(styles);\n const focus = useFocus();\n const inputTextRef = useRefFrom(messageBackAction.displayText || messageBackAction.text || '');\n const renderMarkdownAsHTML = useRenderMarkdownAsHTML('message activity');\n const subtitleHTML = useMemo(\n () => (renderMarkdownAsHTML ? { __html: renderMarkdownAsHTML(messageBackAction.text || '') } : { __html: '' }),\n [messageBackAction.text, renderMarkdownAsHTML]\n );\n\n const handleClick = useCallback(() => {\n setSendBoxValue(inputTextRef.current);\n\n // Focus on the send box after the value is \"pasted.\"\n focus('sendBox');\n }, [focus, inputTextRef, setSendBoxValue]);\n\n return (\n <button\n className={cx(className, classNames['pre-chat-message-activity__card-action-box'])}\n data-testid={testIds.preChatMessageActivityStarterPromptsCardAction}\n onClick={handleClick}\n type=\"button\"\n >\n <div className={classNames['pre-chat-message-activity__card-action-title']}>\n {'title' in messageBackAction && messageBackAction.title}\n </div>\n {'image' in messageBackAction && messageBackAction.image && (\n <MonochromeImageMasker\n className={classNames['pre-chat-message-activity__card-action-image']}\n src={messageBackAction.image}\n />\n // <img className=\"pre-chat-message-activity__card-action-image\" src={messageBackAction.image} />\n )}\n <div\n className={classNames['pre-chat-message-activity__card-action-subtitle']}\n // eslint-disable-next-line react/no-danger\n dangerouslySetInnerHTML={subtitleHTML}\n />\n </button>\n );\n};\n\nStarterPromptAction.displayName = 'StarterPromptAction';\n\nexport default memo(StarterPromptAction);\n","import { useMemo, useRef } from 'react';\nimport type { RefObject } from 'react';\n\nexport default function useRefFrom<T>(value: T): RefObject<T> & { get current(): T } {\n const ref = useRef<T>();\n\n const readOnlyRef = useMemo(() => Object.create({}, { current: { get: () => ref.current } }), [ref]);\n\n ref.current = value;\n\n return readOnlyRef;\n}\n","const testIds = {\n preChatMessageActivityStarterPromptsCardAction: 'pre-chat message activity starter prompts card action',\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 cx from 'classnames';\nimport React, { memo, useMemo, type CSSProperties } from 'react';\nimport { useStyles } from '../../../styles/index.js';\nimport styles from './MonochromeImageMasker.module.css';\n\ntype Props = Readonly<{ className?: string | undefined; src: string }>;\n\nconst MonochromeImageMasker = ({ className, src }: Props) => {\n const classNames = useStyles(styles);\n const style = useMemo(() => ({ '--mask-image': `url(${src})` }) as CSSProperties, [src]);\n\n return (\n <div className={cx(className, classNames['pre-chat-message-activity__monochrome-image-masker'])} style={style} />\n );\n};\n\nMonochromeImageMasker.displayName = 'MonochromeImageMasker';\n\nexport default memo(MonochromeImageMasker);\n",":global(.webchat-fluent) .pre-chat-message-activity__monochrome-image-masker {\n background-color: var(--webchat-colorNeutralForeground4);\n mask-image: var(--mask-image);\n --webkit-mask-image: var(--mask-image);\n}\n",":global(.webchat-fluent) .pre-chat-message-activity__card-action-box {\n appearance: none;\n background-color: var(--webchat-colorNeutralBackground1);\n border: 0;\n border-radius: 16px;\n box-shadow: var(--webchat-shadow2);\n color: var(--webchat-colorNeutralForeground1);\n cursor: pointer;\n display: grid;\n gap: 8px;\n grid-template-areas: 'image title' 'image subtitle';\n grid-template-columns: 20px 1fr;\n grid-template-rows: auto 1fr;\n overflow: hidden;\n padding: 16px 20px;\n text-align: left;\n user-select: none;\n}\n\n:global(.webchat-fluent) .pre-chat-message-activity__card-action-box:disabled {\n background-color: var(--webchat-colorNeutralBackground1Disabled);\n}\n\n:global(.webchat-fluent) .pre-chat-message-activity__card-action-box:hover {\n background-color: var(--webchat-colorNeutralGrey94);\n}\n\n:global(.webchat-fluent) .pre-chat-message-activity__card-action-box:active {\n background-color: var(--webchat-colorNeutralBackground1Pressed);\n}\n\n:global(.webchat-fluent) .pre-chat-message-activity__card-action-box:focus-visible {\n outline: solid 2px var(--webchat-colorStrokeFocus2);\n outline-offset: -2px;\n}\n\n:global(.webchat-fluent) .pre-chat-message-activity__card-action-image {\n grid-area: image;\n height: 20px;\n width: 20px;\n}\n\n:global(.webchat-fluent) .pre-chat-message-activity__card-action-subtitle {\n font-family: var(--webchat-fontFamilyBase);\n font-size: 14px;\n font-weight: var(--webchat-fontWeightRegular);\n grid-area: subtitle;\n line-height: 20px;\n pointer-events: none; /* Links in subtitle are not clickable. */\n}\n\n:global(.webchat-fluent) .pre-chat-message-activity__card-action-title {\n font-family: var(--webchat-fontFamilyBase);\n font-size: 14px;\n font-weight: var(--webchat-fontWeightSemibold);\n grid-area: title;\n line-height: 20px;\n}\n",":global(.webchat-fluent) .pre-chat-message-activity__card-action-toolbar {\n container-name: webchat-container;\n container-type: inline-size;\n}\n\n:global(.webchat-fluent) .pre-chat-message-activity__card-action-toolbar-grid {\n display: grid;\n gap: var(--webchat-spacingHorizontalM);\n grid-template-columns: 1fr 1fr 1fr;\n padding: 0;\n}\n\n/* TODO: What is the good width to show as 3 columns? Web Chat, by default, has a bubble max width of 480px. */\n@container webchat-container (width <= 480px) {\n :global(.webchat-fluent) .pre-chat-message-activity__card-action-toolbar-grid {\n grid-template-columns: 1fr;\n }\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';\nimport { useStyles } from '../../styles';\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 useSubmitError from './private/useSubmitError';\nimport useTranscriptNavigation from './private/useTranscriptNavigation';\nimport useUniqueId from './private/useUniqueId';\nimport styles from './SendBox.module.css';\nimport TelephoneKeypadToolbarButton from './TelephoneKeypadToolbarButton';\nimport TextArea from './TextArea';\nimport { Toolbar, ToolbarButton, ToolbarSeparator } from './Toolbar';\n\nconst {\n useFocus,\n useLocalizer,\n useMakeThumbnail,\n useRegisterFocusSendBox,\n useSendBoxAttachments,\n useSendBoxValue,\n useSendMessage,\n useStyleOptions\n} = hooks;\n\ntype Props = Readonly<{\n className?: string | undefined;\n isPrimary?: boolean | undefined;\n placeholder?: string | undefined;\n}>;\n\nfunction SendBox(props: Props) {\n const inputRef = useRef<HTMLTextAreaElement>(null);\n const [localMessage, setLocalMessage] = useState('');\n const [globalMessage, setGlobalMessage] = useSendBoxValue();\n const message = props.isPrimary ? globalMessage : localMessage;\n const setMessage = props.isPrimary ? setGlobalMessage : setLocalMessage;\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(`/DTMFKey ${dtmf}`),\n [sendMessage]\n );\n\n const handleTranscriptNavigation = useTranscriptNavigation();\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\n className={cx(classNames['sendbox__sendbox'])}\n onClickCapture={handleSendBoxClick}\n onKeyDown={handleTranscriptNavigation}\n >\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 && isFinite(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\nconst PrimarySendBox = memo((props: Exclude<Props, 'primary'>) => <SendBox {...props} isPrimary={true} />);\n\nPrimarySendBox.displayName = 'PrimarySendBox';\n\nexport default memo(SendBox);\n\nexport { PrimarySendBox };\n","import React, { memo } from 'react';\n\nfunction 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\nexport default memo(AddDocumentIcon);\n","import React, { memo } from 'react';\n\nfunction 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\nexport default memo(AttachmentIcon);\n","import React, { memo } from 'react';\n\nfunction InfoSmallIcon(props: Readonly<{ readonly className?: string }>) {\n return (\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}\n\nexport default memo(InfoSmallIcon);\n","import React, { memo } from 'react';\n\nfunction 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\nexport default memo(SendIcon);\n","import React, { memo } from 'react';\n\nfunction 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\nexport default memo(TelephoneKeypadIcon);\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';\nimport testIds from '../../testIds';\nimport styles from './DropZone.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",":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 { hooks } from 'botframework-webchat-component';\nimport cx from 'classnames';\nimport React, { memo, useCallback, type ReactNode } from 'react';\nimport { useStyles } from '../../styles';\nimport { isPreChatMessageActivity } from '../preChatActivity';\nimport computeSuggestedActionText from './private/computeSuggestedActionText';\nimport RovingFocusProvider from './private/rovingFocus';\nimport SuggestedAction from './SuggestedAction';\nimport styles from './SuggestedActions.module.css';\n\nconst { useFocus, 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, _, { activity }] = useSuggestedActions();\n const focus = useFocus();\n\n const handleEscapeKey = useCallback(() => {\n focus('sendBox');\n }, [focus]);\n\n const children = isPreChatMessageActivity(activity)\n ? [] // Do not show suggested actions for pre-chat message, suggested actions has already shown inlined.\n : 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\n return (\n <RovingFocusProvider onEscapeKey={handleEscapeKey}>\n <SuggestedActionStackedOrFlowContainer\n aria-label={localize('SUGGESTED_ACTIONS_LABEL_ALT')}\n className={classNames['suggested-actions']}\n >\n {children}\n </SuggestedActionStackedOrFlowContainer>\n </RovingFocusProvider>\n );\n}\n\nexport default memo(SuggestedActions);\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","/* eslint-disable no-magic-numbers */\nimport React, {\n type MutableRefObject,\n createContext,\n memo,\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useRef\n} from 'react';\n\ntype ItemRef = MutableRefObject<HTMLElement | undefined>;\n\ntype RovingFocusContextType = {\n itemEffector: <T extends HTMLElement>(ref: MutableRefObject<T | null>, index: number) => () => void;\n};\n\nconst RovingFocusContext = createContext<RovingFocusContextType>({\n itemEffector: () => {\n // This will be implemented when using in <RovingFocusProvider>.\n throw new Error('botframework-webchat-fluent-theme rovingFocus: no provider for RovingFocusContext.');\n }\n});\n\nfunction RovingFocusProvider(\n props: Readonly<{\n children?: React.ReactNode | undefined;\n direction?: 'vertical' | 'horizontal' | undefined;\n onEscapeKey?: () => void;\n }>\n) {\n const activeItemIndexRef = useRef(0);\n const itemRefsRef = useRef<ItemRef[]>([]);\n\n const updateItemTabIndex = useCallback(\n ({ current }: ItemRef, index: number) =>\n current && (current.tabIndex = activeItemIndexRef.current === index ? 0 : -1),\n [activeItemIndexRef]\n );\n\n const setActiveItemIndex = useCallback(\n (valueOrFunction: number | ((value: number) => number)) => {\n // All calls to this function is expected to be under event handlers (post-rendering).\n let nextActiveItemIndex;\n\n if (typeof valueOrFunction === 'number') {\n nextActiveItemIndex = valueOrFunction;\n } else {\n nextActiveItemIndex = valueOrFunction(activeItemIndexRef.current);\n }\n\n // If the index points to no item, fallback to the first item.\n // This makes sure at least one of the item in the container is selected.\n if (nextActiveItemIndex && !itemRefsRef.current.at(nextActiveItemIndex)?.current) {\n nextActiveItemIndex = 0;\n }\n\n if (activeItemIndexRef.current !== nextActiveItemIndex) {\n activeItemIndexRef.current = nextActiveItemIndex;\n\n itemRefsRef.current.forEach((ref, index) => updateItemTabIndex(ref, index));\n itemRefsRef.current.at(nextActiveItemIndex)?.current?.focus();\n }\n },\n [updateItemTabIndex, itemRefsRef, activeItemIndexRef]\n );\n\n const handleFocus = useCallback(\n event => {\n const { target } = event;\n\n const index = itemRefsRef.current.findIndex(({ current }) => current === target);\n\n // prevent focusing the last element, if we didn't found the element focused\n if (index !== -1) {\n setActiveItemIndex(index);\n }\n },\n [itemRefsRef, setActiveItemIndex]\n );\n\n const handleSetNextActive = useCallback(\n (key: string) =>\n (currentIndex: number): number => {\n const isUnidirectional = !props.direction;\n const isVerticalMove = /up|down/iu.test(key) && props.direction === 'vertical';\n const isHorizontalMove = /left|right/iu.test(key) && props.direction === 'horizontal';\n const isForwardMove = /right|down/iu.test(key);\n const direction = isUnidirectional || isVerticalMove || isHorizontalMove ? (isForwardMove ? 1 : -1) : 0;\n // The `itemRefsRef` array could be a sparse array.\n // Thus, the next item may not be immediately next to the current one.\n const itemIndices = itemRefsRef.current.map((_, index) => index);\n const nextIndex = itemIndices.indexOf(currentIndex) + direction;\n\n return itemIndices.at(nextIndex) ?? 0;\n },\n [props.direction]\n );\n\n const handleKeyDown = useCallback<(event: KeyboardEvent) => void>(\n event => {\n const { key } = event;\n\n switch (key) {\n case 'Up':\n case 'ArrowUp':\n case 'Left':\n case 'ArrowLeft':\n case 'Down':\n case 'ArrowDown':\n case 'Right':\n case 'ArrowRight':\n setActiveItemIndex(handleSetNextActive(key));\n break;\n\n case 'Home':\n setActiveItemIndex(0);\n break;\n\n case 'End':\n setActiveItemIndex(-1);\n break;\n\n case 'Escape':\n props.onEscapeKey?.();\n break;\n\n default:\n return;\n }\n\n event.preventDefault();\n event.stopPropagation();\n },\n [setActiveItemIndex, handleSetNextActive, props]\n );\n\n const itemEffector = useCallback(\n (ref, index) => {\n const { current } = ref;\n\n itemRefsRef.current[Number(index)] = ref;\n\n current.addEventListener('focus', handleFocus);\n current.addEventListener('keydown', handleKeyDown);\n\n updateItemTabIndex(ref, index);\n\n return () => {\n current.removeEventListener('focus', handleFocus);\n current.removeEventListener('keydown', handleKeyDown);\n\n delete itemRefsRef.current[Number(index)];\n };\n },\n [handleFocus, handleKeyDown, updateItemTabIndex, itemRefsRef]\n );\n\n const value = useMemo<RovingFocusContextType>(\n () => ({\n itemEffector\n }),\n [itemEffector]\n );\n\n return <RovingFocusContext.Provider value={value}>{props.children}</RovingFocusContext.Provider>;\n}\n\nexport function useRovingFocusItemRef<T extends HTMLElement>(itemIndex: number): MutableRefObject<T | null> {\n const ref = useRef<T>(null);\n\n const { itemEffector } = useContext(RovingFocusContext);\n\n useEffect(() => itemEffector(ref, itemIndex));\n\n return ref;\n}\n\nexport default memo(RovingFocusProvider);\n","import { hooks } from 'botframework-webchat-component';\nimport { type DirectLineCardAction } from 'botframework-webchat-core';\nimport cx from 'classnames';\nimport React, { MouseEventHandler, memo, useCallback } from 'react';\nimport styles from './SuggestedAction.module.css';\nimport { useStyles } from '../../styles';\nimport AccessibleButton from './AccessibleButton';\nimport { useRovingFocusItemRef } from './private/rovingFocus';\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 itemIndex,\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 = useRovingFocusItemRef<HTMLButtonElement>(itemIndex);\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","\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 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';\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 testIds from '../../../testIds';\nimport { type DTMF } from '../types';\nimport useShown from '../useShown';\nimport styles from './TelephoneKeypad.module.css';\nimport { useStyles } from '../../../styles';\nimport { InfoSmallIcon } from '../../../icons';\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?.('*'), [onButtonClickRef]);\n const handleButtonPoundClick = useCallback(() => onButtonClickRef.current?.('#'), [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=\"*\" data-testid={testIds.sendBoxTelephoneKeypadButtonStar} onClick={handleButtonStarClick} />\n <Button button=\"0\" data-testid={testIds.sendBoxTelephoneKeypadButton0} onClick={handleButton0Click} ruby=\"+\" />\n <Button button=\"#\" data-testid={testIds.sendBoxTelephoneKeypadButtonPound} onClick={handleButtonPoundClick} />\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 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']}>{button === '*' ? '\\u2217' : button}</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","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 { hooks } from 'botframework-webchat-component';\nimport React, { useCallback, useRef, type ChangeEventHandler, memo } from 'react';\nimport { useRefFrom } from 'use-ref-from';\nimport { AttachmentIcon } from '../../icons';\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 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: 1px; /* iOS Safari does not honor 0px for the width. */\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 { 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","import { useCallback, type KeyboardEvent } from 'react';\nimport { hooks } from 'botframework-webchat-component';\n\nconst { useScrollDown, useScrollUp } = hooks;\n\nexport default function useTranscriptNavigation() {\n const scrollDown = useScrollDown();\n const scrollUp = useScrollUp();\n\n return useCallback(\n (event: KeyboardEvent<unknown>) => {\n if (event.target instanceof HTMLTextAreaElement && event.target.value) {\n return;\n }\n\n const { ctrlKey, metaKey, shiftKey } = event;\n\n if (ctrlKey || metaKey || shiftKey) {\n return;\n }\n\n let handled = true;\n\n switch (event.key) {\n case 'End':\n scrollDown({ displacement: Infinity });\n break;\n\n case 'Home':\n scrollUp({ displacement: Infinity });\n break;\n\n case 'PageDown':\n scrollDown();\n break;\n\n case 'PageUp':\n scrollUp();\n break;\n\n default:\n handled = false;\n break;\n }\n\n if (handled) {\n event.preventDefault();\n event.stopPropagation();\n }\n },\n [scrollDown, scrollUp]\n );\n}\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 /* Prevent zoom on focus on iOS */\n @media only screen and (hover: none) and (pointer: coarse) {\n &:focus-within {\n font-size: 16px;\n }\n }\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 React, { memo, useCallback } from 'react';\n\nimport { hooks } from 'botframework-webchat-component';\nimport { TelephoneKeypadIcon } from '../../icons';\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 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 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 Theme(props: Readonly<{ readonly children: ReactNode | undefined }>) {\n const classNames = useStyles(styles);\n return <div className={cx(rootClassName, classNames['theme'])}>{props.children}</div>;\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-colorNeutralBackground1Disabled: var(--colorNeutralBackground1Disabled, #f0f0f0);\n --webchat-colorNeutralBackground1Pressed: var(--colorNeutralBackground1Pressed, #e0e0e0);\n\n --webchat-colorNeutralGrey94: var(--colorNeutralGrey94, #f0f0f0);\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 --webchat-spacingHorizontalM: var(--spacingHorizontalM, 12px);\n --webchat-spacingHorizontalXXXL: var(--spacingHorizontalXXXL, 32px);\n --webchat-spacingVerticalL: var(--spacingVerticalL, 16px);\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-fontWeightRegular: var(--fontWeightRegular, 400);\n --webchat-fontWeightSemibold: var(--fontWeightSemibold, 600);\n\n /* https://github.com/microsoft/fluentui/blob/master/packages/tokens/src/global/fonts.ts */\n --webchat-fontSizeBase300: var(--fontSizeBase300, 14px);\n --webchat-fontSizeHero700: var(--fontSizeHero700, 28px);\n\n --webchat-lineHeightBase300: var(--lineHeightBase300, 20px);\n --webchat-lineHeightHero700: var(--lineHeightHero700, 36px);\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 /* https://github.com/microsoft/fluentui/blob/master/packages/tokens/src/utils/shadows.ts */\n --webchat-shadow2: 0 0 2px rgba(0, 0, 0, 12%), 0 1px 2px rgba(0, 0, 0, 14%);\n}\n\n@media (prefers-reduced-motion) {\n :global(.webchat-fluent).theme {\n --webchat-durationUltraFast: 0.01ms;\n --webchat-durationNormal: 0.01ms;\n }\n}\n","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 { FluentThemeProvider, testIds } from './index';\n\n(globalThis as any).WebChat = {\n ...(globalThis as any).WebChat,\n FluentThemeProvider,\n testIds: {\n ...(globalThis as any).WebChat?.testIds,\n ...testIds\n }\n};\n"],"mappings":"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","names":["require_botframework_webchat_component","__commonJSMin","exports","module","require_react","__commonJSMin","exports","module","require_classnames","__commonJSMin","exports","module","hasOwn","classNames","classes","i","arg","appendClass","parseValue","key","value","newClass","require_global","__commonJSMin","exports","module","check","it","require_fails","__commonJSMin","exports","module","exec","require_function_bind_native","__commonJSMin","exports","module","fails","test","require_function_apply","__commonJSMin","exports","module","NATIVE_BIND","FunctionPrototype","apply","call","require_function_uncurry_this","__commonJSMin","exports","module","NATIVE_BIND","FunctionPrototype","call","uncurryThisWithBind","fn","require_classof_raw","__commonJSMin","exports","module","uncurryThis","toString","stringSlice","it","require_function_uncurry_this_clause","__commonJSMin","exports","module","classofRaw","uncurryThis","fn","require_is_callable","__commonJSMin","exports","module","documentAll","argument","require_descriptors","__commonJSMin","exports","module","fails","require_function_call","__commonJSMin","exports","module","NATIVE_BIND","call","require_object_property_is_enumerable","__commonJSMin","exports","$propertyIsEnumerable","getOwnPropertyDescriptor","NASHORN_BUG","V","descriptor","require_create_property_descriptor","__commonJSMin","exports","module","bitmap","value","require_indexed_object","__commonJSMin","exports","module","uncurryThis","fails","classof","$Object","split","it","require_is_null_or_undefined","__commonJSMin","exports","module","it","require_require_object_coercible","__commonJSMin","exports","module","isNullOrUndefined","$TypeError","it","require_to_indexed_object","__commonJSMin","exports","module","IndexedObject","requireObjectCoercible","it","require_is_object","__commonJSMin","exports","module","isCallable","it","require_path","__commonJSMin","exports","module","require_get_built_in","__commonJSMin","exports","module","path","global","isCallable","aFunction","variable","namespace","method","require_object_is_prototype_of","__commonJSMin","exports","module","uncurryThis","require_engine_user_agent","__commonJSMin","exports","module","require_engine_v8_version","__commonJSMin","exports","module","global","userAgent","process","Deno","versions","v8","match","version","require_symbol_constructor_detection","__commonJSMin","exports","module","V8_VERSION","fails","global","$String","symbol","require_use_symbol_as_uid","__commonJSMin","exports","module","NATIVE_SYMBOL","require_is_symbol","__commonJSMin","exports","module","getBuiltIn","isCallable","isPrototypeOf","USE_SYMBOL_AS_UID","$Object","it","$Symbol","require_try_to_string","__commonJSMin","exports","module","$String","argument","require_a_callable","__commonJSMin","exports","module","isCallable","tryToString","$TypeError","argument","require_get_method","__commonJSMin","exports","module","aCallable","isNullOrUndefined","V","P","func","require_ordinary_to_primitive","__commonJSMin","exports","module","call","isCallable","isObject","$TypeError","input","pref","fn","val","require_is_pure","__commonJSMin","exports","module","require_define_global_property","__commonJSMin","exports","module","global","defineProperty","key","value","require_shared_store","__commonJSMin","exports","module","IS_PURE","globalThis","defineGlobalProperty","SHARED","store","require_shared","__commonJSMin","exports","module","store","key","value","require_to_object","__commonJSMin","exports","module","requireObjectCoercible","$Object","argument","require_has_own_property","__commonJSMin","exports","module","uncurryThis","toObject","hasOwnProperty","it","key","require_uid","__commonJSMin","exports","module","uncurryThis","id","postfix","toString","key","require_well_known_symbol","__commonJSMin","exports","module","global","shared","hasOwn","uid","NATIVE_SYMBOL","USE_SYMBOL_AS_UID","Symbol","WellKnownSymbolsStore","createWellKnownSymbol","name","require_to_primitive","__commonJSMin","exports","module","call","isObject","isSymbol","getMethod","ordinaryToPrimitive","wellKnownSymbol","$TypeError","TO_PRIMITIVE","input","pref","exoticToPrim","result","require_to_property_key","__commonJSMin","exports","module","toPrimitive","isSymbol","argument","key","require_document_create_element","__commonJSMin","exports","module","global","isObject","document","EXISTS","it","require_ie8_dom_define","__commonJSMin","exports","module","DESCRIPTORS","fails","createElement","require_object_get_own_property_descriptor","__commonJSMin","exports","DESCRIPTORS","call","propertyIsEnumerableModule","createPropertyDescriptor","toIndexedObject","toPropertyKey","hasOwn","IE8_DOM_DEFINE","$getOwnPropertyDescriptor","O","P","require_is_forced","__commonJSMin","exports","module","fails","isCallable","replacement","isForced","feature","detection","value","data","normalize","POLYFILL","NATIVE","string","require_function_bind_context","__commonJSMin","exports","module","uncurryThis","aCallable","NATIVE_BIND","bind","fn","that","require_v8_prototype_define_bug","__commonJSMin","exports","module","DESCRIPTORS","fails","require_an_object","__commonJSMin","exports","module","isObject","$String","$TypeError","argument","require_object_define_property","__commonJSMin","exports","DESCRIPTORS","IE8_DOM_DEFINE","V8_PROTOTYPE_DEFINE_BUG","anObject","toPropertyKey","$TypeError","$defineProperty","$getOwnPropertyDescriptor","ENUMERABLE","CONFIGURABLE","WRITABLE","O","P","Attributes","current","require_create_non_enumerable_property","__commonJSMin","exports","module","DESCRIPTORS","definePropertyModule","createPropertyDescriptor","object","key","value","require_export","__commonJSMin","exports","module","global","apply","uncurryThis","isCallable","getOwnPropertyDescriptor","isForced","path","bind","createNonEnumerableProperty","hasOwn","wrapConstructor","NativeConstructor","Wrapper","a","b","c","options","source","TARGET","GLOBAL","STATIC","PROTO","nativeSource","target","targetPrototype","FORCED","USE_NATIVE","VIRTUAL_PROTOTYPE","key","sourceProperty","targetProperty","nativeProperty","resultProperty","descriptor","require_math_trunc","__commonJSMin","exports","module","ceil","floor","x","n","require_to_integer_or_infinity","__commonJSMin","exports","module","trunc","argument","number","require_to_absolute_index","__commonJSMin","exports","module","toIntegerOrInfinity","max","min","index","length","integer","require_to_length","__commonJSMin","exports","module","toIntegerOrInfinity","min","argument","len","require_length_of_array_like","__commonJSMin","exports","module","toLength","obj","require_array_includes","__commonJSMin","exports","module","toIndexedObject","toAbsoluteIndex","lengthOfArrayLike","createMethod","IS_INCLUDES","$this","el","fromIndex","O","length","index","value","require_hidden_keys","__commonJSMin","exports","module","require_object_keys_internal","__commonJSMin","exports","module","uncurryThis","hasOwn","toIndexedObject","indexOf","hiddenKeys","push","object","names","O","i","result","key","require_enum_bug_keys","__commonJSMin","exports","module","require_object_keys","__commonJSMin","exports","module","internalObjectKeys","enumBugKeys","O","require_object_define_properties","__commonJSMin","exports","DESCRIPTORS","V8_PROTOTYPE_DEFINE_BUG","definePropertyModule","anObject","toIndexedObject","objectKeys","O","Properties","props","keys","length","index","key","require_html","__commonJSMin","exports","module","getBuiltIn","require_shared_key","__commonJSMin","exports","module","shared","uid","keys","key","require_object_create","__commonJSMin","exports","module","anObject","definePropertiesModule","enumBugKeys","hiddenKeys","html","documentCreateElement","sharedKey","GT","LT","PROTOTYPE","SCRIPT","IE_PROTO","EmptyConstructor","scriptTag","content","NullProtoObjectViaActiveX","activeXDocument","temp","NullProtoObjectViaIFrame","iframe","JS","iframeDocument","NullProtoObject","length","O","Properties","result","require_es_object_create","__commonJSMin","$","DESCRIPTORS","create","require_create","__commonJSMin","exports","module","path","Object","P","D","require_create","__commonJSMin","exports","module","parent","require_create","__commonJSMin","exports","module","injectMeta","name","content","document","metaElement","createElement","setAttribute","head","appendChild","error","console","concat","import_botframework_webchat_component","import_react","EMOJI_REGEX","store","getGlobalConfig","config2","store","store2","getGlobalMessage","lang","store2","store3","getSchemaMessage","lang","store3","store4","getSpecificMessage","reference","lang","store4","_stringify","input","type","_addIssue","context","label","dataset","config2","other","expected","received","issue","isSchema","message","getSpecificMessage","getSchemaMessage","getGlobalMessage","array","item","message","dataset","config2","input","key","value2","itemDataset","pathItem","issue","_addIssue","literal","literal_","message","_stringify","dataset","config2","_addIssue","object","entries","message","dataset","config2","input","key","value2","valueDataset","pathItem","issue","_addIssue","string","message","dataset","config2","_addIssue","safeParse","schema","input","config2","dataset","getGlobalConfig","messageEntity","object","literal","array","string","isPreChatMessageActivity","activity","entity","safeParse","import_botframework_webchat_component","import_react","injectedStyles","injectStyles","style","import_react","useStyles","styles","baseClassName","resultClassName","useStyles_default","PreChatMessageActivity_default","pre-chat-message-activity","pre-chat-message-activity__body","pre-chat-message-activity__toolbar","import_classnames","import_react","import_botframework_webchat_component","import_classnames","import_react","import_react","useRefFrom","value","ref","useRef","readOnlyRef","useMemo","_Object$create","current","get","testIds","testIds_default","import_classnames","import_react","MonochromeImageMasker_default","pre-chat-message-activity__monochrome-image-masker","MonochromeImageMasker","className","src","classNames","useStyles_default","MonochromeImageMasker_default","style","React","cx","StarterPromptsCardAction_default","pre-chat-message-activity__card-action-box","pre-chat-message-activity__card-action-image","pre-chat-message-activity__card-action-subtitle","pre-chat-message-activity__card-action-title","useFocus","useRenderMarkdownAsHTML","useSendBoxValue","StarterPromptAction","className","messageBackAction","_","setSendBoxValue","classNames","useStyles_default","StarterPromptsCardAction_default","focus","inputTextRef","useRefFrom","renderMarkdownAsHTML","subtitleHTML","handleClick","React","cx","testIds_default","MonochromeImageMasker_default","StarterPromptsToolbar_default","pre-chat-message-activity__card-action-toolbar","webchat-container","pre-chat-message-activity__card-action-toolbar-grid","StarterPrompts","cardActions","className","classNames","useStyles_default","StarterPromptsToolbar_default","React","cx","card","cardAction","StarterPromptsCardAction_default","useRenderMarkdownAsHTML","PreChatMessageActivity","activity","classNames","useStyles_default","PreChatMessageActivity_default","renderMarkdownAsHTML","html","React","StarterPromptsToolbar_default","import_botframework_webchat_component","import_classnames","import_react","import_react","AddDocumentIcon","props","React","AddDocumentIcon_default","import_react","AttachmentIcon","props","React","AttachmentIcon_default","import_react","InfoSmallIcon","props","React","InfoSmallIcon_default","import_react","SendIcon","props","React","SendIcon_default","import_react","TelephoneKeypadIcon","props","React","TelephoneKeypadIcon_default","import_botframework_webchat_component","import_classnames","import_react","DropZone_default","sendbox__attachment-drop-zone","sendbox__attachment-drop-zone--droppable","sendbox__attachment-drop-zone-icon","useLocalizer","handleDragOver","event","isFilesTransferEvent","type","isDescendantOf","target","ancestor","current","DropZone","props","dropZoneState","setDropZoneState","classNames","useStyles_default","DropZone_default","dropZoneRef","localize","onFilesAddedRef","useRefFrom","entranceCounter","handleDragEnter","handleDragLeave","handleDrop","React","cx","testIds_default","AddDocumentIcon_default","import_botframework_webchat_component","import_classnames","import_react","computeSuggestedActionText","cardAction","title","type","value","import_react","RovingFocusContext","RovingFocusProvider","props","activeItemIndexRef","itemRefsRef","updateItemTabIndex","current","index","setActiveItemIndex","valueOrFunction","nextActiveItemIndex","ref","handleFocus","event","target","handleSetNextActive","key","currentIndex","isUnidirectional","isVerticalMove","isHorizontalMove","isForwardMove","direction","itemIndices","_","nextIndex","handleKeyDown","itemEffector","value","React","useRovingFocusItemRef","itemIndex","rovingFocus_default","import_botframework_webchat_component","import_classnames","import_react","SuggestedAction_default","suggested-action","suggested-action__image","import_react","preventDefaultHandler","event","AccessibleButton","ariaHidden","children","disabled","onClick","tabIndex","props","forwardedRef","targetRef","React","AccessibleButton_default","useDisabled","useFocus","usePerformCardAction","useScrollToEnd","useStyleSet","useSuggestedActions","SuggestedAction","buttonText","className","displayText","image","imageAlt","itemIndex","text","type","value","_","setSuggestedActions","suggestedActionStyleSet","disabled","focus","focusRef","useRovingFocusItemRef","performCardAction","classNames","useStyles_default","SuggestedAction_default","scrollToEnd","handleClick","target","React","AccessibleButton_default","cx","SuggestedActions_default","suggested-actions","suggested-actions--flow","suggested-actions--stacked","useFocus","useLocalizer","useStyleOptions","useStyleSet","useSuggestedActions","SuggestedActionStackedOrFlowContainer","props","suggestedActionLayout","suggestedActionsStyleSet","classNames","useStyles_default","SuggestedActions_default","React","cx","SuggestedActions","localize","suggestedActions","_","activity","focus","handleEscapeKey","children","isPreChatMessageActivity","cardAction","index","displayText","image","imageAltText","text","type","value","SuggestedAction_default","computeSuggestedActionText","rovingFocus_default","import_react","import_react","Context","Context_default","Provider","children","shown","setShown","context","React","Context_default","Provider_default","import_react","import_botframework_webchat_component","import_classnames","import_react","import_react","Button_default","telephone-keypad__button","telephone-keypad__button__ruby","telephone-keypad__button__text","telephone-keypad--horizontal","Button","button","dataTestId","onClick","ruby","ref","classNames","useStyles_default","Button_default","onClickRef","useRefFrom","handleClick","React","import_react","useShown","setShown","shown","Context_default","TelephoneKeypad_default","telephone-keypad","telephone-keypad__box","telephone-keypad__info-message","telephone-keypad__info-message-link","LocalizedString","Orientation","children","isHorizontal","classNames","useStyles_default","TelephoneKeypad_default","React","TelephoneKeypad","autoFocus","className","onButtonClick","autoFocusRef","useRefFrom","firstButtonRef","onButtonClickRef","setShown","useShown","handleButton1Click","handleButton2Click","handleButton3Click","handleButton4Click","handleButton5Click","handleButton6Click","handleButton7Click","handleButton8Click","handleButton9Click","handleButton0Click","handleButtonStarClick","handleButtonPoundClick","handleKeyDown","event","cx","Button_default","testIds_default","InfoSmallIcon_default","TelephoneKeypadSurrogate","props","useShown","React","TelephoneKeypad_default","Surrogate_default","import_botframework_webchat_component","import_react","import_classnames","import_react","Toolbar_default","sendbox__toolbar","sendbox__toolbar-button","sendbox__toolbar-button--selected","sendbox__toolbar-separator","preventDefaultHandler","event","ToolbarButton","props","classNames","useStyles_default","Toolbar_default","React","cx","Toolbar","ToolbarSeparator","AddAttachmentButton_default","sendbox__add-attachment","sendbox__add-attachment-input","useLocalizer","useStyleOptions","AddAttachmentButton","props","inputRef","classNames","useStyles_default","AddAttachmentButton_default","localize","uploadAccept","uploadMultiple","onFilesAddedRef","useRefFrom","handleClick","handleFileChange","files","React","ToolbarButton","testIds_default","AttachmentIcon_default","import_botframework_webchat_component","import_react","import_classnames","Attachments_default","sendbox__attachment","useLocalizer","attachmentsPluralStringIds","Attachments","attachments","className","classNames","useStyles_default","Attachments_default","localizeWithPlural","React","cx","import_react","ErrorMessage_default","sendbox__error-message","ErrorMessage","props","classNames","useStyles_default","ErrorMessage_default","React","import_botframework_webchat_component","import_react","useConnectivityStatus","useLocalizer","useSubmitError","attachments","message","connectivityStatus","localize","submitErrorRef","useRefFrom","errorMessageStringMap","useSubmitError_default","import_react","import_botframework_webchat_component","useScrollDown","useScrollUp","useTranscriptNavigation","scrollDown","scrollUp","event","ctrlKey","metaKey","shiftKey","handled","import_react","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","import_react","import_botframework_webchat_component","useLocalizer","TelephoneKeypadToolbarButton","telephoneKeypadShown","setTelephoneKeypadShown","useShown","localize","handleClick","shown","React","ToolbarButton","testIds_default","TelephoneKeypadIcon_default","TelephoneKeypadToolbarButton_default","import_classnames","import_react","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","props","ref","classNames","useStyles_default","TextArea_default","handleKeyDown","event","React","cx","useFocus","useLocalizer","useMakeThumbnail","useRegisterFocusSendBox","useSendBoxAttachments","useSendBoxValue","useSendMessage","useStyleOptions","SendBox","props","inputRef","localMessage","setLocalMessage","globalMessage","setGlobalMessage","message","setMessage","attachments","setAttachments","hideTelephoneKeypadButton","hideUploadButton","maxMessageLength","isMessageLengthExceeded","classNames","useStyles_default","SendBox_default","localize","sendMessage","makeThumbnail","errorMessageId","useUniqueId","errorRef","errorMessage","useSubmitError_default","telephoneKeypadShown","useShown","setFocus","noKeyboard","waitUntil","previousReadOnly","resolve","attachmentsRef","useRefFrom","messageRef","handleSendBoxClick","event","handleMessageChange","handleAddFiles","inputFiles","newAttachments","file","thumbnailURL","handleFormSubmit","handleTelephoneKeypadButtonClick","dtmf","handleTranscriptNavigation","useTranscriptNavigation","aria","React","cx","SuggestedActions_default","TextArea_default","testIds_default","Surrogate_default","Attachments_default","Toolbar","TelephoneKeypadToolbarButton_default","AddAttachmentButton_default","ToolbarSeparator","ToolbarButton","SendIcon_default","DropZone_default","ErrorMessage_default","PrimarySendBox","import_react","import_classnames","Theme_default","theme","rootClassName","Theme","props","classNames","useStyles_default","Theme_default","React","cx","ThemeProvider","activityMiddleware","next","args","activity","isPreChatMessageActivity","React","PreChatMessageActivity_default","sendBoxMiddleware","PrimarySendBox","FluentThemeProvider","children","Theme","Provider_default","FluentThemeProvider_default","injectMeta","injectStyles","FluentThemeProvider_default","testIds_default"]}