@pega/cosmos-react-demos 5.0.0-dev.9.2 → 5.0.0-dev.9.3

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 (157) hide show
  1. package/jsx/core/AdditionalInfo/AdditionalInfo.stories.d.ts +2 -2
  2. package/jsx/core/AdditionalInfo/AdditionalInfo.stories.d.ts.map +1 -1
  3. package/jsx/core/AdditionalInfo/AdditionalInfo.stories.jsx +1 -1
  4. package/jsx/core/AdditionalInfo/AdditionalInfo.stories.jsx.map +1 -1
  5. package/jsx/core/Checkbox/Checkbox.stories.d.ts.map +1 -1
  6. package/jsx/core/Checkbox/Checkbox.stories.jsx +0 -3
  7. package/jsx/core/Checkbox/Checkbox.stories.jsx.map +1 -1
  8. package/jsx/core/CheckboxGroup/CheckboxGroup.stories.d.ts.map +1 -1
  9. package/jsx/core/CheckboxGroup/CheckboxGroup.stories.jsx +0 -8
  10. package/jsx/core/CheckboxGroup/CheckboxGroup.stories.jsx.map +1 -1
  11. package/jsx/core/ColorPicker/ColorPicker.stories.d.ts.map +1 -1
  12. package/jsx/core/ColorPicker/ColorPicker.stories.jsx +0 -1
  13. package/jsx/core/ColorPicker/ColorPicker.stories.jsx.map +1 -1
  14. package/jsx/core/ComboBox/ComboBox.stories.d.ts.map +1 -1
  15. package/jsx/core/ComboBox/ComboBox.stories.jsx +0 -6
  16. package/jsx/core/ComboBox/ComboBox.stories.jsx.map +1 -1
  17. package/jsx/core/CompositeInput/CompositeInput.stories.d.ts.map +1 -1
  18. package/jsx/core/CompositeInput/CompositeInput.stories.jsx +1 -3
  19. package/jsx/core/CompositeInput/CompositeInput.stories.jsx.map +1 -1
  20. package/jsx/core/CreditCard/CreditCard.stories.d.ts.map +1 -1
  21. package/jsx/core/CreditCard/CreditCard.stories.jsx +0 -1
  22. package/jsx/core/CreditCard/CreditCard.stories.jsx.map +1 -1
  23. package/jsx/core/Currency/Currency.stories.d.ts.map +1 -1
  24. package/jsx/core/Currency/Currency.stories.jsx +0 -1
  25. package/jsx/core/Currency/Currency.stories.jsx.map +1 -1
  26. package/jsx/core/DateTime/DateTime.stories.d.ts.map +1 -1
  27. package/jsx/core/DateTime/DateTime.stories.jsx +0 -10
  28. package/jsx/core/DateTime/DateTime.stories.jsx.map +1 -1
  29. package/jsx/core/FieldGroup/FieldGroup.stories.d.ts.map +1 -1
  30. package/jsx/core/FieldGroup/FieldGroup.stories.jsx +6 -2
  31. package/jsx/core/FieldGroup/FieldGroup.stories.jsx.map +1 -1
  32. package/jsx/core/File/FileInput.stories.d.ts.map +1 -1
  33. package/jsx/core/File/FileInput.stories.jsx +0 -1
  34. package/jsx/core/File/FileInput.stories.jsx.map +1 -1
  35. package/jsx/core/Input/Input.stories.d.ts.map +1 -1
  36. package/jsx/core/Input/Input.stories.jsx +0 -1
  37. package/jsx/core/Input/Input.stories.jsx.map +1 -1
  38. package/jsx/core/ListToolbar/ListToolbar.stories.d.ts.map +1 -1
  39. package/jsx/core/ListToolbar/ListToolbar.stories.jsx +0 -1
  40. package/jsx/core/ListToolbar/ListToolbar.stories.jsx.map +1 -1
  41. package/jsx/core/Location/Location.stories.d.ts.map +1 -1
  42. package/jsx/core/Location/Location.stories.jsx +0 -1
  43. package/jsx/core/Location/Location.stories.jsx.map +1 -1
  44. package/jsx/core/Number/Number.stories.d.ts.map +1 -1
  45. package/jsx/core/Number/Number.stories.jsx +6 -2
  46. package/jsx/core/Number/Number.stories.jsx.map +1 -1
  47. package/jsx/core/Phone/Phone.stories.d.ts.map +1 -1
  48. package/jsx/core/Phone/Phone.stories.jsx +0 -1
  49. package/jsx/core/Phone/Phone.stories.jsx.map +1 -1
  50. package/jsx/core/RadioButton/RadioButton.stories.d.ts.map +1 -1
  51. package/jsx/core/RadioButton/RadioButton.stories.jsx +0 -3
  52. package/jsx/core/RadioButton/RadioButton.stories.jsx.map +1 -1
  53. package/jsx/core/RadioButtonGroup/RadioButtonGroup.stories.d.ts.map +1 -1
  54. package/jsx/core/RadioButtonGroup/RadioButtonGroup.stories.jsx +0 -8
  55. package/jsx/core/RadioButtonGroup/RadioButtonGroup.stories.jsx.map +1 -1
  56. package/jsx/core/Select/Select.stories.d.ts.map +1 -1
  57. package/jsx/core/Select/Select.stories.jsx +0 -1
  58. package/jsx/core/Select/Select.stories.jsx.map +1 -1
  59. package/jsx/core/Slider/Slider.stories.d.ts.map +1 -1
  60. package/jsx/core/Slider/Slider.stories.jsx +0 -1
  61. package/jsx/core/Slider/Slider.stories.jsx.map +1 -1
  62. package/jsx/core/TextArea/TextArea.stories.d.ts.map +1 -1
  63. package/jsx/core/TextArea/TextArea.stories.jsx +0 -1
  64. package/jsx/core/TextArea/TextArea.stories.jsx.map +1 -1
  65. package/jsx/rte/Editor/Editor.stories.d.ts.map +1 -1
  66. package/jsx/rte/Editor/Editor.stories.jsx +0 -1
  67. package/jsx/rte/Editor/Editor.stories.jsx.map +1 -1
  68. package/jsx/social/Chat/Chat.mocks.d.ts +5 -17
  69. package/jsx/social/Chat/Chat.mocks.d.ts.map +1 -1
  70. package/jsx/social/Chat/Chat.mocks.js +1 -21
  71. package/jsx/social/Chat/Chat.mocks.js.map +1 -1
  72. package/jsx/social/Chat/Chat.stories.d.ts +2 -0
  73. package/jsx/social/Chat/Chat.stories.d.ts.map +1 -1
  74. package/jsx/social/Chat/Chat.stories.jsx +92 -38
  75. package/jsx/social/Chat/Chat.stories.jsx.map +1 -1
  76. package/jsx/work/Details/Details.stories.d.ts.map +1 -1
  77. package/jsx/work/Details/Details.stories.jsx +0 -1
  78. package/jsx/work/Details/Details.stories.jsx.map +1 -1
  79. package/lib/core/AdditionalInfo/AdditionalInfo.stories.d.ts +2 -2
  80. package/lib/core/AdditionalInfo/AdditionalInfo.stories.d.ts.map +1 -1
  81. package/lib/core/AdditionalInfo/AdditionalInfo.stories.js +1 -1
  82. package/lib/core/AdditionalInfo/AdditionalInfo.stories.js.map +1 -1
  83. package/lib/core/Checkbox/Checkbox.stories.d.ts.map +1 -1
  84. package/lib/core/Checkbox/Checkbox.stories.js +0 -3
  85. package/lib/core/Checkbox/Checkbox.stories.js.map +1 -1
  86. package/lib/core/CheckboxGroup/CheckboxGroup.stories.d.ts.map +1 -1
  87. package/lib/core/CheckboxGroup/CheckboxGroup.stories.js +0 -8
  88. package/lib/core/CheckboxGroup/CheckboxGroup.stories.js.map +1 -1
  89. package/lib/core/ColorPicker/ColorPicker.stories.d.ts.map +1 -1
  90. package/lib/core/ColorPicker/ColorPicker.stories.js +0 -1
  91. package/lib/core/ColorPicker/ColorPicker.stories.js.map +1 -1
  92. package/lib/core/ComboBox/ComboBox.stories.d.ts.map +1 -1
  93. package/lib/core/ComboBox/ComboBox.stories.js +0 -6
  94. package/lib/core/ComboBox/ComboBox.stories.js.map +1 -1
  95. package/lib/core/CompositeInput/CompositeInput.stories.d.ts.map +1 -1
  96. package/lib/core/CompositeInput/CompositeInput.stories.js +1 -3
  97. package/lib/core/CompositeInput/CompositeInput.stories.js.map +1 -1
  98. package/lib/core/CreditCard/CreditCard.stories.d.ts.map +1 -1
  99. package/lib/core/CreditCard/CreditCard.stories.js +0 -1
  100. package/lib/core/CreditCard/CreditCard.stories.js.map +1 -1
  101. package/lib/core/Currency/Currency.stories.d.ts.map +1 -1
  102. package/lib/core/Currency/Currency.stories.js +0 -1
  103. package/lib/core/Currency/Currency.stories.js.map +1 -1
  104. package/lib/core/DateTime/DateTime.stories.d.ts.map +1 -1
  105. package/lib/core/DateTime/DateTime.stories.js +0 -10
  106. package/lib/core/DateTime/DateTime.stories.js.map +1 -1
  107. package/lib/core/FieldGroup/FieldGroup.stories.d.ts.map +1 -1
  108. package/lib/core/FieldGroup/FieldGroup.stories.js +6 -2
  109. package/lib/core/FieldGroup/FieldGroup.stories.js.map +1 -1
  110. package/lib/core/File/FileInput.stories.d.ts.map +1 -1
  111. package/lib/core/File/FileInput.stories.js +0 -1
  112. package/lib/core/File/FileInput.stories.js.map +1 -1
  113. package/lib/core/Input/Input.stories.d.ts.map +1 -1
  114. package/lib/core/Input/Input.stories.js +0 -1
  115. package/lib/core/Input/Input.stories.js.map +1 -1
  116. package/lib/core/ListToolbar/ListToolbar.stories.d.ts.map +1 -1
  117. package/lib/core/ListToolbar/ListToolbar.stories.js +0 -1
  118. package/lib/core/ListToolbar/ListToolbar.stories.js.map +1 -1
  119. package/lib/core/Location/Location.stories.d.ts.map +1 -1
  120. package/lib/core/Location/Location.stories.js +0 -1
  121. package/lib/core/Location/Location.stories.js.map +1 -1
  122. package/lib/core/Number/Number.stories.d.ts.map +1 -1
  123. package/lib/core/Number/Number.stories.js +6 -2
  124. package/lib/core/Number/Number.stories.js.map +1 -1
  125. package/lib/core/Phone/Phone.stories.d.ts.map +1 -1
  126. package/lib/core/Phone/Phone.stories.js +0 -1
  127. package/lib/core/Phone/Phone.stories.js.map +1 -1
  128. package/lib/core/RadioButton/RadioButton.stories.d.ts.map +1 -1
  129. package/lib/core/RadioButton/RadioButton.stories.js +0 -3
  130. package/lib/core/RadioButton/RadioButton.stories.js.map +1 -1
  131. package/lib/core/RadioButtonGroup/RadioButtonGroup.stories.d.ts.map +1 -1
  132. package/lib/core/RadioButtonGroup/RadioButtonGroup.stories.js +0 -8
  133. package/lib/core/RadioButtonGroup/RadioButtonGroup.stories.js.map +1 -1
  134. package/lib/core/Select/Select.stories.d.ts.map +1 -1
  135. package/lib/core/Select/Select.stories.js +0 -1
  136. package/lib/core/Select/Select.stories.js.map +1 -1
  137. package/lib/core/Slider/Slider.stories.d.ts.map +1 -1
  138. package/lib/core/Slider/Slider.stories.js +0 -1
  139. package/lib/core/Slider/Slider.stories.js.map +1 -1
  140. package/lib/core/TextArea/TextArea.stories.d.ts.map +1 -1
  141. package/lib/core/TextArea/TextArea.stories.js +0 -1
  142. package/lib/core/TextArea/TextArea.stories.js.map +1 -1
  143. package/lib/rte/Editor/Editor.stories.d.ts.map +1 -1
  144. package/lib/rte/Editor/Editor.stories.js +0 -1
  145. package/lib/rte/Editor/Editor.stories.js.map +1 -1
  146. package/lib/social/Chat/Chat.mocks.d.ts +5 -17
  147. package/lib/social/Chat/Chat.mocks.d.ts.map +1 -1
  148. package/lib/social/Chat/Chat.mocks.js +1 -21
  149. package/lib/social/Chat/Chat.mocks.js.map +1 -1
  150. package/lib/social/Chat/Chat.stories.d.ts +2 -0
  151. package/lib/social/Chat/Chat.stories.d.ts.map +1 -1
  152. package/lib/social/Chat/Chat.stories.js +93 -34
  153. package/lib/social/Chat/Chat.stories.js.map +1 -1
  154. package/lib/work/Details/Details.stories.d.ts.map +1 -1
  155. package/lib/work/Details/Details.stories.js +0 -1
  156. package/lib/work/Details/Details.stories.js.map +1 -1
  157. package/package.json +7 -7
@@ -1,12 +1,12 @@
1
1
  import { useState, useRef, useEffect, useCallback, useMemo } from 'react';
2
2
  import { action } from '@storybook/addon-actions';
