botframework-webchat-component 4.19.0 → 4.19.1-main.20260529.6bcfcee

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 (84) hide show
  1. package/dist/_dtsroll-chunks/CwOuXmoL-botframework-webchat-styles.react.d.ts +68 -0
  2. package/dist/botframework-webchat-component.component.d.mts +1 -1
  3. package/dist/botframework-webchat-component.component.d.ts +1 -1
  4. package/dist/botframework-webchat-component.component.js +1 -1
  5. package/dist/botframework-webchat-component.component.mjs +1 -1
  6. package/dist/botframework-webchat-component.d.mts +1 -3
  7. package/dist/botframework-webchat-component.d.ts +1 -3
  8. package/dist/botframework-webchat-component.decorator.js +1 -1
  9. package/dist/botframework-webchat-component.decorator.js.map +1 -1
  10. package/dist/botframework-webchat-component.decorator.mjs +1 -1
  11. package/dist/botframework-webchat-component.decorator.mjs.map +1 -1
  12. package/dist/botframework-webchat-component.hook.js +1 -1
  13. package/dist/botframework-webchat-component.hook.mjs +1 -1
  14. package/dist/botframework-webchat-component.internal.d.mts +2 -6
  15. package/dist/botframework-webchat-component.internal.d.ts +2 -6
  16. package/dist/botframework-webchat-component.internal.js +1 -1
  17. package/dist/botframework-webchat-component.internal.js.map +1 -1
  18. package/dist/botframework-webchat-component.internal.mjs +1 -1
  19. package/dist/botframework-webchat-component.js +1 -1
  20. package/dist/botframework-webchat-component.js.map +1 -1
  21. package/dist/botframework-webchat-component.mjs +1 -1
  22. package/dist/botframework-webchat-component.mjs.map +1 -1
  23. package/dist/chunk-4EA5WZBJ.mjs +80 -0
  24. package/dist/chunk-4EA5WZBJ.mjs.map +1 -0
  25. package/dist/{chunk-H5YR7OLF.js → chunk-B2XHGOQH.js} +2 -2
  26. package/dist/{chunk-H5YR7OLF.js.map → chunk-B2XHGOQH.js.map} +1 -1
  27. package/dist/chunk-C2RHHZZQ.mjs +2 -0
  28. package/dist/chunk-C2RHHZZQ.mjs.map +1 -0
  29. package/dist/{chunk-TYPS3H4I.mjs → chunk-FIPA3BLZ.mjs} +2 -2
  30. package/dist/{chunk-TYPS3H4I.mjs.map → chunk-FIPA3BLZ.mjs.map} +1 -1
  31. package/dist/{chunk-LVVCSDZ4.mjs → chunk-HWDSXHRJ.mjs} +2 -2
  32. package/dist/chunk-JCX7GSY7.js +2 -0
  33. package/dist/{chunk-2R7BJ63Z.js.map → chunk-JCX7GSY7.js.map} +1 -1
  34. package/dist/{chunk-U6OWCHTQ.js → chunk-K4QNZHM5.js} +2 -2
  35. package/dist/chunk-K4QNZHM5.js.map +1 -0
  36. package/dist/{chunk-MOJMHOVH.js → chunk-OJOV52AD.js} +2 -2
  37. package/dist/{chunk-MOJMHOVH.js.map → chunk-OJOV52AD.js.map} +1 -1
  38. package/dist/{chunk-GTOP3WPD.mjs → chunk-WPWJFSZC.mjs} +2 -2
  39. package/dist/chunk-WPWJFSZC.mjs.map +1 -0
  40. package/dist/chunk-ZUKHLDZN.js +80 -0
  41. package/dist/chunk-ZUKHLDZN.js.map +1 -0
  42. package/dist/{component-BtSxgJS5.d.mts → component-BeCWAilk.d.mts} +34 -43
  43. package/dist/{component-Fyy8iCRE.d.ts → component-BtDQyqSP.d.ts} +34 -43
  44. package/dist/metafile-cjs.json +1 -1
  45. package/dist/metafile-esm.json +1 -1
  46. package/package.json +12 -14
  47. package/src/ActivityStatus/SendStatus/private/SendFailedRetry.tsx +31 -0
  48. package/src/BasicToast.js +4 -5
  49. package/src/BasicToaster.js +2 -3
  50. package/src/Composer.tsx +0 -20
  51. package/src/Utils/InlineMarkdown.tsx +121 -0
  52. package/src/Utils/LocalizedString.tsx +123 -124
  53. package/src/Utils/addTargetBlankToHyperlinks.spec.ts +52 -0
  54. package/src/Utils/addTargetBlankToHyperlinks.ts +14 -0
  55. package/src/boot/internal.ts +7 -2
  56. package/src/hooks/internal/WebChatUIContext.ts +0 -2
  57. package/src/hooks/useRenderMarkdownAsHTML.ts +5 -3
  58. package/src/hooks/useStreamingMarkdownWithDefinitions.ts +2 -2
  59. package/src/private/renderMarkdownInline.ts +19 -0
  60. package/src/providers/CustomElements/customElements/CodeBlock.ts +2 -2
  61. package/dist/_dtsroll-chunks/Cha1SOtx-botframework-webchat-styles.react.d.ts +0 -38
  62. package/dist/chunk-2R7BJ63Z.js +0 -2
  63. package/dist/chunk-A4NDFSZM.mjs +0 -77
  64. package/dist/chunk-A4NDFSZM.mjs.map +0 -1
  65. package/dist/chunk-CNTMOACS.mjs +0 -2
  66. package/dist/chunk-CNTMOACS.mjs.map +0 -1
  67. package/dist/chunk-GTOP3WPD.mjs.map +0 -1
  68. package/dist/chunk-U6OWCHTQ.js.map +0 -1
  69. package/dist/chunk-VDF6GQAL.js +0 -77
  70. package/dist/chunk-VDF6GQAL.js.map +0 -1
  71. package/src/ActivityStatus/SendStatus/private/SendFailedRetry.js +0 -28
  72. package/src/Utils/InlineMarkdown.js +0 -154
  73. package/src/Utils/addTargetBlankToHyperlinksMarkdown.js +0 -28
  74. package/src/Utils/addTargetBlankToHyperlinksMarkdown.spec.js +0 -45
  75. package/src/Utils/betterLinks.ts +0 -157
  76. package/src/Utils/parseDocumentFragmentFromString.ts +0 -9
  77. package/src/Utils/serializeDocumentFragmentIntoString.ts +0 -3
  78. package/src/Utils/updateMarkdownAttrs.js +0 -10
  79. package/src/Utils/updateMarkdownAttrs.spec.js +0 -71
  80. package/src/Utils/walkMarkdownTokens.js +0 -15
  81. package/src/Utils/walkMarkdownTokens.spec.js +0 -18
  82. package/src/hooks/internal/useInternalMarkdownIt.js +0 -7
  83. package/src/hooks/internal/useInternalRenderMarkdownInline.js +0 -9
  84. /package/dist/{chunk-LVVCSDZ4.mjs.map → chunk-HWDSXHRJ.mjs.map} +0 -0