3
- import { Button, Icon, registerIcon, Text, MenuButton, Flex, Popover, Link, EmojiContext, createUID, useOuterEvent, Select, Option, useElement, useModalManager, useModalContext, Modal, SummaryItem, useToaster, SearchInput, menuHelpers, VisuallyHiddenText, Menu, useEscape } from '@pega/cosmos-react-core';
3
+ import { Button, Icon, registerIcon, Text, MenuButton, Flex, Popover, Link, EmojiContext, createUID, useOuterEvent, Select, Option, useElement, useModalManager, useModalContext, Modal, SummaryItem, useToaster, SearchInput, menuHelpers, VisuallyHiddenText, Menu, useEscape, usePrevious } from '@pega/cosmos-react-core';
4
4
  import * as arrowMicroDownIcon from '@pega/cosmos-react-core/lib/components/Icon/icons/arrow-micro-down.icon';
5
5
  import * as replyIcon from '@pega/cosmos-react-core/lib/components/Icon/icons/reply.icon';
6
6
  import * as replyAllIcon from '@pega/cosmos-react-core/lib/components/Icon/icons/reply-all.icon';
7
7
  import * as forwardIcon from '@pega/cosmos-react-core/lib/components/Icon/icons/forward.icon';
8
- import { Chat, ChatHeader, ChatComposer, Message, NewMessageSeparatorId, SuggestedReplyPicker, SystemMessage, TypeIndicator } from '@pega/cosmos-react-social';
9
- import { ChatMockData, phrasesDisplayNames, phrasesMessages, pagePushList, contextItems as contextItemsMock, BotConversation, ClaimsAgentConversation, LiveChatConversation } from './Chat.mocks';
8
+ import { Chat, ChatHeader, ChatComposer, Message, NewMessageSeparatorId, SuggestedReplyPicker, SystemMessage, TypeIndicator, isReplyErrorState, isReplyLoadingState } from '@pega/cosmos-react-social';
9
+ import { ChatMockData, phrasesDisplayNames, phrasesMessages, contextItems as contextItemsMock, BotConversation, ClaimsAgentConversation, LiveChatConversation } from './Chat.mocks';
10
10
  registerIcon(forwardIcon, replyIcon, replyAllIcon, arrowMicroDownIcon);
11
11
  export default {
12
12
  title: 'Social/Chat',
@@ -159,7 +159,8 @@ export const SuggestedReplyPickerDemo = (args) => {
159
159
  ? [ChatMockData.suggestedReplies[0]]
160
160
  : ChatMockData.suggestedReplies;
161
161
  return (<SuggestedReplyPicker replies={args.noSuggestedReplies ? [] : renderReplies} onSelect={suggestedReply => {
162
- action(`Suggested reply picked ${suggestedReply.message}`)();
162
+ if (!isReplyErrorState(suggestedReply) && !isReplyLoadingState(suggestedReply))
163
+ action(`Suggested reply picked ${suggestedReply.message}`)();
163
164
  }} collapsed={suggestedRepliesCollapsed} onExpandCollapse={() => {
164
165
  setSuggestedRepliesCollapsed(prev => !prev);
165
166
  }} currentReplyId={currentReplyId} onReplyChange={setCurrentReplyId} showNotification={args.showNotification} onSend={() => action('Send suggested reply')} disabled={args.disableButton}/>);
@@ -176,15 +177,17 @@ SuggestedReplyPickerDemo.argTypes = {
176
177
  noSuggestedReplies: { type: 'boolean' },
177
178
  disableButton: { type: 'boolean' }
178
179
  };
179
- export const ChatComposerDemo = (args) => (<ChatComposer maxAttachments={args.maxAttachments} attachments={ChatMockData.defaultAttachments} maxLength={256} placeholder='Type here to send message' onSend={() => { }}>
180
+ export const ChatComposerDemo = (args) => (<ChatComposer maxAttachments={args.maxAttachments} attachments={ChatMockData.defaultAttachments} maxLength={256} placeholder='Type here to send message' onSend={() => { }} onSuggestReplyClick={args.showSuggestReplyButton ? action('Suggest reply clicked') : undefined}>
180
181
  <MenuButton text='Phrases' menu={{ items: [] }}/>
181
182
  <MenuButton text='Page Push' menu={{ items: [] }}/>
182
183
  </ChatComposer>);
183
184
  ChatComposerDemo.args = {
184
- maxAttachments: 2
185
+ maxAttachments: 2,
186
+ showSuggestReplyButton: false
185
187
  };
186
188
  ChatComposerDemo.argTypes = {
187
- maxAttachments: { control: { type: 'number' } }
189
+ maxAttachments: { control: { type: 'number' } },
190
+ showSuggestReplyButton: { control: { type: 'boolean' } }
188
191
  };
189
192
  export const StandardChat = (args) => {
190
193
  const ChatMockDataClone = useMemo(() => {
@@ -303,6 +306,7 @@ export const StandardChat = (args) => {
303
306
  const [contextItems, setContextItems] = useState([]);
304
307
  const [contextLoading, setContextLoading] = useState(false);
305
308
  const [suggestedRepliesCollapsed, setSuggestedRepliesCollapsed] = useState(false);
309
+ const [disableSuggestReply, setDisableSuggestReply] = useState(false);
306
310
  const onDeleteAttachment = useCallback((name) => {
307
311
  setAttachments(prevAttachments => prevAttachments.filter(item => item.name !== name));
308
312
  }, [setAttachments]);
@@ -314,6 +318,17 @@ export const StandardChat = (args) => {
314
318
  };
315
319
  }));
316
320
  }, [defaultAttachments]);
321
+ const prevState = usePrevious(chatMessages);
322
+ useEffect(() => {
323
+ if (chatMessages &&
324
+ prevState &&
325
+ chatMessages.filter(({ senderType }) => senderType === 'customer').length >
326
+ prevState.filter(({ senderType }) => senderType === 'customer').length)
327
+ setDisableSuggestReply(false);
328
+ }, [chatMessages]);
329
+ useEffect(() => {
330
+ setDisableSuggestReply(false);
331
+ }, [args.genAIErrorState]);
317
332
  const appendMessage = (message) => {
318
333
  const incrementUnreadMessageCount = conversationRef.current?.isScrolledToLatest();
319
334
  setChatMessages(prevChatMessages => {
@@ -440,6 +455,7 @@ export const StandardChat = (args) => {
440
455
  const [buttonEl, setButtonEl] = useElement(null);
441
456
  const [popoverEl, setPopoverEl] = useElement(null);
442
457
  const [currentReply, setCurrentReply] = useState(suggestedReplies?.[0]?.id || '');
458
+ const [replies, setReplies] = useState(suggestedReplies);
443
459
  useOuterEvent('mousedown', [popoverEl, buttonEl], () => {
444
460
  setIsOpen(false);
445
461
  setSearch('');
@@ -447,11 +463,6 @@ export const StandardChat = (args) => {
447
463
  useEscape(() => {
448
464
  setIsOpen(false);
449
465
  });
450
- const pagePushItemsRender = useMemo(() => {
451
- return pagePushList.map(item => {
452
- return { id: item.id, primary: item.message };
453
- });
454
- }, [pagePushList]);
455
466
  const composerChildren = (<>
456
467
  <Button ref={setButtonEl} onClick={() => setIsOpen(cur => !cur)} variant='secondary' disabled={args.disableChat}>
457
468
  <Flex container={{ alignItems: 'center', gap: 1 }}>
@@ -468,28 +479,6 @@ export const StandardChat = (args) => {
468
479
  setSearch('');
469
480
  }} accent={search ? searchRegex : undefined} focusControlEl={searchEleRef.current || undefined} footer={<SearchInput ref={searchEleRef} onSearchChange={setSearch} value={search} role='searchbox' searchInputAriaLabel='Start typing to search.'/>}/>
470
481
  </Popover>
471
-
472
- <MenuButton text='Page push' disabled={args.disableChat} menu={{
473
- id: menuID,
474
- listId: menuListID,
475
- mode: 'action',
476
- variant: 'flyout',
477
- items: pagePushItemsRender,
478
- role: 'listbox',
479
- onItemClick: id => {
480
- setAnnouncement('Link inserted');
481
- setChatMessages(prevChatMessages => [
482
- ...prevChatMessages,
483
- pagePushList.filter(item => item.id === id)[0]
484
- ]);
485
- }
486
- }}/>
487
- <Popover show={mountPopover} target={chatComposerImperativeHandleRef?.current?.textAreaRef?.current} placement='top-start'>
488
- <Menu scrollAt={20} items={itemsToRender} onItemClick={id => {
489
- insertPhrasesMessage(phrasesMessages.filter(message => message.id === id)[0].message);
490
- setAnnouncement('Phrase inserted');
491
- }} focusControlEl={chatComposerImperativeHandleRef?.current?.textAreaRef?.current}/>
492
- </Popover>
493
482
  </>);
494
483
  const composerProps = {
495
484
  ref: chatComposerImperativeHandleRef,
@@ -498,6 +487,7 @@ export const StandardChat = (args) => {
498
487
  specialKeysConfig,
499
488
  showEmoji: true,
500
489
  disabled: args.disableChat,
490
+ disableSuggestReply,
501
491
  onAddAttachment: () => {
502
492
  setAttachments([
503
493
  ...attachments,
@@ -524,12 +514,71 @@ export const StandardChat = (args) => {
524
514
  timeStamp: '2:08'
525
515
  });
526
516
  },
517
+ onSuggestReplyClick: () => {
518
+ const newReplyId = 'genAI';
519
+ setDisableSuggestReply(true);
520
+ setSuggestedRepliesCollapsed(false);
521
+ setCurrentReply(newReplyId);
522
+ setReplies(prev => {
523
+ return [
524
+ {
525
+ id: newReplyId,
526
+ loading: true,
527
+ type: 'genAIReply'
528
+ },
529
+ ...prev.filter(reply => reply.type !== 'genAIReply')
530
+ ];
531
+ });
532
+ setTimeout(() => {
533
+ if (args.genAIErrorState === 'No suggestions') {
534
+ setReplies(prev => {
535
+ return [
536
+ {
537
+ id: newReplyId,
538
+ message: 'No suggestions',
539
+ errorType: 'noSuggestions',
540
+ type: 'genAIReply'
541
+ },
542
+ ...prev.filter(reply => reply.type !== 'genAIReply')
543
+ ];
544
+ });
545
+ }
546
+ else if (args.genAIErrorState === 'Error') {
547
+ setReplies(prev => {
548
+ return [
549
+ {
550
+ id: newReplyId,
551
+ message: 'Failed to retrieve the data',
552
+ errorType: 'error',
553
+ type: 'genAIReply'
554
+ },
555
+ ...prev.filter(reply => reply.type !== 'genAIReply')
556
+ ];
557
+ });
558
+ setDisableSuggestReply(false);
559
+ }
560
+ else {
561
+ setReplies(prev => {
562
+ return [
563
+ {
564
+ id: newReplyId,
565
+ message: 'Happy to help. Is there anything else I can help with?',
566
+ confidence: 75,
567
+ type: 'genAIReply'
568
+ },
569
+ ...prev.filter(reply => reply.type !== 'genAIReply')
570
+ ];
571
+ });
572
+ }
573
+ }, 1000);
574
+ },
527
575
  children: composerChildren
528
576
  };
529
577
  const suggestedReplyPickerProps = {
530
- replies: suggestedReplies,
578
+ replies,
531
579
  onSelect: (suggestedReply) => {
532
- chatComposerImperativeHandleRef.current?.appendToMessage(suggestedReply.message, 'cursor');
580
+ if (!isReplyErrorState(suggestedReply) && !isReplyLoadingState(suggestedReply))
581
+ chatComposerImperativeHandleRef.current?.appendToMessage(suggestedReply.message, 'cursor');
533
582
  },
534
583
  collapsed: suggestedRepliesCollapsed,
535
584
  onExpandCollapse: () => {
@@ -604,7 +653,8 @@ StandardChat.args = {
604
653
  defaultMessage: 'Greetings! Hope you are having a great time, Please reach out to us for any help, Thanks!',
605
654
  maxLength: 280,
606
655
  loading: false,
607
- showAttachments: true
656
+ showAttachments: true,
657
+ genAIErrorState: 'No error'
608
658
  };
609
659
  StandardChat.argTypes = {
610
660
  maxAttachments: { control: { type: 'number' } },
@@ -618,7 +668,11 @@ StandardChat.argTypes = {
618
668
  placeholder: { control: { type: 'text' } },
619
669
  defaultMessage: { control: { type: 'text' } },
620
670
  maxLength: { control: { type: 'number' } },
621
- loading: { control: { type: 'boolean' } }
671
+ loading: { control: { type: 'boolean' } },
672
+ genAIErrorState: {
673
+ options: ['No error', 'No suggestions', 'Error'],
674
+ control: { type: 'select' }
675
+ }
622
676
  };
623
677
  StandardChat.parameters = {
624
678
  layout: 'fullscreen'
@@ -1 +1 @@
1
- {"version":3,"file":"Chat.stories.jsx","sourceRoot":"","sources":["../../../src/social/Chat/Chat.stories.tsx"],"names":[],"mappings":"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","sourcesContent":["import { useState, useRef, useEffect, useCallback, useMemo } from 'react';\nimport type { SyntheticEvent } from 'react';\nimport { action } from '@storybook/addon-actions';\nimport type { Meta, StoryFn } from '@storybook/react';\n\nimport {\n Button,\n Icon,\n registerIcon,\n Text,\n MenuButton,\n Flex,\n Popover,\n Link,\n EmojiContext,\n createUID,\n useOuterEvent,\n Select,\n Option,\n useElement,\n useModalManager,\n useModalContext,\n Modal,\n SummaryItem,\n useToaster,\n SearchInput,\n menuHelpers,\n VisuallyHiddenText,\n Menu,\n useEscape\n} from '@pega/cosmos-react-core';\nimport type {\n BannerProps,\n MenuItemProps,\n FieldValueListItemProps,\n OmitStrict\n} from '@pega/cosmos-react-core';\nimport * as arrowMicroDownIcon from '@pega/cosmos-react-core/lib/components/Icon/icons/arrow-micro-down.icon';\nimport * as replyIcon from '@pega/cosmos-react-core/lib/components/Icon/icons/reply.icon';\nimport * as replyAllIcon from '@pega/cosmos-react-core/lib/components/Icon/icons/reply-all.icon';\nimport * as forwardIcon from '@pega/cosmos-react-core/lib/components/Icon/icons/forward.icon';\nimport {\n Chat,\n ChatHeader,\n ChatComposer,\n Message,\n NewMessageSeparatorId,\n SuggestedReplyPicker,\n SystemMessage,\n TypeIndicator\n} from '@pega/cosmos-react-social';\nimport type {\n ChatHeaderProps,\n MessageProps,\n AttachmentItemProps,\n ChatComposerImperativeHandleProps,\n SuggestedReply,\n SystemMessageProps,\n ChatComposerProps,\n SuggestedReplyPickerProps,\n ChatBodyProps,\n ChatBodyHandleValue,\n MessageHeaderProps\n} from '@pega/cosmos-react-social';\n\nimport {\n ChatMockData,\n phrasesDisplayNames,\n phrasesMessages,\n pagePushList,\n contextItems as contextItemsMock,\n BotConversation,\n ClaimsAgentConversation,\n LiveChatConversation\n} from './Chat.mocks';\n\nregisterIcon(forwardIcon, replyIcon, replyAllIcon, arrowMicroDownIcon);\n\nexport default {\n title: 'Social/Chat',\n component: Chat\n} as Meta;\n\n/** *********************** ChatHeader component - START *********************** */\ninterface ChatHeaderDemoProps\n extends OmitStrict<ChatHeaderProps, 'actions' | 'sentiment' | 'context'> {}\n\nexport const ChatHeaderDemo: StoryFn<ChatHeaderDemoProps> = (args: ChatHeaderDemoProps) => {\n const { title, icon, customer, authenticated } = args;\n\n const [contextItems, setContextItems] = useState<FieldValueListItemProps[]>([]);\n const [loading, setLoading] = useState(false);\n\n return (\n <ChatHeader\n title={title}\n icon={icon || 'chat'}\n actions={[\n { id: 'action-1', primary: 'Transfer' },\n { id: 'action-2', primary: 'End chat' }\n ]}\n sentiment={{\n variant: 'positive',\n 'aria-label': 'Sentiment is positive'\n }}\n customer={customer}\n authenticated={authenticated}\n context={{\n items: contextItems,\n onClick: () => {\n setLoading(true);\n setTimeout(() => {\n setContextItems(contextItemsMock);\n setLoading(false);\n }, 1000);\n },\n loading\n }}\n />\n );\n};\n\nChatHeaderDemo.args = {\n title: 'Live chat',\n icon: 'chat',\n customer: 'Ginger Ventura',\n authenticated: true\n};\n\nChatHeaderDemo.argTypes = {\n title: { control: { type: 'text' } },\n icon: { control: { type: 'text' }, type: { name: 'string', required: false } },\n customer: { control: { type: 'text' } },\n authenticated: { control: { type: 'boolean' }, type: { name: 'string', required: false } }\n};\n/** ***************************** ChatHeader component - END ******************* */\n\n/** ***************************** Message component - START ********************** */\n\ninterface MessageDemoProps extends OmitStrict<MessageProps, 'senderId' | 'messageHeader'> {\n showTimestamp: boolean;\n showStatus: boolean;\n showHeader: boolean;\n headerContent: MessageHeaderProps['content'];\n headerMeta: MessageHeaderProps['meta'];\n showAvatarImage: boolean;\n showAttachments: boolean;\n showMediaPageLinks: boolean;\n}\n\nexport const MessageDemo: StoryFn<MessageDemoProps> = (args: MessageDemoProps) => {\n const actions: AttachmentItemProps['actions'] = [\n {\n text: 'Associate with case',\n id: 'Associate with case',\n onClick: () => {\n action('Associate with case');\n }\n },\n {\n text: 'Download',\n id: 'Download',\n onClick: () => {\n action('Download');\n }\n }\n ];\n\n const attachments = [\n {\n id: '2499167340',\n name: 'Location',\n icon: 'document',\n meta: 'PNG 0.1 MB',\n thumbnail:\n 'https://pegasystems.github.io/uplus-wss/health_provider/img/secondary-options.jpg',\n actions\n },\n {\n id: '2499167341',\n name: 'FAQ with detailed terms and conditions of the policy',\n icon: 'document-pdf',\n meta: 'PDF 0.7 MB',\n actions\n }\n ];\n const mediaPageLinks = [\n {\n id: '2499167349',\n href: 'https://collaborate.pega.com/',\n thumbnail:\n 'https://community.pega.com/sites/default/files/styles/480/public/media/images/2020-02/AskExpert.png?itok=ef2MVbOV',\n title: 'Ask the expert'\n }\n ];\n return (\n <Message\n attachments={args.showAttachments ? attachments : undefined}\n mediaPageLinks={args.showMediaPageLinks ? mediaPageLinks : undefined}\n avatarInfo={\n args.direction === 'in' && args.senderType !== 'bot'\n ? {\n name: 'John Brown',\n imageSrc: args.showAvatarImage\n ? 'https://pegasystems.github.io/uplus-wss/insurance/img/option-1.jpg'\n : undefined\n }\n : undefined\n }\n timestamp={args.showTimestamp ? args.timestamp : undefined}\n status={args.showStatus ? args.status : undefined}\n message={args.message}\n direction={args.direction}\n senderType={args.senderType}\n senderId={createUID()}\n agentVariant={args.agentVariant}\n messageHeader={\n args.showHeader ? { content: args.headerContent, meta: args.headerMeta } : undefined\n }\n />\n );\n};\n\nMessageDemo.args = {\n direction: 'in',\n senderType: 'customer',\n agentVariant: 0,\n message: 'Hi, Welcome to u-plus. How can I help you ?',\n showStatus: true,\n status: 'delivered',\n showTimestamp: true,\n timestamp: '1:44 PM',\n showHeader: false,\n headerContent: 'Public Reply',\n headerMeta: 'I-12345',\n showAvatarImage: false,\n showAttachments: false,\n showMediaPageLinks: false\n};\n\nMessageDemo.argTypes = {\n direction: { options: ['in', 'out'], control: { type: 'inline-radio' } },\n senderType: { options: ['agent', 'customer', 'bot'], control: { type: 'inline-radio' } },\n agentVariant: { type: 'number' },\n message: { type: 'string' },\n showTimestamp: { type: 'boolean' },\n timestamp: { control: 'text' },\n showStatus: { type: 'boolean' },\n status: {\n options: ['delivered', 'opened', 'undeliverable', 'sent'],\n control: { type: 'inline-radio' }\n },\n showHeader: { control: 'boolean' },\n headerContent: { control: 'text' },\n headerMeta: { control: 'text' },\n showAvatarImage: { control: 'boolean' },\n showAttachments: { control: 'boolean' },\n showMediaPageLinks: { control: 'boolean' }\n};\n/** ***************************** Message component - END *********************** */\n\n/** **************************** SystemMessage component - START ***************** */\nexport const SystemMessageDemo: StoryFn<SystemMessageProps> = (args: SystemMessageProps) => (\n <SystemMessage message={args.message} timestamp={args.timestamp} variant={args.variant} />\n);\n\nSystemMessageDemo.args = {\n message: 'John Brown has joined',\n variant: 'secondary',\n timestamp: '10:00 AM'\n};\n\nSystemMessageDemo.argTypes = {\n message: { control: { type: 'text' } },\n variant: { options: ['primary', 'secondary'], control: { type: 'select' } },\n timestamp: { control: { type: 'text' } }\n};\n/** ***************************** SystemMessage component - END ******************** */\n\n/** ***************************** TypeIndicator component - START ****************** */\ninterface TypeIndicatorDemoProps {\n message?: string;\n}\nexport const TypeIndicatorDemo: StoryFn<TypeIndicatorDemoProps> = (\n args: TypeIndicatorDemoProps\n) => {\n return (\n <TypeIndicator\n avatarInfo={{ name: 'John Brown' }}\n message={args.message}\n senderId='johnBrown'\n senderType='agent'\n />\n );\n};\n\nTypeIndicatorDemo.args = {\n message: ''\n};\n\nTypeIndicatorDemo.argTypes = {\n message: { control: { type: 'text' } }\n};\n/** *************************** TypeIndicator component - END *********************** */\n\n/** *************************** SuggestedReplyPicker component - START ****************** */\ninterface SuggestedReplyPickerDemoProps {\n showNotification?: boolean;\n singleSuggestedReply?: boolean;\n noSuggestedReplies?: boolean;\n disableButton?: boolean;\n}\n\nexport const SuggestedReplyPickerDemo: StoryFn<SuggestedReplyPickerDemoProps> = (\n args: SuggestedReplyPickerDemoProps\n) => {\n const [suggestedRepliesCollapsed, setSuggestedRepliesCollapsed] = useState<boolean>(false);\n const [currentReplyId, setCurrentReplyId] = useState(\n ChatMockData?.suggestedReplies?.[0]?.id || ''\n );\n const renderReplies = args.singleSuggestedReply\n ? [ChatMockData.suggestedReplies[0]]\n : ChatMockData.suggestedReplies;\n return (\n <SuggestedReplyPicker\n replies={args.noSuggestedReplies ? [] : renderReplies}\n onSelect={suggestedReply => {\n action(`Suggested reply picked ${suggestedReply.message}`)();\n }}\n collapsed={suggestedRepliesCollapsed}\n onExpandCollapse={() => {\n setSuggestedRepliesCollapsed(prev => !prev);\n }}\n currentReplyId={currentReplyId}\n onReplyChange={setCurrentReplyId}\n showNotification={args.showNotification}\n onSend={() => action('Send suggested reply')}\n disabled={args.disableButton}\n />\n );\n};\nSuggestedReplyPickerDemo.args = {\n showNotification: false,\n singleSuggestedReply: false,\n noSuggestedReplies: false,\n disableButton: false\n};\n\nSuggestedReplyPickerDemo.argTypes = {\n showNotification: { type: 'boolean' },\n singleSuggestedReply: { type: 'boolean' },\n noSuggestedReplies: { type: 'boolean' },\n disableButton: { type: 'boolean' }\n};\n\n/** *************************** SuggestedReplyPicker component - END ****************** */\n\n/** ******************************* ChatComposer component - START ************************ */\ninterface ChatComposerDemoProps {\n maxAttachments?: number;\n}\n\nexport const ChatComposerDemo: StoryFn<ChatComposerDemoProps> = (args: ChatComposerDemoProps) => (\n <ChatComposer\n maxAttachments={args.maxAttachments}\n attachments={ChatMockData.defaultAttachments}\n maxLength={256}\n placeholder='Type here to send message'\n onSend={() => {}}\n >\n <MenuButton text='Phrases' menu={{ items: [] }} />\n <MenuButton text='Page Push' menu={{ items: [] }} />\n </ChatComposer>\n);\n\nChatComposerDemo.args = {\n maxAttachments: 2\n};\n\nChatComposerDemo.argTypes = {\n maxAttachments: { control: { type: 'number' } }\n};\n/** *********************************** ChatComposer component - END ********************** */\n\n/** *********************************** Standard Chat component - START ******************** */\ninterface StandardChatProps {\n maxAttachments?: number;\n chatWidth?: string;\n chatHeight?: string;\n selectedChannel?: string;\n showChatBanner?: boolean;\n disableChat?: boolean;\n simulateConversation?: boolean;\n message?: string;\n placeholder?: string;\n defaultMessage?: string;\n maxLength?: number;\n loading?: boolean;\n typingIndicator?: boolean;\n showAttachments?: boolean;\n}\n\nexport const StandardChat: StoryFn<StandardChatProps> = (args: StandardChatProps) => {\n const ChatMockDataClone: any = useMemo(() => {\n return JSON.parse(JSON.stringify(ChatMockData));\n }, [ChatMockData]);\n\n const Channels: {\n label: string;\n options: any;\n } = {\n label: 'Channel',\n options: {\n LiveChat: {\n title: 'Live chat',\n icon: 'chat'\n },\n Twitter: {\n title: 'Twitter chat',\n icon: 'twitter'\n },\n Facebook: {\n title: 'Facebook messenger',\n icon: 'facebook'\n }\n }\n };\n\n const {\n chatMessages: mockChatMessagesJson,\n defaultAttachments,\n suggestedReplies\n }: {\n participants: any;\n chatMessages: any[];\n defaultAttachments: any[];\n suggestedReplies: SuggestedReply[];\n } = ChatMockDataClone;\n\n const { create } = useModalManager();\n\n const MyModal = () => {\n const { dismiss } = useModalContext();\n const { push } = useToaster();\n\n return (\n <Modal\n heading='Associate with case'\n actions={\n <>\n <Button\n onClick={() => {\n dismiss();\n push({ content: 'Cancelled' });\n }}\n >\n Cancel\n </Button>\n <Button\n variant='primary'\n onClick={() => {\n dismiss();\n push({ content: 'Successfully Submitted!!' });\n }}\n >\n Submit\n </Button>\n </>\n }\n center\n >\n <Flex container={{ gap: 2, direction: 'column' }}>\n <SummaryItem\n primary={<Text variant='secondary'>Security policy</Text>}\n secondary={<Text variant='secondary'>PNG - 6.1MB</Text>}\n visual={<Icon name='document-doc' />}\n />\n <Select label='Select a service case' style={{ width: '15rem' }}>\n <Option value=''>Select…</Option>\n <Option value='Make payment' selected>\n Make payment\n </Option>\n <Option value='Facilities'>Facilities</Option>\n </Select>\n </Flex>\n </Modal>\n );\n };\n\n const onAssociateWithCase = () => {\n create(MyModal);\n };\n\n const actions: AttachmentItemProps['actions'] = [\n {\n text: 'Associate with case',\n id: 'Associate with case',\n onClick: () => {\n action('Associate with case');\n onAssociateWithCase();\n }\n },\n {\n text: 'Download',\n id: 'Download',\n onClick: () => {\n action('Download');\n }\n }\n ];\n\n const mockChatMessages = useMemo(() => {\n return [\n ...mockChatMessagesJson.map(message => {\n const { messagePrivacy, ...restMessageData } = message;\n if (messagePrivacy) {\n restMessageData.messageHeader = {\n content: <span>{messagePrivacy}</span>,\n meta: <Link href='/'>I-12345</Link>\n };\n }\n if (restMessageData.attachments) {\n restMessageData.attachments = restMessageData.attachments.map(\n (item: AttachmentItemProps) => {\n return {\n ...item,\n actions\n };\n }\n );\n }\n return restMessageData;\n })\n ];\n }, []);\n\n const conversationRef = useRef<ChatBodyHandleValue>(null);\n const timers = useRef<number[]>([]);\n\n useEffect(() => {\n return () => {\n timers.current.forEach(clearTimeout);\n };\n }, []);\n\n const [attachments, setAttachments] = useState<AttachmentItemProps[]>(defaultAttachments);\n const [unreadMessageCount, setUnreadMessageCount] = useState(0);\n const [chatMessages, setChatMessages] = useState<any[]>(\n LiveChatConversation.map(message => {\n if (message.type === 'message' && message.attachments) {\n message.attachments = message.attachments.map((item: AttachmentItemProps) => {\n return {\n ...item,\n actions\n };\n });\n }\n return message;\n })\n );\n const [contextItems, setContextItems] = useState<FieldValueListItemProps[]>([]);\n const [contextLoading, setContextLoading] = useState(false);\n const [suggestedRepliesCollapsed, setSuggestedRepliesCollapsed] = useState<boolean>(false);\n\n const onDeleteAttachment = useCallback(\n (name: string) => {\n setAttachments(prevAttachments => prevAttachments.filter(item => item.name !== name));\n },\n [setAttachments]\n );\n\n useEffect(() => {\n setAttachments(\n defaultAttachments.map((item: any) => {\n return {\n ...item,\n onDelete: onDeleteAttachment\n };\n })\n );\n }, [defaultAttachments]);\n\n const appendMessage = (message: any) => {\n const incrementUnreadMessageCount = conversationRef.current?.isScrolledToLatest();\n setChatMessages(prevChatMessages => {\n const newMockMessage: any = {\n ...message\n };\n newMockMessage.id = `m-${message.id ? message.id : prevChatMessages.length}`;\n if (\n !incrementUnreadMessageCount &&\n prevChatMessages.filter(({ id }) => id === NewMessageSeparatorId).length === 0\n ) {\n return [\n ...prevChatMessages,\n {\n id: NewMessageSeparatorId,\n type: 'system',\n message: 'New messages',\n variant: 'primary'\n },\n newMockMessage\n ];\n }\n return [...prevChatMessages, newMockMessage];\n });\n if (!incrementUnreadMessageCount) {\n setUnreadMessageCount(prevCount => prevCount + 1);\n }\n };\n\n useEffect(() => {\n if (args.simulateConversation) {\n const timeOutId = setTimeout(() => {\n if (mockChatMessages.length) {\n appendMessage(mockChatMessages.shift());\n }\n }, 1500);\n return () => {\n clearTimeout(timeOutId);\n };\n }\n }, [chatMessages, args.simulateConversation]);\n\n const chatBanner: BannerProps = {\n messages: ['This is a public interaction and any responses will be public and visible'],\n variant: 'warning'\n };\n\n const bodyProps: ChatBodyProps = {\n unreadMessageCount,\n handle: conversationRef,\n transcripts: [\n { id: createUID(), messages: BotConversation },\n { id: createUID(), messages: ClaimsAgentConversation }\n ],\n liveChat:\n !args.simulateConversation && args.typingIndicator\n ? [\n ...chatMessages,\n {\n id: 'typingMessage',\n type: 'typing',\n avatarInfo: {\n name: 'Ginger Ventura'\n },\n message: args.message,\n senderId: 'gingerVentura',\n senderType: 'customer'\n }\n ]\n : chatMessages,\n onScrollToButtonClick: () => {\n const timeOutId: number = window.setTimeout(() => {\n setChatMessages(prevChatMessages =>\n prevChatMessages.filter(({ id }) => id !== NewMessageSeparatorId)\n );\n timers.current = timers.current.filter(id => id !== timeOutId);\n }, 5000);\n timers.current.push(timeOutId);\n setUnreadMessageCount(0);\n },\n loadMore: action('Load more'),\n offset: 5,\n loading: args.loading\n };\n\n const chatComposerImperativeHandleRef = useRef<ChatComposerImperativeHandleProps>(null);\n\n const [mountPopover, setMountPopover] = useState(false);\n const specialKeysConfig = {\n keys: ['//'],\n onSpecialKey: (e: SyntheticEvent<HTMLTextAreaElement>, key: string) => {\n action(`Event is ${e}`)();\n action(`Typed special key is ${key}`)();\n if (chatComposerImperativeHandleRef.current) {\n setMountPopover(!mountPopover);\n }\n }\n };\n\n const insertPhrasesMessage = (message: string) => {\n if (chatComposerImperativeHandleRef.current) {\n chatComposerImperativeHandleRef.current.appendToMessage(message, 'specialKey');\n setMountPopover(false);\n }\n };\n\n useOuterEvent(\n 'mousedown',\n [chatComposerImperativeHandleRef?.current?.chatComposerRef?.current as Element],\n () => {\n setMountPopover(false);\n }\n );\n\n const [search, setSearch] = useState('');\n const [isOpen, setIsOpen] = useState(false);\n const searchEleRef = useRef<HTMLInputElement>(null);\n const [announcement, setAnnouncement] = useState('');\n\n const searchRegex = useMemo(() => {\n const escapedSearch = search.replace(/[.*+\\-?^${}()|[\\]\\\\]/g, '\\\\$&');\n return new RegExp(escapedSearch);\n }, [search]);\n\n const itemsToRender = useMemo(() => {\n return menuHelpers.mapTree(\n search\n ? menuHelpers.flatten(phrasesDisplayNames).filter(({ primary }: MenuItemProps) => {\n return searchRegex.test(primary);\n })\n : phrasesDisplayNames,\n item => {\n return {\n ...item\n };\n }\n );\n }, [search, phrasesDisplayNames, searchRegex]);\n\n useEffect(() => {\n if (isOpen) {\n searchEleRef?.current?.focus();\n }\n }, [isOpen, searchEleRef.current]);\n\n const menuID = createUID();\n const menuListID = `${menuID}--list`;\n const [buttonEl, setButtonEl] = useElement<HTMLButtonElement>(null);\n const [popoverEl, setPopoverEl] = useElement<HTMLElement>(null);\n const [currentReply, setCurrentReply] = useState(suggestedReplies?.[0]?.id || '');\n\n useOuterEvent('mousedown', [popoverEl, buttonEl], () => {\n setIsOpen(false);\n setSearch('');\n });\n\n useEscape(() => {\n setIsOpen(false);\n });\n\n const pagePushItemsRender = useMemo(() => {\n return pagePushList.map(item => {\n return { id: item.id, primary: item.message };\n });\n }, [pagePushList]);\n\n const composerChildren = (\n <>\n <Button\n ref={setButtonEl}\n onClick={() => setIsOpen(cur => !cur)}\n variant='secondary'\n disabled={args.disableChat}\n >\n <Flex container={{ alignItems: 'center', gap: 1 }}>\n <Text>Phrases</Text>\n <Icon name='arrow-micro-down' />\n </Flex>\n </Button>\n\n <Popover show={isOpen} ref={setPopoverEl} target={buttonEl}>\n <Menu\n id={menuID}\n listId={menuListID}\n mode='action'\n variant='flyout'\n items={itemsToRender}\n role='listbox'\n onItemClick={id => {\n insertPhrasesMessage(phrasesMessages.filter(message => message.id === id)[0].message);\n setAnnouncement('Phrase inserted');\n setIsOpen(false);\n setSearch('');\n }}\n accent={search ? searchRegex : undefined}\n focusControlEl={searchEleRef.current || undefined}\n footer={\n <SearchInput\n ref={searchEleRef}\n onSearchChange={setSearch}\n value={search}\n role='searchbox'\n searchInputAriaLabel='Start typing to search.'\n />\n }\n />\n </Popover>\n\n <MenuButton\n text='Page push'\n disabled={args.disableChat}\n menu={{\n id: menuID,\n listId: menuListID,\n mode: 'action',\n variant: 'flyout',\n items: pagePushItemsRender,\n role: 'listbox',\n onItemClick: id => {\n setAnnouncement('Link inserted');\n setChatMessages(prevChatMessages => [\n ...prevChatMessages,\n pagePushList.filter(item => item.id === id)[0]\n ]);\n }\n }}\n />\n <Popover\n show={mountPopover}\n target={chatComposerImperativeHandleRef?.current?.textAreaRef?.current as Element}\n placement='top-start'\n >\n <Menu\n scrollAt={20}\n items={itemsToRender}\n onItemClick={id => {\n insertPhrasesMessage(phrasesMessages.filter(message => message.id === id)[0].message);\n setAnnouncement('Phrase inserted');\n }}\n focusControlEl={\n chatComposerImperativeHandleRef?.current?.textAreaRef?.current as\n | HTMLElement\n | undefined\n }\n />\n </Popover>\n </>\n );\n\n const composerProps: ChatComposerProps = {\n ref: chatComposerImperativeHandleRef,\n maxAttachments: args.maxAttachments,\n attachments: args.showAttachments ? attachments : [],\n specialKeysConfig,\n showEmoji: true,\n disabled: args.disableChat,\n onAddAttachment: () => {\n setAttachments([\n ...attachments,\n {\n id: `${attachments.length} statement.pdf`,\n name: `${attachments.length} statement.pdf`,\n onDelete: onDeleteAttachment\n }\n ]);\n },\n maxLength: args.maxLength,\n placeholder: args.placeholder,\n defaultMessage: args.defaultMessage,\n onSend: (message: string) => {\n action(`onAppendMessage: ${message}`)();\n appendMessage({\n senderType: 'agent',\n direction: 'out',\n avatarInfo: {\n name: 'Edward Green'\n },\n type: 'message',\n message,\n timeStamp: '2:08'\n });\n },\n children: composerChildren\n };\n\n const suggestedReplyPickerProps: SuggestedReplyPickerProps = {\n replies: suggestedReplies,\n onSelect: (suggestedReply: SuggestedReply) => {\n chatComposerImperativeHandleRef.current?.appendToMessage(suggestedReply.message, 'cursor');\n },\n collapsed: suggestedRepliesCollapsed,\n onExpandCollapse: () => {\n setSuggestedRepliesCollapsed(prev => !prev);\n },\n showNotification: true,\n currentReplyId: currentReply,\n onReplyChange: id => {\n setCurrentReply(id);\n },\n onSend: (message: string) => {\n action(`onAppendMessage: ${message}`)();\n appendMessage({\n senderType: 'agent',\n direction: 'out',\n avatarInfo: {\n name: 'Edward Green'\n },\n type: 'message',\n message,\n timeStamp: '2:08'\n });\n }\n };\n\n const emojiCtx = useMemo(\n () =>\n ({\n set: 'google',\n spriteSrcResolver: () =>\n 'https://unpkg.com/emoji-datasource-google@5.0.1/img/google/sheets-256/64.png'\n } as const),\n []\n );\n\n return (\n <EmojiContext.Provider value={emojiCtx}>\n <Flex\n container={{\n justify: 'center'\n }}\n style={{\n height: args.chatHeight || 'calc(100vh)',\n width: args.chatWidth || '30rem',\n margin: 'auto'\n }}\n >\n <VisuallyHiddenText aria-live='assertive'>{announcement}</VisuallyHiddenText>\n <Chat\n header={{\n title: Channels.options[args.selectedChannel || 'LiveChat'].title,\n icon: Channels.options[args.selectedChannel || 'LiveChat'].icon,\n customer: 'Ginger Ventura',\n authenticated: true,\n sentiment: { variant: 'positive' },\n context: {\n items: contextItems,\n onClick: () => {\n setContextLoading(true);\n setTimeout(() => {\n setContextItems(contextItemsMock);\n setContextLoading(false);\n }, 1000);\n },\n loading: contextLoading\n },\n actions: [\n { id: 'action-1', primary: 'Transfer' },\n { id: 'action-2', primary: 'End chat' }\n ]\n }}\n banner={args.showChatBanner ? chatBanner : undefined}\n body={bodyProps}\n suggestedReplyPicker={suggestedReplyPickerProps}\n composer={composerProps}\n />\n </Flex>\n </EmojiContext.Provider>\n );\n};\n\nStandardChat.args = {\n maxAttachments: 2,\n selectedChannel: 'LiveChat',\n showChatBanner: true,\n disableChat: false,\n simulateConversation: false,\n typingIndicator: false,\n message: '',\n placeholder: 'Enter message',\n defaultMessage:\n 'Greetings! Hope you are having a great time, Please reach out to us for any help, Thanks!',\n maxLength: 280,\n loading: false,\n showAttachments: true\n};\n\nStandardChat.argTypes = {\n maxAttachments: { control: { type: 'number' } },\n showAttachments: { control: { type: 'boolean' } },\n selectedChannel: { options: ['LiveChat', 'Twitter', 'Facebook'], control: { type: 'select' } },\n showChatBanner: { control: { type: 'boolean' } },\n disableChat: { control: { type: 'boolean' } },\n simulateConversation: { control: { type: 'boolean' } },\n typingIndicator: { control: { type: 'boolean' } },\n message: { control: { type: 'text' } },\n placeholder: { control: { type: 'text' } },\n defaultMessage: { control: { type: 'text' } },\n maxLength: { control: { type: 'number' } },\n loading: { control: { type: 'boolean' } }\n};\n\nStandardChat.parameters = {\n layout: 'fullscreen'\n};\n\n/** *************************** Standard Chat component - END ************************ */\n"]}
1
+ {"version":3,"file":"Chat.stories.jsx","sourceRoot":"","sources":["../../../src/social/Chat/Chat.stories.tsx"],"names":[],"mappings":"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","sourcesContent":["import { useState, useRef, useEffect, useCallback, useMemo } from 'react';\nimport type { SyntheticEvent } from 'react';\nimport { action } from '@storybook/addon-actions';\nimport type { Meta, StoryFn } from '@storybook/react';\n\nimport {\n Button,\n Icon,\n registerIcon,\n Text,\n MenuButton,\n Flex,\n Popover,\n Link,\n EmojiContext,\n createUID,\n useOuterEvent,\n Select,\n Option,\n useElement,\n useModalManager,\n useModalContext,\n Modal,\n SummaryItem,\n useToaster,\n SearchInput,\n menuHelpers,\n VisuallyHiddenText,\n Menu,\n useEscape,\n usePrevious\n} from '@pega/cosmos-react-core';\nimport type {\n BannerProps,\n MenuItemProps,\n FieldValueListItemProps,\n OmitStrict\n} from '@pega/cosmos-react-core';\nimport * as arrowMicroDownIcon from '@pega/cosmos-react-core/lib/components/Icon/icons/arrow-micro-down.icon';\nimport * as replyIcon from '@pega/cosmos-react-core/lib/components/Icon/icons/reply.icon';\nimport * as replyAllIcon from '@pega/cosmos-react-core/lib/components/Icon/icons/reply-all.icon';\nimport * as forwardIcon from '@pega/cosmos-react-core/lib/components/Icon/icons/forward.icon';\nimport {\n Chat,\n ChatHeader,\n ChatComposer,\n Message,\n NewMessageSeparatorId,\n SuggestedReplyPicker,\n SystemMessage,\n TypeIndicator,\n isReplyErrorState,\n isReplyLoadingState\n} from '@pega/cosmos-react-social';\nimport type {\n ChatHeaderProps,\n MessageProps,\n AttachmentItemProps,\n ChatComposerImperativeHandleProps,\n SuggestedReply,\n SystemMessageProps,\n ChatComposerProps,\n SuggestedReplyPickerProps,\n ChatBodyProps,\n ChatBodyHandleValue,\n MessageHeaderProps\n} from '@pega/cosmos-react-social';\n\nimport {\n ChatMockData,\n phrasesDisplayNames,\n phrasesMessages,\n contextItems as contextItemsMock,\n BotConversation,\n ClaimsAgentConversation,\n LiveChatConversation\n} from './Chat.mocks';\n\nregisterIcon(forwardIcon, replyIcon, replyAllIcon, arrowMicroDownIcon);\n\nexport default {\n title: 'Social/Chat',\n component: Chat\n} as Meta;\n\n/** *********************** ChatHeader component - START *********************** */\ninterface ChatHeaderDemoProps\n extends OmitStrict<ChatHeaderProps, 'actions' | 'sentiment' | 'context'> {}\n\nexport const ChatHeaderDemo: StoryFn<ChatHeaderDemoProps> = (args: ChatHeaderDemoProps) => {\n const { title, icon, customer, authenticated } = args;\n\n const [contextItems, setContextItems] = useState<FieldValueListItemProps[]>([]);\n const [loading, setLoading] = useState(false);\n\n return (\n <ChatHeader\n title={title}\n icon={icon || 'chat'}\n actions={[\n { id: 'action-1', primary: 'Transfer' },\n { id: 'action-2', primary: 'End chat' }\n ]}\n sentiment={{\n variant: 'positive',\n 'aria-label': 'Sentiment is positive'\n }}\n customer={customer}\n authenticated={authenticated}\n context={{\n items: contextItems,\n onClick: () => {\n setLoading(true);\n setTimeout(() => {\n setContextItems(contextItemsMock);\n setLoading(false);\n }, 1000);\n },\n loading\n }}\n />\n );\n};\n\nChatHeaderDemo.args = {\n title: 'Live chat',\n icon: 'chat',\n customer: 'Ginger Ventura',\n authenticated: true\n};\n\nChatHeaderDemo.argTypes = {\n title: { control: { type: 'text' } },\n icon: { control: { type: 'text' }, type: { name: 'string', required: false } },\n customer: { control: { type: 'text' } },\n authenticated: { control: { type: 'boolean' }, type: { name: 'string', required: false } }\n};\n/** ***************************** ChatHeader component - END ******************* */\n\n/** ***************************** Message component - START ********************** */\n\ninterface MessageDemoProps extends OmitStrict<MessageProps, 'senderId' | 'messageHeader'> {\n showTimestamp: boolean;\n showStatus: boolean;\n showHeader: boolean;\n headerContent: MessageHeaderProps['content'];\n headerMeta: MessageHeaderProps['meta'];\n showAvatarImage: boolean;\n showAttachments: boolean;\n showMediaPageLinks: boolean;\n}\n\nexport const MessageDemo: StoryFn<MessageDemoProps> = (args: MessageDemoProps) => {\n const actions: AttachmentItemProps['actions'] = [\n {\n text: 'Associate with case',\n id: 'Associate with case',\n onClick: () => {\n action('Associate with case');\n }\n },\n {\n text: 'Download',\n id: 'Download',\n onClick: () => {\n action('Download');\n }\n }\n ];\n\n const attachments = [\n {\n id: '2499167340',\n name: 'Location',\n icon: 'document',\n meta: 'PNG 0.1 MB',\n thumbnail:\n 'https://pegasystems.github.io/uplus-wss/health_provider/img/secondary-options.jpg',\n actions\n },\n {\n id: '2499167341',\n name: 'FAQ with detailed terms and conditions of the policy',\n icon: 'document-pdf',\n meta: 'PDF 0.7 MB',\n actions\n }\n ];\n const mediaPageLinks = [\n {\n id: '2499167349',\n href: 'https://collaborate.pega.com/',\n thumbnail:\n 'https://community.pega.com/sites/default/files/styles/480/public/media/images/2020-02/AskExpert.png?itok=ef2MVbOV',\n title: 'Ask the expert'\n }\n ];\n return (\n <Message\n attachments={args.showAttachments ? attachments : undefined}\n mediaPageLinks={args.showMediaPageLinks ? mediaPageLinks : undefined}\n avatarInfo={\n args.direction === 'in' && args.senderType !== 'bot'\n ? {\n name: 'John Brown',\n imageSrc: args.showAvatarImage\n ? 'https://pegasystems.github.io/uplus-wss/insurance/img/option-1.jpg'\n : undefined\n }\n : undefined\n }\n timestamp={args.showTimestamp ? args.timestamp : undefined}\n status={args.showStatus ? args.status : undefined}\n message={args.message}\n direction={args.direction}\n senderType={args.senderType}\n senderId={createUID()}\n agentVariant={args.agentVariant}\n messageHeader={\n args.showHeader ? { content: args.headerContent, meta: args.headerMeta } : undefined\n }\n />\n );\n};\n\nMessageDemo.args = {\n direction: 'in',\n senderType: 'customer',\n agentVariant: 0,\n message: 'Hi, Welcome to u-plus. How can I help you ?',\n showStatus: true,\n status: 'delivered',\n showTimestamp: true,\n timestamp: '1:44 PM',\n showHeader: false,\n headerContent: 'Public Reply',\n headerMeta: 'I-12345',\n showAvatarImage: false,\n showAttachments: false,\n showMediaPageLinks: false\n};\n\nMessageDemo.argTypes = {\n direction: { options: ['in', 'out'], control: { type: 'inline-radio' } },\n senderType: { options: ['agent', 'customer', 'bot'], control: { type: 'inline-radio' } },\n agentVariant: { type: 'number' },\n message: { type: 'string' },\n showTimestamp: { type: 'boolean' },\n timestamp: { control: 'text' },\n showStatus: { type: 'boolean' },\n status: {\n options: ['delivered', 'opened', 'undeliverable', 'sent'],\n control: { type: 'inline-radio' }\n },\n showHeader: { control: 'boolean' },\n headerContent: { control: 'text' },\n headerMeta: { control: 'text' },\n showAvatarImage: { control: 'boolean' },\n showAttachments: { control: 'boolean' },\n showMediaPageLinks: { control: 'boolean' }\n};\n/** ***************************** Message component - END *********************** */\n\n/** **************************** SystemMessage component - START ***************** */\nexport const SystemMessageDemo: StoryFn<SystemMessageProps> = (args: SystemMessageProps) => (\n <SystemMessage message={args.message} timestamp={args.timestamp} variant={args.variant} />\n);\n\nSystemMessageDemo.args = {\n message: 'John Brown has joined',\n variant: 'secondary',\n timestamp: '10:00 AM'\n};\n\nSystemMessageDemo.argTypes = {\n message: { control: { type: 'text' } },\n variant: { options: ['primary', 'secondary'], control: { type: 'select' } },\n timestamp: { control: { type: 'text' } }\n};\n/** ***************************** SystemMessage component - END ******************** */\n\n/** ***************************** TypeIndicator component - START ****************** */\ninterface TypeIndicatorDemoProps {\n message?: string;\n}\nexport const TypeIndicatorDemo: StoryFn<TypeIndicatorDemoProps> = (\n args: TypeIndicatorDemoProps\n) => {\n return (\n <TypeIndicator\n avatarInfo={{ name: 'John Brown' }}\n message={args.message}\n senderId='johnBrown'\n senderType='agent'\n />\n );\n};\n\nTypeIndicatorDemo.args = {\n message: ''\n};\n\nTypeIndicatorDemo.argTypes = {\n message: { control: { type: 'text' } }\n};\n/** *************************** TypeIndicator component - END *********************** */\n\n/** *************************** SuggestedReplyPicker component - START ****************** */\ninterface SuggestedReplyPickerDemoProps {\n showNotification?: boolean;\n singleSuggestedReply?: boolean;\n noSuggestedReplies?: boolean;\n disableButton?: boolean;\n}\n\nexport const SuggestedReplyPickerDemo: StoryFn<SuggestedReplyPickerDemoProps> = (\n args: SuggestedReplyPickerDemoProps\n) => {\n const [suggestedRepliesCollapsed, setSuggestedRepliesCollapsed] = useState<boolean>(false);\n const [currentReplyId, setCurrentReplyId] = useState(\n ChatMockData?.suggestedReplies?.[0]?.id || ''\n );\n const renderReplies = args.singleSuggestedReply\n ? [ChatMockData.suggestedReplies[0]]\n : ChatMockData.suggestedReplies;\n return (\n <SuggestedReplyPicker\n replies={args.noSuggestedReplies ? [] : renderReplies}\n onSelect={suggestedReply => {\n if (!isReplyErrorState(suggestedReply) && !isReplyLoadingState(suggestedReply))\n action(`Suggested reply picked ${suggestedReply.message}`)();\n }}\n collapsed={suggestedRepliesCollapsed}\n onExpandCollapse={() => {\n setSuggestedRepliesCollapsed(prev => !prev);\n }}\n currentReplyId={currentReplyId}\n onReplyChange={setCurrentReplyId}\n showNotification={args.showNotification}\n onSend={() => action('Send suggested reply')}\n disabled={args.disableButton}\n />\n );\n};\nSuggestedReplyPickerDemo.args = {\n showNotification: false,\n singleSuggestedReply: false,\n noSuggestedReplies: false,\n disableButton: false\n};\n\nSuggestedReplyPickerDemo.argTypes = {\n showNotification: { type: 'boolean' },\n singleSuggestedReply: { type: 'boolean' },\n noSuggestedReplies: { type: 'boolean' },\n disableButton: { type: 'boolean' }\n};\n\n/** *************************** SuggestedReplyPicker component - END ****************** */\n\n/** ******************************* ChatComposer component - START ************************ */\ninterface ChatComposerDemoProps {\n maxAttachments?: number;\n showSuggestReplyButton?: boolean;\n}\n\nexport const ChatComposerDemo: StoryFn<ChatComposerDemoProps> = (args: ChatComposerDemoProps) => (\n <ChatComposer\n maxAttachments={args.maxAttachments}\n attachments={ChatMockData.defaultAttachments}\n maxLength={256}\n placeholder='Type here to send message'\n onSend={() => {}}\n onSuggestReplyClick={args.showSuggestReplyButton ? action('Suggest reply clicked') : undefined}\n >\n <MenuButton text='Phrases' menu={{ items: [] }} />\n <MenuButton text='Page Push' menu={{ items: [] }} />\n </ChatComposer>\n);\n\nChatComposerDemo.args = {\n maxAttachments: 2,\n showSuggestReplyButton: false\n};\n\nChatComposerDemo.argTypes = {\n maxAttachments: { control: { type: 'number' } },\n showSuggestReplyButton: { control: { type: 'boolean' } }\n};\n/** *********************************** ChatComposer component - END ********************** */\n\n/** *********************************** Standard Chat component - START ******************** */\ninterface StandardChatProps {\n maxAttachments?: number;\n chatWidth?: string;\n chatHeight?: string;\n selectedChannel?: string;\n showChatBanner?: boolean;\n disableChat?: boolean;\n simulateConversation?: boolean;\n message?: string;\n placeholder?: string;\n defaultMessage?: string;\n maxLength?: number;\n loading?: boolean;\n typingIndicator?: boolean;\n showAttachments?: boolean;\n genAIErrorState?: string;\n}\n\nexport const StandardChat: StoryFn<StandardChatProps> = (args: StandardChatProps) => {\n const ChatMockDataClone: any = useMemo(() => {\n return JSON.parse(JSON.stringify(ChatMockData));\n }, [ChatMockData]);\n\n const Channels: {\n label: string;\n options: any;\n } = {\n label: 'Channel',\n options: {\n LiveChat: {\n title: 'Live chat',\n icon: 'chat'\n },\n Twitter: {\n title: 'Twitter chat',\n icon: 'twitter'\n },\n Facebook: {\n title: 'Facebook messenger',\n icon: 'facebook'\n }\n }\n };\n\n const {\n chatMessages: mockChatMessagesJson,\n defaultAttachments,\n suggestedReplies\n }: {\n participants: any;\n chatMessages: any[];\n defaultAttachments: any[];\n suggestedReplies: SuggestedReply[];\n } = ChatMockDataClone;\n\n const { create } = useModalManager();\n\n const MyModal = () => {\n const { dismiss } = useModalContext();\n const { push } = useToaster();\n\n return (\n <Modal\n heading='Associate with case'\n actions={\n <>\n <Button\n onClick={() => {\n dismiss();\n push({ content: 'Cancelled' });\n }}\n >\n Cancel\n </Button>\n <Button\n variant='primary'\n onClick={() => {\n dismiss();\n push({ content: 'Successfully Submitted!!' });\n }}\n >\n Submit\n </Button>\n </>\n }\n center\n >\n <Flex container={{ gap: 2, direction: 'column' }}>\n <SummaryItem\n primary={<Text variant='secondary'>Security policy</Text>}\n secondary={<Text variant='secondary'>PNG - 6.1MB</Text>}\n visual={<Icon name='document-doc' />}\n />\n <Select label='Select a service case' style={{ width: '15rem' }}>\n <Option value=''>Select…</Option>\n <Option value='Make payment' selected>\n Make payment\n </Option>\n <Option value='Facilities'>Facilities</Option>\n </Select>\n </Flex>\n </Modal>\n );\n };\n\n const onAssociateWithCase = () => {\n create(MyModal);\n };\n\n const actions: AttachmentItemProps['actions'] = [\n {\n text: 'Associate with case',\n id: 'Associate with case',\n onClick: () => {\n action('Associate with case');\n onAssociateWithCase();\n }\n },\n {\n text: 'Download',\n id: 'Download',\n onClick: () => {\n action('Download');\n }\n }\n ];\n\n const mockChatMessages = useMemo(() => {\n return [\n ...mockChatMessagesJson.map(message => {\n const { messagePrivacy, ...restMessageData } = message;\n if (messagePrivacy) {\n restMessageData.messageHeader = {\n content: <span>{messagePrivacy}</span>,\n meta: <Link href='/'>I-12345</Link>\n };\n }\n if (restMessageData.attachments) {\n restMessageData.attachments = restMessageData.attachments.map(\n (item: AttachmentItemProps) => {\n return {\n ...item,\n actions\n };\n }\n );\n }\n return restMessageData;\n })\n ];\n }, []);\n\n const conversationRef = useRef<ChatBodyHandleValue>(null);\n const timers = useRef<number[]>([]);\n\n useEffect(() => {\n return () => {\n timers.current.forEach(clearTimeout);\n };\n }, []);\n\n const [attachments, setAttachments] = useState<AttachmentItemProps[]>(defaultAttachments);\n const [unreadMessageCount, setUnreadMessageCount] = useState(0);\n const [chatMessages, setChatMessages] = useState<any[]>(\n LiveChatConversation.map(message => {\n if (message.type === 'message' && message.attachments) {\n message.attachments = message.attachments.map((item: AttachmentItemProps) => {\n return {\n ...item,\n actions\n };\n });\n }\n return message;\n })\n );\n const [contextItems, setContextItems] = useState<FieldValueListItemProps[]>([]);\n const [contextLoading, setContextLoading] = useState(false);\n const [suggestedRepliesCollapsed, setSuggestedRepliesCollapsed] = useState<boolean>(false);\n const [disableSuggestReply, setDisableSuggestReply] = useState(false);\n\n const onDeleteAttachment = useCallback(\n (name: string) => {\n setAttachments(prevAttachments => prevAttachments.filter(item => item.name !== name));\n },\n [setAttachments]\n );\n\n useEffect(() => {\n setAttachments(\n defaultAttachments.map((item: any) => {\n return {\n ...item,\n onDelete: onDeleteAttachment\n };\n })\n );\n }, [defaultAttachments]);\n\n const prevState = usePrevious(chatMessages);\n\n useEffect(() => {\n if (\n chatMessages &&\n prevState &&\n chatMessages.filter(({ senderType }) => senderType === 'customer').length >\n prevState.filter(({ senderType }) => senderType === 'customer').length\n )\n setDisableSuggestReply(false);\n }, [chatMessages]);\n\n useEffect(() => {\n setDisableSuggestReply(false);\n }, [args.genAIErrorState]);\n\n const appendMessage = (message: any) => {\n const incrementUnreadMessageCount = conversationRef.current?.isScrolledToLatest();\n setChatMessages(prevChatMessages => {\n const newMockMessage: any = {\n ...message\n };\n newMockMessage.id = `m-${message.id ? message.id : prevChatMessages.length}`;\n if (\n !incrementUnreadMessageCount &&\n prevChatMessages.filter(({ id }) => id === NewMessageSeparatorId).length === 0\n ) {\n return [\n ...prevChatMessages,\n {\n id: NewMessageSeparatorId,\n type: 'system',\n message: 'New messages',\n variant: 'primary'\n },\n newMockMessage\n ];\n }\n return [...prevChatMessages, newMockMessage];\n });\n if (!incrementUnreadMessageCount) {\n setUnreadMessageCount(prevCount => prevCount + 1);\n }\n };\n\n useEffect(() => {\n if (args.simulateConversation) {\n const timeOutId = setTimeout(() => {\n if (mockChatMessages.length) {\n appendMessage(mockChatMessages.shift());\n }\n }, 1500);\n return () => {\n clearTimeout(timeOutId);\n };\n }\n }, [chatMessages, args.simulateConversation]);\n\n const chatBanner: BannerProps = {\n messages: ['This is a public interaction and any responses will be public and visible'],\n variant: 'warning'\n };\n\n const bodyProps: ChatBodyProps = {\n unreadMessageCount,\n handle: conversationRef,\n transcripts: [\n { id: createUID(), messages: BotConversation },\n { id: createUID(), messages: ClaimsAgentConversation }\n ],\n liveChat:\n !args.simulateConversation && args.typingIndicator\n ? [\n ...chatMessages,\n {\n id: 'typingMessage',\n type: 'typing',\n avatarInfo: {\n name: 'Ginger Ventura'\n },\n message: args.message,\n senderId: 'gingerVentura',\n senderType: 'customer'\n }\n ]\n : chatMessages,\n onScrollToButtonClick: () => {\n const timeOutId: number = window.setTimeout(() => {\n setChatMessages(prevChatMessages =>\n prevChatMessages.filter(({ id }) => id !== NewMessageSeparatorId)\n );\n timers.current = timers.current.filter(id => id !== timeOutId);\n }, 5000);\n timers.current.push(timeOutId);\n setUnreadMessageCount(0);\n },\n loadMore: action('Load more'),\n offset: 5,\n loading: args.loading\n };\n\n const chatComposerImperativeHandleRef = useRef<ChatComposerImperativeHandleProps>(null);\n\n const [mountPopover, setMountPopover] = useState(false);\n const specialKeysConfig = {\n keys: ['//'],\n onSpecialKey: (e: SyntheticEvent<HTMLTextAreaElement>, key: string) => {\n action(`Event is ${e}`)();\n action(`Typed special key is ${key}`)();\n if (chatComposerImperativeHandleRef.current) {\n setMountPopover(!mountPopover);\n }\n }\n };\n\n const insertPhrasesMessage = (message: string) => {\n if (chatComposerImperativeHandleRef.current) {\n chatComposerImperativeHandleRef.current.appendToMessage(message, 'specialKey');\n setMountPopover(false);\n }\n };\n\n useOuterEvent(\n 'mousedown',\n [chatComposerImperativeHandleRef?.current?.chatComposerRef?.current as Element],\n () => {\n setMountPopover(false);\n }\n );\n\n const [search, setSearch] = useState('');\n const [isOpen, setIsOpen] = useState(false);\n const searchEleRef = useRef<HTMLInputElement>(null);\n const [announcement, setAnnouncement] = useState('');\n\n const searchRegex = useMemo(() => {\n const escapedSearch = search.replace(/[.*+\\-?^${}()|[\\]\\\\]/g, '\\\\$&');\n return new RegExp(escapedSearch);\n }, [search]);\n\n const itemsToRender = useMemo(() => {\n return menuHelpers.mapTree(\n search\n ? menuHelpers.flatten(phrasesDisplayNames).filter(({ primary }: MenuItemProps) => {\n return searchRegex.test(primary);\n })\n : phrasesDisplayNames,\n item => {\n return {\n ...item\n };\n }\n );\n }, [search, phrasesDisplayNames, searchRegex]);\n\n useEffect(() => {\n if (isOpen) {\n searchEleRef?.current?.focus();\n }\n }, [isOpen, searchEleRef.current]);\n\n const menuID = createUID();\n const menuListID = `${menuID}--list`;\n const [buttonEl, setButtonEl] = useElement<HTMLButtonElement>(null);\n const [popoverEl, setPopoverEl] = useElement<HTMLElement>(null);\n const [currentReply, setCurrentReply] = useState(suggestedReplies?.[0]?.id || '');\n const [replies, setReplies] = useState(suggestedReplies);\n\n useOuterEvent('mousedown', [popoverEl, buttonEl], () => {\n setIsOpen(false);\n setSearch('');\n });\n\n useEscape(() => {\n setIsOpen(false);\n });\n\n const composerChildren = (\n <>\n <Button\n ref={setButtonEl}\n onClick={() => setIsOpen(cur => !cur)}\n variant='secondary'\n disabled={args.disableChat}\n >\n <Flex container={{ alignItems: 'center', gap: 1 }}>\n <Text>Phrases</Text>\n <Icon name='arrow-micro-down' />\n </Flex>\n </Button>\n\n <Popover show={isOpen} ref={setPopoverEl} target={buttonEl}>\n <Menu\n id={menuID}\n listId={menuListID}\n mode='action'\n variant='flyout'\n items={itemsToRender}\n role='listbox'\n onItemClick={id => {\n insertPhrasesMessage(phrasesMessages.filter(message => message.id === id)[0].message);\n setAnnouncement('Phrase inserted');\n setIsOpen(false);\n setSearch('');\n }}\n accent={search ? searchRegex : undefined}\n focusControlEl={searchEleRef.current || undefined}\n footer={\n <SearchInput\n ref={searchEleRef}\n onSearchChange={setSearch}\n value={search}\n role='searchbox'\n searchInputAriaLabel='Start typing to search.'\n />\n }\n />\n </Popover>\n </>\n );\n\n const composerProps: ChatComposerProps = {\n ref: chatComposerImperativeHandleRef,\n maxAttachments: args.maxAttachments,\n attachments: args.showAttachments ? attachments : [],\n specialKeysConfig,\n showEmoji: true,\n disabled: args.disableChat,\n disableSuggestReply,\n onAddAttachment: () => {\n setAttachments([\n ...attachments,\n {\n id: `${attachments.length} statement.pdf`,\n name: `${attachments.length} statement.pdf`,\n onDelete: onDeleteAttachment\n }\n ]);\n },\n maxLength: args.maxLength,\n placeholder: args.placeholder,\n defaultMessage: args.defaultMessage,\n onSend: (message: string) => {\n action(`onAppendMessage: ${message}`)();\n appendMessage({\n senderType: 'agent',\n direction: 'out',\n avatarInfo: {\n name: 'Edward Green'\n },\n type: 'message',\n message,\n timeStamp: '2:08'\n });\n },\n onSuggestReplyClick: () => {\n const newReplyId = 'genAI';\n setDisableSuggestReply(true);\n setSuggestedRepliesCollapsed(false);\n setCurrentReply(newReplyId);\n setReplies(prev => {\n return [\n {\n id: newReplyId,\n loading: true,\n type: 'genAIReply'\n },\n ...prev.filter(reply => reply.type !== 'genAIReply')\n ];\n });\n setTimeout(() => {\n if (args.genAIErrorState === 'No suggestions') {\n setReplies(prev => {\n return [\n {\n id: newReplyId,\n message: 'No suggestions',\n errorType: 'noSuggestions',\n type: 'genAIReply'\n },\n ...prev.filter(reply => reply.type !== 'genAIReply')\n ];\n });\n } else if (args.genAIErrorState === 'Error') {\n setReplies(prev => {\n return [\n {\n id: newReplyId,\n message: 'Failed to retrieve the data',\n errorType: 'error',\n type: 'genAIReply'\n },\n ...prev.filter(reply => reply.type !== 'genAIReply')\n ];\n });\n setDisableSuggestReply(false);\n } else {\n setReplies(prev => {\n return [\n {\n id: newReplyId,\n message: 'Happy to help. Is there anything else I can help with?',\n confidence: 75,\n type: 'genAIReply'\n },\n ...prev.filter(reply => reply.type !== 'genAIReply')\n ];\n });\n }\n }, 1000);\n },\n children: composerChildren\n };\n\n const suggestedReplyPickerProps: SuggestedReplyPickerProps = {\n replies,\n onSelect: (suggestedReply: SuggestedReply) => {\n if (!isReplyErrorState(suggestedReply) && !isReplyLoadingState(suggestedReply))\n chatComposerImperativeHandleRef.current?.appendToMessage(suggestedReply.message, 'cursor');\n },\n collapsed: suggestedRepliesCollapsed,\n onExpandCollapse: () => {\n setSuggestedRepliesCollapsed(prev => !prev);\n },\n showNotification: true,\n currentReplyId: currentReply,\n onReplyChange: id => {\n setCurrentReply(id);\n },\n onSend: (message: string) => {\n action(`onAppendMessage: ${message}`)();\n appendMessage({\n senderType: 'agent',\n direction: 'out',\n avatarInfo: {\n name: 'Edward Green'\n },\n type: 'message',\n message,\n timeStamp: '2:08'\n });\n }\n };\n\n const emojiCtx = useMemo(\n () =>\n ({\n set: 'google',\n spriteSrcResolver: () =>\n 'https://unpkg.com/emoji-datasource-google@5.0.1/img/google/sheets-256/64.png'\n } as const),\n []\n );\n\n return (\n <EmojiContext.Provider value={emojiCtx}>\n <Flex\n container={{\n justify: 'center'\n }}\n style={{\n height: args.chatHeight || 'calc(100vh)',\n width: args.chatWidth || '30rem',\n margin: 'auto'\n }}\n >\n <VisuallyHiddenText aria-live='assertive'>{announcement}</VisuallyHiddenText>\n <Chat\n header={{\n title: Channels.options[args.selectedChannel || 'LiveChat'].title,\n icon: Channels.options[args.selectedChannel || 'LiveChat'].icon,\n customer: 'Ginger Ventura',\n authenticated: true,\n sentiment: { variant: 'positive' },\n context: {\n items: contextItems,\n onClick: () => {\n setContextLoading(true);\n setTimeout(() => {\n setContextItems(contextItemsMock);\n setContextLoading(false);\n }, 1000);\n },\n loading: contextLoading\n },\n actions: [\n { id: 'action-1', primary: 'Transfer' },\n { id: 'action-2', primary: 'End chat' }\n ]\n }}\n banner={args.showChatBanner ? chatBanner : undefined}\n body={bodyProps}\n suggestedReplyPicker={suggestedReplyPickerProps}\n composer={composerProps}\n />\n </Flex>\n </EmojiContext.Provider>\n );\n};\n\nStandardChat.args = {\n maxAttachments: 2,\n selectedChannel: 'LiveChat',\n showChatBanner: true,\n disableChat: false,\n simulateConversation: false,\n typingIndicator: false,\n message: '',\n placeholder: 'Enter message',\n defaultMessage:\n 'Greetings! Hope you are having a great time, Please reach out to us for any help, Thanks!',\n maxLength: 280,\n loading: false,\n showAttachments: true,\n genAIErrorState: 'No error'\n};\n\nStandardChat.argTypes = {\n maxAttachments: { control: { type: 'number' } },\n showAttachments: { control: { type: 'boolean' } },\n selectedChannel: { options: ['LiveChat', 'Twitter', 'Facebook'], control: { type: 'select' } },\n showChatBanner: { control: { type: 'boolean' } },\n disableChat: { control: { type: 'boolean' } },\n simulateConversation: { control: { type: 'boolean' } },\n typingIndicator: { control: { type: 'boolean' } },\n message: { control: { type: 'text' } },\n placeholder: { control: { type: 'text' } },\n defaultMessage: { control: { type: 'text' } },\n maxLength: { control: { type: 'number' } },\n loading: { control: { type: 'boolean' } },\n genAIErrorState: {\n options: ['No error', 'No suggestions', 'Error'],\n control: { type: 'select' }\n }\n};\n\nStandardChat.parameters = {\n layout: 'fullscreen'\n};\n\n/** *************************** Standard Chat component - END ************************ */\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"Details.stories.d.ts","sourceRoot":"","sources":["../../../src/work/Details/Details.stories.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAQ,OAAO,EAAE,MAAM,kBAAkB,CAAC;;AAKtD,wBAiBU;AAEV,UAAU,gBAAgB;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED,eAAO,MAAM,WAAW,EAAE,OAAO,CAAC,gBAAgB,CAkHjD,CAAC"}
1
+ {"version":3,"file":"Details.stories.d.ts","sourceRoot":"","sources":["../../../src/work/Details/Details.stories.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAQ,OAAO,EAAE,MAAM,kBAAkB,CAAC;;AAKtD,wBAiBU;AAEV,UAAU,gBAAgB;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED,eAAO,MAAM,WAAW,EAAE,OAAO,CAAC,gBAAgB,CAiHjD,CAAC"}
@@ -33,7 +33,6 @@ export const DetailsDemo = (args) => {
33
33
  <FieldValueItem variant='stacked' name='Model' value='F150'/>
34
34
  ]} description={description} collapsible={collapsible} additionalInfo={showAdditionalInfo
35
35
  ? {
36
- heading: 'Additional Info',
37
36
  content: (<Flex container={{ direction: 'column', alignItems: 'start', gap: 2 }}>
38
37
  <p>
39
38
  Lorem ipsum dolor sit amet, consectetur it, sed do tempor incididunt ut labore
@@ -1 +1 @@
1
- {"version":3,"file":"Details.stories.jsx","sourceRoot":"","sources":["../../../src/work/Details/Details.stories.tsx"],"names":[],"mappings":"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","sourcesContent":["import { useMemo } from 'react';\nimport type { Meta, StoryFn } from '@storybook/react';\n\nimport { Flex, Link, FieldValueItem, useBreakpoint } from '@pega/cosmos-react-core';\nimport { Details, DetailsContext } from '@pega/cosmos-react-work';\n\nexport default {\n title: 'Work/Details',\n component: Details,\n parameters: {\n layout: 'centered'\n },\n args: {\n description:\n 'Pellentesque pharetra justo augue, non maximus nulla venenatis et. Sed laoreet ultricies ullamcorper. Mauris ac nulla quis ipsum semper fringilla in eget risus. Fusce cursus sollicitudin nibh molestie volutpat.',\n collapsible: false,\n showAdditionalInfo: false\n },\n argTypes: {\n description: { control: { type: 'text' } },\n collapsible: { control: { type: 'boolean' } },\n showAdditionalInfo: { control: { type: 'boolean' } }\n }\n} as Meta;\n\ninterface DetailsDemoProps {\n description?: string;\n collapsible?: boolean;\n showAdditionalInfo?: boolean;\n}\n\nexport const DetailsDemo: StoryFn<DetailsDemoProps> = (args: DetailsDemoProps) => {\n const { description, collapsible, showAdditionalInfo } = args;\n const isNotMobile = useBreakpoint('sm');\n\n const ctx = useMemo(\n () => ({\n mobileView: !isNotMobile,\n longestLabelLength: 10\n }),\n [isNotMobile]\n );\n\n return (\n <DetailsContext.Provider value={ctx}>\n <Details\n name='Outer list'\n highlightedData={[\n <FieldValueItem variant='stacked' name='Age' value='56' />,\n <FieldValueItem variant='stacked' name='Location' value='Berlin' />,\n <FieldValueItem variant='stacked' name='Make' value='Ford' />,\n <FieldValueItem variant='stacked' name='Model' value='F150' />\n ]}\n description={description}\n collapsible={collapsible}\n additionalInfo={\n showAdditionalInfo\n ? {\n heading: 'Additional Info',\n content: (\n <Flex container={{ direction: 'column', alignItems: 'start', gap: 2 }}>\n <p>\n Lorem ipsum dolor sit amet, consectetur it, sed do tempor incididunt ut labore\n magna aliqua. Nibh praesent tristique magna sit amet. Nec tincidunt praesent\n semper feugiat nibh sed pulvinar proin gravida.\n </p>\n <p>\n Pharetra pharetra massa massa ultricies mi quis hendrerit dolor. Est velit\n egestas dui id ornare arcu odio ut. Varius sit amet mattis vulputate enim\n nulla aliquet porttitor lacus.\n </p>\n <Link href='/' target='_blank'>\n Neque vitae\n </Link>\n </Flex>\n )\n }\n : undefined\n }\n >\n {/* Siblings can be rendered in a responsive row with the `asFlex` attribute */}\n <Details name='Nested as flex' nested asFlex>\n {/* Arbitrary recursive nesting is supported with nested attribute */}\n <Details nested>\n <Details nested>\n <FieldValueItem name='Make' value='Ford' />\n <FieldValueItem name='Model' value='F150' />\n </Details>\n </Details>\n\n <Details nested>\n <FieldValueItem name='Mileage' value='78,500' />\n <FieldValueItem name='Trim' value='Lariat' />\n </Details>\n </Details>\n\n <FieldValueItem\n name='Description'\n variant='stacked'\n value={\n <p>\n Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse commodo nulla\n vitae mi bibendum, a fringilla nisl efficitur. Praesent vitae nulla lobortis, finibus\n felis ultricies, fermentum mi. Nunc lorem ligula, placerat nec elit id, auctor\n pellentesque est. Pellentesque pharetra justo augue, non maximus nulla venenatis et.\n Sed laoreet ultricies ullamcorper. Mauris ac nulla quis ipsum semper fringilla in eget\n risus. Fusce cursus sollicitudin nibh molestie volutpat.\n </p>\n }\n />\n\n <FieldValueItem name='Keys' value='3' />\n\n <Details name='Nested list' nested>\n <FieldValueItem name='First name' value='Howard' />\n <FieldValueItem name='Last name' value='Kennedy' />\n\n <Details name='Deeper list' nested>\n <FieldValueItem name='Color' value='red' />\n <FieldValueItem name='Year' value='2017' />\n </Details>\n\n <Details name='Value comparison' nested valueComparison>\n <FieldValueItem\n name='Open lorem ipsum dolor set amet ipsum ket sit amet'\n value='$405,000,000.00'\n />\n <FieldValueItem name='Close' value='$401.00' />\n <FieldValueItem name='52 week high' value='$445.00' />\n <FieldValueItem name='52 week low' value='$335.00' />\n </Details>\n\n <Details name='Collapsible' nested valueComparison collapsible>\n <FieldValueItem name='Open' value='$205.00' />\n <FieldValueItem name='Close' value='$209.00' />\n <FieldValueItem name='52 week high' value='$312.00' />\n <FieldValueItem name='52 week low' value='$115.00' />\n </Details>\n </Details>\n\n <FieldValueItem name='Age' value='56' />\n <FieldValueItem name='Location' value='Berlin' />\n </Details>\n </DetailsContext.Provider>\n );\n};\n"]}
1
+ {"version":3,"file":"Details.stories.jsx","sourceRoot":"","sources":["../../../src/work/Details/Details.stories.tsx"],"names":[],"mappings":"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","sourcesContent":["import { useMemo } from 'react';\nimport type { Meta, StoryFn } from '@storybook/react';\n\nimport { Flex, Link, FieldValueItem, useBreakpoint } from '@pega/cosmos-react-core';\nimport { Details, DetailsContext } from '@pega/cosmos-react-work';\n\nexport default {\n title: 'Work/Details',\n component: Details,\n parameters: {\n layout: 'centered'\n },\n args: {\n description:\n 'Pellentesque pharetra justo augue, non maximus nulla venenatis et. Sed laoreet ultricies ullamcorper. Mauris ac nulla quis ipsum semper fringilla in eget risus. Fusce cursus sollicitudin nibh molestie volutpat.',\n collapsible: false,\n showAdditionalInfo: false\n },\n argTypes: {\n description: { control: { type: 'text' } },\n collapsible: { control: { type: 'boolean' } },\n showAdditionalInfo: { control: { type: 'boolean' } }\n }\n} as Meta;\n\ninterface DetailsDemoProps {\n description?: string;\n collapsible?: boolean;\n showAdditionalInfo?: boolean;\n}\n\nexport const DetailsDemo: StoryFn<DetailsDemoProps> = (args: DetailsDemoProps) => {\n const { description, collapsible, showAdditionalInfo } = args;\n const isNotMobile = useBreakpoint('sm');\n\n const ctx = useMemo(\n () => ({\n mobileView: !isNotMobile,\n longestLabelLength: 10\n }),\n [isNotMobile]\n );\n\n return (\n <DetailsContext.Provider value={ctx}>\n <Details\n name='Outer list'\n highlightedData={[\n <FieldValueItem variant='stacked' name='Age' value='56' />,\n <FieldValueItem variant='stacked' name='Location' value='Berlin' />,\n <FieldValueItem variant='stacked' name='Make' value='Ford' />,\n <FieldValueItem variant='stacked' name='Model' value='F150' />\n ]}\n description={description}\n collapsible={collapsible}\n additionalInfo={\n showAdditionalInfo\n ? {\n content: (\n <Flex container={{ direction: 'column', alignItems: 'start', gap: 2 }}>\n <p>\n Lorem ipsum dolor sit amet, consectetur it, sed do tempor incididunt ut labore\n magna aliqua. Nibh praesent tristique magna sit amet. Nec tincidunt praesent\n semper feugiat nibh sed pulvinar proin gravida.\n </p>\n <p>\n Pharetra pharetra massa massa ultricies mi quis hendrerit dolor. Est velit\n egestas dui id ornare arcu odio ut. Varius sit amet mattis vulputate enim\n nulla aliquet porttitor lacus.\n </p>\n <Link href='/' target='_blank'>\n Neque vitae\n </Link>\n </Flex>\n )\n }\n : undefined\n }\n >\n {/* Siblings can be rendered in a responsive row with the `asFlex` attribute */}\n <Details name='Nested as flex' nested asFlex>\n {/* Arbitrary recursive nesting is supported with nested attribute */}\n <Details nested>\n <Details nested>\n <FieldValueItem name='Make' value='Ford' />\n <FieldValueItem name='Model' value='F150' />\n </Details>\n </Details>\n\n <Details nested>\n <FieldValueItem name='Mileage' value='78,500' />\n <FieldValueItem name='Trim' value='Lariat' />\n </Details>\n </Details>\n\n <FieldValueItem\n name='Description'\n variant='stacked'\n value={\n <p>\n Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse commodo nulla\n vitae mi bibendum, a fringilla nisl efficitur. Praesent vitae nulla lobortis, finibus\n felis ultricies, fermentum mi. Nunc lorem ligula, placerat nec elit id, auctor\n pellentesque est. Pellentesque pharetra justo augue, non maximus nulla venenatis et.\n Sed laoreet ultricies ullamcorper. Mauris ac nulla quis ipsum semper fringilla in eget\n risus. Fusce cursus sollicitudin nibh molestie volutpat.\n </p>\n }\n />\n\n <FieldValueItem name='Keys' value='3' />\n\n <Details name='Nested list' nested>\n <FieldValueItem name='First name' value='Howard' />\n <FieldValueItem name='Last name' value='Kennedy' />\n\n <Details name='Deeper list' nested>\n <FieldValueItem name='Color' value='red' />\n <FieldValueItem name='Year' value='2017' />\n </Details>\n\n <Details name='Value comparison' nested valueComparison>\n <FieldValueItem\n name='Open lorem ipsum dolor set amet ipsum ket sit amet'\n value='$405,000,000.00'\n />\n <FieldValueItem name='Close' value='$401.00' />\n <FieldValueItem name='52 week high' value='$445.00' />\n <FieldValueItem name='52 week low' value='$335.00' />\n </Details>\n\n <Details name='Collapsible' nested valueComparison collapsible>\n <FieldValueItem name='Open' value='$205.00' />\n <FieldValueItem name='Close' value='$209.00' />\n <FieldValueItem name='52 week high' value='$312.00' />\n <FieldValueItem name='52 week low' value='$115.00' />\n </Details>\n </Details>\n\n <FieldValueItem name='Age' value='56' />\n <FieldValueItem name='Location' value='Berlin' />\n </Details>\n </DetailsContext.Provider>\n );\n};\n"]}
@@ -2,8 +2,8 @@ import type { StoryFn } from '@storybook/react';
2
2
  import type { AdditionalInfoProps } from '@pega/cosmos-react-core';
3
3
  declare const _default: import("@storybook/types").ComponentAnnotations<import("@storybook/react/dist/types-0a347bb9").R, import("@storybook/types").Args>;
4
4
  export default _default;
5
- interface AdditionalInfoStoryProps extends AdditionalInfoProps {
5
+ type AdditionalInfoStoryProps = AdditionalInfoProps & {
6
6
  configurableContent: string;
7
- }
7
+ };
8
8
  export declare const AdditionalInfoDemo: StoryFn<AdditionalInfoStoryProps>;
9
9
  //# sourceMappingURL=AdditionalInfo.stories.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"AdditionalInfo.stories.d.ts","sourceRoot":"","sources":["../../../src/core/AdditionalInfo/AdditionalInfo.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAQ,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAGtD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;;AAEnE,wBAGU;AAEV,UAAU,wBAAyB,SAAQ,mBAAmB;IAC5D,mBAAmB,EAAE,MAAM,CAAC;CAC7B;AAED,eAAO,MAAM,kBAAkB,EAAE,OAAO,CAAC,wBAAwB,CAoBhE,CAAC"}
1
+ {"version":3,"file":"AdditionalInfo.stories.d.ts","sourceRoot":"","sources":["../../../src/core/AdditionalInfo/AdditionalInfo.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAQ,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAGtD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;;AAEnE,wBAGU;AAEV,KAAK,wBAAwB,GAAG,mBAAmB,GAAG;IACpD,mBAAmB,EAAE,MAAM,CAAC;CAC7B,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,OAAO,CAAC,wBAAwB,CAoBhE,CAAC"}
@@ -5,7 +5,7 @@ export default {
5
5
  component: AdditionalInfo
6
6
  };
7
7
  export const AdditionalInfoDemo = (args) => {
8
- return (_jsx(AdditionalInfo, { heading: 'Additional Info', children: _jsxs(Flex, { container: { justify: 'between' }, children: [_jsxs("p", { children: [args.configurableContent, _jsx("a", { href: 'https://www.pega.com', target: '_blank', rel: 'noreferrer', children: "This is a link" })] }), _jsx("img", { src: 'https://www.pyze.com/wp-content/uploads/2020/07/pega-transparent-logo-2.png', style: { width: 150 }, alt: '' })] }) }));
8
+ return (_jsx(AdditionalInfo, { heading: 'Additional info', children: _jsxs(Flex, { container: { justify: 'between' }, children: [_jsxs("p", { children: [args.configurableContent, _jsx("a", { href: 'https://www.pega.com', target: '_blank', rel: 'noreferrer', children: "This is a link" })] }), _jsx("img", { src: 'https://www.pyze.com/wp-content/uploads/2020/07/pega-transparent-logo-2.png', style: { width: 150 }, alt: '' })] }) }));
9
9
  };
10
10
  AdditionalInfoDemo.args = {
11
11
  configurableContent: 'This content can be modified to fit the necessary additional info. '
@@ -1 +1 @@
1
- {"version":3,"file":"AdditionalInfo.stories.js","sourceRoot":"","sources":["../../../src/core/AdditionalInfo/AdditionalInfo.stories.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAG/D,eAAe;IACb,KAAK,EAAE,qBAAqB;IAC5B,SAAS,EAAE,cAAc;CAClB,CAAC;AAMV,MAAM,CAAC,MAAM,kBAAkB,GAAsC,CACnE,IAA8B,EAC9B,EAAE;IACF,OAAO,CACL,KAAC,cAAc,IAAC,OAAO,EAAC,iBAAiB,YACvC,MAAC,IAAI,IAAC,SAAS,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,aACrC,wBACG,IAAI,CAAC,mBAAmB,EACzB,YAAG,IAAI,EAAC,sBAAsB,EAAC,MAAM,EAAC,QAAQ,EAAC,GAAG,EAAC,YAAY,+BAE3D,IACF,EACJ,cACE,GAAG,EAAC,6EAA6E,EACjF,KAAK,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,EACrB,GAAG,EAAC,EAAE,GACN,IACG,GACQ,CAClB,CAAC;AACJ,CAAC,CAAC;AAEF,kBAAkB,CAAC,IAAI,GAAG;IACxB,mBAAmB,EAAE,qEAAqE;CAC3F,CAAC;AAEF,kBAAkB,CAAC,QAAQ,GAAG;IAC5B,mBAAmB,EAAE,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE;CACnD,CAAC","sourcesContent":["import type { Meta, StoryFn } from '@storybook/react';\n\nimport { AdditionalInfo, Flex } from '@pega/cosmos-react-core';\nimport type { AdditionalInfoProps } from '@pega/cosmos-react-core';\n\nexport default {\n title: 'Core/AdditionalInfo',\n component: AdditionalInfo\n} as Meta;\n\ninterface AdditionalInfoStoryProps extends AdditionalInfoProps {\n configurableContent: string;\n}\n\nexport const AdditionalInfoDemo: StoryFn<AdditionalInfoStoryProps> = (\n args: AdditionalInfoStoryProps\n) => {\n return (\n <AdditionalInfo heading='Additional Info'>\n <Flex container={{ justify: 'between' }}>\n <p>\n {args.configurableContent}\n <a href='https://www.pega.com' target='_blank' rel='noreferrer'>\n This is a link\n </a>\n </p>\n <img\n src='https://www.pyze.com/wp-content/uploads/2020/07/pega-transparent-logo-2.png'\n style={{ width: 150 }}\n alt=''\n />\n </Flex>\n </AdditionalInfo>\n );\n};\n\nAdditionalInfoDemo.args = {\n configurableContent: 'This content can be modified to fit the necessary additional info. '\n};\n\nAdditionalInfoDemo.argTypes = {\n configurableContent: { control: { type: 'text' } }\n};\n"]}
1
+ {"version":3,"file":"AdditionalInfo.stories.js","sourceRoot":"","sources":["../../../src/core/AdditionalInfo/AdditionalInfo.stories.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAG/D,eAAe;IACb,KAAK,EAAE,qBAAqB;IAC5B,SAAS,EAAE,cAAc;CAClB,CAAC;AAMV,MAAM,CAAC,MAAM,kBAAkB,GAAsC,CACnE,IAA8B,EAC9B,EAAE;IACF,OAAO,CACL,KAAC,cAAc,IAAC,OAAO,EAAC,iBAAiB,YACvC,MAAC,IAAI,IAAC,SAAS,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,aACrC,wBACG,IAAI,CAAC,mBAAmB,EACzB,YAAG,IAAI,EAAC,sBAAsB,EAAC,MAAM,EAAC,QAAQ,EAAC,GAAG,EAAC,YAAY,+BAE3D,IACF,EACJ,cACE,GAAG,EAAC,6EAA6E,EACjF,KAAK,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,EACrB,GAAG,EAAC,EAAE,GACN,IACG,GACQ,CAClB,CAAC;AACJ,CAAC,CAAC;AAEF,kBAAkB,CAAC,IAAI,GAAG;IACxB,mBAAmB,EAAE,qEAAqE;CAC3F,CAAC;AAEF,kBAAkB,CAAC,QAAQ,GAAG;IAC5B,mBAAmB,EAAE,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE;CACnD,CAAC","sourcesContent":["import type { Meta, StoryFn } from '@storybook/react';\n\nimport { AdditionalInfo, Flex } from '@pega/cosmos-react-core';\nimport type { AdditionalInfoProps } from '@pega/cosmos-react-core';\n\nexport default {\n title: 'Core/AdditionalInfo',\n component: AdditionalInfo\n} as Meta;\n\ntype AdditionalInfoStoryProps = AdditionalInfoProps & {\n configurableContent: string;\n};\n\nexport const AdditionalInfoDemo: StoryFn<AdditionalInfoStoryProps> = (\n args: AdditionalInfoStoryProps\n) => {\n return (\n <AdditionalInfo heading='Additional info'>\n <Flex container={{ justify: 'between' }}>\n <p>\n {args.configurableContent}\n <a href='https://www.pega.com' target='_blank' rel='noreferrer'>\n This is a link\n </a>\n </p>\n <img\n src='https://www.pyze.com/wp-content/uploads/2020/07/pega-transparent-logo-2.png'\n style={{ width: 150 }}\n alt=''\n />\n </Flex>\n </AdditionalInfo>\n );\n};\n\nAdditionalInfoDemo.args = {\n configurableContent: 'This content can be modified to fit the necessary additional info. '\n};\n\nAdditionalInfoDemo.argTypes = {\n configurableContent: { control: { type: 'text' } }\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"Checkbox.stories.d.ts","sourceRoot":"","sources":["../../../src/core/Checkbox/Checkbox.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAQ,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAGtD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;;AAE/D,wBAwBU;AAEV,UAAU,kBAAmB,SAAQ,eAAe;IAClD,kBAAkB,EAAE,OAAO,CAAC;CAC7B;AAED,eAAO,MAAM,eAAe,EAAE,OAAO,CAAC,kBAAkB,CAoBvD,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,OAAO,CAAC,kBAAkB,CAoBpD,CAAC;AAEF,UAAU,yBAA0B,SAAQ,eAAe;IACzD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED,eAAO,MAAM,oBAAoB,EAAE,OAAO,CAAC,yBAAyB,CAwCnE,CAAC"}
1
+ {"version":3,"file":"Checkbox.stories.d.ts","sourceRoot":"","sources":["../../../src/core/Checkbox/Checkbox.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAQ,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAGtD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;;AAE/D,wBAwBU;AAEV,UAAU,kBAAmB,SAAQ,eAAe;IAClD,kBAAkB,EAAE,OAAO,CAAC;CAC7B;AAED,eAAO,MAAM,eAAe,EAAE,OAAO,CAAC,kBAAkB,CAmBvD,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,OAAO,CAAC,kBAAkB,CAmBpD,CAAC;AAEF,UAAU,yBAA0B,SAAQ,eAAe;IACzD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED,eAAO,MAAM,oBAAoB,EAAE,OAAO,CAAC,yBAAyB,CAuCnE,CAAC"}