@@ -1,2 +1,2 @@
1
- import{A as l,B as A,C as m,D as v,E as p,L as T,R as B,S as g,ba as k,c as e,ca as R,ea as D,g as t,i as s,k as i,m as u,o,p as r,s as n,t as a,u as c,x as d,y,z as S}from"./chunk-GTOP3WPD.mjs";import{a as b}from"./chunk-I6DJ35K3.mjs";var x={};b(x,{useActiveTyping:()=>F,useActivities:()=>f,useActivityKeys:()=>M,useActivityKeysByRead:()=>C,useAvatarForBot:()=>G,useAvatarForUser:()=>I,useBuildRenderActivityCallback:()=>K,useByteFormatter:()=>h,useCapabilities:()=>V,useConnectivityStatus:()=>E,useCreateActivityRenderer:()=>L,useCreateActivityStatusRenderer:()=>P,useCreateAttachmentForScreenReaderRenderer:()=>w,useCreateAvatarRenderer:()=>N,useCreateScrollToEndButtonRenderer:()=>U,useDateFormatter:()=>H,useDebouncedNotifications:()=>O,useDictateAbortable:()=>u,useDictateInterims:()=>Z,useDictateState:()=>z,useDirection:()=>W,useDisabled:()=>j,useDismissNotification:()=>q,useEmitTypingIndicator:()=>J,useFileDropZone:()=>T,useFocus:()=>r,useGetActivitiesByKey:()=>Q,useGetActivityByKey:()=>X,useGetHasAcknowledgedByActivityKey:()=>Y,useGetKeyByActivity:()=>_,useGetKeyByActivityId:()=>$,useGetSendTimeoutForActivity:()=>ee,useGrammars:()=>te,useGroupActivities:()=>se,useGroupActivitiesByName:()=>ie,useGroupTimestamp:()=>ue,useLanguage:()=>oe,useLastAcknowledgedActivityKey:()=>re,useLastReadActivityKey:()=>ne,useLocalizer:()=>ae,useMakeThumbnail:()=>n,useMarkActivityAsSpoken:()=>ce,useMarkActivityKeyAsRead:()=>de,useMarkAllAsAcknowledged:()=>ye,useMicrophoneButtonClick:()=>B,useMicrophoneButtonDisabled:()=>g,useNotifications:()=>Se,useObserveScrollPosition:()=>a,useObserveTranscriptFocus:()=>c,usePerformCardAction:()=>le,usePonyfill:()=>Ae,usePostActivity:()=>me,useReferenceGrammarID:()=>ve,useRegisterFocusSendBox:()=>o,useRelativeTimeFormatter:()=>pe,useRenderAttachment:()=>Te,useRenderMarkdownAsHTML:()=>s,useRenderToast:()=>Be,useRenderTypingIndicator:()=>ge,useScrollDown:()=>d,useScrollTo:()=>y,useScrollToEnd:()=>S,useScrollUp:()=>l,useSendBoxAttachments:()=>ke,useSendBoxSpeechInterimsVisible:()=>D,useSendBoxValue:()=>Re,useSendEvent:()=>De,useSendFiles:()=>A,useSendMessage:()=>m,useSendMessageBack:()=>be,useSendPostBack:()=>xe,useSendStatusByActivityKey:()=>Fe,useSendTimeoutForActivity:()=>fe,useSendTypingIndicator:()=>Me,useSetNotification:()=>Ce,useShouldReduceMotion:()=>i,useShouldSpeakIncomingActivity:()=>Ge,useStartDictate:()=>Ie,useStartVoice:()=>Ke,useStopDictate:()=>he,useStopVoice:()=>Ve,useStyleOptions:()=>Ee,useStyleSet:()=>e,useSubmitSendBox:()=>Le,useSuggestedActions:()=>Pe,useSuggestedActionsHooks:()=>we,useTextBoxSubmit:()=>k,useTextBoxValue:()=>R,useTimeoutForSend:()=>Ne,useTrackDimension:()=>Ue,useTrackEvent:()=>He,useTrackException:()=>Oe,useTrackTiming:()=>Ze,useTransformHTMLContent:()=>t,useTypingIndicatorVisible:()=>p,useUIState:()=>ze,useUserID:()=>We,useUsername:()=>je,useVoiceRecordingMuted:()=>qe,useVoiceSelector:()=>Je,useVoiceState:()=>Qe,useWebSpeechPonyfill:()=>v});import{useActiveTyping as F,useActivities as f,useActivityKeys as M,useActivityKeysByRead as C,useAvatarForBot as G,useAvatarForUser as I,useBuildRenderActivityCallback as K,useByteFormatter as h,useCapabilities as V,useConnectivityStatus as E,useCreateActivityRenderer as L,useCreateActivityStatusRenderer as P,useCreateAttachmentForScreenReaderRenderer as w,useCreateAvatarRenderer as N,useCreateScrollToEndButtonRenderer as U,useDateFormatter as H,useDebouncedNotifications as O,useDictateInterims as Z,useDictateState as z,useDirection as W,useDisabled as j,useDismissNotification as q,useEmitTypingIndicator as J,useGetActivitiesByKey as Q,useGetActivityByKey as X,useGetHasAcknowledgedByActivityKey as Y,useGetKeyByActivity as _,useGetKeyByActivityId as $,useGetSendTimeoutForActivity as ee,useGrammars as te,useGroupActivities as se,useGroupActivitiesByName as ie,useGroupTimestamp as ue,useLanguage as oe,useLastAcknowledgedActivityKey as re,useLastReadActivityKey as ne,useLocalizer as ae,useMarkActivityAsSpoken as ce,useMarkActivityKeyAsRead as de,useMarkAllAsAcknowledged as ye,useNotifications as Se,usePerformCardAction as le,usePonyfill as Ae,usePostActivity as me,useReferenceGrammarID as ve,useRelativeTimeFormatter as pe,useRenderAttachment as Te,useRenderToast as Be,useRenderTypingIndicator as ge,useSendBoxAttachments as ke,useSendBoxValue as Re,useSendEvent as De,useSendMessageBack as be,useSendPostBack as xe,useSendStatusByActivityKey as Fe,useSendTimeoutForActivity as fe,useSendTypingIndicator as Me,useSetNotification as Ce,useShouldSpeakIncomingActivity as Ge,useStartDictate as Ie,useStartVoice as Ke,useStopDictate as he,useStopVoice as Ve,useStyleOptions as Ee,useSubmitSendBox as Le,useSuggestedActions as Pe,useSuggestedActionsHooks as we,useTimeoutForSend as Ne,useTrackDimension as Ue,useTrackEvent as He,useTrackException as Oe,useTrackTiming as Ze,useUIState as ze,useUserID as We,useUsername as je,useVoiceRecordingMuted as qe,useVoiceSelector as Je,useVoiceState as Qe}from"botframework-webchat-api/hook.js";export{x as a,F as b,f as c,M as d,C as e,G as f,I as g,K as h,h as i,V as j,E as k,L as l,P as m,w as n,N as o,U as p,H as q,O as r,Z as s,z as t,W as u,j as v,q as w,J as x,Q as y,X as z,Y as A,_ as B,$ as C,ee as D,te as E,se as F,ie as G,ue as H,oe as I,re as J,ne as K,ae as L,ce as M,de as N,ye as O,Se as P,le as Q,Ae as R,me as S,ve as T,pe as U,Te as V,Be as W,ge as X,ke as Y,Re as Z,De as _,be as $,xe as aa,Fe as ba,fe as ca,Me as da,Ce as ea,Ge as fa,Ie as ga,Ke as ha,he as ia,Ve as ja,Ee as ka,Le as la,Pe as ma,we as na,Ne as oa,Ue as pa,He as qa,Oe as ra,Ze as sa,ze as ta,We as ua,je as va,qe as wa,Je as xa,Qe as ya};
2
- //# sourceMappingURL=chunk-LVVCSDZ4.mjs.map
1
+ import{A as l,B as A,C as m,D as v,E as p,L as T,R as B,S as g,ba as k,c as e,ca as R,ea as D,g as t,i as s,k as i,m as u,o,p as r,s as n,t as a,u as c,x as d,y,z as S}from"./chunk-WPWJFSZC.mjs";import{a as b}from"./chunk-I6DJ35K3.mjs";var x={};b(x,{useActiveTyping:()=>F,useActivities:()=>f,useActivityKeys:()=>M,useActivityKeysByRead:()=>C,useAvatarForBot:()=>G,useAvatarForUser:()=>I,useBuildRenderActivityCallback:()=>K,useByteFormatter:()=>h,useCapabilities:()=>V,useConnectivityStatus:()=>E,useCreateActivityRenderer:()=>L,useCreateActivityStatusRenderer:()=>P,useCreateAttachmentForScreenReaderRenderer:()=>w,useCreateAvatarRenderer:()=>N,useCreateScrollToEndButtonRenderer:()=>U,useDateFormatter:()=>H,useDebouncedNotifications:()=>O,useDictateAbortable:()=>u,useDictateInterims:()=>Z,useDictateState:()=>z,useDirection:()=>W,useDisabled:()=>j,useDismissNotification:()=>q,useEmitTypingIndicator:()=>J,useFileDropZone:()=>T,useFocus:()=>r,useGetActivitiesByKey:()=>Q,useGetActivityByKey:()=>X,useGetHasAcknowledgedByActivityKey:()=>Y,useGetKeyByActivity:()=>_,useGetKeyByActivityId:()=>$,useGetSendTimeoutForActivity:()=>ee,useGrammars:()=>te,useGroupActivities:()=>se,useGroupActivitiesByName:()=>ie,useGroupTimestamp:()=>ue,useLanguage:()=>oe,useLastAcknowledgedActivityKey:()=>re,useLastReadActivityKey:()=>ne,useLocalizer:()=>ae,useMakeThumbnail:()=>n,useMarkActivityAsSpoken:()=>ce,useMarkActivityKeyAsRead:()=>de,useMarkAllAsAcknowledged:()=>ye,useMicrophoneButtonClick:()=>B,useMicrophoneButtonDisabled:()=>g,useNotifications:()=>Se,useObserveScrollPosition:()=>a,useObserveTranscriptFocus:()=>c,usePerformCardAction:()=>le,usePonyfill:()=>Ae,usePostActivity:()=>me,useReferenceGrammarID:()=>ve,useRegisterFocusSendBox:()=>o,useRelativeTimeFormatter:()=>pe,useRenderAttachment:()=>Te,useRenderMarkdownAsHTML:()=>s,useRenderToast:()=>Be,useRenderTypingIndicator:()=>ge,useScrollDown:()=>d,useScrollTo:()=>y,useScrollToEnd:()=>S,useScrollUp:()=>l,useSendBoxAttachments:()=>ke,useSendBoxSpeechInterimsVisible:()=>D,useSendBoxValue:()=>Re,useSendEvent:()=>De,useSendFiles:()=>A,useSendMessage:()=>m,useSendMessageBack:()=>be,useSendPostBack:()=>xe,useSendStatusByActivityKey:()=>Fe,useSendTimeoutForActivity:()=>fe,useSendTypingIndicator:()=>Me,useSetNotification:()=>Ce,useShouldReduceMotion:()=>i,useShouldSpeakIncomingActivity:()=>Ge,useStartDictate:()=>Ie,useStartVoice:()=>Ke,useStopDictate:()=>he,useStopVoice:()=>Ve,useStyleOptions:()=>Ee,useStyleSet:()=>e,useSubmitSendBox:()=>Le,useSuggestedActions:()=>Pe,useSuggestedActionsHooks:()=>we,useTextBoxSubmit:()=>k,useTextBoxValue:()=>R,useTimeoutForSend:()=>Ne,useTrackDimension:()=>Ue,useTrackEvent:()=>He,useTrackException:()=>Oe,useTrackTiming:()=>Ze,useTransformHTMLContent:()=>t,useTypingIndicatorVisible:()=>p,useUIState:()=>ze,useUserID:()=>We,useUsername:()=>je,useVoiceRecordingMuted:()=>qe,useVoiceSelector:()=>Je,useVoiceState:()=>Qe,useWebSpeechPonyfill:()=>v});import{useActiveTyping as F,useActivities as f,useActivityKeys as M,useActivityKeysByRead as C,useAvatarForBot as G,useAvatarForUser as I,useBuildRenderActivityCallback as K,useByteFormatter as h,useCapabilities as V,useConnectivityStatus as E,useCreateActivityRenderer as L,useCreateActivityStatusRenderer as P,useCreateAttachmentForScreenReaderRenderer as w,useCreateAvatarRenderer as N,useCreateScrollToEndButtonRenderer as U,useDateFormatter as H,useDebouncedNotifications as O,useDictateInterims as Z,useDictateState as z,useDirection as W,useDisabled as j,useDismissNotification as q,useEmitTypingIndicator as J,useGetActivitiesByKey as Q,useGetActivityByKey as X,useGetHasAcknowledgedByActivityKey as Y,useGetKeyByActivity as _,useGetKeyByActivityId as $,useGetSendTimeoutForActivity as ee,useGrammars as te,useGroupActivities as se,useGroupActivitiesByName as ie,useGroupTimestamp as ue,useLanguage as oe,useLastAcknowledgedActivityKey as re,useLastReadActivityKey as ne,useLocalizer as ae,useMarkActivityAsSpoken as ce,useMarkActivityKeyAsRead as de,useMarkAllAsAcknowledged as ye,useNotifications as Se,usePerformCardAction as le,usePonyfill as Ae,usePostActivity as me,useReferenceGrammarID as ve,useRelativeTimeFormatter as pe,useRenderAttachment as Te,useRenderToast as Be,useRenderTypingIndicator as ge,useSendBoxAttachments as ke,useSendBoxValue as Re,useSendEvent as De,useSendMessageBack as be,useSendPostBack as xe,useSendStatusByActivityKey as Fe,useSendTimeoutForActivity as fe,useSendTypingIndicator as Me,useSetNotification as Ce,useShouldSpeakIncomingActivity as Ge,useStartDictate as Ie,useStartVoice as Ke,useStopDictate as he,useStopVoice as Ve,useStyleOptions as Ee,useSubmitSendBox as Le,useSuggestedActions as Pe,useSuggestedActionsHooks as we,useTimeoutForSend as Ne,useTrackDimension as Ue,useTrackEvent as He,useTrackException as Oe,useTrackTiming as Ze,useUIState as ze,useUserID as We,useUsername as je,useVoiceRecordingMuted as qe,useVoiceSelector as Je,useVoiceState as Qe}from"botframework-webchat-api/hook.js";export{x as a,F as b,f as c,M as d,C as e,G as f,I as g,K as h,h as i,V as j,E as k,L as l,P as m,w as n,N as o,U as p,H as q,O as r,Z as s,z as t,W as u,j as v,q as w,J as x,Q as y,X as z,Y as A,_ as B,$ as C,ee as D,te as E,se as F,ie as G,ue as H,oe as I,re as J,ne as K,ae as L,ce as M,de as N,ye as O,Se as P,le as Q,Ae as R,me as S,ve as T,pe as U,Te as V,Be as W,ge as X,ke as Y,Re as Z,De as _,be as $,xe as aa,Fe as ba,fe as ca,Me as da,Ce as ea,Ge as fa,Ie as ga,Ke as ha,he as ia,Ve as ja,Ee as ka,Le as la,Pe as ma,we as na,Ne as oa,Ue as pa,He as qa,Oe as ra,Ze as sa,ze as ta,We as ua,je as va,qe as wa,Je as xa,Qe as ya};
2
+ //# sourceMappingURL=chunk-HWDSXHRJ.mjs.map
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }var _chunkTMUNLKZWjs = require('./chunk-TMUNLKZW.js');var _classnames = require('classnames'); var _classnames2 = _interopRequireDefault(_classnames);var _valibot = require('valibot');var _react = require('react'); var _react2 = _interopRequireDefault(_react);function we(e,n){let t=Object.keys(e).reduce((i,l)=>{let[p,s]=l.split("--");if(!s)return i;let d=p;if(!n.includes(d))return i;let m=i.get(d);return m||(m=new Set,i.set(d,m)),m.add(s),i},new Map),a=Array.from(t.entries()).reduce((i,[l,p])=>{let s=Array.from(p);return s.length&&(i[l]=_valibot.optional.call(void 0, _valibot.picklist.call(void 0, s))),i},{}),o=_valibot.object.call(void 0, a);return _valibot.pipe.call(void 0, o,_valibot.readonly.call(void 0, ))}function R(e,n,t){let a=we(e,n);return{component:(i=>{let{className:l,...p}=i,s=_chunkTMUNLKZWjs.h.call(void 0, a,i),d=_chunkTMUNLKZWjs.k.call(void 0, e),m=Object.entries(s).map(([w,h])=>d[`${w}--${h}`]);return _react2.default.createElement(t,{className:_classnames2.default.call(void 0, l,m),...p})}),modifierPropsSchema:a}}function ge(e,n,t){let a=e.getAttribute(t);a===null||n.setAttribute(t,a)}var L=ge,M="\u200B";function*ve(e){let{length:n}=e;for(let t=0;t<n;t++)yield e.item(t)}var _e="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7";function y(e,n,t){var a;t?e.setAttribute(n,typeof t=="function"?t((a=e.getAttribute(n))!=null?a:void 0):t):t===!1&&e.removeAttribute(n)}function xe(e,n){var t,a;for(let o of[...ve(e.querySelectorAll("a"))]){let i=n((t=o.getAttribute("href"))!=null?t:void 0,o.textContent);if(!i)continue;let{ariaLabel:l,asButton:p,className:s,dataset:d,iconAlt:m,iconClassName:w,rel:h,target:f,title:_,wrapZeroWidthSpace:u}=i;if(y(o,"aria-label",l!=null?l:!1),y(o,"class",s!=null?s:!1),y(o,"title",_!=null?_:!1),w){let r=document.createElement("img");r.setAttribute("src",_e),r.setAttribute("alt",""),r.classList.add(w),m&&r.setAttribute("title",m),o.insertAdjacentElement("beforeend",r)}let g=o;if(p){let r=g=document.createElement("button");L(o,r,"aria-label"),L(o,r,"class"),L(o,r,"title"),r.setAttribute("type","button"),r.setAttribute("value",(a=o.getAttribute("href"))!=null?a:""),r.textContent=o.textContent,r.append(...o.children),o.replaceWith(r),u&&(r.insertAdjacentText("beforebegin",M),r.insertAdjacentText("afterend",M))}else y(o,"rel",h!=null?h:!1),y(o,"target",f!=null?f:!1),u&&(o.insertAdjacentText("beforebegin",M),o.insertAdjacentText("afterend",M));if(d)for(let[r,T]of Object.entries(d))r==="constructor"||r==="proto"||r==="prototype"||(g.dataset[r]=T)}return e}var vt=xe;function _t(e){let n=new DOMParser().parseFromString(e,"text/html"),t=n.createDocumentFragment();return t.append(...n.body.childNodes),t}function xt(e){return new XMLSerializer().serializeToString(e)}function yt(e){return e.trim().replace(/^<p\sxmlns="http:\/\/www.w3.org\/1999\/xhtml">/u,"").replace(/<\/p>$/u,"")}var _usereffrom = require('use-ref-from');var _botframeworkwebchatapi = require('botframework-webchat-api');function P(){let{markAllAsRendered:e}=v();_react.useEffect.call(void 0, e)}function I(){return v().staticElementEntriesState}var Me=_valibot.pipe.call(void 0, _valibot.object.call(void 0, {"aria-label":_valibot.optional.call(void 0, _valibot.string.call(void 0, )),"aria-live":_valibot.union.call(void 0, [_valibot.literal.call(void 0, "assertive"),_valibot.literal.call(void 0, "polite")]),"aria-roledescription":_valibot.optional.call(void 0, _valibot.string.call(void 0, )),className:_valibot.optional.call(void 0, _valibot.string.call(void 0, )),role:_valibot.optional.call(void 0, _valibot.string.call(void 0, )),textElementClassName:_valibot.optional.call(void 0, _valibot.string.call(void 0, ))}),_valibot.readonly.call(void 0, ));function Ee(e){let{"aria-label":n,"aria-live":t,"aria-roledescription":a,className:o,role:i,textElementClassName:l}=_chunkTMUNLKZWjs.h.call(void 0, Me,e),[p]=I();return P(),_react2.default.createElement("div",{"aria-label":n,"aria-live":t,"aria-roledescription":a,className:o,role:i},p.map(({element:s,key:d})=>typeof s=="string"?_react2.default.createElement("div",{"aria-atomic":!0,className:l,key:d},s):_react2.default.createElement(_react.Fragment,{key:d},s)))}var D=Ee;var{usePonyfill:Ie}=_botframeworkwebchatapi.hooks,Ze="polite",je=1e3,Oe=({Provider:e})=>{let n=({"aria-label":t,"aria-live":a=Ze,"aria-roledescription":o,children:i,className:l,fadeAfter:p=je,role:s,textElementClassName:d})=>{let[{clearTimeout:m,setTimeout:w}]=Ie(),[h,f]=_react.useState.call(void 0, []),_=_usereffrom.useRefFrom.call(void 0, p),u=_react.useRef.call(void 0, ),g=_react.useRef.call(void 0, 1),r=_usereffrom.useRefFrom.call(void 0, h),T=_react.useCallback.call(void 0, ()=>{r.current.length&&(u.current&&m(u.current),u.current=w(()=>{r.current.length&&f([])},_.current))},[m,_,u,f,w,r]);_react.useEffect.call(void 0, ()=>()=>u.current&&m(u.current),[m,u]);let H=_react.useCallback.call(void 0, re=>{let ce=g.current;g.current=g.current+1,f(se=>[...se,{element:re,key:ce}])},[g,f]),z=_react.useMemo.call(void 0, ()=>Object.freeze([Object.freeze(h)]),[h]),ie=_react.useMemo.call(void 0, ()=>({markAllAsRendered:T,queueStaticElement:H,staticElementEntriesState:z}),[T,H,z]);return _react2.default.createElement(e,{value:ie},_react2.default.createElement(D,{"aria-label":t,"aria-live":a,"aria-roledescription":o,className:l,role:s,textElementClassName:d}),i)};return n.displayName="LiveRegionTwinComposer",_react.memo.call(void 0, n)},W=Oe;var j=_react.createContext.call(void 0, new Proxy({},{get(e,n){throw new Error(`botframework-webchat: LiveRegionTwinContext.${n} can only be used inside of <LiveRegionTwinComposer>.`)}})),Be=W(j),Ne= exports.j =Be;function v(){return _react.useContext.call(void 0, j)}function E(){return v().queueStaticElement}function G(e,n){let t=_usereffrom.useRefFrom.call(void 0, e),a=E();_react.useMemo.call(void 0, ()=>{let o=t==null?void 0:t.current();o&&a(o)},[...n,t,a])}var _createinstance = require('@emotion/css/create-instance'); var _createinstance2 = _interopRequireDefault(_createinstance);var _mathrandom = require('math-random'); var _mathrandom2 = _interopRequireDefault(_mathrandom);function O(){return _mathrandom2.default.call(void 0, ).toString(26).substr(2,5).replace(/\d/gu,e=>String.fromCharCode(e.charCodeAt(0)+65))}var S=[];function V(e,n){let t=_react.useMemo.call(void 0, ()=>{let a=S.find(({sheet:i})=>i.nonce===e&&i.container===n),o=a!=null?a:_createinstance2.default.call(void 0, {container:n,key:`webchat--css-${O()}`,nonce:e});return S.push(o),o},[n,e]);return _react.useEffect.call(void 0, ()=>()=>{var o;let a=S.lastIndexOf(t);if(~a&&S.splice(a,1),!S.includes(t)&&((o=t.sheet)!=null&&o.tags))for(let i of t.sheet.tags)i.remove()},[t]),t}var{useStyleOptions:Xe}=_botframeworkwebchatapi.hooks,Je=({Provider:e})=>({children:n,nonce:t})=>{let[{stylesRoot:a}]=Xe(),o=V(t,a),i=_react.useCallback.call(void 0, p=>o.css(p),[o]),l=_usereffrom.useRefFrom.call(void 0, i);return _react2.default.createElement(e,{value:l},i&&n)},X=Je;var J=_react.createContext.call(void 0, new Proxy(_react.createRef.call(void 0, ),{get(){throw new Error("StyleToEmotionObjectContext was used without StyleToEmotionObjectComposer")}}));function nt(){return _react.useContext.call(void 0, J).current}var Y=_react.memo.call(void 0, X(J));Y.displayName="StyleToEmotionObjectComposer";var c={"icon--view-code":"w61aa0a_icon--view-code","icon--chevron":"w61aa0a_icon--chevron","direction--rtl":"w61aa0a_direction--rtl","appearance--text":"w61aa0a_appearance--text","icon--copy":"w61aa0a_icon--copy","icon--thumb-up":"w61aa0a_icon--thumb-up","icon--attachment":"w61aa0a_icon--attachment","icon--thumb-up-filled":"w61aa0a_icon--thumb-up-filled","icon--microphone":"w61aa0a_icon--microphone","icon--attachment-checkmark":"w61aa0a_icon--attachment-checkmark","direction--follow":"w61aa0a_direction--follow","icon--unchecked-circle":"w61aa0a_icon--unchecked-circle","component-icon":"w61aa0a_component-icon","icon--copy-code":"w61aa0a_icon--copy-code","icon--download":"w61aa0a_icon--download","icon--checkmark-circle":"w61aa0a_icon--checkmark-circle","icon--send":"w61aa0a_icon--send","icon--thumb-down-filled":"w61aa0a_icon--thumb-down-filled","icon--thumb-down":"w61aa0a_icon--thumb-down","icon--dismiss":"w61aa0a_icon--dismiss","icon--copy-code-checkmark":"w61aa0a_icon--copy-code-checkmark"},B=c,yo=c["icon--view-code"];var bo=c["icon--chevron"];var Co=c["direction--rtl"];var So=c["appearance--text"];var To=c["icon--copy"];var ko=c["icon--thumb-up"];var Mo=c["icon--attachment"];var Eo=c["icon--thumb-up-filled"];var Ao=c["icon--microphone"];var Ro=c["icon--attachment-checkmark"];var Lo=c["direction--follow"];var Po=c["icon--unchecked-circle"];var Io=c["component-icon"];var Zo=c["icon--copy-code"];var jo=c["icon--download"];var Oo=c["icon--checkmark-circle"];var Vo=c["icon--send"];var Bo=c["icon--thumb-down-filled"];var No=c["icon--thumb-down"];var Ho=c["icon--dismiss"];var zo=c["icon--copy-code-checkmark"];var ne=_valibot.pipe.call(void 0, _valibot.object.call(void 0, {"aria-hidden":_valibot.optional.call(void 0, _valibot.literal.call(void 0, "true")),"aria-label":_valibot.optional.call(void 0, _valibot.string.call(void 0, )),className:_valibot.optional.call(void 0, _valibot.string.call(void 0, )),role:_valibot.optional.call(void 0, _valibot.string.call(void 0, ))}),_valibot.readonly.call(void 0, ));function st(e){let{className:n,"aria-hidden":t,"aria-label":a,role:o}=_chunkTMUNLKZWjs.h.call(void 0, ne,e),i=_chunkTMUNLKZWjs.k.call(void 0, B);return _react2.default.createElement("div",{"aria-hidden":t,"aria-label":a,className:_classnames2.default.call(void 0, i["component-icon"],n),role:o})}var{component:ae,modifierPropsSchema:lt}=R(B,["appearance","direction","icon"],st);ae.displayName="ComponentIcon";var mt=_valibot.pipe.call(void 0, _valibot.object.call(void 0, {...ne.entries,...lt.entries}),_valibot.readonly.call(void 0, )),pt= exports.e =_react.memo.call(void 0, ae);exports.a = nt; exports.b = Y; exports.c = R; exports.d = mt; exports.e = pt; exports.f = vt; exports.g = _t; exports.h = xt; exports.i = yt; exports.j = Ne; exports.k = E; exports.l = G;
2
+ //# sourceMappingURL=chunk-JCX7GSY7.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["/__w/1/s/BotFramework-WebChat/packages/component/dist/chunk-2R7BJ63Z.js","../src/Utils/createIconComponent.tsx"],"names":["createPropsSchema","styles","modifiers","props","acc","key","rawBase","modifier","base","modifierSet","schemaEntries","values","optional","picklist","schema","object","pipe","readonly","createIconComponent","BaseIcon","modifierPropsSchema","className","rest","validatedProps","o","classNames","St","classes","value"],"mappings":"AAAA,+NAA8C,gGCE/B,kCAWR,4EACmC,SA0BjCA,EAAAA,CAGPC,CAAAA,CAA2BC,CAAAA,CAA8D,CACzF,IAAMC,CAAAA,CAAQ,MAAA,CAAO,IAAA,CAAKF,CAAM,CAAA,CAAE,MAAA,CAAO,CAACG,CAAAA,CAAKC,CAAAA,CAAAA,EAAQ,CACrD,GAAM,CAACC,CAAAA,CAASC,CAAQ,CAAA,CAAIF,CAAAA,CAAI,KAAA,CAAM,IAAI,CAAA,CAE1C,EAAA,CAAI,CAACE,CAAAA,CACH,OAAOH,CAAAA,CAGT,IAAMI,CAAAA,CAAOF,CAAAA,CAEb,EAAA,CAAI,CAACJ,CAAAA,CAAU,QAAA,CAASM,CAAI,CAAA,CAC1B,OAAOJ,CAAAA,CAGT,IAAIK,CAAAA,CAAcL,CAAAA,CAAI,GAAA,CAAII,CAAI,CAAA,CAE9B,OAAKC,CAAAA,EAAAA,CACHA,CAAAA,CAAc,IAAI,GAAA,CAClBL,CAAAA,CAAI,GAAA,CAAII,CAAAA,CAAMC,CAAW,CAAA,CAAA,CAG3BA,CAAAA,CAAY,GAAA,CAAIF,CAAQ,CAAA,CAEjBH,CACT,CAAA,CAAG,IAAI,GAA8B,CAAA,CAE/BM,CAAAA,CAAgB,KAAA,CAAM,IAAA,CAAKP,CAAAA,CAAM,OAAA,CAAQ,CAAC,CAAA,CAAE,MAAA,CAChD,CAACC,CAAAA,CAAK,CAACI,CAAAA,CAAMC,CAAW,CAAA,CAAA,EAAM,CAC5B,IAAME,CAAAA,CAAS,KAAA,CAAM,IAAA,CAAKF,CAAW,CAAA,CAErC,OAAIE,CAAAA,CAAO,MAAA,EAAA,CAETP,CAAAA,CAAII,CAAI,CAAA,CAAII,+BAAAA,+BAASC,CAA4D,CAAC,CAAA,CAAA,CAG7ET,CACT,CAAA,CACA,CAAC,CACH,CAAA,CAEMU,CAAAA,CAASC,6BAAAA,CAAwE,CAAA,CAEvF,OAAOC,2BAAAA,CAAKF,CAAQG,+BAAAA,CAAU,CAChC,CAEe,SAARC,CAAAA,CAKLjB,CAAAA,CACAC,CAAAA,CACAiB,CAAAA,CASA,CAQA,IAAMC,CAAAA,CAAsBpB,EAAAA,CAAkBC,CAAAA,CAAQC,CAAS,CAAA,CAY/D,MAAO,CAAE,SAAA,CAAA,CAVUC,CAAAA,EAAS,CAC1B,GAAM,CAAE,SAAA,CAAAkB,CAAAA,CAAW,GAAGC,CAAK,CAAA,CAAInB,CAAAA,CACzBoB,CAAAA,CAAiBC,gCAAAA,CAAcJ,CAAqBjB,CAAK,CAAA,CACzDsB,CAAAA,CAAaC,gCAAAA,CAAgB,CAAA,CAE7BC,CAAAA,CAAU,MAAA,CAAO,OAAA,CAAQJ,CAAc,CAAA,CAAE,GAAA,CAAI,CAAC,CAAClB,CAAAA,CAAKuB,CAAK,CAAA,CAAA,EAAMH,CAAAA,CAAW,CAAA,EAAA","file":"/__w/1/s/BotFramework-WebChat/packages/component/dist/chunk-2R7BJ63Z.js","sourcesContent":[null,"import { useStyles } from '@msinternal/botframework-webchat-styles/react';\nimport { validateProps } from '@msinternal/botframework-webchat-react-valibot';\nimport cx from 'classnames';\nimport {\n object,\n optional,\n picklist,\n pipe,\n readonly,\n type BaseIssue,\n type BaseSchema,\n type OptionalSchema,\n type PicklistSchema\n} from 'valibot';\nimport React, { type ComponentType } from 'react';\n\ntype CSSModuleClasses = { readonly [key: string]: any };\n\ntype Prefixes<T> = T extends `${infer P}--${string}` ? P : never;\n\ntype SuffixesOf<Prefix extends string, T> = T extends `${Prefix}--${infer S}` ? S : never;\n\ntype ModifierMap<T> = {\n [P in Prefixes<keyof T>]?: SuffixesOf<P, keyof T>;\n};\n\ntype SafeModifierList<TCSSModuleClasses> = keyof ModifierMap<TCSSModuleClasses> extends never\n ? string\n : keyof ModifierMap<TCSSModuleClasses>;\n\ntype ModifierSchemaEntry = OptionalSchema<PicklistSchema<readonly [string, ...string[]], undefined>, undefined>;\n\nexport type IconModifierPropsSchema<TModifiers extends string> = BaseSchema<\n Partial<Record<TModifiers, string>>,\n Readonly<Partial<Record<TModifiers, string>>>,\n BaseIssue<unknown>\n> & {\n readonly entries: Partial<Record<TModifiers, ModifierSchemaEntry>>;\n};\n\nfunction createPropsSchema<\n const TCSSModuleClasses extends CSSModuleClasses,\n const TModifiers extends SafeModifierList<TCSSModuleClasses>\n>(styles: TCSSModuleClasses, modifiers: TModifiers[]): IconModifierPropsSchema<TModifiers> {\n const props = Object.keys(styles).reduce((acc, key) => {\n const [rawBase, modifier] = key.split('--') as [string, string | undefined];\n\n if (!modifier) {\n return acc;\n }\n\n const base = rawBase as TModifiers;\n\n if (!modifiers.includes(base)) {\n return acc;\n }\n\n let modifierSet = acc.get(base);\n\n if (!modifierSet) {\n modifierSet = new Set<string>();\n acc.set(base, modifierSet);\n }\n\n modifierSet.add(modifier);\n\n return acc;\n }, new Map<TModifiers, Set<string>>());\n\n const schemaEntries = Array.from(props.entries()).reduce<Partial<Record<TModifiers, ModifierSchemaEntry>>>(\n (acc, [base, modifierSet]) => {\n const values = Array.from(modifierSet);\n\n if (values.length) {\n // eslint-disable-next-line security/detect-object-injection\n acc[base] = optional(picklist(values as unknown as readonly [string, ...string[]])) as ModifierSchemaEntry;\n }\n\n return acc;\n },\n {}\n );\n\n const schema = object(schemaEntries as Partial<Record<TModifiers, ModifierSchemaEntry>>);\n\n return pipe(schema, readonly()) as IconModifierPropsSchema<TModifiers>;\n}\n\nexport default function createIconComponent<\n const TProps extends { className?: string | undefined },\n const TModifiers extends SafeModifierList<TCSSModuleClasses>,\n const TCSSModuleClasses extends CSSModuleClasses\n>(\n styles: TCSSModuleClasses,\n modifiers: TModifiers[],\n BaseIcon: ComponentType<TProps>\n): {\n component: ComponentType<\n (TModifiers extends Prefixes<keyof TCSSModuleClasses>\n ? Pick<ModifierMap<TCSSModuleClasses>, TModifiers>\n : Partial<Record<TModifiers, string>>) &\n TProps\n >;\n modifierPropsSchema: IconModifierPropsSchema<TModifiers>;\n} {\n type CSSModuleModifiers = ModifierMap<TCSSModuleClasses>;\n\n // Do not bail if no CSS modules TypeScript plugin is provided.\n type FinalCSSModuleModifiers = TModifiers extends keyof CSSModuleModifiers\n ? Pick<CSSModuleModifiers, TModifiers>\n : Partial<Record<TModifiers, string>>;\n\n const modifierPropsSchema = createPropsSchema(styles, modifiers);\n\n const component = (props => {\n const { className, ...rest } = props;\n const validatedProps = validateProps(modifierPropsSchema, props);\n const classNames = useStyles(styles);\n\n const classes = Object.entries(validatedProps).map(([key, value]) => classNames[`${key}--${value}`]);\n\n return <BaseIcon className={cx(className, classes)} {...(rest as TProps)} />;\n }) as ComponentType<FinalCSSModuleModifiers & TProps>;\n\n return { component, modifierPropsSchema };\n}\n"]}
1
+ {"version":3,"sources":["/__w/1/s/BotFramework-WebChat/packages/component/dist/chunk-JCX7GSY7.js","../src/Utils/createIconComponent.tsx"],"names":["createPropsSchema","styles","modifiers","props","acc","key","rawBase","modifier","base","modifierSet","schemaEntries","values","optional","picklist","schema","object","pipe","readonly","createIconComponent","BaseIcon","modifierPropsSchema","className","rest","validatedProps","o","classNames","St","classes","value"],"mappings":"AAAA,+NAAyC,gGCE1B,kCAWR,4EACmC,SA0BjCA,EAAAA,CAGPC,CAAAA,CAA2BC,CAAAA,CAA8D,CACzF,IAAMC,CAAAA,CAAQ,MAAA,CAAO,IAAA,CAAKF,CAAM,CAAA,CAAE,MAAA,CAAO,CAACG,CAAAA,CAAKC,CAAAA,CAAAA,EAAQ,CACrD,GAAM,CAACC,CAAAA,CAASC,CAAQ,CAAA,CAAIF,CAAAA,CAAI,KAAA,CAAM,IAAI,CAAA,CAE1C,EAAA,CAAI,CAACE,CAAAA,CACH,OAAOH,CAAAA,CAGT,IAAMI,CAAAA,CAAOF,CAAAA,CAEb,EAAA,CAAI,CAACJ,CAAAA,CAAU,QAAA,CAASM,CAAI,CAAA,CAC1B,OAAOJ,CAAAA,CAGT,IAAIK,CAAAA,CAAcL,CAAAA,CAAI,GAAA,CAAII,CAAI,CAAA,CAE9B,OAAKC,CAAAA,EAAAA,CACHA,CAAAA,CAAc,IAAI,GAAA,CAClBL,CAAAA,CAAI,GAAA,CAAII,CAAAA,CAAMC,CAAW,CAAA,CAAA,CAG3BA,CAAAA,CAAY,GAAA,CAAIF,CAAQ,CAAA,CAEjBH,CACT,CAAA,CAAG,IAAI,GAA8B,CAAA,CAE/BM,CAAAA,CAAgB,KAAA,CAAM,IAAA,CAAKP,CAAAA,CAAM,OAAA,CAAQ,CAAC,CAAA,CAAE,MAAA,CAChD,CAACC,CAAAA,CAAK,CAACI,CAAAA,CAAMC,CAAW,CAAA,CAAA,EAAM,CAC5B,IAAME,CAAAA,CAAS,KAAA,CAAM,IAAA,CAAKF,CAAW,CAAA,CAErC,OAAIE,CAAAA,CAAO,MAAA,EAAA,CAETP,CAAAA,CAAII,CAAI,CAAA,CAAII,+BAAAA,+BAASC,CAA4D,CAAC,CAAA,CAAA,CAG7ET,CACT,CAAA,CACA,CAAC,CACH,CAAA,CAEMU,CAAAA,CAASC,6BAAAA,CAAwE,CAAA,CAEvF,OAAOC,2BAAAA,CAAKF,CAAQG,+BAAAA,CAAU,CAChC,CAEe,SAARC,CAAAA,CAKLjB,CAAAA,CACAC,CAAAA,CACAiB,CAAAA,CASA,CAQA,IAAMC,CAAAA,CAAsBpB,EAAAA,CAAkBC,CAAAA,CAAQC,CAAS,CAAA,CAY/D,MAAO,CAAE,SAAA,CAAA,CAVUC,CAAAA,EAAS,CAC1B,GAAM,CAAE,SAAA,CAAAkB,CAAAA,CAAW,GAAGC,CAAK,CAAA,CAAInB,CAAAA,CACzBoB,CAAAA,CAAiBC,gCAAAA,CAAcJ,CAAqBjB,CAAK,CAAA,CACzDsB,CAAAA,CAAaC,gCAAAA,CAAgB,CAAA,CAE7BC,CAAAA,CAAU,MAAA,CAAO,OAAA,CAAQJ,CAAc,CAAA,CAAE,GAAA,CAAI,CAAC,CAAClB,CAAAA,CAAKuB,CAAK,CAAA,CAAA,EAAMH,CAAAA,CAAW,CAAA,EAAA","file":"/__w/1/s/BotFramework-WebChat/packages/component/dist/chunk-JCX7GSY7.js","sourcesContent":[null,"import { useStyles } from '@msinternal/botframework-webchat-styles/react';\nimport { validateProps } from '@msinternal/botframework-webchat-react-valibot';\nimport cx from 'classnames';\nimport {\n object,\n optional,\n picklist,\n pipe,\n readonly,\n type BaseIssue,\n type BaseSchema,\n type OptionalSchema,\n type PicklistSchema\n} from 'valibot';\nimport React, { type ComponentType } from 'react';\n\ntype CSSModuleClasses = { readonly [key: string]: any };\n\ntype Prefixes<T> = T extends `${infer P}--${string}` ? P : never;\n\ntype SuffixesOf<Prefix extends string, T> = T extends `${Prefix}--${infer S}` ? S : never;\n\ntype ModifierMap<T> = {\n [P in Prefixes<keyof T>]?: SuffixesOf<P, keyof T>;\n};\n\ntype SafeModifierList<TCSSModuleClasses> = keyof ModifierMap<TCSSModuleClasses> extends never\n ? string\n : keyof ModifierMap<TCSSModuleClasses>;\n\ntype ModifierSchemaEntry = OptionalSchema<PicklistSchema<readonly [string, ...string[]], undefined>, undefined>;\n\nexport type IconModifierPropsSchema<TModifiers extends string> = BaseSchema<\n Partial<Record<TModifiers, string>>,\n Readonly<Partial<Record<TModifiers, string>>>,\n BaseIssue<unknown>\n> & {\n readonly entries: Partial<Record<TModifiers, ModifierSchemaEntry>>;\n};\n\nfunction createPropsSchema<\n const TCSSModuleClasses extends CSSModuleClasses,\n const TModifiers extends SafeModifierList<TCSSModuleClasses>\n>(styles: TCSSModuleClasses, modifiers: TModifiers[]): IconModifierPropsSchema<TModifiers> {\n const props = Object.keys(styles).reduce((acc, key) => {\n const [rawBase, modifier] = key.split('--') as [string, string | undefined];\n\n if (!modifier) {\n return acc;\n }\n\n const base = rawBase as TModifiers;\n\n if (!modifiers.includes(base)) {\n return acc;\n }\n\n let modifierSet = acc.get(base);\n\n if (!modifierSet) {\n modifierSet = new Set<string>();\n acc.set(base, modifierSet);\n }\n\n modifierSet.add(modifier);\n\n return acc;\n }, new Map<TModifiers, Set<string>>());\n\n const schemaEntries = Array.from(props.entries()).reduce<Partial<Record<TModifiers, ModifierSchemaEntry>>>(\n (acc, [base, modifierSet]) => {\n const values = Array.from(modifierSet);\n\n if (values.length) {\n // eslint-disable-next-line security/detect-object-injection\n acc[base] = optional(picklist(values as unknown as readonly [string, ...string[]])) as ModifierSchemaEntry;\n }\n\n return acc;\n },\n {}\n );\n\n const schema = object(schemaEntries as Partial<Record<TModifiers, ModifierSchemaEntry>>);\n\n return pipe(schema, readonly()) as IconModifierPropsSchema<TModifiers>;\n}\n\nexport default function createIconComponent<\n const TProps extends { className?: string | undefined },\n const TModifiers extends SafeModifierList<TCSSModuleClasses>,\n const TCSSModuleClasses extends CSSModuleClasses\n>(\n styles: TCSSModuleClasses,\n modifiers: TModifiers[],\n BaseIcon: ComponentType<TProps>\n): {\n component: ComponentType<\n (TModifiers extends Prefixes<keyof TCSSModuleClasses>\n ? Pick<ModifierMap<TCSSModuleClasses>, TModifiers>\n : Partial<Record<TModifiers, string>>) &\n TProps\n >;\n modifierPropsSchema: IconModifierPropsSchema<TModifiers>;\n} {\n type CSSModuleModifiers = ModifierMap<TCSSModuleClasses>;\n\n // Do not bail if no CSS modules TypeScript plugin is provided.\n type FinalCSSModuleModifiers = TModifiers extends keyof CSSModuleModifiers\n ? Pick<CSSModuleModifiers, TModifiers>\n : Partial<Record<TModifiers, string>>;\n\n const modifierPropsSchema = createPropsSchema(styles, modifiers);\n\n const component = (props => {\n const { className, ...rest } = props;\n const validatedProps = validateProps(modifierPropsSchema, props);\n const classNames = useStyles(styles);\n\n const classes = Object.entries(validatedProps).map(([key, value]) => classNames[`${key}--${value}`]);\n\n return <BaseIcon className={cx(className, classes)} {...(rest as TProps)} />;\n }) as ComponentType<FinalCSSModuleModifiers & TProps>;\n\n return { component, modifierPropsSchema };\n}\n"]}